finally fixed duplicate trades

This commit is contained in:
Oliver Hartmann 2023-01-04 23:06:20 +01:00
parent b647427581
commit a940e22065
3 changed files with 29 additions and 5 deletions

View File

@ -148,3 +148,7 @@ class Message():
res = re_trade.search(self.message) res = re_trade.search(self.message)
if res: if res:
self.trade = Trade.by_regex_result(res) self.trade = Trade.by_regex_result(res)
def unique_trade(self) -> int:
assert self.trade
return hash((self.user, self.trade.__hash__()))

View File

@ -68,17 +68,19 @@ class TradeCollection(QWidget):
self.setLayout(self.main_layout) self.setLayout(self.main_layout)
trade = TradeWidget(message, self) trade = TradeWidget(message, self)
self.main_layout.addWidget(trade) self.main_layout.addWidget(trade)
self.trades = {message.trade.__hash__: trade} self.trades = {message.unique_trade(): trade}
def add_trade(self, message: Message) -> None: def add_trade(self, message: Message) -> None:
if message.trade.__hash__ in self.trades: assert message.trade
if message.unique_trade() in self.trades:
return return
trade = TradeWidget(message, self) trade = TradeWidget(message, self)
self.main_layout.addWidget(trade) self.main_layout.addWidget(trade)
self.trades[message.trade.__hash__] = trade self.trades[message.unique_trade()] = trade
def del_trade(self, message: Message): def del_trade(self, message: Message):
del self.trades[message.trade.__hash__] assert message.trade
del self.trades[message.unique_trade()]
if not self.trades: if not self.trades:
self.parent.del_collection(self.unique_item) self.parent.del_collection(self.unique_item)
self.deleteLater() self.deleteLater()

View File

@ -33,6 +33,24 @@ def test_write_to_log_4():
config.read_config(r'config.yaml') config.read_config(r'config.yaml')
log_file = config.get_value('General.log_file') log_file = config.get_value('General.log_file')
assert (log_file) assert (log_file)
text = "2021/05/11 23:34:41 13600796 bad [INFO Client 9008] @From <CHIP> HerculadeDrik: Hi, I would like to buy your Cortex Relic Chambers Map (T15) listed for 3.4 exalted in Ultimatum (stash tab \"$\"; position: left 3, top 9)" text = "2021/05/11 23:34:41 13600796 bad [INFO Client 9008] @From <CHIP> HerculadeDrik: Hi, I would like to buy your Cortex Relic Chambers Map (T15) listed for 40000000 exalted in Ultimatum (stash tab \"$\"; position: left 3, top 9)"
with open(log_file, 'a') as f:
f.write(text)
def test_write_to_log_41():
config.read_config(r'config.yaml')
log_file = config.get_value('General.log_file')
assert (log_file)
text = "2021/05/11 23:34:41 13600796 bad [INFO Client 9008] @From <CHIP> MaxMustermann: Hi, I would like to buy your Cortex Relic Chambers Map (T15) listed for 3.4 exalted in Ultimatum (stash tab \"$\"; position: left 3, top 9)"
with open(log_file, 'a') as f:
f.write(text)
def test_write_to_log_42():
config.read_config(r'config.yaml')
log_file = config.get_value('General.log_file')
assert (log_file)
text = "2021/05/11 23:34:41 13600796 bad [INFO Client 9008] @From <CHIP> HenryHase: Hi, I would like to buy your Cortex Relic Chambers Map (T15) listed for 3.4 exalted in Ultimatum (stash tab \"$\"; position: left 3, top 9)"
with open(log_file, 'a') as f: with open(log_file, 'a') as f:
f.write(text) f.write(text)