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_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 = None
re_clipboard_prefix = None re_clipboard_prefix = None
@ -112,8 +112,11 @@ class Entered():
def from_message(cls, message: str): def from_message(cls, message: str):
result = re_joined.search(message) result = re_joined.search(message)
if not result: if not result:
log.debug(f'Joined regex doesn\'t fit for text "{message}"')
return None return None
return cls(result.group('user')) user = result.group('user')
log.debug(f'User {user} entered')
return cls(user)
class Communcation(): class Communcation():
@ -136,7 +139,7 @@ class Communcation():
def from_text(cls, text: str): def from_text(cls, text: str):
result = re_comm.search(text) result = re_comm.search(text)
if not result: 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 return None
guild = result.group('guild') guild = result.group('guild')
if guild: if guild:

View File

@ -6,6 +6,7 @@ from src.pyside6.trade_widget import TradeCollection
from PySide6 import QtCore from PySide6 import QtCore
from PySide6.QtWidgets import QApplication, QMainWindow, QTabWidget, QSizePolicy from PySide6.QtWidgets import QApplication, QMainWindow, QTabWidget, QSizePolicy
import qdarktheme import qdarktheme
from typing import Dict
class ResizingTabWidget(QTabWidget): class ResizingTabWidget(QTabWidget):
@ -94,6 +95,16 @@ class MainWindow(QMainWindow):
def new_trade(self, message: Message): def new_trade(self, message: Message):
self.tab_widget.new_trade(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(): def start_app():
app = QApplication(sys.argv) app = QApplication(sys.argv)

View File

@ -4,7 +4,7 @@ from PySide6.QtGui import QIcon
from src.data import Message from src.data import Message
from src import sendkeys from src import sendkeys
from src.data import log from src.data import log
from typing import Callable from typing import Callable, Dict
class TradeWidget(QWidget): class TradeWidget(QWidget):
@ -22,6 +22,7 @@ class TradeWidget(QWidget):
self.setSizePolicy(QSizePolicy.Policy.Fixed, QSizePolicy.Policy.Fixed) self.setSizePolicy(QSizePolicy.Policy.Fixed, QSizePolicy.Policy.Fixed)
self.main_layout.setContentsMargins(0, 0, 0, 0) self.main_layout.setContentsMargins(0, 0, 0, 0)
self.setLayout(self.main_layout) self.setLayout(self.main_layout)
self.setNormalStyle()
assert message.communication.trade assert message.communication.trade
def new_button(self, icon_filename: str, tooltip: str, callback: Callable[[], None]) -> QPushButton: 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) self.main_layout.addWidget(label)
return 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): class Trade_In_Widget(TradeWidget):

View File

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

View File

@ -53,4 +53,13 @@ def test_write_to_log_42():
assert (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)" 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)
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)