green border when entered

This commit is contained in:
Oliver Hartmann 2023-05-21 23:48:29 +02:00
parent 7a68075dd2
commit 09587d9233
5 changed files with 40 additions and 5 deletions

View File

@ -13,7 +13,7 @@ re_log = re.compile(r'(?P<date>\d\d\d\d/\d\d/\d\d \d\d:\d\d:\d\d) (\d+) (\S+) \[
re_comm = re.compile(r'(?P<channel>[#@%$&]?)(?P<ToFrom>To|From)?\s?(?P<guild><\S+>)? ?(?P<user>[^:]+): (?P<message>.*)')
re_joined = re.compile(r'(?P<user>\S+) has joined the area.')
re_joined = re.compile(r': (?P<user>\S+) has joined the area.')
re_clipboard = None
re_clipboard_prefix = None
@ -112,8 +112,11 @@ class Entered():
def from_message(cls, message: str):
result = re_joined.search(message)
if not result:
log.debug(f'Joined regex doesn\'t fit for text "{message}"')
return None
return cls(result.group('user'))
user = result.group('user')
log.debug(f'User {user} entered')
return cls(user)
class Communcation():
@ -136,7 +139,7 @@ class Communcation():
def from_text(cls, text: str):
result = re_comm.search(text)
if not result:
log.debug(f'Result is none for text "{text}"')
log.debug(f'communication regex doesn\'t fit for text "{text}"')
return None
guild = result.group('guild')
if guild:

View File

@ -6,6 +6,7 @@ from src.pyside6.trade_widget import TradeCollection
from PySide6 import QtCore
from PySide6.QtWidgets import QApplication, QMainWindow, QTabWidget, QSizePolicy
import qdarktheme
from typing import Dict
class ResizingTabWidget(QTabWidget):
@ -94,6 +95,16 @@ class MainWindow(QMainWindow):
def new_trade(self, message: Message):
self.tab_widget.new_trade(message)
@QtCore.Slot()
def new_entered(self, message: Message):
for collection in self.tab_widget.trade_in_collections.values():
for tradeWidget in collection.trades.values():
if tradeWidget.message.communication.user == message.entered.user:
log.debug(f'Found trade with user {message.entered.user}')
tradeWidget.setHighlightStyle()
return
log.debug(f'User {message.entered.user} trade not found')
def start_app():
app = QApplication(sys.argv)

View File

@ -4,7 +4,7 @@ from PySide6.QtGui import QIcon
from src.data import Message
from src import sendkeys
from src.data import log
from typing import Callable
from typing import Callable, Dict
class TradeWidget(QWidget):
@ -22,6 +22,7 @@ class TradeWidget(QWidget):
self.setSizePolicy(QSizePolicy.Policy.Fixed, QSizePolicy.Policy.Fixed)
self.main_layout.setContentsMargins(0, 0, 0, 0)
self.setLayout(self.main_layout)
self.setNormalStyle()
assert message.communication.trade
def new_button(self, icon_filename: str, tooltip: str, callback: Callable[[], None]) -> QPushButton:
@ -41,6 +42,13 @@ class TradeWidget(QWidget):
self.main_layout.addWidget(label)
return label
def setNormalStyle(self):
self.setStyleSheet("margin:5px; border:0px solid rgb(0, 255, 0); ")
def setHighlightStyle(self):
self.setStyleSheet("margin:5px; border:1px solid rgb(0, 255, 0); ")
class Trade_In_Widget(TradeWidget):

View File

@ -10,10 +10,12 @@ from src.pyside6.gui_pyside6 import MainWindow
class Log_Reader(QtCore.QObject):
new_trade_signal = QtCore.Signal(Message)
new_out_trade_signal = QtCore.Signal(Message)
new_entered = QtCore.Signal(Message)
def __init__(self, window: MainWindow):
super().__init__()
self.new_trade_signal.connect(window.new_trade, QtCore.Qt.QueuedConnection)
self.new_entered.connect(window.new_entered, QtCore.Qt.QueuedConnection)
def read_log(self, logfile: str) -> None:
try:
@ -24,6 +26,8 @@ class Log_Reader(QtCore.QObject):
log.debug(message)
if message and message.communication and message.communication.trade:
self.new_trade_signal.emit(message)
if message and message.entered:
self.new_entered.emit(message)
except IOError:
log.error(f'Error opening log file {logfile}.')

View File

@ -53,4 +53,13 @@ def test_write_to_log_42():
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:
f.write(text)
f.write(text)
def test_write_entered():
config.read_config(r'config.yaml')
log_file = config.get_value('General.log_file')
assert (log_file)
text = r'2023/05/21 22:39:25 28761078 cffb0719 [INFO Client 13392] : Sinusal has joined the area.'
with open(log_file, 'a') as f:
f.write(text)