######################################## # News Gateways for www.detik.com # Dibuat oleh: AresU@humorindonesia.net # Anda diperbolehkan melakukan perubahan pada program tetapi tidak pada Copyright Header ini. # Program ini boleh di distribusikan sebebas-bebasnya tanpa ada batasnya sampek beeebbbaaaasss sekali :-) # Ucapan terima kasih untuk temen2xku: # PetriX, TioEuy, Bosen, Brain, syzwz, HeltZ, V0LV0 dan semua #ROMANCE@centrin.net.id # Submit: 2002-01-31 # Update: 2003-04-28 (change frame version) ######################################## bind pub - !news pub_news bind msg m !newsuser msg:newsadduser set fnewsuser scripts/newsuser.txt set countday 0 set ketemu 0 set nbody 0 set tmparg "" set limetitle "" set yellotitle "" set newsdone 0 set newsurl "" set goturl 0 set hariini "" set newsnick "" timer 15 timernews set mhari { Senin Selasa Rabu Kamis Jumat Sabtu Minggu } set mday { Mon Tue Wed Thu Fri Sat Sun } proc timernews {} { pub_news "" "" "" "" "" timer 15 timernews } proc pub_news {nick uhost hand channel arg} { global botnick countday ketemu nbody tmparg newsdone newsurl goturl mhari mday hariini fnewsuser newsnick limetitle yellotitle \ if {![file exists $fnewsuser]} { set fd [open $fnewsuser w] close $fd } set fd [open $fnewsuser r] set j 0 while {![eof $fd]} { lappend newsusers [gets $fd] set j [incr j] } if {[lsearch $newsusers $nick] == -1 && $nick != ""} { putserv "NOTICE $nick :\0030,12 NEWS \00311,1 BELI KORAN DONG JGN BACA DOANG :p " return 0 } set countday 0 set ketemu 0 set nbody 0 set tmparg "" set limetitle "" set yellotitle "" set newsdone 0 set goturl 0 set newsurl "" set hariini [lindex $mhari [lsearch $mday [string range [ctime [unixtime]] 0 2]]] set newsnick $nick if {$newsnick != ""} { putlog "\[NEWS\] <$newsnick>!news" putserv "NOTICE $newsnick :\0030,12 NEWS \0038,1 News Gateways (c)PetriX and AresU" putserv "NOTICE $newsnick :\0030,12 NEWS \0038,1 Please wait when reading news from detik.com ..." } catch {connect www.detik.com 80} tidx control $tidx newsbuffer putdcc $tidx "GET /index.htm HTTP/1.0" putdcc $tidx "HOST: www.detik.com" putdcc $tidx "" return } proc newsbuffer {idx arg} { global countday ketemu nbody tmparg limetitle yellotitle newsdone newsurl goturl hariini newsnick if {[string first $hariini $arg] != -1} { incr countday } if {$countday == 2} { set ketemu 1 } set nurl [string first "href" $arg] if {$ketemu == 1 && $goturl == 0 && $nurl != -1} { set nurl [expr $nurl +6] set nakhir [expr [string first " style" $arg] -2] set newsurl [string range $arg $nurl $nakhir] set goturl 1 } set nlime [string first "subjudul" $arg] if {$ketemu == 1 && $nlime != -1} { putlog "\[NEWS\] Get Lime Title" set nlime [expr $nlime +10] set nakhir [expr [string first "" $arg] -1] set limetitle [string range $arg $nlime $nakhir] } set nyello [string first "strJudul" $arg] if {$ketemu == 1 && $nyello != -1} { putlog "\[NEWS\] Get Yello Title" set nyello [expr $nyello +10] set tmpyello [string range $arg $nyello [expr $nyello + 100]] set nakhir [expr [string first "" $tmpyello] -1] set yellotitle [string range $tmpyello 0 $nakhir] set nbody 1 set tmparg $arg } if {$nbody == 1 && $tmparg != $arg} { set nawal [expr [string first "summary" $arg] +9] set nakhir [expr [string first "" $arg] -1] set newsbody $arg if {$nakhir > 1} { set newsbody [string range $arg $nawal $nakhir] } set newsdone 1 killdcc $idx } if {$newsdone == 1} { putlog "\[NEWS\] Download News Done" putlog "\[DETIKnews\] $limetitle $yellotitle $newsbody $newsurl" if {$newsnick == ""} { foreach ruang [channels] { putserv "PRIVMSG $ruang :\002\0030,3\[TulungagungNews\] \0039,2$limetitle \0038,2$yellotitle \002\0030,2$newsbody \002\00311,2$newsurl" } } else { putserv "NOTICE $newsnick :\002\0030,3\[TulungagungNews\] \0039,2$limetitle \0038,2$yellotitle \002\0030,2$newsbody \002\00311,2$newsurl" } } return 0 } proc msg:newsadduser {nick uhost hand arg} { global fnewsuser putlog "\[NEWS\] <$nick> !newsadduser" set fd [open $fnewsuser a] puts $fd $arg close $fd putserv "NOTICE $nick :\0030,12 NEWS \00311,1 New User ---> \0038$arg " putserv "NOTICE $arg :\0030,12 NEWS \0038,1 Welcome to Our News Gateways (c)AresU" putserv "NOTICE $arg :\0030,12 NEWS \0038,1 Type !news to get news from detik.com, remember this is realtime news" return }