<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>ftoptas blog &#187; pys60</title>
	<atom:link href="http://ftoptas.com/category/python/pys60-python/feed/" rel="self" type="application/rss+xml" />
	<link>http://ftoptas.com</link>
	<description>[beta]</description>
	<lastBuildDate>Mon, 30 Jan 2012 20:19:55 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>PyS60 ile SMS Yedekleme</title>
		<link>http://ftoptas.com/pys60-ile-sms-yedekleme/</link>
		<comments>http://ftoptas.com/pys60-ile-sms-yedekleme/#comments</comments>
		<pubDate>Fri, 11 Sep 2009 04:18:41 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[pys60]]></category>
		<category><![CDATA[inbox]]></category>
		<category><![CDATA[pys60 dersleri]]></category>
		<category><![CDATA[sms yedekleme]]></category>

		<guid isPermaLink="false">http://ftoptas.com/?p=297</guid>
		<description><![CDATA[Eğer smslerinizi silmek istemiyorsanız ve]]></description>
			<content:encoded><![CDATA[<p><img src="http://ftoptas.com/wp-content/uploads/2009/09/pysms.jpg" alt="pysms" title="pysms" width="400" height="200" class="aligncenter size-full wp-image-298" /><br />
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!).</p>
<p>Hemen inbox kütüphanesini kullanarak 1 KB&#8217;den daha az bir betik yazarak tüm smslerinizi text dosyası olarak yedekleyip gönül rahatlığıyla silebilirsiniz. Hemen kodlara geçelim:</p>
<pre name="code" class="python">
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."
</pre>
<p><span id="more-297"></span><br />
Kodları kısaca açıklayalım.</p>
<p>Önce <span style="color: #0000ff;">inbox </span>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. <span style="color: #0000ff;">&#8220;id&#8221; </span>isimli değişkene bu id numaralarını atıyoruz (<span style="color: #0000ff;">kutum.sms_messages()</span>) 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 <span style="color: #0000ff;">&#8220;</span><span style="color: #0000ff;">sayi&#8221; </span>değişkenine o sayıyı yazıyoruz. <span style="color: #0000ff;">&#8220;msj&#8221;</span> 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 <span style="color: #0000ff;">gönderme zamanı+gönderen+&#8217;.txt&#8217; </span>isimli bir dosya oluşturup mesajlar dizinine yazdırıyoruz. Yazarken <span style="color: #0000ff;">utf-8 </span>şeklinde kodlanmış olarak yazarsak karakter problemi yaşamayız. Kolay gelsin&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://ftoptas.com/pys60-ile-sms-yedekleme/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PyS60 ile Telefon Rehberi Yedekleme</title>
		<link>http://ftoptas.com/pys60-ile-telefon-rehberi-yedekleme/</link>
		<comments>http://ftoptas.com/pys60-ile-telefon-rehberi-yedekleme/#comments</comments>
		<pubDate>Tue, 08 Sep 2009 14:27:25 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[pys60]]></category>
		<category><![CDATA[contacts]]></category>
		<category><![CDATA[pys60 dersleri]]></category>
		<category><![CDATA[rehber yedekleme]]></category>

		<guid isPermaLink="false">http://ftoptas.com/?p=290</guid>
		<description><![CDATA[Bugün karşılaştığım bir olaydan sonra]]></description>
			<content:encoded><![CDATA[<p>Bugün karşılaştığım bir olaydan sonra Python&#8217;u daha çok sevmeye başladım. Nokia 6600 rehberini yedeklemeye çalıştık birkaç rehber programı kullandık vCard formatında çıkardı ama isimlerin yaklaşık olarak yarısı görünmedi yani tam olarak alamadık. Derken iş başa düştü ve PyS60 ile birkaç satırda hallettik ve bunu sizinle burada paylaşıyorum.</p>
<pre name="code" class="python">import contacts
rehber=contacts.open()
liste=''
s=len(rehber)
for id in rehber:
    try:
        isim=rehber[id][0].value
    except:
        isim='isim yok'
    try:
        no=rehber[id][1].value
    except:
        no='numara yok'
    liste = liste+isim+'-'+no+'\n'
dosya_adi = 'e:\\rehber-yedek.txt'
dosya = open(dosya_adi,'w')
dosya.write(liste.encode('utf-8'))
dosya.close()
print s,' kisi "'+dosya_adi+'" adresine yedeklendi.'</pre>
<p><span id="more-290"></span><br />
utf-8 karakter kodlamasıyla okuyup yazdığımız için herhangi bir karakter problemi de oluşmuyor.</p>
<p>Burada önce contacts modülünü import ediyoruz.</p>
<p><span style="color: #000080;">contacts.open()</span> fonksiyonuyla rehberi açıyoruz.</p>
<p><span style="color: #000080;">len(rehber)</span> rehberdeki kişi sayısını veriyor.</p>
<p>for döngüsüyle rehberdeki her elemanı sırasıyla çekiyoruz.</p>
<p><span style="color: #000080;">rehber[id][0].value</span> değeri bize rehberdeki ismi verir</p>
<p><span style="color: #000080;">rehber[id][1].value</span> değeri bize ilk numarayı veriri</p>
<p><span style="color: #000080;">rehber[id][2].value</span> değeri bize ikinci numarayı verir. Değiştirdiğimiz sayı her bir alanı ifade etmektedir.</p>
<p><span style="color: #000080;">try</span> kullanmamızın nedeni ise bazen isim olup numara olmuyor veya tam tersi oluyor böyle bir durumda hata verip döngüyü bitirmemesidir.</p>
<p>Okuduğumuz isim ve numaraları aralarına bir <span style="color: #008000;">‘-‘</span> karakteri koyarak ve <span style="color: #008000;">‘\n’</span> ile bir alt satıra geçmesini sağlayarak liste stringine ekliyoruz.</p>
<p>for döngüsü bittikten sonra bir dosya açıp <span style="color: #008000;">‘utf-8’</span> karakter kodlamasıyla kaydediyoruz.</p>
<p>Hepsi bu kadar…</p>
]]></content:encoded>
			<wfw:commentRss>http://ftoptas.com/pys60-ile-telefon-rehberi-yedekleme/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PyS60 (Python for Symbian) inbox modülü</title>
		<link>http://ftoptas.com/pys60-python-for-symbian-inbox-modulu/</link>
		<comments>http://ftoptas.com/pys60-python-for-symbian-inbox-modulu/#comments</comments>
		<pubDate>Wed, 08 Oct 2008 08:45:35 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[pys60]]></category>
		<category><![CDATA[inbox]]></category>
		<category><![CDATA[mobil]]></category>
		<category><![CDATA[modül]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[symbian]]></category>

		<guid isPermaLink="false">http://ftoptas.wordpress.com/?p=49</guid>
		<description><![CDATA[Symbian telefonunuzda Python scriptlerini çalıştırabilirsiniz.]]></description>
			<content:encoded><![CDATA[<p>Symbian telefonunuzda Python scriptlerini çalıştırabilirsiniz. PythonforS60 uygulamasını <a title="buradab" href="http://sourceforge.net/projects/pys60" target="_blank">buradan</a> indirebilirsiniz.Inbox modülü sayesinde gelen kutunuzdaki mesajların adres, içerik, okunmuş olup olmaması ve tarih bilgilerini okuyabilir; okunmamış yapabilir ve silebilirsiniz.</p>
<pre name="code" class="python">#e:systemappspythoninbox_deneme.py
import inbox  #inbox modülünü tanıtıyoruz
kutum = inbox.Inbox() #kutum isminde bir inbox nesnesi tanımlıyoruz
mesaj_no = kutum.sms_messages()#mesaj_no değişkenine tüm mesajların idlerini atıyoruz.

print kutum.address(mesaj_no[0]) #gelen kutusundakii 0 numaralı mesajın adresini ekrana yazdırıyoruz.</pre>
<p><span id="more-49"></span></p>
<pre name="code" class="python">print kutum.content(mesaj_no[0]) #0 nolu mesajın içeriğini ekrana yazdırıyoruz.
print kutum.time(mesaj_no[0]) #0 nolu mesajın tarihini ekrana yazdırıyoruz.
kutum.set_unread(mesaj_no[0]) #0 nolu mesajı okunmamış yapıyoruz.
print kutum.unread(mesaj_no[0]) #eğer mesaj okunduysa 0 okunmadıysa 1 sonucunu verir.
kutum.delete(mesaj_no[0]) #gelen kutusundaki ilk mesajı siliyoruz.</pre>
<p>Yukarıdaki dosyayı <a title="buradan" href="http://www.box.net/shared/fof052u5s5" target="_blank">buradan</a> indirebilirsiniz.</p>
<p>Ayrıca bind komutunu kullanarak mesaj gelir gelmez olacak olan olaylarıda yazabiliriz. Aşağıda yapacağımız örnekte mesaj geldiğinde mesajı hafıza kartında belirlediğimiz bir dizin içerisine [adres]+[tarih]+[.txt] olarak kaydeden bir kod yazacağız.</p>
<pre name="code" name="code" class="python>
#e:systemappspythongeleni_kaydet.py dosyamızın kaydedildiği yer

    import inbox, e32, appuifw  #gerekli kütüphaneleri tanıtılıyor
    def mesaj_geldi(msj_id): #mesaj_geldi ismindi bir fonksiyon yazılıyor
    kutum = inbox.Inbox()   #inbox nesnesi
    icerik = kutum.content(msj_id)  #gelen mesajın içeriği okunur
    adres = kutum.address(msj_id)   #mesajın adresi
    zaman = kutum.time(msj_id)   #mesajın zamanı
    dizin = u'e:/mesajlarim/' #mesajları kaydedeceğimiz dizin.Eğer bu dizin mevcut değilse hemen oluşturalım.
    dosya = open(dizin+adres+'-'+zaman+'.txt','w') # w parametresiyle yeni dosya olşturulur.
    dosya.write(icerik)   #mesaj içeriği dosyaya yazılır
    print 'Mesaj kaydedildi'
    dosya.close() # dosya kapatılır.
    kutum = inbox.Inbox() #yeni bir inbox nesnesi
    kutum.bind(mesaj_geldi) #oluşturduğumuz fonksiyon kutum nesnesine bağlanır böylece her yeni mesajda bu fonksiyon çalışır.
    print 'Uygulama Baslatildi.'
    app_lock = e32.Ao_lock()   #program açıldıktan sonra hemen kapanmaması için uygulamayı bekletiyoruz.
    appuifw.app.exit_key_handler = app_lock.signal
    app_lock.wait()
</pre>
<p style="margin-bottom:0;">Yukarıdaki dosyayı <a title="buradan" href="http://www.box.net/shared/bmnqi0aik3" target="_blank">buradan</a> indirebilirsiniz.</p>
]]></content:encoded>
			<wfw:commentRss>http://ftoptas.com/pys60-python-for-symbian-inbox-modulu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

