Привет! Этот скрипт до недавнего времени извлекал новости с веб-страницы. А теперь, похоже, что это не работает. Это должно работать по команде: !national
on *:TEXT:!nacional:#opon: nacional $nick $chan alias nacional { if ($hget(ns,stop)) { .notice $1 Una sola vez por favor, espera por lo menos 10 segundos para enviar de vuelta. | return } .hadd -mu10 ns stop 1 .hadd -m ns nick $1 .hadd -m ns chan $2 .hadd -m ns port 443 .hadd -m ns domen www.ultimahora.com .hadd -m ns webpage https://www.ultimahora.com/contenidos/nacional.html .hadd -m ns file nacional.txt .hadd -m ns file-test nacional-test.txt .hadd -m ns agent Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:62.0) Gecko/20100101 Firefox/62.0 if ($exists($hget(ns,file))) .remove $hget(ns,file) | if ($exists($hget(ns,file-test))) .remove $hget(ns,file-test) .sockclose nacional | if ($hget(ns,inc)) .hdel -sw ns inc if (https: isin $hget(ns,webpage)) var %flag -e .sockopen %flag nacional $hget(ns,domen) $hget(ns,port) } on *:SOCKOPEN:nacional:{ if ($sockerr) { echo -s $hget(ns,domen) : Server is not available. | return } .sockwrite -nt $sockname GET $hget(ns,webpage) HTTP/1.0 .sockwrite -nt $sockname Host: $hget(ns,domen) .sockwrite -nt $sockname User-Agent: $hget(ns,agent) .sockwrite -nt $sockname Content-Type: text/html; charset=utf-8 .sockwrite -nt $sockname $str($crlf,2) .sockwrite -nt $sockname } on *:SOCKREAD:nacional:{ if ($sockerr > 0) { echo -s $hget(ns,domen) : $error | return } :1 | .sockread %temp_ns | if ($sockbr == 0) return | if (!%temp_ns) goto 1 ;.write -i $hget(ns,file-test) %temp_ns var %ns_find = class="article-title" if (%ns_find isin %temp_ns) { var %temp_ns $repchar($findtitle(%temp_ns)) .write -i $hget(ns,file) %temp_ns } goto 1 } on *:SOCKCLOSE:nacional:{ .echo -st $+(12,$hget(ns,domen),) - reading completed! | if ($hget(ns,stop)) .hdel -sw ns stop if ($exists($hget(ns,file)) && $lines($hget(ns,file)) > 0) { msg $hget(ns,chan) 12Paraguay Nacional:14 $read($hget(ns,file)) } } alias -l findtitle { var %str $1- | var %f $wildtok(%str,*article-title*,1,32) var %t $gettok(%str,$+($findtok(%str,%f,1,32),-),32) return $gettok($gettok(%t,3-,62),1,60) } alias -l repchar { return $replace($1-,',$chr(39)) }
Отредактировано nexuxirc (06.03.2022 01:58)