TCL SMS Send MTEL

SMS Send MTEL

# EggSmSMtel-0.2 by JohnnyCage (Simeon Mladenov)

#### Nastroika ####

# Tuk poso4ete dali vseki da moje da polzva uslugata.
# 0 - vseki; 1 - samo potrebiteli s +S flag
set fifi 1

# Tuk poso4ete dali da se logva koi e izprashtal SMS-i
# 0 - ne; 1 - da
set logvam 0

##### Nasam ako ne razbirate po-dobre ne promeniate nishto #####

if {![file exists sms.dat]} {
    putlog "Faila go niama"
    set myfile [open "sms.dat" w]
    set edno [lindex [date] 0]
    set dve [lindex [date] 1]
    puts $myfile "15 $edno $dve"
    close $myfile
}

bind msg - !sms send_sms
bind msg - !leftsms ostavat
bind msg - !smshelp smshelp
putlog "*** EggSmSMtel-0.2 by JohnnyCage loaded"
set filedata [open "sms.dat" r]
gets $filedata zapisi
set kolko [lindex $zapisi 0]
set mdata [lindex $zapisi 1]
set mmesec [lindex $zapisi 2]
close $filedata

proc send_sms {nick uhost hand elka} {
    global kolko mdata mmesec fifi logvam
    if {$fifi} {
	if {![matchattr $hand S]} {
	    putserv "PRIVMSG $nick :samo potrebiteli s +S flag mogat da izprashtat SMS-i"
	    return 0
	}
    }
    set ddata [lindex [date] 0]
    set dmesec [lindex [date] 1]
    if {$ddata > $mdata || $dmesec != $mmesec} {
	set kolko 15
    }
    if {$kolko == 0} {
	putserv "PRIVMSG $nick :za dnes limita ot SMS-i (15) e iz4erpan. Sardi se na MobilTel :<"
	return 0
    }
    set daljina [llength $elka]
    set nomer [lindex $elka 0]
    set zag [lindex $elka 1]
    set text [lrange $elka 2 [expr $daljina - 2]]
    set ot [lindex $elka [expr $daljina - 1]]
    if {$daljina < 4} {
	putserv "PRIVMSG $nick :Ne ste vaveli niakoi ot argumentite! !SMSHELP za da vidite sintaksisa!"
	return 0
    }
    if {![string match 087* $nomer] && ![string match 088* $nomer]} {
	putserv "PRIVMSG $nick :Nevaliden nomer! Koda na Mtel e ili 088 ili 087!"
	return 0
    }
    if {[string length $nomer] != 9} {
	putserv "PRIVMSG $nick :Nomera triabva da 9 cifri zaedno s koda!"
	return 0
    }
    set validen {0 1 2 3 4 5 6 7 8 9}
    set uspeh 0
    for {set hm 0} {$hm != 9} {incr hm} {
	foreach fiz $validen {
	    if {[string range $nomer $hm $hm] == $fiz} {
	        set uspeh [expr $uspeh + 1]
	    }
	}
    }
    if {$uspeh != 9} {
	putserv "PRIVMSG $nick :nevaliden simvol v nomera!"
	return 0
    }
    putserv "PRIVMSG $nick :OK, molia izka4aite!"
    exec sms2mtel "$nomer" "$zag" "$text" "$ot"
    putserv "PRIVMSG $nick :saobshtenieto e izprateno."
    set sim [open "sms.dat" w]
    set kolko [expr $kolko - 1]
    puts $sim "$kolko $ddata $dmesec"
    close $sim
    if {$logvam} {
	set logfail [open "sms.log" a]
	set vreme [time]
	set boza [date]
	puts $logfail "\[$boza\]\[$vreme\] $nick!$uhost izprati SMS"
	close $logfail
    }
}
proc ostavat {nick uhost hand klamer} {
    global kolko
    set blqf [date]
    set izprateni [expr 15 - $kolko]
    putserv "PRIVMSG $nick :za dnes $blqf sa izprateni $izprateni SMS-a, ostavat $kolko"
}
proc smshelp {nick uhost hand duma} {
    putserv "NOTICE $nick :Komandite se vavejdat na PRIVATE"
    putserv "NOTICE $nick :!sms <nomer> <zaglavie> <text na sms-a> <ot kogo e> - izprashta sms."
    putserv "NOTICE $nick :!leftsms -pozkazva kolko SMS-a sa izprateni i kolko ostavat za denia."
}