Advertisement
Guest User

asddasdasd

a guest
Aug 30th, 2015
290
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 20.49 KB | None | 0 0
  1. ;EDITS -- v3 API major fix because had wrong port for SSL, duration fixes, description fixes
  2.  
  3. alias -l yversion { return v6.0 }
  4. alias -l yapi { return AIzaSyBZFSgBuREDKNRwHqvHix68W3WiMyZ3N6c }
  5.  
  6. menu status,channel,query {
  7. YouTube:youtube
  8. }
  9.  
  10. alias YouTube { dialog -m YouTube YouTube }
  11.  
  12. dialog Youtube {
  13. title "YouTube v6.0"
  14. size -1 -1 242 196
  15. option dbu
  16. icon $mircdirYoutube.ico, 0
  17. link "View Script On Hawkee", 1, 3 2 59 8
  18. button "Exit", 7, 88 181 72 12, cancel
  19. tab "About", 10, 2 9 235 169
  20. link "YouTube Script (Parse Vids and Search) v6.0 -- Post Bugs and Feature Requests Here", 24, 16 26 208 8, tab 10
  21. text "Last updated on May 11 2015", 19, 7 66 95 8, tab 10
  22. text "Please post suggestions, complaints, or bugs on the hawkee link (or in chat)", 20, 7 37 188 8, tab 10
  23. text "!commands will notice the user; @commands will be public to the channel", 13, 7 93 175 8, tab 10
  24. text "Default behavior is to run on every channel for every nick. Use the Nick and Channel Settings Tabs to change it for invidividual channels or nicks.", 65, 7 114 208 14, tab 10
  25. link "Click here to chat (leave a message for nick1)", 66, 58 50 110 8, tab 10
  26. text "Use the Basic Options Tab to adjust which parts of the script will run and basic formatting options.", 23, 7 142 195 13, tab 10
  27. button "Check for Updates", 21, 91 64 54 12, tab 10
  28. tab "Basic Options", 2
  29. box "Search Commands/Options", 60, 7 52 209 29, tab 2
  30. text "youtube <search terms>; ytsearch <search>; ysearch <search terms>", 62, 10 60 175 8, tab 2
  31. box "Disable Options", 5, 7 23 209 27, tab 2
  32. check "Disable Search - Disables search commands below", 11, 11 29 133 10, tab 2 flat
  33. check "Disable Parse - Disables the script from automatically sending info", 14, 11 38 175 10, tab 2 flat
  34. box "Output Options", 9, 7 83 209 82, tab 2
  35. check "Disable Views - Removes 'Views: <Views>'", 15, 11 90 123 10, tab 2
  36. check "Disable Length - Removes 'Length: <Length>'", 16, 11 99 130 10, tab 2
  37. check "Disable User - Removes 'User: <User>'", 17, 11 108 113 10, tab 2
  38. check "Disable Formatting - Removes Colors and Bold", 22, 11 117 127 10, tab 2
  39. edit "", 58, 99 69 15 10, tab 2 limit 1
  40. text "Number of search results displayed:", 25, 10 70 87 8, tab 2
  41. check "Enable Date - Adds 'Uploaded: <Date>'", 57, 11 126 120 10, tab 2
  42. check "Enable Likes - Adds 'Likes: <Likes>", 27, 11 135 130 10, tab 2
  43. check "Enable Dislikes - Adds 'Dislikes: <Dislikes>", 28, 11 144 130 10, tab 2
  44. check "Enable Description - Adds 'Description <Description>", 29, 11 153 139 10, tab 2
  45. tab "Channel Settings", 3
  46. list 6, 8 56 220 116, tab 3 sort size extsel vsbar
  47. edit "", 8, 9 26 155 25, tab 3 multi autohs autovs
  48. text "List of channels the script will NOT run on", 12, 48 50 101 6, tab 3
  49. button "Add", 4, 190 25 37 12, tab 3
  50. button "Remove", 63, 190 42 37 12, tab 3
  51. button "Click here to enter #channels ...", 64, 10 27 153 23, tab 3
  52. tab "Nick Settings", 26
  53. text "List of nicks the script will NOT run for", 70, 48 50 101 6, tab 26
  54. list 71, 8 56 220 116, tab 26 sort size extsel vsbar
  55. button "Remove", 72, 190 42 37 12, tab 26
  56. button "Add", 73, 190 25 37 12, tab 26
  57. edit "", 69, 9 26 155 25, tab 26 multi autohs autovs
  58. button "Click here to enter Nicks ...", 74, 10 27 153 23, tab 26
  59. text "This script created by nick1", 18, 171 2 66 8
  60. }
  61.  
  62. on *:dialog:youtube:init:0: {
  63. FillChannelBox
  64. FillNickBox
  65. $iif(%_youtube.nocolor == true,did -c youtube 22,noop)
  66. did -a youtube 58 $iif(%_youtube.limit == $null,1,%_youtube.limit)
  67. $iif(%_youtube.noviews == true,did -c youtube 15,noop)
  68. $iif(%_youtube.nolength == true,did -c youtube 16,noop)
  69. $iif(%_youtube.nouser == true,did -c youtube 17,noop)
  70. $iif(%_youtube.date == true,did -c youtube 57,noop)
  71. $iif(%_youtube.likes == true,did -c youtube 27,noop)
  72. $iif(%_youtube.dislikes == true,did -c youtube 28,noop)
  73. $iif(%_youtube.description == true,did -c youtube 29,noop)
  74. $iif($group(#search) != on,did -c youtube 11,noop)
  75. $iif($group(#parse) != on,did -c youtube 14,noop)
  76. }
  77. alias FillChannelBox {
  78. did -r youtube 6
  79. var %y 1
  80. while (%y <= $numtok(%youtubefetch,44)) {
  81. did -a youtube 6 $gettok(%youtubefetch,%y,44)
  82. inc %y
  83. }
  84. }
  85. alias FillNickBox {
  86. did -r youtube 71
  87. var %y 1
  88. while (%y <= $numtok(%nolinks,44)) {
  89. did -a youtube 71 $gettok(%nolinks,%y,44)
  90. inc %y
  91. }
  92. }
  93. on *:dialog:youtube:edit:58: {
  94. if (($did(58).text < 1) || ($did(58).text !isnum) && ($did(58).text != $null)) {
  95. did -r youtube 58
  96. noop $input(Enter a number between 1 and 9, owd, Invalid input!)
  97. }
  98. elseif ($did(58).text != $null) { set %_youtube.limit $did(58).text }
  99. }
  100. on *:dialog:youtube:sclick:*: {
  101. if (($did == 1) || ($did == 24)) { run http://hawkee.com/snippet/8577/ }
  102. elseif ($did == 66) { server -m irc.rizon.net:6667 -jn #rsbot_help }
  103. elseif ($did == 22) { set %_youtube.nocolor $iif($did(22).state,true,false) }
  104. elseif ($did == 15) { set %_youtube.noviews $iif($did(15).state,true,false) }
  105. elseif ($did == 16) { set %_youtube.nolength $iif($did(16).state,true,false) }
  106. elseif ($did == 17) { set %_youtube.nouser $iif($did(17).state,true,false) }
  107. elseif ($did == 57) { set %_youtube.date $iif($did(57).state,true,false) }
  108. elseif ($did == 27) { set %_youtube.likes $iif($did(27).state,true,false) }
  109. elseif ($did == 28) { set %_youtube.dislikes $iif($did(28).state,true,false) }
  110. elseif ($did == 29) { set %_youtube.description $iif($did(29).state,true,false) }
  111. elseif ($did == 11) { $iif($group(#search) == on,.disable,.enable) #search }
  112. elseif ($did == 21) { yupdate }
  113. elseif ($did == 14) { $iif($group(#parse) == on,.disable,.enable) #parse }
  114. elseif ($did == 4) {
  115. set %youtubefetch $addtok(%youtubefetch,$iif(($left($did(8),1) == $chr(35)),$did(8),$+($chr(35),$did(8))),44)
  116. did -r youtube 8
  117. FillChannelBox
  118. }
  119. elseif ($did == 73) {
  120. set %nolinks $addtok(%nolinks,$did(69),44)
  121. did -r youtube 69
  122. FillNickBox
  123. }
  124. elseif ($did == 63) {
  125. if ($did(8) != $null) {
  126. set %youtubefetch $remtok(%youtubefetch,$iif(($left($did(8),1) == $chr(35)),$did(8),$+($chr(35),$did(8))),44)
  127. did -r youtube 8
  128. }
  129. if ($did(6).seltext != $null) { set %youtubefetch $remtok(%youtubefetch,$did(6).seltext,44) }
  130. FillChannelBox
  131. }
  132. elseif ($did == 3) { did -t youtube 4 }
  133. elseif ($did == 26) { did -t youtube 73 }
  134. elseif ($did == 72) {
  135. if ($did(69) != $null) {
  136. set %nolinks $remtok(%nolinks,$did(69),44)
  137. did -r youtube 69
  138. }
  139. if ($did(71).seltext != $null) { set %nolinks $remtok(%nolinks,$did(71).seltext,44) }
  140. FillNickBox
  141. }
  142. }
  143.  
  144. raw 408:*: msg $2 $remove($strip($13-),$chr(9),$chr(8))
  145.  
  146. alias urlencode { return $replacex($regsubex($$1-,/([^\w\s])/Sg,$+(%,$base($asc(\t),10,16,2))),$chr(32),+,$chr(43),%2B) }
  147.  
  148. on $*:text:/^[!@](disableyt|offyt|disableyoutube|offyoutube)(\s|$)/Si:?: {
  149. if ($2) {
  150. if ($me ison $2) {
  151. if ($nick isop $2) {
  152. msg $nick 4Youtube has been10 disabled on $+(,$2,)
  153. set %youtubefetch $addtok(%youtubefetch,$2,44)
  154. }
  155. else { msg $nick 4Sorry, you must be an10 op of $+(,$2,) to disable youtube there }
  156. }
  157. else { msg $nick 4Sorry, I am not10 currently in $+(,$2,) }
  158. }
  159. elseif ($2 == $null) { msg $nick 4Incorrect Syntax - Use10 $1 <#channel> }
  160. }
  161. on $*:text:/^[!@](enableyt|onyt|enableyoutube|onyoutube)(\s|$)/Si:?: {
  162. if ($2) {
  163. if ($me ison $2) {
  164. if ($nick isop $2) {
  165. msg $nick 4Youtube has been10 enabled on $+(,$2,)
  166. set %youtubefetch $remtok(%youtubefetch,$2,44)
  167. }
  168. else { msg $nick 4Sorry, you must be an10 op of $+(,$2,) to enable youtube there }
  169. }
  170. else { msg $nick 4Sorry, I am not10 currently in $+(,$2,) }
  171. }
  172. elseif ($2 == $null) { msg $nick 4Incorrect Syntax - Use10 $1 <#channel> }
  173. }
  174.  
  175. #search on
  176. on $*:text:/^[!@]y(outube|t|tsearch|search|ousearch|outubesearch)(\s|$)/Si:*: {
  177. $iif($istok(%youtubefetch,$chan,44),halt,noop)
  178. $iif($istok(%nolinks,$nick,44),halt,noop)
  179. if ($($+(%,botflood.,$nick),2)) {
  180. if ($($+(%,botflood.,$nick),2) >= 50) {
  181. ignore -u60 $address($nick,2)
  182. msg $chan $+($nick,$chr(44)) You have been put on ignore for 60 secs for abusing the bot.
  183. halt
  184. }
  185. elseif ($($+(%,botflood.,$nick),2) >= 40) {
  186. msg $chan $+($nick,$chr(44)) Please do not flood the bot.
  187. inc -z $+(%,botflood.,$nick) 20
  188. halt
  189. }
  190. else { inc -z $+(%,botflood.,$nick) 25 }
  191. }
  192. else { inc -z $+(%,botflood.,$nick) 25 }
  193. var %ticks $ticks
  194. if ($2) {
  195. set $+(%,youtube.,%ticks,.msgtype) $iif($chan,$iif($left($strip($1),1) == @,msg $chan,notice $nick),msg $nick)
  196. set $+(%,youtube.,%ticks,.search) $2-
  197. set $+(%,youtube.,%ticks,.query) $urlencode($2-)
  198. sockopen -e $+(youtube.,%ticks) www.googleapis.com 443
  199. }
  200. elseif ($2 == $null) {
  201. notice $nick 4Incorrect Syntax - Use10 $1 <search term>
  202. }
  203. }
  204.  
  205. on *:input:*:{
  206. $iif($istok(%nolinks,$active,44),return,noop)
  207. $iif($istok(%youtubefetch,$active,44),return,noop)
  208. var %ticks $ticks
  209. if (($remove($1,$left($strip($1),1)) == ysearch) || ($remove($1,$left($strip($1),1)) == ytsearch) || ($remove($1,$left($strip($1),1)) == youtube) || ($remove($1,$left($strip($1),1)) == yt) || ($remove($1,$left($strip($1),1)) == youtubesearch)) {
  210. if ($left($1,1) != /) {
  211. if ($2 != $null) {
  212. set $+(%,youtube.,%ticks,.msgtype) msg $active
  213. set $+(%,youtube.,%ticks,.search) $2-
  214. set $+(%,youtube.,%ticks,.query) $urlencode($2-)
  215. sockopen -e $+(youtube.,%ticks) www.googleapis.com 443
  216. }
  217. elseif ($2 == $null) {
  218. .timerYTInputSyntax -m 1 100 echo -at 4Incorrect Syntax - Use10 $1 <search term>
  219. }
  220. }
  221. }
  222. elseif ((*youtube.com* iswm $1-) || (*youtu.be* iswm $1-)) {
  223. if ($left($1,1) != /) {
  224. var %i 1
  225. while (%i <= $numtok($1-,32)) {
  226. if ((*youtube.com* iswm $($+($,%i),2)) || (*youtu.be* iswm $($+($,%i),2))) {
  227. set $+(%,youtube.,%ticks,.url) $strip($($+($,%i),2))
  228. var %tag $($+(%,youtube.,%ticks,.url),2)
  229. var %tag $iif($matchtok(%tag,v=,1,38),$v1,%tag)
  230. var %tag $deltok($deltok(%tag,2,35),2,38)
  231. if (*youtu.be* iswm %tag) { var %tag $gettok(%tag,1,63) }
  232. set $+(%,youtube.,%ticks,.tag) $remove(%tag,?,m.,v=,/watch?src_vid=,https://,http://,www.,/v/,youtube.com,youtu.be,youtu.be/,/watch?v=,/watch,?v=,$chr(31),#!,/)
  233. }
  234. inc %i
  235. }
  236. if ($($+(%,youtube.,%ticks,.tag),2) == $null) {
  237. unset $+(%,youtube.,%ticks,.*)
  238. }
  239. else {
  240. set $+(%,youtube.,%ticks,.msgtype) msg $active
  241. set $+(%,youtube.,%ticks,.nick) $nick
  242. set $+(%,youtube.,%ticks,.chan) $chan
  243. set $+(%,youtube.,%ticks,.network) $network
  244. sockopen -e $+(youtube.,%ticks) www.googleapis.com 443
  245. }
  246. }
  247. }
  248. }
  249.  
  250. #search end
  251.  
  252. #parse on
  253. on $*:text:/youtu(.be|be.com)/Si:*: {
  254. $iif($istok(%youtubefetch,$chan,44),halt,noop)
  255. $iif($istok(%nolinks,$nick,44),halt,noop)
  256. if ($($+(%,botflood.,$nick),2)) {
  257. if ($($+(%,botflood.,$nick),2) >= 50) {
  258. ignore -u60 $address($nick,2)
  259. msg $chan $+($nick,$chr(44)) You have been put on ignore for 60secs for abusing the bot.
  260. halt
  261. }
  262. elseif ($($+(%,botflood.,$nick),2) >= 40) {
  263. msg $chan $+($nick,$chr(44)) Please do not flood the bot.
  264. inc -z $+(%,botflood.,$nick) 20
  265. halt
  266. }
  267. else {
  268. inc -z $+(%,botflood.,$nick) 10
  269. }
  270. }
  271. else { inc -z $+(%,botflood.,$nick) 10 }
  272. var %i 1
  273. var %ticks $ticks
  274. while (%i <= $numtok($1-,32)) {
  275. if ((*youtube.com* iswm $($+($,%i),2)) || (*youtu.be* iswm $($+($,%i),2))) {
  276. set $+(%,youtube.,%ticks,.url) $strip($($+($,%i),2))
  277. var %tag $($+(%,youtube.,%ticks,.url),2)
  278. var %tag $iif($matchtok(%tag,v=,1,38),$v1,%tag)
  279. var %tag $deltok($deltok(%tag,2,35),2,38)
  280. if (*youtu.be* iswm %tag) { var %tag $gettok(%tag,1,63) }
  281. set $+(%,youtube.,%ticks,.tag) $remove(%tag,?,m.,v=,/watch?src_vid=,https://,http://,www.,/v/,youtube.com,youtu.be,youtu.be/,/watch?v=,/watch,?v=,$chr(31),#!,/)
  282. }
  283. inc %i
  284. }
  285. set $+(%,youtube.,%ticks,.msgtype) msg $iif($chan,$v1,$nick)
  286. if (($($+(%,youtube.,%ticks,.tag),2) != %_youtube.last) && ($($+(%,youtube.,%ticks,.tag),2) != $null)) {
  287. set $+(%,youtube.,%ticks,.nick) $nick
  288. set $+(%,youtube.,%ticks,.chan) $chan
  289. set $+(%,youtube.,%ticks,.network) $network
  290. sockopen -e $+(youtube.,%ticks) www.googleapis.com 443
  291. }
  292. }
  293. on $*:action:/youtu(.be|be.com)/Si:*: {
  294. $iif($istok(%youtubefetch,$chan,44),halt,noop)
  295. $iif($istok(%nolinks,$nick,44),halt,noop)
  296. if ($($+(%,botflood.,$nick),2)) {
  297. if ($($+(%,botflood.,$nick),2) >= 50) {
  298. ignore -u60 $address($nick,2)
  299. msg $chan $+($nick,$chr(44)) You have been put on ignore for 60secs for abusing the bot.
  300. halt
  301. }
  302. elseif ($($+(%,botflood.,$nick),2) >= 40) {
  303. msg $chan $+($nick,$chr(44)) Please do not flood the bot.
  304. inc -z $+(%,botflood.,$nick) 20
  305. halt
  306. }
  307. else {
  308. inc -z $+(%,botflood.,$nick) 10
  309. }
  310. }
  311. else { inc -z $+(%,botflood.,$nick) 10 }
  312. var %i 1
  313. var %ticks $ticks
  314. while (%i <= $numtok($1-,32)) {
  315. if ((*youtube.com* iswm $($+($,%i),2)) || (*youtu.be* iswm $($+($,%i),2))) {
  316. set $+(%,youtube.,%ticks,.url) $strip($($+($,%i),2))
  317. var %tag $($+(%,youtube.,%ticks,.url),2)
  318. var %tag $iif($matchtok(%tag,v=,1,38),$v1,%tag)
  319. var %tag $deltok($deltok(%tag,2,35),2,38)
  320. if (*youtu.be* iswm %tag) { var %tag $gettok(%tag,1,63) }
  321. set $+(%,youtube.,%ticks,.tag) $remove(%tag,?,m.,v=,/watch?src_vid=,https://,http://,www.,/v/,youtube.com,youtu.be,youtu.be/,/watch?v=,/watch,?v=,$chr(31),#!,/)
  322. }
  323. inc %i
  324. }
  325. set $+(%,youtube.,%ticks,.msgtype) msg $iif($chan,$v1,$nick)
  326. if (($($+(%,youtube.,%ticks,.tag),2) != %_youtube.last) && ($($+(%,youtube.,%ticks,.tag),2) != $null)) {
  327. set $+(%,youtube.,%ticks,.nick) $nick
  328. set $+(%,youtube.,%ticks,.chan) $chan
  329. set $+(%,youtube.,%ticks,.network) $network
  330. sockopen -e $+(youtube.,%ticks) www.googleapis.com 443
  331. }
  332. }
  333.  
  334. #parse end
  335.  
  336. on *:sockopen:youtube*: {
  337. var %ticks $remove($sockname,youtube.)
  338. var %x sockwrite -nt $sockname
  339. if (($($+(%,youtube.,%ticks,.search),2) != $null) && ($($+(%,youtube.,%ticks,.round2),2) != true)) {
  340. var %temp_search0 /youtube/v3/search?safeSearch=none&order=relevance&part=snippet&q=
  341. %x GET $+(%temp_search0,$($+(%,youtube.,%ticks,.query),2),&maxResults=,$iif(%_youtube.limit == $null,1,%_youtube.limit),&key=,$yapi) HTTP/1.1
  342. }
  343. else {
  344. var %temp_search1 $(/youtube/v3/videos?part=contentDetails%2Cstatistics%2Csnippet&id=,0)
  345. var %temp_search2 &maxResults=1&fields=items $+ $chr(40) $+ $(contentDetails%2Csnippet%2Cstatistics,0) $+ $chr(41)
  346. %x GET $+(%temp_search1,$($+(%,youtube.,%ticks,.tag),2),%temp_search2,&key=,$yapi) HTTP/1.1
  347. }
  348. %x Host: www.googleapis.com
  349. %x $crlf
  350. }
  351. alias nohtml { return $regsubex($$1-,/^[^<]*>|<[^>]*>|<[^>]*$/g,) }
  352. alias yinfo {
  353. var %step1 errRemoval $gettok($1-,2-,58) errRemoval
  354. return $replace($gettok(%step1,$+(2-,$calc($numtok(%step1,34) - 1)),34),\r\n,$chr(32),\n,$chr(32),\","))
  355. }
  356. on *:SOCKREAD:youtube*: {
  357. if ($sockerr) { echo -a SOCKET ERROR: $sockerr | halt }
  358. else {
  359. var %ticks $remove($sockname,youtube.)
  360. var %sockreader
  361. sockread %sockreader
  362. if ((*"title": * iswm %sockreader) && ($($+(%,youtube.,%ticks,.title),2) == $null)) {
  363. set $+(%,youtube.,%ticks,.title) $yinfo(%sockreader)
  364. if ($($+(%,youtube.,%ticks,.search),2) != $null) {
  365. var %i 0
  366. while (%i <= $numtok($($+(%,youtube.,%ticks,.search),2),32)) {
  367. inc %i
  368. set $+(%,youtube.,%ticks,.title) $regsubex($($+(%,youtube.,%ticks,.title),2), /\b( $gettok($($+(%,youtube.,%ticks,.search),2),%i,32) )\b/gix, $+($chr(2), \1, $chr(2)))
  369. }
  370. }
  371. ;Badword replacement below--useful for bots that kick on badword list. Replace or add words to censor <word,replacement>
  372. set $+(%,youtube.,%ticks,.title) $replace($($+(%,youtube.,%ticks,.title),2),faggot,f****t,nigger,n****r)
  373. }
  374. elseif (*"videoId": * iswm %sockreader) {
  375. set $+(%,youtube.,%ticks,.tag) $yinfo(%sockreader)
  376. sockclose $sockname
  377. set $+(%,youtube.,%ticks,.round2) true
  378. sockopen -e $+(youtube.,%ticks) www.googleapis.com 443
  379. }
  380. elseif (*channelTitle": * iswm %sockreader) { set $+(%,youtube.,%ticks,.user) $yinfo(%sockreader) }
  381. elseif (*"duration": * iswm %sockreader) {
  382. set $+(%,youtube.,%ticks,.time) $regsubex($duration($calc($replace( $remove($yinfo(%sockreader), P, T), W, *604800+, D, *86400+, H, *3600+, M, *60+, S,*1)), 3), /^[0:]+, )
  383. }
  384. elseif (*"publishedAt": * iswm %sockreader) { set $+(%,youtube.,%ticks,.date) $gettok($yinfo(%sockreader),1,84) }
  385. elseif ((*"description": * iswm %sockreader) && ($($+(%,youtube.,%ticks,.description),2) == $null)) {
  386. var %wrong errRemoval ", errRemoval
  387. var %desc $yinfo(%sockreader)
  388. if (($gettok(%sockreader,4,34) == $null) || (%desc == %wrong)) { set $+(%,youtube.,%ticks,.description) N/A }
  389. else { set $+(%,youtube.,%ticks,.description) $iif($numtok(%desc,32) > 10,$+($gettok(%desc,1-8,32),...),%desc) }
  390. }
  391. elseif (*"viewCount": * iswm %sockreader) { set $+(%,youtube.,%ticks,.viewcount) $bytes($yinfo(%sockreader),bd) }
  392. elseif (*"likeCount": * iswm %sockreader) { set $+(%,youtube.,%ticks,.likes) $bytes($yinfo(%sockreader),bd) }
  393. elseif (*"dislikeCount": * iswm %sockreader) {
  394. set $+(%,youtube.,%ticks,.dislikes) $bytes($yinfo(%sockreader),bd)
  395. set %_youtube.last $($+(%,youtube.,%ticks,.tag),2)
  396. $iif($($+(%,youtube.,%ticks,.viewcount),2) == 301,set $+(%,youtube.,%ticks,.viewcount) 301+,noop)
  397. var %msg 1,0You0,4Tube $&
  398. $iif($($+(%,youtube.,%ticks,.search),2) == $null,$null,10Link:4 http://youtu.be/ $+ $($+(%,youtube.,%ticks,.tag),2)) $&
  399. 10Title:4 $($+(%,youtube.,%ticks,.title),2) $&
  400. $iif(%_youtube.noviews == true,$null,10Views:4 $($+(%,youtube.,%ticks,.viewcount),2)) $&
  401. $iif(%_youtube.nolength == true,$null,10Length:4 $($+(%,youtube.,%ticks,.time),2)) $&
  402. $iif(%_youtube.date == true,10Uploaded:4 $($+(%,youtube.,%ticks,.date),2),$null) $&
  403. $iif(%_youtube.nouser == true,$null,10User:4 $($+(%,youtube.,%ticks,.user),2)) $&
  404. $iif(%_youtube.likes == true,10Likes:4 $($+(%,youtube.,%ticks,.likes),2),$null) $&
  405. $iif(%_youtube.dislikes == true,10Dislikes:4 $($+(%,youtube.,%ticks,.dislikes),2),$null) $&
  406. $iif(%_youtube.description == true,10Description:4 $($+(%,youtube.,%ticks,.description),2),$null)
  407. var %msg = $remove(%msg,$chr(9))
  408. $($+(%,youtube.,%ticks,.msgtype),2) $iif(%_youtube.nocolor == true,$strip(%msg),%msg)
  409. ;2DO fix this part for max results
  410. inc $+(%,youtube.,%ticks,.number)
  411. if ((%_youtube.limit == $($+(%,youtube.,%ticks,.number),2)) || ($($+(%,youtube.,%ticks,.search),2) == $null)) {
  412. unset $+(%,youtube.,$remove($sockname,youtube.),*)
  413. sockclose $sockname
  414. }
  415. }
  416. elseif (*"totalResults": 0,* iswm %sockreader) {
  417. if ($($+(%,youtube.,%ticks,.number),2) == $null) {
  418. var %msg 1,0You0,4Tube 10No relevant results were found. Try different search terms.
  419. $($+(%,youtube.,%ticks,.msgtype),2) $iif(%_youtube.nocolor == true,$strip(%msg),%msg)
  420. }
  421. unset $+(%,youtube.,$remove($sockname,youtube.),*)
  422. sockclose $sockname
  423. }
  424. elseif (*"items": []* iswm %sockreader) {
  425. if ($($+(%,youtube.,%ticks,.number),2) == $null) {
  426. var %msg 1,0You0,4Tube 10This video was removed or is no longer available.
  427. $($+(%,youtube.,%ticks,.msgtype),2) $iif(%_youtube.nocolor == true,$strip(%msg),%msg)
  428. }
  429. unset $+(%,youtube.,$remove($sockname,youtube.),*)
  430. sockclose $sockname
  431. }
  432. }
  433. }
  434.  
  435. on *:start: .timerYTUpdate 1 60 yupdate
  436. alias yupdate {
  437. echo -atc info 12[04YouTube12] Checking for updates...
  438. sockopen yupdate hawkee.com 80
  439. }
  440. on *:sockopen:yupdate: {
  441. var %x sockwrite -nt $sockname
  442. %x GET /snippet/8577/ HTTP/1.1
  443. %x Host: hawkee.com
  444. %x $crlf
  445. }
  446. on *:SOCKREAD:yupdate: {
  447. if ($sockerr) { echo -a SOCKET ERROR: $sockerr | halt }
  448. sockread %sockreader
  449. if (*<title>* iswm %sockreader) {
  450. var %x $remove($gettok($nohtml(%sockreader),7-,32),- mIRC)
  451. echo -atc info 12[04YouTube12] Current: $yversion Latest: %x Status: $iif($yversion == %x,Up to date,Please check for updates at http://hawkee.com/snippet/8577/)
  452. unset %sockreader
  453. sockclose $sockname
  454. }
  455. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement