green border when entered
This commit is contained in:
parent
7a68075dd2
commit
09587d9233
@ -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:
|
||||
|
@ -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)
|
||||
|
@ -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):
|
||||
|
||||
|
@ -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}.')
|
||||
|
||||
|
@ -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)
|
||||
|
Loading…
x
Reference in New Issue
Block a user