Python ile Namaz Vakitleri Programı

Namaz Vakitleri, ilk PyQt uygulamam. Aslında bunu da Tkinter ile yapacaktım ama artık bir yerden PyQt’ye başlamak gerektiğini düşündüm. Program, namaz vakitlerini diyanet’in sitesinden çekip bildiriyor. Dolayısıyla internet olmadan namaz vakitlerini öğrenmek mümkün olmuyor. Belki ilerde çevrimdışı(offline) olarak da vakit öğrenme özelliği eklenebilir.

Uygulamayı Ubuntu 9.10 ve Windows Vista üzerinde denedim. Ekran görüntülerini de aşağıda bulabilirsiniz. Programı çalıştırmak için bilgisayarınızda PyQt4 modülü yüklü olmalıdır.

Namaz Vakitleri Programını indir

Ekran Görüntüleri

Namaz Vakitleri - Vista
Namaz Vakitleri - Ubuntu

Yararlı Bağlantılar

http://ferruh.mavituna.com/namaz-vakitleri-v1-0-namaz-saatleri-ve-namaz-vakitleri-bildirme-programi-oku/

Allah Kabul Etsin…

Python ile Gmail Üzerinden E-Posta Göndermek

Geçenlerde, e-posta adresime posta göndermek için bir python betiğine ihtiyacım olmuştu. İnternette biraz araştırınca güzel bir kod buldum. Kodda, Gmail adresimize bağlanarak istediğimiz adrese e-posta atabiliyoruz. Bir zaman o kodu kullandım ama hem içindekileri biraz daha anlamak hem de kendim yazarak deneyim kazanmak için internetteki belgeleri okumaya başladım. Kafamdaki sorulara bir ölçüde yanıt bularak yeni bir e-posta betiği (script) yazdım. Kod, yukarıda örneğini verdiğim koda benzer.

posta_olustur fonksiyonuyla e-postamız oluşturulmaya başlanıyor. Önce bazı başlık bilgileri (header) ekleniyor. Ardından attach fonksiyonuyla postamıza mesajımız (yazı kısmı) ekleniyor. For döngüsü ile de dosyalarımız teker teker eklenerek posta oluşturma işlemi sona erer.

posta_gonder fonksiyonuyla da gmail sunucusuna giriş yapılıp (login) e-postamız belirttiğimiz adrese gönderilir.

En son olarak da kullanıcıdan bilgiler istenip, gerekli fonksiyonlar çalıştırılır.

Uygulamanın Tam Kodu:

#Batuhan Bayrakçı - Python ile Gmail Üzerinden E-posta Göndermek
#!/usr/bin/python2.6
#-*-coding:utf-8-*-

import smtplib, os
#MIME tipinde posta oluşturmak için gerekli modüller
from email.MIMEMultipart import MIMEMultipart
from email.MIMEBase import MIMEBase
from email.MIMEText import MIMEText
from email import encoders

posta = MIMEMultipart()
dosyalar=[""]

def posta_olustur():

	posta['Subject']=konu
	posta['From']=gmail_kullanici
	posta['To']=kime

	posta.attach(MIMEText(mesaj)) #mesaj (yazı) kısmımız postamıza ekleniyor
	for dosya in dosyalar: #dosyalar eklenmeye başlar
		if (dosya!=""):
			try:
				eklenti = MIMEBase("application", "octet-stream")
				eklenti.set_payload(open(dosya, "rb").read())
				encoders.encode_base64(eklenti)
				eklenti.add_header("Content-Disposition", "attachment", filename=os.path.basename(dosya))
				posta.attach(eklenti)
			except:
				print "Dosya eklemede hata, dosya adını yanlış girmiş olabilirsiniz..."
		else: continue

def posta_gonder():
	smtpserver = smtplib.SMTP("smtp.gmail.com",587)
	smtpserver.ehlo()
	smtpserver.starttls()
	smtpserver.ehlo
	smtpserver.login(gmail_kullanici, gmail_sifre)
	print "Baglantı sağlandı"
	smtpserver.sendmail(gmail_kullanici, kime, posta.as_string())
	print "Posta Gönderildi"
	smtpserver.close()

kime = raw_input("Kime Göndereceksiniz?: ")
gmail_kullanici = raw_input("Gmail Hesabınızın Kullanıcı Adı: ")
gmail_sifre = raw_input("Gmail Hesabınızın Şifresi: ")
konu = raw_input ("Posta Konusu: ")
mesaj = raw_input ("Mesajınız: ")

#Dosyaların eklemesi yapılmaya başlanır
while True:
	cevap = raw_input("Dosya eklemek ister misiniz? (e/h): ")
	if(cevap=='e' or cevap=='E'):
		dosya_gonder = raw_input("Dosya göndermek istiyorsanız dosyanızın tam konumunu veya " + os.getcwd() + " dizinindeyse sadece adını yazın: ")
		if (dosya_gonder!=""):
			dosyalar.append(dosya_gonder)

		else:
			break
	elif(cevap=='h' or cevap=='H'):
		break
	else:
		print "Geçersiz giriş"
		continue
#Dosya eklenme işi biter

posta_olustur()
posta_gonder()

Yararlı Kaynaklar:

http://www.tutorialspoint.com/python/python_sending_email.htm
http://docs.python.org/library/email
http://docs.python.org/library/smtplib.html
http://www.devshed.com/c/a/Python/Python-Email-Libraries-SMTP-and-Email-Parsing/

İyi Çalışmalar…

Python ile Windows için Ekran Görüntüsü Alma Aracı

Daha önce Python‘da ekran görüntüsü almayla ilgili kodu PerfectGate‘de görmüştüm. Ben de aynı işlemi Tkinter kullanarak yaptım. Ek olarak bir geciktirme çubuğu var. Bununla, görüntü almayı, belirlediğiniz saniye kadar geciktirebilirsiniz. Kodu çalıştırabilmek için Python Imaging Library (PIL) yüklü olmalıdır.

# Batuhan Bayrakci - Ekran Goruntusu Alma Aracı
# -*- coding: cp1254 -*-

import ImageGrab
import time
from Tkinter import *
from tkMessageBox import *

def ekran_cek():
    pencere.iconify()
    dosya_adi="Ekran Görüntüsü-%s.jpg" % (time.strftime("%d-%m-%Y %H.%M.%S"))
    time.sleep(kay.get())
    ImageGrab.grab().save(dosya_adi)
    showinfo("Durum","Ekran Görüntüsü Alindi")

pencere=Tk()
pencere.geometry("200x100+400+200")
pencere.resizable(width=FALSE, height=FALSE)
pencere.title("Ekran Kaydedici")

yazi = Label(text = "Geciktirme Süresi (saniye)")
yazi.pack()

kay = Scale(pencere, from_=0, to=8, orient=HORIZONTAL)
kay.pack()

dugme = Button(text="Ekran Görüntüsü Al", command=ekran_cek)
dugme.pack()
mainloop()

İyi Çalışmalar…

C++ ile Karmaşık Sayılarda Dört İşlem

C++‘da “Operator Overloading” konusuna çalışırken karmaşık sayılarda toplama, çıkarma, çarpma ve bölme işlemlerini yapabilecek basit bir sınıf yazmıştım.

Devamını oku… »

C++ ile Üç Taş (Tic-Tac-Toe) Oyunu

İnternet üzerinde çeşitli dillerle yazılmış birçok üç taş (tic tac toe) oyunu kodu var. Ben de C++ ile bir şeyler karaladım. Aslında diğer kodlara göre biraz daha karışık ve uzun gelebilir ama burada amacım “en iyisini” yazmaktan ziyade antrenman yapmak. Kodu, Windows üzerinde denedim.

Devamını oku… »