### # # Название: tcl.pastebin.tcl # Версия: 1.2 # Автор: tvrsh # Оффсайт: http://egghelp.ru/ # ### # # Описание: Скрипт сообщает о появлении нового TCL кода на http://pastebin.com # ### # # Установка: # 1. Скопируйте скрипт tcl.pastebin.tcl в папку scripts вашего бота. # 2. В файле eggdrop.conf впишите строку source scripts/tcl.pastebin.tcl # 3. Сделайте .rehash боту. # ### # # Версион хистори: # # 1.0(29.01.2012) Первая паблик версия. # 1.1(29.01.2012) + выбор подсветки кода в настройках. # + возможность показа первых строк кода. # 1.2(15.07.2012) Скрипт обновлен из-за изменений на сайте. # ### namespace eval pastebin { # Сбрасываем значения всех переменных. foreach p [array names pastebin *] { catch {unset pastebin($p) } } # Указываем канальный флаг(.chanset #chan +pastebin для включения скрипта). setudef flag pastebin ### ### # Меню настроек ниже этой линии: # # ______________________________ # ### ### variable pastebin array set pastebin { lang "TCL" showlines "3" color1 \00314 color2 \00303 color3 \00305 color4 \00314 version "tcl.pastebin.tcl version 1.2" author "tvrsh" lastlink "" } ### ### # Ниже этой линии начинается код, не изменяйте его если не знаете TCL: # # ____________________________________________________________________ # ### ### # Обработка биндов. bind time - "?5 * * * *" ::pastebin::pastebin_proc bind time - "?0 * * * *" ::pastebin::pastebin_proc # Процедура обработки запроса. proc ::pastebin::pastebin_proc {min hours day month year} { variable pastebin ::http::config -useragent "Mozilla/4.0 (compatible; MSIE 4.01; Windows CE; PPC; 240x320)" set pastebin_tok [::http::geturl "http://pastebin.com/archive/$pastebin(lang)"] set data [::http::data $pastebin_tok] ::http::cleanup $pastebin_tok if {[info exists ::sp_version]} { set data [encoding convertfrom utf-8 $data] } else { set data [encoding convertto cp1251 [encoding convertfrom utf-8 $data]] } regsub -all -- {\n} $data "" data regsub -all -- {\s+} $data " " data regsub -all -nocase -- {^.*?} $data "" data regsub -all -nocase -- {.*?$} $data "" data regexp {(.*?) (.*?)} $data "" link name ago foreach chan [channels] { if {[channel get $chan pastebin] && $link != $pastebin(lastlink)} { putserv "PRIVMSG $chan :$pastebin(color1)\[$pastebin(color3)$pastebin(lang)$pastebin(color1)\] $pastebin(color2)$name$pastebin(color1): \00312\037http://pastebin.com/$link\037 $pastebin(color1)Posted: $pastebin(color2)$ago$pastebin(color1).\003" set pastebin(lastlink) $link if {$pastebin(showlines) != "0"} { ::http::config -useragent "Mozilla/4.0 (compatible; MSIE 4.01; Windows CE; PPC; 240x320)" set pastebin_tok [::http::geturl "http://pastebin.com/$link"] set data [::http::data $pastebin_tok] ::http::cleanup $pastebin_tok regsub -all -nocase -- {^.*?
    } $data "" data regsub -all -nocase -- {
.*?$} $data "" data regsub -all -- { } $data " " data set line 0 while {$line < $pastebin(showlines)} { regexp -nocase -- {
(.*?)
} [lindex [split $data "\n"] $line] "" code if {[info exists code] && $code != ""} { putserv "PRIVMSG $chan :$pastebin(color4)[::pastebin::striphtml $code]" set code "" } incr line } } } } return 0 } # Обрабатываем тэги и другие символы. proc ::pastebin::striphtml {t} { regsub -all -nocase -- {<.*?>(.*?)} $t {\1} t regsub -all -nocase -- {<.*?>} $t {} t set t [string map {{&} {&}} $t] set t [string map -nocase {{—} {-} {»} {»} {«} {«} {"} {"} \ {<} {<} {>} {>} { } { } {&} {&} {©} {©} {©} {©} {•} {•} {·} {-} {§} {§} {®} {®} \ ‖ || \ & & [ ( \ / ] ) { ( } ) \ £ Ј ¨ Ё © © « « ­ ­ ® ® \ ¡ Ў ¿ ї ´ ґ · · ¹ № » » \ ¼ ј ½ Ѕ ¾ ѕ À А Á Б Â В \ Ã Г Ä Д Å Е Æ Ж Ç З È И \ É Й Ê К Ë Л Ì М Í Н Î О \ Ï П Ð Р Ñ С Ò Т Ó У Ô Ф \ Õ Х Ö Ц × Ч Ø Ш Ù Щ Ú Ъ \ Û Ы Ü Ь Ý Э Þ Ю ß Я à а \ á б â в ã г ä д å е æ ж \ ç з è и é й ê к ë л ì м \ í н î о ï п ð р ñ с ò т \ ó у ô ф õ х ö ц ÷ ч ø ш \ ù щ ú ъ û ы ü ь ý э þ ю \ ° ° ‧ · ˌ . ū u ī i ˈ ' \ ɔ o ɪ i ' ' } $t] set t [string map -nocase {¡ \xA1 ¤ \xA4 ¢ \xA2 £ \xA3 ¥ \xA5 ¦ \xA6 \ § \xA7 ¨ \xA8 © \xA9 ª \xAA « \xAB ¬ \xAC \ ­ \xAD ® \xAE ¯ \xAF ° \xB0 ± \xB1 ² \xB2 \ ³ \xB3 ´ \xB4 µ \xB5 ¶ \xB6 · \xB7 ¸ \xB8 \ ¹ \xB9 º \xBA » \xBB ¼ \xBC ½ \xBD ¾ \xBE \ ¿ \xBF × \xD7 ÷ \xF7 À \xC0 Á \xC1 Â \xC2 \ Ã \xC3 Ä \xC4 Å \xC5 Æ \xC6 Ç \xC7 È \xC8 \ É \xC9 Ê \xCA Ë \xCB Ì \xCC Í \xCD Î \xCE \ Ï \xCF Ð \xD0 Ñ \xD1 Ò \xD2 Ó \xD3 Ô \xD4 \ Õ \xD5 Ö \xD6 Ø \xD8 Ù \xD9 Ú \xDA Û \xDB \ Ü \xDC Ý \xDD Þ \xDE ß \xDF à \xE0 á \xE1 \ â \xE2 ã \xE3 ä \xE4 å \xE5 æ \xE6 ç \xE7 \ è \xE8 é \xE9 ê \xEA ë \xEB ì \xEC í \xED \ î \xEE ï \xEF ð \xF0 ñ \xF1 ò \xF2 ó \xF3 \ ô \xF4 õ \xF5 ö \xF6 ø \xF8 ù \xF9 ú \xFA \ û \xFB ü \xFC ý \xFD þ \xFE ÿ \xFF} $t] regsub -all {\s+} $t " " t regsub -all -nocase -- {<.*?>} $t {} t return $t } # Выводим сообщение о том, что скрипт удачно загружен. putlog "\[pastebin\] $pastebin(version) by $pastebin(author) loaded..." }