Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ;YouTube Script (Parse Vids and Search) v2.5
- ;Made by nick1
- ;Last edit August 16 2011
- alias Youtube {
- dialog -m Youtube Youtube
- }
- dialog Youtube {
- title "YouTube Script (Parse Vids and Search) v2.5"
- size -1 -1 187 133
- option dbu
- icon C:\Users\Adam\AppData\Roaming\mIRC\Youtube.ico, 0
- link "View Script On Hawkee -- Report Bugs Here", 1, 39 2 105 8
- button "Exit", 7, 54 120 72 12, cancel
- tab "About", 10, 1 10 183 106
- button "On", 15, 20 99 37 12, tab 10
- button "Off", 16, 120 99 37 12, tab 10
- text "This script was created by nick1 (Rizon Network)", 18, 2 25 140 8, tab 10
- text "Last updated on August 26, 2011", 19, 2 33 104 11, tab 10
- text "Please post suggestions, complaints, or bugs on the hawkee link", 20, 2 42 167 8, tab 10
- text "Default is to message a channel with info only if you are an op or above, OR you have specified you want to by typing in the channel !youtube (to shut off use !noyoutube)", 21, 2 51 174 21, tab 10
- text "!commands will notice the user; @commands will be public to the channel", 13, 2 72 175 11, tab 10
- text "On/Off Buttons will Enable/Disable the entire script", 17, 26 91 135 7, tab 10
- tab "Parse", 11
- button "On", 111, 20 99 37 12, tab 11
- button "Off", 9, 120 99 37 12, tab 11
- text "This part of the script will automatically find youtube links that other people post and message the channel with info about the video.", 22, 3 27 177 14, tab 11
- text "The script will return the following information: Title, Views, and User. ", 23, 3 44 174 10, tab 11
- text "There is automatic flood protection enabled so the script will not process the same link twice in a row", 24, 3 57 179 13, tab 11
- text "On/Off Buttons will Enable/Disable the parsing section of the script", 25, 8 91 162 7, tab 11
- tab "Search", 2
- button "On", 5, 20 99 37 12, tab 2
- button "Off", 14, 120 99 37 12, tab 2
- text "This part of the script will automatically find the most relevant YouTube video to the provided search terms.", 57, 4 25 174 13, tab 2
- text "The script will return the following information: Link, Title, Length, Views, and User.", 58, 4 41 176 13, tab 2
- text "Commands may be prefixed with an ! or an @; with !commands private and @commands public to the channel.", 59, 4 55 176 13, tab 2
- box "Search Commands -- Prefix With ! or @ --", 60, 4 69 175 22, tab 2
- text "On/Off Buttons will Enable/Disable the search section of the script", 61, 8 91 159 7, tab 2
- text "ysearch <search terms>; ytsearch <search terms>;youtube <search terms>", 62, 15 76 156 14, tab 2
- tab "Channel Settings", 3
- list 6, 7 57 168 54, tab 3 sort size extsel hsbar vsbar
- edit "Enter #channel here...", 8, 4 25 140 25, tab 3 multi return autohs autovs
- text "List of channels the script will NOT run on", 12, 27 50 101 7, tab 3
- button "Add", 4, 145 26 37 12, tab 3
- button "Remove", 63, 145 39 37 12, tab 3
- tab "Just For Fun", 26
- text "See if you can check all the checkboxes! Warning: there might not be a reward.", 27, 22 51 144 17, tab 26
- check "Check Box", 28, 4 24 50 10, tab 26
- check "Check Box", 29, 5 34 50 10, tab 26
- check "Check Box", 30, 39 24 50 10, tab 26
- check "Check Box", 31, 24 32 50 10, tab 26
- check "Check Box", 32, 3 42 50 10, tab 26
- check "Check Box", 33, 15 79 50 10, tab 26
- check "Check Box", 34, 73 81 50 10, tab 26
- check "Check Box", 35, 84 72 50 10, tab 26
- check "Check Box", 36, 91 30 50 10, tab 26
- check "Check Box", 37, 122 81 50 10, tab 26
- check "Check Box", 38, 129 99 50 10, tab 26
- check "Check Box", 39, 79 91 50 10, tab 26
- check "Check Box", 40, 26 92 50 10, tab 26
- check "Check Box", 41, 109 66 50 10, tab 26
- check "Check Box", 42, 125 57 50 10, tab 26
- check "Check Box", 43, 127 31 50 10, tab 26
- check "Check Box", 44, 120 23 50 10, tab 26
- check "Check Box", 45, 44 36 50 10, tab 26
- check "Check Box", 46, 78 40 50 10, tab 26
- check "Check Box", 47, 128 89 50 10, tab 26
- check "Check Box", 48, 11 67 50 10, tab 26
- check "Check Box", 49, 23 100 50 10, tab 26
- check "Check Box", 50, 36 68 50 10, tab 26
- check "Check Box", 51, 127 72 50 10, tab 26
- check "Check Box", 52, 76 62 50 10, tab 26
- check "Check Box", 53, 132 41 50 10, tab 26
- check "Check Box", 54, 45 98 50 10, tab 26
- check "Check Box", 55, 87 97 50 10, tab 26
- check "Check Box", 56, 30 82 50 10, tab 26
- }
- on *:dialog:youtube:init:0: {
- var %y 1
- while (%y <= $numtok(%youtubefetch,44)) {
- did -a youtube 6 $gettok(%youtubefetch,%y,44)
- inc %y
- }
- }
- on *:dialog:youtube:sclick:*: {
- if ($did == 1) {
- run http://www.hawkee.com/snippet/8577/
- }
- elseif ($did == 15) {
- enable #search
- enable #parse
- }
- elseif ($did == 16) {
- disable #search
- disable #parse
- }
- elseif ($did == 111) {
- enable #parse
- }
- elseif ($did == 9) {
- disable #parse
- }
- elseif ($did == 5) {
- enable #search
- }
- elseif ($did == 14) {
- disable #search
- }
- }
- on *:dialog:youtube:edit:*: {
- if ($did == 8) {
- if (*Enter #channel here...* iswm $did(8)) {
- did -r youtube 8
- }
- }
- }
- raw 408:*: msg $2 $remove($strip($13-),$chr(9))
- #search on
- on $*:text:/^[!@]y(outube|t|tsearch|search|ousearch|outubesearch)/Si:*:{
- if ($($+(%,botflood.,$nick),2)) {
- if ($($+(%,botflood.,$nick),2) >= 50) {
- ignore -u60 $address($nick,0)
- msg $chan $+($nick,$chr(44)) You Have Been Put On Ignore For 60secs For Abusing The Bot.
- halt
- }
- elseif ($($+(%,botflood.,$nick),2) >= 40) {
- msg $chan $+($nick,$chr(44)) Please Do Not Abuse The Bot.
- inc -z $+(%,botflood.,$nick) 20
- halt
- }
- else {
- inc -z $+(%,botflood.,$nick) 25
- }
- }
- else {
- inc -z $+(%,botflood.,$nick) 25
- }
- var %ticks $ticks
- if ($2) {
- set $+(%,ysearch.,%ticks,.msgtype) $iif($left($strip($1),1) == @,msg $chan,notice $nick)
- set $+(%,ysearch.,%ticks,.search) $replace($2-,$chr(32),+)
- sockopen $+(ysearch.,%ticks) youtube.com 80
- }
- elseif ($2 == $null) {
- msg $chan $+(4,$nick,,$chr(44)) 10Incorrect Syntax: Try ! or @ 4YOUTUBE10 <search term>
- }
- }
- on *:input:*:{
- if (($remove($1,$left($strip($1),1)) == ysearch) || ($remove($1,$left($strip($1),1)) == ytsearch) || ($remove($1,$left($strip($1),1)) == yt) || ($remove($1,$left($strip($1),1)) == youtubesearch)) {
- set $+(%,ysearch.,$ticks,.msgtype) msg $active
- set $+(%,ysearch.,$ticks,.search) $replace($2-,$chr(32),+)
- sockopen $+(ysearch.,$ticks) youtube.com 80
- }
- elseif (*youtube.com* iswm $1-) {
- var %i 1
- while (%i <= $numtok($1-,32)) {
- if ((*youtube.com* iswm $($+($,%i),2)) || (*youtu.be* iswm $($+($,%i),2))) {
- set $+(%,youtube.,$ticks,.url) $($+($,%i),2)
- set $+(%,youtube.,$ticks,.tag) $remove($strip($($+($,%i),2)),http://,www.,youtube.com,youtu.be/,/watch?v=,$chr(31),&feature=feedu)
- }
- inc %i
- }
- set $+(%,youtube.,$ticks,.msgtype) msg $active
- set $+(%,youtube.,$ticks,.nick) $nick
- set $+(%,youtube.,$ticks,.chan) $chan
- set $+(%,youtube.,$ticks,.network) $network
- sockopen $+(youtube.,$ticks) youtube.com 80
- }
- elseif (($1 == !youtubelinks) || ($1 == !youtubefetch) || ($1 == !youtube)) {
- set %youtubefetch $remtok(%youtubefetch,$iif(($2),$2,$chan),44)
- echo -ac info I will message $iif(($2),$2,$chan) with youtube info...
- }
- elseif (($1 == !noyoutubelinks) || ($1 == !noyoutubefetch) || ($1 == !noyoutube)) {
- set %youtubefetch $addtok(%youtubefetch,$iif(($2),$2,$chan),44)
- echo -ac info I won't message $iif(($2),$2,$chan) with youtube info...
- }
- }
- on *:sockopen:ysearch*: {
- sockwrite -nt $sockname GET /results?search_query= $+ $($+(%,ysearch.,$remove($sockname,ysearch.),.search),2) HTTP/1.1
- sockwrite -nt $sockname Host: www.youtube.com
- sockwrite -nt $sockname $crlf
- }
- alias nohtml { return $regsubex($$1-,/^[^<]*>|<[^>]*>|<[^>]*$/g,) }
- on *:SOCKREAD:ysearch*: {
- if ($sockerr) { echo -a SOCKET ERROR: $sockerr | halt }
- sockread %sockreader
- if (*<h3>* iswm %sockreader) {
- set $+(%,ysearch.,$remove($sockname,ysearch.),.title) $regsubex($nohtml($replace($remove(%sockreader,|),<b>,,</b>,,",",&,&)),/&#(\d\d?\d?\d?);/g,$chr(\1))
- tokenize 34 %sockreader
- set $+(%,ysearch.,$remove($sockname,ysearch.),.tag) $2
- }
- elseif (*</div><h3* iswm %sockreader) {
- set $+(%,ysearch.,$remove($sockname,ysearch.),.title) $regsubex($nohtml($replace($remove(%sockreader,|),<b>,,</b>,,",",&,&)),/&#(\d\d?\d?\d?);/g,$chr(\1))
- tokenize 34 %sockreader
- set $+(%,ysearch.,$remove($sockname,ysearch.),.tag) $4
- }
- elseif (*<span class="video-time">* iswm %sockreader) {
- set $+(%,ysearch.,$remove($sockname,ysearch.),.time) $nohtml($remove(%sockreader,Add to,Added,to,queue))
- }
- elseif (*<span class="username-prepend">* iswm %sockreader) {
- set $+(%,ysearch.,$remove($sockname,ysearch.),.user) $remove($nohtml(%sockreader),by)
- }
- elseif (*<span class="viewcount">* iswm %sockreader) {
- set $+(%,ysearch.,$remove($sockname,ysearch.),.viewcount) $remove($nohtml(%sockreader),|,views)
- $($+(%,ysearch.,$remove($sockname,ysearch.),.msgtype),2) 1,0You0,4Tube 10Link:4 http://youtube.com $+ $($+(%,ysearch.,$remove($sockname,ysearch.),.tag),2) 10Title:4 $($+(%,ysearch.,$remove($sockname,ysearch.),.title),2) 10Length:4 $($+(%,ysearch.,$remove($sockname,ysearch.),.time),2) 10Views:4 $($+(%,ysearch.,$remove($sockname,ysearch.),.viewcount),2) 10User:4 $($+(%,ysearch.,$remove($sockname,ysearch.),.user),2)
- unset $+(%,ysearch.,$remove($sockname,ysearch.),*)
- sockclose $sockname
- }
- }
- #search end
- #parse on
- on $*:text:/youtu(.be|be.com)/Si:*: {
- if (($chan != #nova) && ($nick != Runescript)) {
- if ($($+(%,botflood.,$nick),2)) {
- if ($($+(%,botflood.,$nick),2) >= 50) { ignore -u60 $address($nick,0) | msg $chan $+($nick,$chr(44)) You Have Been Put On Ignore For 60secs For Abusing The Bot. | halt }
- elseif ($($+(%,botflood.,$nick),2) >= 40) { msg $chan $+($nick,$chr(44)) Please Do Not Abuse The Bot. | inc -z $+(%,botflood.,$nick) 20 | halt }
- else { inc -z $+(%,botflood.,$nick) 10 }
- }
- else { inc -z $+(%,botflood.,$nick) 10 }
- var %i 1
- var %ticks $ticks
- while (%i <= $numtok($1-,32)) {
- if ((*youtube.com* iswm $($+($,%i),2)) || (*youtu.be* iswm $($+($,%i),2))) {
- set $+(%,youtube.,%ticks,.url) $($+($,%i),2)
- set $+(%,youtube.,%ticks,.tag) $remove($strip($($+($,%i),2)),http://,www,$chr(46),youtube,com,youtu,be,/,watch?v=,$chr(31),&feature=feedu)
- }
- inc %i
- }
- if (!$istok(%youtubefetch,$chan,44)) {
- set $+(%,youtube.,%ticks,.msgtype) msg $chan
- }
- elseif ($istok(%youtubefetch,$chan,44)) {
- set $+(%,youtube.,%ticks,.msgtype) echo -a
- }
- if (($($+(%,youtube.,%ticks,.tag),2) != %_youtube.last) && ($($+(%,youtube.,%ticks,.tag),2) != $null)) {
- set $+(%,youtube.,%ticks,.nick) $nick
- set $+(%,youtube.,%ticks,.chan) $chan
- set $+(%,youtube.,%ticks,.network) $network
- sockopen $+(youtube.,%ticks) youtube.com 80
- }
- }
- }
- on *:sockopen:youtube*: {
- sockwrite -nt $sockname GET $+(/,watch?v=,$($+(%,youtube.,$remove($sockname,youtube.),.tag),2)) HTTP/1.1
- sockwrite -nt $sockname Host: www.youtube.com
- sockwrite -nt $sockname $crlf
- }
- on *:SOCKREAD:youtube*: {
- if ($sockerr) { echo -a SOCKET ERROR: $sockerr | halt }
- else {
- var %sockreader
- sockread %sockreader
- if (*Location: http://www.youtube.com/verify_age?next_url=* iswm %sockreader) {
- if ($($+(%,youtube.,$remove($sockname,youtube.),.msgtype),2) != echo -a) {
- $($+(%,youtube.,$remove($sockname,youtube.),.msgtype),2) 1,0You0,4Tube 10This content may contain material flagged by YouTube's user community that may be inappropriate for some users.
- halt
- }
- set %_youtube.last $($+(%,youtube.,$remove($sockname,youtube.),.tag),2)
- unset $+(%,youtube.,$remove($sockname,youtube.),*)
- sockclose youtube
- halt
- }
- elseif (*<meta name="title"* iswm %sockreader) {
- tokenize 32 %sockreader
- set $+(%,youtube.,$remove($sockname,youtube.),.title) $replace($remove(%sockreader,<meta name="title" content=",">),&quot;,",&#39;,',",",&,&,',')
- }
- elseif (*<span class="watch-view-count">* iswm %sockreader) {
- set $+(%,youtube.,$remove($sockname,youtube.),.viewcheck) on
- }
- elseif (*<a id="watch-username" class="inline-block" rel="author" href="/user/* iswm %sockreader) {
- set $+(%,youtube.,$remove($sockname,youtube.),.user) $nohtml(%sockreader)
- }
- elseif (*<a id="watch-userbanner" class="inline-block" rel="author" href="/user/* iswm %sockreader) {
- tokenize 34 %sockreader
- set $+(%,youtube.,$remove($sockname,youtube.),.user) $10
- }
- elseif ((*<strong>* iswm %sockreader) && ($($+(%,youtube.,$remove($sockname,youtube.),.viewcheck),2) == on)) {
- set $+(%,youtube.,$remove($sockname,youtube.),.viewcount) $nohtml(%sockreader)
- if ($($+(%,youtube.,$remove($sockname,youtube.),.msgtype),2) == echo -a) {
- $($+(%,youtube.,$remove($sockname,youtube.),.msgtype),2) 12[4 $+ $($+(%,youtube.,$remove($sockname,youtube.),.chan),2) $+ 12] 1,0You0,4Tube 10Title:4 $($+(%,youtube.,$remove($sockname,youtube.),.title),2) 10Views:4 $($+(%,youtube.,$remove($sockname,youtube.),.viewcount),2) 10User:4 $($+(%,youtube.,$remove($sockname,youtube.),.user),2) 12From4 $($+(%,youtube.,$remove($sockname,youtube.),.nick),2) 10on12 $($+(%,youtube.,$remove($sockname,youtube.),.network),2)
- }
- elseif ($($+(%,youtube.,$remove($sockname,youtube.),.msgtype),2) != echo -a) {
- $($+(%,youtube.,$remove($sockname,youtube.),.msgtype),2) 1,0You0,4Tube 10Title:4 $($+(%,youtube.,$remove($sockname,youtube.),.title),2) 10Views:4 $($+(%,youtube.,$remove($sockname,youtube.),.viewcount),2) 10User:4 $($+(%,youtube.,$remove($sockname,youtube.),.user),2)
- }
- set %_youtube.last $($+(%,youtube.,$remove($sockname,youtube.),.tag),2)
- unset $+(%,youtube.,$remove($sockname,youtube.),*)
- sockclose youtube
- }
- }
- }
- #parse end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement