Advertisement
Guest User

Untitled

a guest
Feb 17th, 2017
132
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 9.90 KB | None | 0 0
  1. from PyQt4 import QtCore, QtGui
  2. import sys, ctypes, mysql.connector
  3.  
  4. user32 = ctypes.windll.user32
  5. SCREEN_WIDTH = user32.GetSystemMetrics(0)/2 - 120
  6. SCREEN_HEIGHT = user32.GetSystemMetrics(1)/2 - 150
  7.  
  8. version = '0.05'
  9.  
  10. database = mysql.connector.connect(user='Admin', password='123321', host='127.0.0.1', database='register')
  11. cursor = database.cursor(buffered=True)
  12.  
  13.  
  14. class Main(QtGui.QWidget):
  15.     def __init__(self):
  16.         super(Main, self).__init__()
  17.         self.setWindowTitle('Register ' + version)
  18.         self.setGeometry(SCREEN_WIDTH, SCREEN_HEIGHT, 240, 100)
  19.         self.setMaximumSize(400, 500)
  20.  
  21.         self.layout = QtGui.QGridLayout(self)
  22.         self.setLayout(self.layout)
  23.  
  24.         self.login_txt = QtGui.QLabel(text='Login:')
  25.         self.layout.addWidget(self.login_txt, 1, 0, 1, 4)
  26.         self.login_edit = QtGui.QLineEdit()
  27.         self.layout.addWidget(self.login_edit, 2, 0, 1, 4)
  28.  
  29.         self.password_txt = QtGui.QLabel(text='Password:')
  30.         self.layout.addWidget(self.password_txt, 3, 0, 1, 4)
  31.         self.password_edit = QtGui.QLineEdit()
  32.         self.layout.addWidget(self.password_edit, 4, 0, 1, 4)
  33.         self.password_edit.setEchoMode(QtGui.QLineEdit.Password)
  34.  
  35.         self.password_rpt_txt = QtGui.QLabel(text='Repet password:')
  36.         self.layout.addWidget(self.password_rpt_txt, 5, 0, 1, 4)
  37.         self.password_rpt_edit = QtGui.QLineEdit()
  38.         self.layout.addWidget(self.password_rpt_edit, 6, 0, 1, 4)
  39.         self.password_rpt_edit.setEchoMode(QtGui.QLineEdit.Password)
  40.  
  41.         self.email_txt = QtGui.QLabel(text='Email:')
  42.         self.layout.addWidget(self.email_txt, 7, 0, 1, 4)
  43.         self.email_edit = QtGui.QLineEdit()
  44.         self.layout.addWidget(self.email_edit, 8, 0, 1, 4)
  45.  
  46.  
  47.         self.city_txt = QtGui.QLabel(text='City:')
  48.         self.layout.addWidget(self.city_txt, 9, 0, 1, 2)
  49.         self.city_edit = QtGui.QLineEdit()
  50.         self.layout.addWidget(self.city_edit, 10, 0, 1, 2)
  51.  
  52.         self.postal_txt = QtGui.QLabel(text='Postal code:')
  53.         self.layout.addWidget(self.postal_txt, 9, 2, 1, 2)
  54.         self.postal_edit = QtGui.QLineEdit()
  55.         self.layout.addWidget(self.postal_edit, 10, 2, 1, 2)
  56.  
  57.         self.street_txt = QtGui.QLabel(text='Street:')
  58.         self.layout.addWidget(self.street_txt, 11, 0, 1, 2)
  59.         self.street_edit = QtGui.QLineEdit()
  60.         self.layout.addWidget(self.street_edit, 12, 0, 1, 2)
  61.  
  62.         self.number_txt = QtGui.QLabel(text='Number:')
  63.         self.layout.addWidget(self.number_txt, 11, 2, 1, 2)
  64.         self.number_edit = QtGui.QLineEdit()
  65.         self.layout.addWidget(self.number_edit, 12, 2, 1, 2)
  66.  
  67.  
  68.         self.date_txt = QtGui.QLabel(text='Date of birth (dd/mm/yyyy):')
  69.         self.layout.addWidget(self.date_txt, 13, 0, 1, 4)
  70.  
  71.         self.day_edit = QtGui.QLineEdit()
  72.         self.layout.addWidget(self.day_edit, 14, 0, 1, 1)
  73.         self.month_edit = QtGui.QLineEdit()
  74.         self.layout.addWidget(self.month_edit, 14, 1, 1, 1)
  75.         self.year_edit = QtGui.QLineEdit()
  76.         self.layout.addWidget(self.year_edit, 14, 2, 1, 2)
  77.  
  78.  
  79.         self.rules = QtGui.QCheckBox(text='''I'm accepting the rules.''')
  80.         self.layout.addWidget(self.rules, 15, 0, 1, 4)
  81.  
  82.         self.account_btn = QtGui.QPushButton(text='Have you got an accout?')
  83.         self.layout.addWidget(self.account_btn, 16, 0, 1, 2)
  84.         self.account_btn.clicked.connect(self.login_method)
  85.  
  86.         self.done_btn = QtGui.QPushButton(text='Done.')
  87.         self.layout.addWidget(self.done_btn, 16, 2, 1, 2)
  88.         self.done_btn.clicked.connect(self.done_method)
  89.  
  90.         self.show()
  91.  
  92.     def login_method(self):
  93.         for element in [self.login_txt, self.login_edit, self.password_txt, self.password_edit,
  94.         self.password_rpt_txt, self.password_rpt_edit, self.email_txt, self.email_edit,
  95.         self.city_txt, self.city_edit, self.postal_txt, self.postal_edit,self.street_txt, self.street_edit,
  96.         self.number_txt, self.number_edit, self.date_txt,self.day_edit, self.month_edit, self.year_edit,
  97.         self.rules, self.account_btn, self.done_btn]:
  98.  
  99.             element.hide()
  100.  
  101.         self.setFixedSize(240, 150)
  102.         self.setMaximumSize(250, 250)
  103.  
  104.         self.login_txt_log = QtGui.QLabel(text='Login:')
  105.         self.layout.addWidget(self.login_txt_log, 0, 0, 1, 4)
  106.         self.login_edit_log = QtGui.QLineEdit()
  107.         self.layout.addWidget(self.login_edit_log, 1, 0, 1, 4)
  108.  
  109.         self.password_txt_log = QtGui.QLabel(text='Password:')
  110.         self.layout.addWidget(self.password_txt_log, 2, 0, 1, 4)
  111.         self.password_edit_log = QtGui.QLineEdit()
  112.         self.layout.addWidget(self.password_edit_log, 3, 0, 1, 4)
  113.         self.password_edit_log.setEchoMode(QtGui.QLineEdit.Password)
  114.  
  115.         self.login_btn_log = QtGui.QPushButton(text='''Don't have an account?''')
  116.         self.layout.addWidget(self.login_btn_log, 4, 0, 1, 2)
  117.         self.login_btn_log.clicked.connect(self.register_method)
  118.  
  119.         self.done_btn_log = QtGui.QPushButton(text='Done.')
  120.         self.layout.addWidget(self.done_btn_log, 4, 2, 1, 2)
  121.         self.done_btn_log.clicked.connect(self.done_method_log)
  122.  
  123.     def register_method(self):
  124.         for element in [self.login_txt, self.login_edit, self.password_txt, self.password_edit,
  125.         self.password_rpt_txt, self.password_rpt_edit, self.email_txt, self.email_edit,
  126.         self.city_txt, self.city_edit, self.postal_txt, self.postal_edit,self.street_txt, self.street_edit,
  127.         self.number_txt, self.number_edit, self.date_txt,self.day_edit, self.month_edit, self.year_edit,
  128.         self.rules, self.account_btn, self.done_btn]:
  129.  
  130.             element.show()
  131.  
  132.         for element2 in [self.login_txt_log, self.login_edit_log, self.password_txt_log, self.password_edit_log,
  133.         self.login_btn_log, self.done_btn_log]:
  134.  
  135.             element2.hide()
  136.  
  137.         self.setFixedSize(240, 400)
  138.         self.setMaximumSize(400, 500)
  139.  
  140.     def done_method(self):
  141.         cursor = database.cursor(buffered=True)
  142.  
  143.         self.a = 0
  144.         if len(self.login_edit.text()) > 3:
  145.             if len(self.login_edit.text()) < 20:
  146.                 self.a += 1
  147.             else:
  148.                 Message('Login error!', 'Login is to long.\nTry less than 20 characters.').exec_()
  149.         else:
  150.             Message('Login error!', 'Login is to short.\nTry more than 3 characters.').exec_()
  151.  
  152.         if len(self.password_edit.text()) > 3 or len(self.password_rpt_edit.text()) > 3:
  153.             if len(self.password_edit.text()) < 20 or len(self.password_rpt_edit.text()) < 20:
  154.                 self.a += 1
  155.             else:
  156.                 Message('Password error!', 'Password is to long.\nTry less than 20 characters.').exec_()
  157.         else:
  158.             Message('Password error!', 'Password is to short.\nTry more than 3 characters.').exec_()
  159.  
  160.         if self.password_edit.text() == self.password_rpt_edit.text():
  161.             self.a += 1
  162.         else:
  163.             Message('Password error!', 'Passwords are not the same.').exec_()
  164.  
  165.         for sufix in ['.com', '.net', '.pl', '.eu', '.org']:
  166.             if self.email_edit.text().rfind(sufix) != -1:
  167.                 self.a += 1
  168.                 break
  169.         else:
  170.             Message('E-mail error!', 'Email is incorrect!').exec_()
  171.  
  172.         if len(self.postal_edit.text()) != 6 or self.postal_edit.text()[2] != '-':
  173.             Message('Postal code error!', 'Postal code has wrong format!').exec_()
  174.         else:
  175.             self.a += 1
  176.  
  177.         if len(self.day_edit.text()) != 2 or len(self.month_edit.text()) != 2\
  178.             or len(self.year_edit.text()) != 4 or int(self.month_edit.text()) > 12\
  179.             or int(self.month_edit.text()) < 1 or int(self.year_edit.text()) < 1900 \
  180.             or int(self.year_edit.text()) > 2017 or int(self.day_edit.text()) > 31 \
  181.             or int(self.day_edit.text()) < 1:
  182.             Message('Date error!', 'Date of birth is incorrect format.').exec_()
  183.         else:
  184.             self.a += 1
  185.  
  186.         if self.rules.isChecked():
  187.             self.a += 1
  188.         else:
  189.             Message('Rules!', 'Accept the rules!').exec_()
  190.  
  191.         if self.a == 7:
  192.             cursor.execute('SELECT Login FROM users')
  193.             data = cursor.fetchall()
  194.  
  195.             self.date_of_birth = self.day_edit.text() + '-' + self.month_edit.text() + '-' + self.year_edit.text()
  196.  
  197.             for i in range(len(data)):
  198.                 if self.login_edit.text() != data[0][i]:
  199.                     cursor.execute('SELECT Email FROM users')
  200.                     data = cursor.fetchall()
  201.                     if self.email_edit.text() != data[0][i]:
  202.                         cursor.execute("INSERT INTO users (UserIndex, Login, Password, Email, City, PostalCode, Street, Number, DateOfBirth) VALUES (2, 'Tata', '123321', 'gówno@wp.pl', 'Waaaaa', '21-371', 'Adddddddd', '54', '12-12-1990')")
  203.  
  204.                         data = cursor.fetchall()
  205.                         print(data)
  206.  
  207.                     else:
  208.                         Message('Email error!', 'Email is in use by somebody else. Try another one.').exec_()
  209.                 else:
  210.                     Message('Login error!', 'Login is in use by somebody else. Try another one.').exec_()
  211.  
  212.  
  213.  
  214.  
  215.             cursor.close()
  216.  
  217.     def done_method_log(self):
  218.         self.b = 0
  219.  
  220.         #zrobic tu sprawdzanie w bazie danych
  221.  
  222.         if self.b == 3:
  223.             print('Logging')
  224.  
  225.         else:
  226.             Message('Unknown error!', 'Something went wrong :(').exec_()
  227.  
  228.  
  229. class Message(QtGui.QMessageBox):
  230.     def __init__(self, title, txt):
  231.         super(Message, self).__init__()
  232.         self.setWindowTitle(title)
  233.         self.setGeometry(user32.GetSystemMetrics(0)/2 - 50, user32.GetSystemMetrics(1)/2, 100, 100)
  234.  
  235.         myFont = QtGui.QFont()
  236.         myFont.setPointSize(10)
  237.  
  238.         self.setText(txt)
  239.         self.setFont(myFont)
  240.  
  241.         self.show()
  242.  
  243. app = QtGui.QApplication(sys.argv)
  244. root = Main()
  245. sys.exit(app.exec_())
  246.  
  247. database.close()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement