182 lines
5.4 KiB
Python
182 lines
5.4 KiB
Python
from kivy.app import App
|
|
from kivy.uix.label import Label
|
|
from kivy.uix.gridlayout import GridLayout
|
|
from kivy.uix.textinput import TextInput
|
|
from kivy.uix.button import Button
|
|
from kivy.uix.screenmanager import ScreenManager, Screen
|
|
import mysql.connector
|
|
from job import job
|
|
|
|
|
|
class ConnectPage(GridLayout):
|
|
def __init__(self, **kwargs):
|
|
super().__init__(**kwargs)
|
|
|
|
self.cols = 2
|
|
|
|
self.add_widget(Label(text='Name:'))
|
|
self.name = TextInput(multiline=False)
|
|
self.add_widget(self.name)
|
|
|
|
self.add_widget(Label(text='Password:'))
|
|
self.password = TextInput(multiline=False)
|
|
self.add_widget(self.password)
|
|
|
|
self.join = Button(text="Login")
|
|
self.join.bind(on_press=self.join_button)
|
|
self.add_widget(self.join)
|
|
|
|
self.join = Button(text="Register")
|
|
self.join.bind(on_press=self.register_button)
|
|
self.add_widget(self.join)
|
|
|
|
def join_button(self, instance):
|
|
name = self.name.text
|
|
password = self.password.text
|
|
|
|
if name in names:
|
|
if password == users_res[names.index(name)][2]:
|
|
chat_app.screen_manager.current = 'Kawa'
|
|
else:
|
|
info = f"Podane hasło jest błędne"
|
|
chat_app.info_page.update_info(info)
|
|
chat_app.screen_manager.current = 'Info'
|
|
else:
|
|
info = f"Brak nazwy i hasła w takiej kombinacji"
|
|
chat_app.info_page.update_info(info)
|
|
chat_app.screen_manager.current = 'Info'
|
|
|
|
def register_button(self, instance):
|
|
name = self.name.text
|
|
password = self.password.text
|
|
if name in names:
|
|
info = f"Name '{name}' already used"
|
|
chat_app.info_page.update_info(info)
|
|
chat_app.screen_manager.current = 'Info'
|
|
else:
|
|
cursor.execute(f"""
|
|
INSERT INTO users (Name, Password)
|
|
VALUES ('{name}', '{password}')
|
|
""")
|
|
db.commit()
|
|
|
|
info = f"Added user '{name}' with password '{password}'"
|
|
chat_app.info_page.update_info(info)
|
|
chat_app.screen_manager.current = 'Info'
|
|
|
|
|
|
class InfoPage(GridLayout):
|
|
def __init__(self, **kwargs):
|
|
super().__init__(**kwargs)
|
|
|
|
self.cols = 1
|
|
self.message = Label(halign="center", valign="middle", font_size=30)
|
|
self.message = Label()
|
|
self.message.bind(width=self.update_text_width)
|
|
self.add_widget(self.message)
|
|
|
|
self.join = Button(text="Back")
|
|
self.join.bind(on_press=self.back)
|
|
self.add_widget(self.join)
|
|
|
|
def back(self, instance):
|
|
chat_app.screen_manager.current = 'Connect'
|
|
|
|
def update_info(self, message):
|
|
self.message.text = message
|
|
|
|
def update_text_width(self, *_):
|
|
self.message.text_size = (self.message.width * 0.9, None)
|
|
|
|
class InfoPage2(GridLayout):
|
|
def __init__(self, **kwargs):
|
|
super().__init__(**kwargs)
|
|
|
|
self.cols = 1
|
|
self.message = Label(halign="center", valign="middle", font_size=30)
|
|
self.message = Label()
|
|
self.message.bind(width=self.update_text_width)
|
|
self.add_widget(self.message)
|
|
|
|
self.join = Button(text="Back")
|
|
self.join.bind(on_press=self.back)
|
|
self.add_widget(self.join)
|
|
|
|
def back(self, instance):
|
|
chat_app.screen_manager.current = 'Kawa'
|
|
|
|
def update_info(self, message):
|
|
self.message.text = message
|
|
|
|
def update_text_width(self, *_):
|
|
self.message.text_size = (self.message.width * 0.9, None)
|
|
|
|
|
|
def result():
|
|
info = job('1')
|
|
chat_app.info_page.update_info(info)
|
|
chat_app.screen_manager.current = 'Info2'
|
|
|
|
|
|
def job_to_be_done(instance):
|
|
info = 'Przetwarzam zdjęcia'
|
|
chat_app.info_page.update_info(info)
|
|
chat_app.screen_manager.current = 'Info'
|
|
result()
|
|
|
|
|
|
class Kawa(GridLayout):
|
|
def __init__(self, **kwargs):
|
|
super().__init__(**kwargs)
|
|
self.cols = 1
|
|
|
|
self.add_widget(Label())
|
|
self.add_widget(Label())
|
|
self.join = Button(text="Zdjęcie")
|
|
self.join.bind(on_press=job_to_be_done)
|
|
self.add_widget(self.join)
|
|
|
|
|
|
class WTB(App):
|
|
def build(self):
|
|
self.screen_manager = ScreenManager()
|
|
|
|
self.connect_page = ConnectPage()
|
|
screen = Screen(name='Connect')
|
|
screen.add_widget(self.connect_page)
|
|
self.screen_manager.add_widget(screen)
|
|
|
|
self.info_page = InfoPage()
|
|
screen = Screen(name='Info')
|
|
screen.add_widget(self.info_page)
|
|
self.screen_manager.add_widget(screen)
|
|
|
|
self.info_page = InfoPage2()
|
|
screen = Screen(name='Info2')
|
|
screen.add_widget(self.info_page)
|
|
self.screen_manager.add_widget(screen)
|
|
|
|
self.kawa_page = Kawa()
|
|
screen = Screen(name='Kawa')
|
|
screen.add_widget(self.kawa_page)
|
|
self.screen_manager.add_widget(screen)
|
|
|
|
return self.screen_manager
|
|
|
|
def back(self):
|
|
chat_app.screen_manager.current = 'Connect'
|
|
|
|
|
|
if __name__ == "__main__":
|
|
db = mysql.connector.connect(host="localhost", user="root", database="wtb_db")
|
|
cursor = db.cursor()
|
|
cursor.execute('SELECT * FROM users')
|
|
|
|
users_res = cursor.fetchall()
|
|
names = []
|
|
for res in users_res:
|
|
names.append(res[1])
|
|
|
|
chat_app = WTB()
|
|
chat_app.run()
|