PyS60 ile SMS Yedekleme

Eğer smslerinizi silmek istemiyorsanız ve gelen kutusu yüzlerce sms ile dolduysa ve telefonunuzun sms yedekleme özelliği yoksa Python sizin yardımınıza hemen yetişir (Tabi işletim sisteminiz Symbian olması lazım!).
Hemen inbox kütüphanesini kullanarak 1 KB’den daha az bir betik yazarak tüm smslerinizi text dosyası olarak yedekleyip gönül rahatlığıyla silebilirsiniz. Hemen kodlara geçelim:
from time import ctime
from inbox import Inbox
from os import listdir,mkdir
kutum = Inbox()
id = kutum.sms_messages()
yol = "e:\\mesajlar\\"
if not 'mesajlar' in listdir('e:\\'):
mkdir(yol)
sayi = 10 #yedeklenmesini istediÄŸiniz sms adedi
for i in range(0,sayi):
msj = kutum.address(id[i])+'\n'+ctime(kutum.time(id[0]))+'\n'+kutum.content(id[i])
h,ay,gun,saat,yil = ctime(kutum.time(id[i])).split(" ")
sa,dk,sn=saat.split(':')
d = gun+ay+yil+'-'+sa+'.'+dk+'.'+sn+'-'+kutum.address(id[i])+".txt"
dosya = open(yol+d,'w')
dosya.write(msj.encode('utf-8'))
dosya.close()
print str(sayi)+" adet mesaj '"+yol+"' dizinine kaydedildi."
Kodları kısaca açıklayalım.
Önce inbox modülünü import ediyoruz. Ardından gelen kutusuna baÄŸlanıyoruz. Her smsnin kendine özgü baÅŸka smsde ıolmayan bir id numarası vardır. “id” isimli deÄŸiÅŸkene bu id numaralarını atıyoruz (kutum.sms_messages()) Sms okumayı bu id numaralarına göre yapacağız. Hafıza kartında mesajlar isminde bir dizin yoksa oluÅŸturuyoruz. Sonra kaç adet sms yedeklemek istiyorsak “sayi” deÄŸiÅŸkenine o sayıyı yazıyoruz. “msj” isimli deÄŸiÅŸkene mesajın gönderenini, gönderme zamanını ve mesaj içeriÄŸini atıyoruz. Mesajın gönderme tarihinin formatını ayarlıyoruz ve gönderme zamanı+gönderen+’.txt’ isimli bir dosya oluÅŸturup mesajlar dizinine yazdırıyoruz. Yazarken utf-8 ÅŸeklinde kodlanmış olarak yazarsak karakter problemi yaÅŸamayız. Kolay gelsin…



