Snippets Project Page
Author: entropy
Added: 4y
Updated: 50w
mIRC: 7.52+
Hits: 1,456
Downloads: 40
Review: maroon
Size: 8.04KB
1 0
Login to vote.
Title Grabber X
Title Grabber X - By: entropy
Grabs the title of the website last displayed on channel.
Download
JSON
▲ Review
▼ Source
; TITLE GRABBER X - by entropy 2023 menu menubar,status,channel,query { - Title Grabber X $chr(9) $replace($group(#title).status,o,O) .Turn it $iif($group(#title).status == on,Off,On) { $iif($group(#title).status == on,.disable,.enable) #title echo 10 -ag * Title Grabber is now: $qt($replace($group(#title).status,o,O)) } .- .Channel(s) $chr(9) $eval($+(%,titlechans,.,$network),2) { var %net = $eval($+(%,titlechans,.,$network),2) var %text = $input(Channels list (seperated by comma) or "#" for all?,5,Title Grabber,%net) %text = $replace(%text,$chr(32),$chr(44)) var %a = 1, %b while ($gettok(%text,%a,44)) { %b = $v1 if ($left(%b,1) != $chr(35)) { %text = $reptok(%text,%b,$+($chr(35),%b),1,44) } inc %a } if (%text) { set $+(%,titlechans,.,$network) $v1 | echo 10 -ag * Title Grabber Channels are now: $qt($v1) } else { unset $+(%,titlechans,.,$network) | echo 10 -ag * Title Grabber Channels are now reset } } .$iif(!$istok($eval($+(%,titlechans,.,$network),2),$chan,44) && $eval($+(%,titlechans,.,$network),2) != $chr(35) && $menu == channel,Add Channel To list) { var %net = $eval($+(%,titlechans,.,$network),2) %net = $addtok(%net,$chan,44) set $+(%,titlechans,.,$network) %net echo 10 -ag * Title Grabber channels are now: $qt(%net) } .$iif($istok($eval($+(%,titlechans,.,$network),2),$chan,44) && $menu == channel,Delete Channel From list) { var %net = $eval($+(%,titlechans,.,$network),2) %net = $remtok(%net,$chan,1,44) set $+(%,titlechans,.,$network) %net echo 10 -ag * Title Grabber channels are now $+ $iif(!%net,$chr(32) reset,: $qt(%net)) } .- .$iif($eval($+(%,titlechans,.,$network),2),Delete all Channels) { unset $+(%,titlechans,.,$network) echo 10 -ag * Title Grabber channels are now reset } - } ; Events... #title off on *:text:*:$($eval($+(%,titlechans,.,$network),2)):{ if ($wildtok($1-,https://*,1,32) || $wildtok($1-,http://*,1,32)) { set -u4 %_titlechan # | WebsiteDataTester $v1 } } on *:input:$($eval($+(%,titlechans,.,$network),2)):{ if (/* iswm $1 || !$server) { return } | if ($wildtok($1-,https://*,1,32) || $wildtok($1-,http://*,1,32)) { set -u4 %_titlechan # | WebsiteDataTester $v1 } } #title end on *:load:{ echo 10 -a * Title Grabber is now loaded! } on *:unload:{ echo 10 -a * Title Grabber is now unloaded! | unset %titlechans.* } ; Aliases. alias -l c { return $chr(9679) } alias -l dot { return $chr(8230) } alias -l replacehtmlentities { return $regsubex($1-,/(\x26[^\x3B]+)\x3B/g,$entitieshtml(\1)) } alias -l entitieshtml { if ($mid($1,2,1) == $chr(35)) { return $chr($mid($1,3)) } elseif ($findtok(&<>ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶¸¹º»¼½¾¿×÷∀∂∃∅∇∈∉∋∏∑−∗√∝∞∠∧∨∩∪∫∴∼≅≈≠≡≤≥⊂⊃⊄⊆⊇⊕⊗⊥⋅ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩαβγδεζηθικλμνξοπρςστυφχψωϑϒϖŒœŠšŸƒˆ˜   ‌‍‎‏–—‘’‚“”„†‡•…‰′″‹›‾€™←↑→↓↔↵⌈⌉⌊⌋◊♠♣♥&diams,$1,59)) { return $chr($gettok(38;60;62;192;193;194;195;196;197;198;199;200;201;202;203;204;205;206;207;208;209;210;211;212;213;214;216;217;218;219;220;221;222;223;224;225;226;227;228;229;230;231;232;233;234;235;236;237;238;239;240;241;242;243;244;245;246;248;249;250;251;252;253;254;255;160;161;162;163;164;165;166;167;168;169;170;171;172;173;174;175;176;177;178;179;180;181;182;184;185;186;187;188;189;190;191;215;247;8704;8706;8707;8709;8711;8712;8713;8715;8719;8721;8722;8727;8730;8733;8734;8736;8743;8744;8745;8746;8747;8756;8764;8773;8776;8800;8801;8804;8805;8834;8835;8836;8838;8839;8853;8855;8869;8901;913;914;915;916;917;918;919;920;921;922;923;924;925;926;927;928;929;931;932;933;934;935;936;937;945;946;947;948;949;950;951;952;953;954;955;956;957;958;959;960;961;962;963;964;965;966;967;968;969;977;978;982;338;339;352;353;376;402;710;732;8194;8195;8201;8204;8205;8206;8207;8211;8212;8216;8217;8218;8220;8221;8222;8224;8225;8226;8230;8240;8242;8243;8249;8250;8254;8364;8482;8592;8593;8594;8595;8596;8629;8968;8969;8970;8971;9674;9824;9827;9829;9830,$v1,59)) } } alias -l bvsearch { var %S = $bfind($1,1,$2) var %E = $bfind($1,$calc(%S + $len($2)),$3) if (%S <= 0 || %E <= 0) { return } if ($prop == inbetween) { var %S = %S + $len($2) , %E = %E - 1 } else { var %E = %E + $iif($regex($3,/(?:\d+|\s)/g),$numtok($3,32),$len($3)) | dec %e } return $left( $bvar($1,$+(%S,-,%E)).text , $maxlenl) } alias -l WebsiteDataTester { if (https://* iswm $1 || http://* iswm $1) { noop $urlget($1,gbi,&title,ScrapeWebsiteData) } } alias -l ScrapeWebsiteData { var %id = $1 , %BV = $urlget(%id).target, %code = $gettok($urlget(%id).reply,2,32) if (%code != 200) { unset %_title* | return } var %title = $replacehtmlentities($nohtml($remove($bvsearch(%BV,<title>,</title>).inbetween,$crlf,$lf))) if ($bfind(%BV,1,name="description")) { var %desc = $replacehtmlentities($nohtml($remove($bvsearch(%BV,name="description","/>).inbetween,content=",$crlf,$lf))) if (!%desc) { var %desc = $replacehtmlentities($nohtml($remove($bvsearch(%BV,name="description"," />).inbetween,content=",$crlf,$lf))) } if (!%desc) { var %desc = $replacehtmlentities($nohtml($remove($bvsearch(%BV,name="description",">).inbetween,content=",$crlf,$lf))) } if ($chr(160) isin %desc) { %desc = $replace(%desc,$chr(160),$chr(32)) } } if (%title) { var %total = [Title] $c %title $iif($chr(95) !isin %desc && ":" !isin %desc && $chr(123) !isin %desc && $chr(125) !isin %desc,$c %desc) if ($gettok(%total,-1,32) == $chr(9679)) { %total = $gettok(%total,1--2,32) } msg %_titlechan $mid(%total,1,400) if ($len(%total) >= 401) { msg %_titlechan $+(:,$mid(%total,401,401),$iif($len(%total) >= 802,$dot)) } } unset %_title* }
Changelog:
0
0
Review: maroon
Works like it says!
Possible improvements could include a cooldown timer to block abuse of your bot, and a customizable blacklist so you can choose to permit youtube and/or block other sites.
Works like it says!
Possible improvements could include a cooldown timer to block abuse of your bot, and a customizable blacklist so you can choose to permit youtube and/or block other sites.