- Home»
- Cod sursa: lanparty.tcl
lanparty.tcl
lanparty.tcl
D as tcl liest die lanparty.de news aus und gibt sie wieder, gleich mit dem link zum eigentlichen artikel. per trigger lassen sich auch die letzten X news von hand auslesen.
| Postat de | Copyright | Categorie | Review user | Vizualizari | Data |
|---|---|---|---|---|---|
| btc | domsen | chanops | Cod netestat | 384 | 2023-12-25 09:58:05 |
# lanparty.tcl v1.3 by domsen <domsen@domsen.org> (c)2oo1
#
# comments? bugs? ideas? requests? money? beer?
# plz mail me or visit my homepage @ www.domsen.org
#
# das tcl liest die lanparty.de news aus und gibt sie wieder, gleich mit
# dem link zum eigentlichen artikel. per trigger lassen sich auch die letzten X
# news von hand auslesen.
# und liebe windrop user bitte kauf euch ne shell, dann gibts auch keine
# probs mit meinen scripts <schleichwerbung>www.uid-zero.de</schleichwerbung>
#
#
# v1.3 - komplett umgebaut by public request
# - link wird gleich mitgepostet
# - yeah endlich keine windrop user mehr die mich fragen was lynx ist
# so gerne ich support leiste - jeden tag ne mail mit der selben frage
# stresst ziemlich ;)
# v1.2 - kleiner bugfix
# v1.1 - lanparty.de hat spass daran seine homepage umzubauen,
# das tcl funzt jetzt wieder problemlos...
#
# lptrigger - standardmäßig auf ".lanparty" gesetzt, gibt die
# letzten 'lanpartylimit' newslines wieder
# lanpartylimit - "" für unbegrenzte newslines, ansonsten eine zahl
# lpnewspost - 1 für newsposting, 0 für keines
# lanparychans - die chans in denen das tcl aktiv ist, wobei "" für
# alle steht, ansonsten einfach "#chan1 #chan2" usw
# lanpartynewspostlimit - verhindert ungewollte floods beim newsposten
# islprhub - legt fest ob der bot newshub ist oder nicht, das leaf
# tcl ist auch auf www.domsen.org verfügbar.
# lpleafs - die nicks der leafbots auf denen das leaf tcl läuft,
# "" für keine, oder "botnick1 botnick2" usw
#
####### config ######################
set lptrigger "!lanparty"
set lanpartychans ""
set lanpartylimit "10"
set lanpartynewspostlimit "3"
set lpnewspost "1"
set islphub "0"
set lpleafs ""
####### ende der config #############
bind msg - $lptrigger msg_lp
bind pub - $lptrigger pub_lp
bind time - "?0 * * * *" lpcheck
proc sendlanpartynews { arg } {
global lpleafs
foreach bot [bots] {
if {([lsearch -exact [string tolower $lpleafs] [string tolower $bot]] != -1)} {
putbot $bot "lanparty: $arg"
}}}
proc shrink { calc number string start bl} { return [expr [string first "$string" $bl $start] $calc $number] }
proc lpcheck {nick uhost hand chan arg} {
global lanpartychans lpnewspost islphub lanpartynewspostlimit
set counter 0
if {$lpnewspost == 1 } {
putlog "lanparty: suche nach neuer newsline"
set lplastnews "none"
if {[file exists lanparty.hdl]} {
set temp [open "lanparty.hdl" r]
set lplastnews "[gets $temp]"
close $temp
}
set temp [open "lanparty.hdl" w+]
if {[catch {set sock [socket www.lanparty.de 80] } sockerror]} {
putlog "error: $sockerror"
return 0 } else {
puts $sock "GET /news/archiv/?LSession=a706ebf7c28ca8a78b5489812837afbc HTTP/1.1"
puts $sock "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"
puts $sock "Host: www.lanparty.de"
puts $sock "Connection: close"
puts $sock ""
flush $sock
set counter 0
while {[eof $sock] != 1} {
set bl [gets $sock]
if {[string first "<a href=\"/news/?id=" $bl] != -1 } {
set link www.lanparty.de[string range $bl [shrink + 6 "href=\"" 0 $bl] [shrink - 1 "\" target=" 0 $bl]]
set newsline [string range $bl [shrink + 1 ">" 80 $bl] [shrink - 1 "</a>" 0 $bl]]
puts $temp "$newsline <$link>"
}}}
close $sock ; close $temp
if {$lplastnews == "none" } { putlog "lanparty: headlinefile created" ; return 0 }
set temp [open "lanparty.hdl" r]
while { [eof $temp] != 1 } {
set lpneunews [gets $temp]
if {($lplastnews == $lpneunews) || ($counter == $lanpartynewspostlimit)} { return 0 }
foreach chan [channels] {
if {$lanpartychans == "" } { putserv "privmsg $chan :(neue lanparty newsline) $lpneunews" }
if {$lanpartychans != "" } {
if {([lsearch -exact [string tolower $lanpartychans] [string tolower $chan]] != -1) || ($lanpartychans == "")} {putserv "privmsg $chan :(neue lanparty newsline) $gsneunews"}
}
if { $islphub == "1" } { sendlanpartynews $lpneunews }
incr counter
}}}}
proc lanpartynews { target limit } {
if {[catch {set sock [socket www.lanparty.de 80] } sockerror]} {
putlog "error: $sockerror"
return 0 } else {
puts $sock "GET /news/archiv/?LSession=a706ebf7c28ca8a78b5489812837afbc HTTP/1.1"
puts $sock "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"
puts $sock "Host: www.lanparty.de"
puts $sock "Connection: close"
puts $sock ""
flush $sock
set counter 0
while {[eof $sock] != 1} {
set bl [gets $sock]
if {[string first "<a href=\"/news/?id=" $bl] != -1 } {
set link www.lanparty.de[string range $bl [shrink + 6 "href=\"" 0 $bl] [shrink - 1 "\" target=" 0 $bl]]
set newsline [string range $bl [shrink + 1 ">" 80 $bl] [shrink - 1 "</a>" 0 $bl]]
putserv "privmsg $target :[incr counter] $newsline <$link>"
}
if {$counter == $limit} {close $sock ; return 0}
}}}
proc msg_lp { nick uhost hand arg } { global lanpartylimit ; lanpartynews $nick $lanpartylimit }
proc pub_lp { nick uhost hand chan arg } { global lanpartychans lanpartylimit ; if {([lsearch -exact [string tolower $lanpartychans] [string tolower $chan]] != -1) || ($lanpartychans == "")} { lanpartynews $nick $lanpartylimit }}
putlog "*** lanparty.tcl v1.3 by domsen <domsen@domsen.org> succesfully loaded"
#[EOF]
IRC Snippets