diff --git a/src/data.py b/src/data.py index 1711cb0..476a3bc 100644 --- a/src/data.py +++ b/src/data.py @@ -96,7 +96,7 @@ class Message(): self.user = user self.guild = guild self.to_from = to_from - self.trade = None + self.trade: Union[Trade, None] = None if self.channel is Channel.WHISPER: self.parse_trade() diff --git a/src/gui.py b/src/gui.py index dd1eefc..e03753c 100644 --- a/src/gui.py +++ b/src/gui.py @@ -4,6 +4,7 @@ from tkinter import Button, Label from .data import Message from src import sendkeys from typing import Callable +from src.data import log class Gui(Tk): @@ -28,21 +29,24 @@ class Gui(Tk): if message.user not in self.tabs: self.tabs[message.user] = {'tab': ttk.Frame(self.tab_control, style='BW.TLabel')} tab = self.tabs[message.user]['tab'] - if message.trade.item not in self.tabs[message.user]: - self.tabs[message.user][message.trade.item] = (tab, message) - ttk.Label(tab, text=message.trade.item, style='BW.TLabel').pack(anchor='e', side='left') - Label(tab, text=f'{message.trade.amount} {message.trade.currency}').pack(anchor='e', side='left') - self.add_button(tab=tab, text='Inv', callback=self.inv_callback, message=message) - self.add_button(tab=tab, text='Trade', callback=self.trade_callback, message=message) - self.add_button(tab=tab, text='Ty', callback=self.ty_callback, message=message) - self.add_button(tab=tab, text='Wait', callback=self.wait_callback, message=message) - self.add_button(tab=tab, text='X', callback=self.destroy_tab, message=message) - # Button(tab, text='Inv', command=lambda mess=message: self.inv_callback(message, tab)).pack(anchor='e', side='left') - # Button(tab, text='Trade', command=lambda mess=message: self.trade_callback(message, tab)).pack(anchor='e', side='left') - # Button(tab, text='Ty', command=lambda mess=message: self.ty_callback(message, tab)).pack(anchor='e', side='left') - # Button(tab, text='Wait', command=lambda mess=message: self.wait_callback(message, tab)).pack(anchor='e', side='left') - # Button(tab, text='X', command=lambda mess=message: self.destroy_tab(message, tab)).pack(anchor='e', side='left') - self.tab_control.add(tab, text=message.user) + if message.trade is not None: + if message.trade.item not in self.tabs[message.user]: + self.tabs[message.user][message.trade.item] = (tab, message) + ttk.Label(tab, text=message.trade.item, style='BW.TLabel').pack(anchor='e', side='left') + Label(tab, text=f'{message.trade.amount} {message.trade.currency}').pack(anchor='e', side='left') + self.add_button(tab=tab, text='Inv', callback=self.inv_callback, message=message) + self.add_button(tab=tab, text='Trade', callback=self.trade_callback, message=message) + self.add_button(tab=tab, text='Ty', callback=self.ty_callback, message=message) + self.add_button(tab=tab, text='Wait', callback=self.wait_callback, message=message) + self.add_button(tab=tab, text='X', callback=self.destroy_tab, message=message) + # Button(tab, text='Inv', command=lambda mess=message: self.inv_callback(message, tab)).pack(anchor='e', side='left') + # Button(tab, text='Trade', command=lambda mess=message: self.trade_callback(message, tab)).pack(anchor='e', side='left') + # Button(tab, text='Ty', command=lambda mess=message: self.ty_callback(message, tab)).pack(anchor='e', side='left') + # Button(tab, text='Wait', command=lambda mess=message: self.wait_callback(message, tab)).pack(anchor='e', side='left') + # Button(tab, text='X', command=lambda mess=message: self.destroy_tab(message, tab)).pack(anchor='e', side='left') + self.tab_control.add(tab, text=message.user) + else: + log.warning(f'Trade in message "{str(message)}" is None') def add_button(self, tab: ttk.Frame, text: str, callback: Callable, message: Message) -> None: Button(tab, text=text, command=lambda: callback(message, tab)).pack(anchor='e', side='left')