# -*- coding: utf-8 -*-
#~ Made by C-X
import urllib, urllib2
from Tkinter import *
from BeautifulSoup import *
###definice funkci
def poslat(zprava,odesilatel,prijemce):
adresa = "http://poslatsms.hyperinzerce.cz/sms-send/send.php"
parametry = {
"data_msg" : zprava,
"odesilatel" : odesilatel,
"data_num" : prijemce,}
params = urllib.urlencode(parametry) # Prekoduje parametry do tvaru vhodneho pro odeslani
req = urllib2.Request(adresa, params) # Vytvori request, coz je smichanina adresy a parametru, pripadne i hlavicek
spojeni = urllib2.urlopen(req) # Otevre
spojeni.read()
spojeni.close()
def odeslat():
poslat(zprava=zprava_T.get(1.0, END),odesilatel=odesilatel_T.get(),prijemce=prijemce_T.get())
def nabidka():
###definice vnitrnich funkci
def ok():
pozice = map(int, nabidka.curselection())[0]
prijemce_T.insert(END,kontakty_cisla[pozice])
uloz()
okno_nabidka.withdraw()
def pridat():
uloz()
def append():
kontakty.append(jmeno_T.get())
kontakty_cisla.append(cislo_T.get())
uloz()
okno_append.withdraw()
okno_nabidka.withdraw()
okno_append=Toplevel()
ram_jmeno = LabelFrame(okno_append,text="jmeno:")
ram_jmeno.pack()
jmeno_T = Entry(ram_jmeno)#lista na jmeno
jmeno_T.pack()
ram_cislo = LabelFrame(okno_append,text="cislo:")
ram_cislo.pack()
cislo_T = Entry(ram_cislo)#lista na cislo
cislo_T.pack()
tl_ok = Button(okno_append,text="OK",command=append)#tlacitko OK
tl_ok.pack()
okno_append.mainloop()
def smazat():
pozice = map(int, nabidka.curselection())[0]
del kontakty[pozice]
del kontakty_cisla[pozice]
uloz()
okno_nabidka.withdraw()
###def __init__(self):
okno_nabidka=Toplevel()
nabidka = Listbox(okno_nabidka)
nabidka.pack()
tl_ok = Button(okno_nabidka,text="OK",command=ok)#tlacitko OK
tl_ok.pack()
tl_pridat = Button(okno_nabidka,text="pridat",command=pridat)#tlacitko pridat
tl_pridat.pack()
tl_smazat = Button(okno_nabidka,text="smazat",command=smazat)#tlacitko smazat
tl_smazat.pack()
for item in kontakty:
nabidka.insert(END, item)
okno_nabidka.mainloop()
def uloz():###ukladani do html tagu..
xml=["<pocet_kontaktu>%d</pocet_kontaktu>" % len(kontakty)]
for pocet in range(len(kontakty)):
xml.append("<jmeno%d>%s</jmeno%d>" % (pocet, kontakty[pocet], pocet))
xml.append("<cislo%d>%s</cislo%d>" % (pocet, kontakty_cisla[pocet], pocet))
file =
open("smssender-data",
"w") file.
write("\n".
join(xml
))
###konec definici funkci
###def __init__(self):
kontakty = []
kontakty_cisla = []
try:
f = open("smssender-data","r")###otevrem soubor
stary_data = f.read()###vycteme soubor
f.close()
soup = BeautifulSoup(stary_data)###nacteni do soupu
for pocet in range(int(soup("pocet_kontaktu")[0].string)):### nacteme pocet slov a hodme ho do smicky
jmeno = soup("jmeno%s" % (pocet))[0].string
cislo=soup("cislo%s" % (pocet))[0].string
kontakty.append(jmeno)
kontakty_cisla.append(cislo)
except:
print "chyba v nacitani souboru! zkontrolujte zda skutecne existuje soubor ´smssender-data´ a ze program ma pravo pro jeho cteni..."
##konec init :)
hlavni = Tk()
hlavni.title("Poslete SmS zdarma v cesku")
###Horni lista na zadavani prijemce
### Ramecek
ram_prijemce = LabelFrame(hlavni, text="prijemce:")
ram_prijemce.pack()
###Ramecek - konec
###lista prijemce
prijemce_T = Entry(ram_prijemce, width=36)
prijemce_T.grid(row=0,column=0)
###tlacitko nabidky jmen..
tl_nabidka = Button(ram_prijemce, text="<>",command=nabidka)
tl_nabidka.grid(row=0,column=1)
###konec prijemce
### Ramecek
ram_odesilatel= LabelFrame(hlavni, text="odesilatel:")
ram_odesilatel.pack()
###Ramecek - konec
###lista odesilatele
odesilatel_T = Entry(ram_odesilatel, width=40)
odesilatel_T.grid(row=0,column=0)
###konec odesilatele
###Ramecek zpravy
ram_zprava = LabelFrame(hlavni, text="zprava:")
ram_zprava.pack()
###Konec jednoho ramecku :( mnely jsme te radi :(
###Zacatek nove epochy, antika skoncila zacina vek zpravy
scrollbar = Scrollbar(ram_zprava)
scrollbar.pack(side=RIGHT, fill=Y)
zprava_T = Text(ram_zprava,height=3,yscrollcommand=scrollbar.set,width=37)###zprava
zprava_T.pack()
scrollbar.config(command=zprava_T.yview)
tl_odeslat=Button(hlavni,text="odeslat SMS",command=odeslat)
tl_odeslat.pack()
hlavni.mainloop()