Python Mechanize pytgtk, tk, qt {www.yazki.com}

Başlatan hitokiri, 22 Nisan 2010 - 03:47:00

« önceki - sonraki »

0 Üyeler ve 2 Ziyaretçi konuyu incelemekte.

hitokiri

Evet yine ben yine betik ama bu sefer ben yazmadım :)
Yani kısmen , :)
python mechanize ile gmail v.b posta hesabı adreslerine yazılan iletiyi gönderdiğini öğrenince djangotürkiye isimli arkadaşın :)
Bende pygtk ve tk olarak arayüz hazırladım fikir sahibi ve mechanize diyoloğunu oluşturan djangotürkiye' de :)
qt kütüphanesi kullanarak penceresini oluşturdu bugünkü kod paylaşımı şölenide bu oldu tabii ki ;
(Tk)
#!/usr/bin/env python
# -*- coding: utf-8 -*-
#musluyuksektepe@gmail.com
#www.djangoturkiye.com
#www.yazki.com

from __future__ import division
from Tkinter import *
import os, time
import cookielib
def hakkinda():
os.system("echo 'Bu betik tamamen işe yaraması amacıyla üretilmiştir\nÇalışabilirliği konusunda hiç bir garantisi yoktur ,\nLütfen hataları bildirin!!\nYazan: musluyuksektepe@gmail.com\nGeliştiren:\n Hitokiri \n www.yazki.com' > /tmp/hakkında")
os.system("zenity --text-info --filename='/tmp/hakkında' --title='Hakkında' --width=280 --height=220")
def sudo():
    kullaniciadiraw =hesab.get()
    sifreraw = kul.get()
    subjectraw = dom.get()
    toraw = ad.get()
    bodyraw = paa.get()
    try:
        import mechanize
    except ImportError:
        isletimsistemi = os.name
        os.system("zenity --error --text=' `mechanize` Modülü bulunamadı!!'")
        if isletimsistemi == 'posix':
           os.system("gnome-terminal --command='sudo apt-get install python-mechanize' --title='Modül yükleniyor..'")
        else:
           os.system("zenity --info --text='Modülü indirmeniz gerekli\nhttp://wwwsearch.sourceforge.net/mechanize/src/mechanize-0.1.11.zip'")
   sys.exit (1)
    else:
br = mechanize.Browser()
cj = cookielib.LWPCookieJar()
br.set_cookiejar(cj)
        br.set_handle_equiv(True)
        br.set_handle_gzip(True)
        br.set_handle_redirect(True)
        br.set_handle_referer(True)
        br.set_handle_robots(False)
        br.set_handle_refresh(mechanize._http.HTTPRefreshProcessor(), max_time=1)
        br.open("https://mail.google.com/mail/h/1a8m94mtpabm4/?zy=a&f=1")
        br.select_form(nr=0) 
        br["Email"]=kullaniciadiraw
        br["Passwd"]=sifreraw
        br.submit()
        print "Bağlantı sağlandı"
        br.open("https://mail.google.com/mail/h/5sq3vpo5rgzt/?v=b&pv=tl&cs=b")
        br.select_form(nr=1)
        br["to"]= toraw
        br["subject"]= subjectraw
        br["body"]= bodyraw
        br.submit()
        print "Mailiniz gönderildi!."
        print "Muslu Yüksektepe 2010! www.yazki.com"
        br.open("https://mail.google.com/mail/h/5sq3vpo5rgzt/?v=b&pv=tl&cs=b")
        br.select_form(nr=1)
        br["to"]= toraw
        br["subject"]= subjectraw
        br["body"]= bodyraw
        br.submit
        exit(Tk)
pencere = Tk()
pencere.geometry("250x400+15+100")
menu = Menu(pencere)
pencere.config(menu=menu)
dosya = Menu(menu, tearoff=0)
menu.add_cascade(label="Yardım",menu=dosya)
dosya.add_command(label="Hakkında", command= hakkinda)
pencere.title("..:Mail Gönder:..")
kullaniciadi = Label(text="\n Açıklama ")
domainadi = Label(text="\nKonu")
mysql = Label(text="\nKime ? ")
mysqlpar = Label(text="\ngmail parolanız:")
bilgi= Label(text="\ngmail hesabınız")
bilgi.pack()
hesab= Entry()
hesab.pack()
kul = Entry()
kul.delete(0, END)
dom = Entry()
ad = Entry()
paa = Entry()
mysqlpar.pack()
kul.pack()
domainadi.pack()
dom.pack()
mysql.pack()
ad.pack()
kullaniciadi.pack()
paa.pack()
dugme = Button(text="Tamam", command = sudo)
dugme.pack(side=LEFT)
dugme2 = Button(text="İptal", command = pencere.quit)
dugme2.pack(side=LEFT)
pencere.resizable(width=FALSE,height=FALSE)
mainloop()


Pygtk()
#!/usr/bin/env python
# -*- coding: utf-8 -*-
#########################################
#Bu program Muslu YÜKSEKTEPE tarafından hazırlanmıştır.
#Gmail hesabınıza bağlanıp mail göndermenizi sağlar.
#Mechanize modülü kullanılmıştır.
#Modülün varlığı kontrol edilmekte ve kullanmış olduğunuz işletim sistemine göre
#size link verilmektedir.
#2010 www.yazki.com
# musluyuksektepe@gmail.com
#########################################
import pygtk
pygtk.require20()
import gtk
import cookielib, sys, os
isletimsistemi = os.name

class kontrol():
    def __init__(self, hito):
        self.hito = hito
    def baglan(self, hito):
   
        try:
            import mechanize
        except ImportError:
            print "Moduller bulunamadi"
            if isletimsistemi == 'posix':
os.system("zenity --error --text=' `mechanize` Modülü bulunamadı!!'")
          os.system("gnome-terminal --command='sudo apt-get install python-mechanize' --title='Modül yükleniyor..'")
            else:
                print "http://wwwsearch.sourceforge.net/mechanize/src/mechanize-0.1.11.zip\nİndirdiğiniz klasoru zipten cikartin\nkomut satırında klasore gidin\n setup.py install\n yazarak kurulumu yapin"
            sys.exit (1)
        else:
            br = mechanize.Browser()
            cj = cookielib.LWPCookieJar()
            br.set_cookiejar(cj)
            br.set_handle_equiv(True)
            br.set_handle_gzip(True)
            br.set_handle_redirect(True)
            br.set_handle_referer(True)
            br.set_handle_robots(False)
            br.set_handle_refresh(mechanize._http.HTTPRefreshProcessor(), max_time=1)
           
            kullaniciadiraw= self.hito.giris.get_text()
            sifreraw= self.hito.giris1.get_text()
            toraw= self.hito.giris4.get_text()
            subjectraw= self.hito.giris2.get_text()
            bodyraw= self.hito.giris3.get_text()

            br.set_handle_refresh(mechanize._http.HTTPRefreshProcessor(), max_time=1)
            br.open("https://mail.google.com/mail/h/1a8m94mtpabm4/?zy=a&f=1")
            br.select_form(nr=0) 
            br["Email"]=kullaniciadiraw
            br["Passwd"]=sifreraw
            br.submit()
            os.system('zenity --info  --text="Bağlantı sağlandı"')
            br.open("https://mail.google.com/mail/h/5sq3vpo5rgzt/?v=b&pv=tl&cs=b")
            br.select_form(nr=1)
            br["to"]= toraw
            br["subject"]= subjectraw
            br["body"]= bodyraw
            br.submit()
            os.system('zenity --info --text="Mailiniz gönderildi!."')

class hitokiri(object):
    def __init__(self):
        self.kontrol = kontrol(self)
        self.pencere = gtk.Window(gtk.WINDOW_TOPLEVEL)
        self.pencere.connect("delete_event", gtk.main_quit)
        self.pencere.set_position(gtk.WIN_POS_CENTER)
        self.pencere.set_title("Gmail Mechanize")
        self.pencere.set_border_width(10)
        self.pencere.set_icon_from_file("/usr/share/pixmaps/python2.6.xpm")
        self.bilgi = gtk.Label("Gmail Kullanıcı adınız")
        self.bilgi1 = gtk.Label("\nGmail Şifreniz")
        self.giris = gtk.Entry()
        self.giris1 = gtk.Entry()
        self.giris1.set_visibility(False)
        self.bilgi2 = gtk.Label("Konu?")
        self.bilgi3 = gtk.Label("\nAçıklama :")
        self.giris2 = gtk.Entry()
        self.giris3 = gtk.Entry()
        self.giris3.set_max_length(250)
        self.gonder = gtk.Button(" Gönder ")
        self.gonder.connect("clicked" , self.kontrol.baglan)
        self.iptal = gtk.Button("   İptal  ")
        self.iptal.connect("clicked", exit)
        self.bilgi4 = gtk.Label("Kime ?")
        self.giris4 = gtk.Entry()
        self.araclar = gtk.Fixed()
        self.pencere.add(self.araclar)

        self.araclar.put(self.bilgi, 0, 1)
        self.araclar.put(self.giris, 24, 20)
        self.araclar.put(self.bilgi1, 0, 50)
        self.araclar.put(self.giris1,24, 85)
        self.araclar.put(self.bilgi2,0, 120)
        self.araclar.put(self.giris2,24, 140)
        self.araclar.put(self.bilgi3,0, 165)
        self.araclar.put(self.giris3,24, 200)
        self.araclar.put(self.bilgi4,0, 240)
        self.araclar.put(self.giris4,24, 260)
        self.araclar.put(self.gonder,5, 310)
        self.araclar.put(self.iptal,150, 310)
       
self.pencere.show_all()

    def main(self):
        gtk.main()
hito = hitokiri()
hito.main()

Qt
#!/usr/bin/env python
# -*- coding: utf-8 -*-

#########################################
#Bu program Muslu YÜKSEKTEPE tarafından hazırlanmıştır.
#Gmail hesabınıza bağlanıp mail göndermenizi sağlar.
#Mechanize modülü kullanılmıştır.
#Modülün varlığı kontrol edilmekte ve kullanmış olduğunuz işletim sistemine göre
#size link verilmektedir.
#2010 www.yazki.com
# musluyuksektepe@gmail.com
#########################################
from PyQt4 import QtCore, QtGui
import sys
import cookielib, sys, os
isletimsistemi = os.name

class kontrol():
    def __init__(self, ui):
        self.ui = ui
    def baglan(self):

        try:
# mechanize kütüphanesi varmı diye kontrol ediyoruz
            import mechanize
        except ImportError:
# kütüphane yoksa hata ver
            print "Moduller bulunamadi"
# işletim sistemini kontrol et
            if isletimsistemi == 'posix':
# linux ise
                print "sudo apt-get install python-mechanize\n komutu ile bagimliliklari kurun."
            else:
# başka bir işletim sistemi ise
                print "http://wwwsearch.sourceforge.net/mechanize/src/mechanize-0.1.11.zip"
                print "İndirdiğiniz klasoru zipten cikartin"
                print "komut satırında klasore gidin"
                print "setup.py install\n yazarak kurulumu yapin"
# programi kapat 
            sys.exit (1)
        else:
# Tarayıcı oluştur
            br = mechanize.Browser()
# Cookie Jar
            cj = cookielib.LWPCookieJar()
            br.set_cookiejar(cj)
# Tarayıcı ayarları
            br.set_handle_equiv(True)
            br.set_handle_gzip(True)
            br.set_handle_redirect(True)
            br.set_handle_referer(True)
            br.set_handle_robots(False)
# yenile ama askıya alma
            br.set_handle_refresh(mechanize._http.HTTPRefreshProcessor(), max_time=1)
# Kullanıcı ve gidecek mail bilgileri
            kullaniciadiraw= ui.lineEdit.text()
            sifreraw= ui.lineEdit_2.text()
            toraw= ui.lineEdit_3.text()
            subjectraw= ui.lineEdit_4.text()
            bodyraw= ui.plainTextEdit.toPlainText()

# sayfayı html türünde açtırıyoruz
            br.open("https://mail.google.com/mail/h/1a8m94mtpabm4/?zy=a&f=1") # bu siteyi aç
            br.select_form(nr=0)  # kullanılacak form numarası
# girilen kullanıcı bilgilerini eşitliyoruz
            br["Email"]=kullaniciadiraw
            br["Passwd"]=sifreraw
            br.submit() # gönder
            ui.label_6.setText(u"Bağlandı!")

# mail gönderme sayfasına bağlanıyoruz
            br.open("https://mail.google.com/mail/h/5sq3vpo5rgzt/?v=b&pv=tl&cs=b")
            br.select_form(nr=1)
# gidecek mail bilgilerini eşitliyoruz
            br["to"]= toraw
            br["subject"]= subjectraw
            br["body"]= bodyraw
            br.submit()
# mail gönderildiyse bilgi veriyoruz
            ui.label_6.setText(u"Mailiniz gönderildi!")


class Ui_Dialog(object):
    def setupUi(self, Dialog):
        Dialog.setObjectName("Dialog")
        Dialog.resize(360, 375)
        Dialog.setMinimumSize(QtCore.QSize(360, 375))
        Dialog.setMaximumSize(QtCore.QSize(360, 375))
        self.label = QtGui.QLabel(Dialog)
        self.label.setGeometry(QtCore.QRect(30, 20, 91, 18))
        self.label.setObjectName("label")
        self.label_2 = QtGui.QLabel(Dialog)
        self.label_2.setGeometry(QtCore.QRect(30, 50, 62, 18))
        self.label_2.setObjectName("label_2")
        self.label_3 = QtGui.QLabel(Dialog)
        self.label_3.setGeometry(QtCore.QRect(30, 90, 41, 18))
        self.label_3.setObjectName("label_3")
        self.label_4 = QtGui.QLabel(Dialog)
        self.label_4.setGeometry(QtCore.QRect(30, 120, 41, 18))
        self.label_4.setObjectName("label_4")
        self.label_5 = QtGui.QLabel(Dialog)
        self.label_5.setGeometry(QtCore.QRect(30, 160, 62, 18))
        self.label_5.setObjectName("label_5")
        self.line = QtGui.QFrame(Dialog)
        self.line.setGeometry(QtCore.QRect(30, 70, 321, 21))
        self.line.setFrameShape(QtGui.QFrame.HLine)
        self.line.setFrameShadow(QtGui.QFrame.Sunken)
        self.line.setObjectName("line")
        self.lineEdit = QtGui.QLineEdit(Dialog)
        self.lineEdit.setGeometry(QtCore.QRect(130, 20, 221, 26))
        self.lineEdit.setObjectName("lineEdit")
        self.lineEdit_2 = QtGui.QLineEdit(Dialog)
        self.lineEdit_2.setGeometry(QtCore.QRect(130, 50, 221, 26))
        self.lineEdit_2.setObjectName("lineEdit_2")
        self.lineEdit_3 = QtGui.QLineEdit(Dialog)
        self.lineEdit_3.setGeometry(QtCore.QRect(80, 90, 271, 26))
        self.lineEdit_3.setObjectName("lineEdit_3")
        self.lineEdit_4 = QtGui.QLineEdit(Dialog)
        self.lineEdit_4.setGeometry(QtCore.QRect(80, 120, 271, 26))
        self.lineEdit_4.setObjectName("lineEdit_4")
        self.pushButton = QtGui.QPushButton(Dialog)
        self.pushButton.setGeometry(QtCore.QRect(250, 330, 92, 28))
        self.pushButton.setObjectName("pushButton")
        self.label_6 = QtGui.QLabel(Dialog)
        self.label_6.setGeometry(QtCore.QRect(60, 340, 181, 20))
        self.label_6.setObjectName("label_6")
        self.plainTextEdit = QtGui.QPlainTextEdit(Dialog)
        self.plainTextEdit.setGeometry(QtCore.QRect(80, 160, 271, 161))
        self.plainTextEdit.setObjectName("plainTextEdit")
        self.label_7 = QtGui.QLabel(Dialog)
        self.label_7.setGeometry(QtCore.QRect(0, 340, 62, 18))
        self.label_7.setObjectName("label_7")

        self.retranslateUi(Dialog)
        self.kontrol = kontrol(self)
        QtCore.QObject.connect(self.pushButton,QtCore.SIGNAL("clicked()"),self.kontrol.baglan)
        QtCore.QMetaObject.connectSlotsByName(Dialog)

    def retranslateUi(self, Dialog):
        Dialog.setWindowTitle(QtGui.QApplication.translate("Dialog", "Gmail\'den Mail Gönderme", None, QtGui.QApplication.UnicodeUTF8))
        self.label.setText(QtGui.QApplication.translate("Dialog", "Kullanıcı Adı: ", None, QtGui.QApplication.UnicodeUTF8))
        self.label_2.setText(QtGui.QApplication.translate("Dialog", "Şifre:", None, QtGui.QApplication.UnicodeUTF8))
        self.label_3.setText(QtGui.QApplication.translate("Dialog", "Kime:", None, QtGui.QApplication.UnicodeUTF8))
        self.label_4.setText(QtGui.QApplication.translate("Dialog", "Konu:", None, QtGui.QApplication.UnicodeUTF8))
        self.label_5.setText(QtGui.QApplication.translate("Dialog", "İçerik:", None, QtGui.QApplication.UnicodeUTF8))
        self.pushButton.setText(QtGui.QApplication.translate("Dialog", "Gönder", None, QtGui.QApplication.UnicodeUTF8))
        self.label_7.setText(QtGui.QApplication.translate("Dialog", "Durum:", None, QtGui.QApplication.UnicodeUTF8))


app = QtGui.QApplication(sys.argv)
Dialog = QtGui.QDialog()
ui = Ui_Dialog()
ui.setupUi(Dialog)
Dialog.show()
sys.exit(app.exec_())


Şimdillik apar topra yaptığımız işlerle sonuçlar bu şekilde, sonunda azda olsa pygtk yı öğrenmeye başladım :)
**Bu arada bazı kod içine alınan yerlerde boşluklar düzgün gösterilemiyor naaptıysam düzelmedi :)
*** http://yazki.com/