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_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:
|
||||||
|
@ -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)
|
||||||
|
@ -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):
|
||||||
|
|
||||||
|
@ -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}.')
|
||||||
|
|
||||||
|
@ -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)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user