33
44from PyQt6 .QtCore import QPropertyAnimation , Qt , QTimer , QUrl
55from PyQt6 .QtGui import QColor , QDesktopServices
6- from PyQt6 .QtWidgets import (QApplication , QComboBox , QHBoxLayout , QHeaderView ,
7- QLabel , QMainWindow , QMessageBox , QPushButton ,
8- QStyle , QStyledItemDelegate , QTableWidget ,
9- QTableWidgetItem , QVBoxLayout , QWidget )
10-
11- from __version__ import __version__ as version , __version_description__
12- from gui .styles import (COMBO_BOX , COPY_LABEL , FOOTER , FOOTER_LABEL , HEADER ,
13- HEADER_LABEL , MAIN_WINDOW , MESSAGE_BOX , START_BUTTON ,
14- STATUS_LABEL , TABLE_WIDGET , UPDATE_BUTTON ,
15- get_update_message )
6+ from PyQt6 .QtWidgets import (
7+ QApplication ,
8+ QComboBox ,
9+ QHBoxLayout ,
10+ QHeaderView ,
11+ QLabel ,
12+ QMainWindow ,
13+ QMessageBox ,
14+ QPushButton ,
15+ QStyle ,
16+ QStyledItemDelegate ,
17+ QTableWidget ,
18+ QTableWidgetItem ,
19+ QVBoxLayout ,
20+ QWidget ,
21+ )
22+
23+ from __version__ import __version__ as version
24+ from __version__ import __version_description__
25+ from gui .styles import (
26+ COMBO_BOX ,
27+ COPY_LABEL ,
28+ FOOTER ,
29+ FOOTER_LABEL ,
30+ HEADER ,
31+ HEADER_LABEL ,
32+ MAIN_WINDOW ,
33+ MESSAGE_BOX ,
34+ START_BUTTON ,
35+ STATUS_LABEL ,
36+ TABLE_WIDGET ,
37+ UPDATE_BUTTON ,
38+ get_update_message ,
39+ )
1640from poeNinja .ninjaAPI import PoeNinja
1741from utils .utils import Utils
1842
@@ -45,7 +69,9 @@ def _setup_ui(self) -> None:
4569
4670 def _configure_main_window (self ) -> None :
4771 """Configure main window properties."""
48- self .setWindowTitle (f"Path of Exile Card Flipper v{ version } | github.com/ezbooz" )
72+ self .setWindowTitle (
73+ f"Path of Exile Card Flipper v{ version } | github.com/ezbooz"
74+ )
4975 self .setFixedSize (1070 , 700 )
5076 self .central_widget = QWidget (self )
5177 self .setCentralWidget (self .central_widget )
@@ -94,7 +120,9 @@ def _create_table(self) -> None:
94120 self .table_widget .setShowGrid (False )
95121 self .table_widget .verticalHeader ().setVisible (False )
96122 self .table_widget .setEditTriggers (QTableWidget .EditTrigger .NoEditTriggers )
97- self .table_widget .setSelectionBehavior (QTableWidget .SelectionBehavior .SelectRows )
123+ self .table_widget .setSelectionBehavior (
124+ QTableWidget .SelectionBehavior .SelectRows
125+ )
98126 self .table_widget .setSelectionMode (QTableWidget .SelectionMode .SingleSelection )
99127
100128 def _create_controls (self ) -> None :
@@ -182,11 +210,7 @@ def _fetch_and_process_data(self) -> Optional[List[Dict]]:
182210 highscores = self .utils .calculate_highscores (
183211 divination_data , currency_data , unique_items
184212 )
185- return sorted (
186- highscores .values (),
187- key = lambda x : x ["Profit" ],
188- reverse = True
189- )
213+ return sorted (highscores .values (), key = lambda x : x ["Profit" ], reverse = True )
190214
191215 def _display_results (self , highscores_sorted : List [Dict ]) -> None :
192216 """Display processed results in the table."""
@@ -204,10 +228,12 @@ def _get_divine_orb_value(self) -> Optional[float]:
204228 with open ("Data\\ Currency.json" , "r" ) as file :
205229 data = json .load (file )
206230 return next (
207- (line ["receive" ]["value" ]
208- for line in data ["lines" ]
209- if line ["currencyTypeName" ] == "Divine Orb" ),
210- None
231+ (
232+ line ["receive" ]["value" ]
233+ for line in data ["lines" ]
234+ if line ["currencyTypeName" ] == "Divine Orb"
235+ ),
236+ None ,
211237 )
212238 except (FileNotFoundError , json .JSONDecodeError ):
213239 return None
@@ -216,10 +242,18 @@ def _setup_table_structure(self, data: List[Dict]) -> None:
216242 """Configure table structure and headers."""
217243 self .table_widget .setRowCount (len (data ))
218244 self .table_widget .setColumnCount (8 )
219- self .table_widget .setHorizontalHeaderLabels ([
220- "#" , "Name" , "Type" , "Total profit" , "Profit per card" ,
221- "1 card price" , "Total set price" , "Reward price"
222- ])
245+ self .table_widget .setHorizontalHeaderLabels (
246+ [
247+ "#" ,
248+ "Name" ,
249+ "Type" ,
250+ "Total profit" ,
251+ "Profit per card" ,
252+ "1 card price" ,
253+ "Total set price" ,
254+ "Reward price" ,
255+ ]
256+ )
223257
224258 header = self .table_widget .horizontalHeader ()
225259 for col in range (self .table_widget .columnCount ()):
@@ -255,9 +289,7 @@ def to_divine(value: float) -> float:
255289 self ._create_table_item (row , 0 , str (row + 1 ))
256290 self ._create_table_item (row , 1 , item ["Name" ], align_left = True )
257291 self ._create_table_item (row , 2 , item ["Type" ], align_left = True )
258- self ._create_table_item (
259- row , 3 , f"{ int (item ['Profit' ])} c ({ profit_divine } d)"
260- )
292+ self ._create_table_item (row , 3 , f"{ int (item ['Profit' ])} c ({ profit_divine } d)" )
261293 self ._create_table_item (
262294 row , 4 , f"{ int (item ['Profitpercard' ])} c ({ profit_per_card_divine } d)"
263295 )
@@ -267,8 +299,9 @@ def to_divine(value: float) -> float:
267299 row , 7 , f"{ int (item ['Sellprice' ])} c ({ sellprice_divine } d)"
268300 )
269301
270- def _create_table_item (self , row : int , col : int , text : str ,
271- align_left : bool = False ) -> QTableWidgetItem :
302+ def _create_table_item (
303+ self , row : int , col : int , text : str , align_left : bool = False
304+ ) -> QTableWidgetItem :
272305 """Create and configure a table widget item."""
273306 item = QTableWidgetItem (text )
274307 item .setBackground (QColor (0 , 0 , 0 , 0 ))
@@ -340,9 +373,7 @@ def _hide_copy_label(self) -> None:
340373 self .fade_animation .setDuration (200 )
341374 self .fade_animation .setStartValue (1 )
342375 self .fade_animation .setEndValue (0 )
343- self .fade_animation .finished .connect (
344- lambda : self .copy_label .setVisible (False )
345- )
376+ self .fade_animation .finished .connect (lambda : self .copy_label .setVisible (False ))
346377 self .fade_animation .start ()
347378
348379 def check_for_updates (self ) -> None :
@@ -363,7 +394,9 @@ def check_for_updates(self) -> None:
363394 self .show_notification ("You have the latest version" )
364395 self .status_label .setText ("You have the latest version" )
365396
366- def _show_update_message (self , remote_version : str , remote_description : str ) -> None :
397+ def _show_update_message (
398+ self , remote_version : str , remote_description : str
399+ ) -> None :
367400 """Show update available message box."""
368401 msg_box = QMessageBox (self )
369402 msg_box .setWindowTitle ("Update Available" )
@@ -383,12 +416,14 @@ def generate_trade_link(self, row: int, column: int) -> None:
383416 "query" : {
384417 "status" : {"option" : "online" },
385418 "type" : item_name ,
386- "stats" : [{"type" : "and" , "filters" : []}]
419+ "stats" : [{"type" : "and" , "filters" : []}],
387420 },
388- "sort" : {"price" : "asc" }
421+ "sort" : {"price" : "asc" },
389422 }
390423
391424 encoded_query = json .dumps (trade_query )
392- trade_url = f"https://www.pathofexile.com/trade/search/{ league } ?q={ encoded_query } "
425+ trade_url = (
426+ f"https://www.pathofexile.com/trade/search/{ league } ?q={ encoded_query } "
427+ )
393428
394- QDesktopServices .openUrl (QUrl (trade_url ))
429+ QDesktopServices .openUrl (QUrl (trade_url ))
0 commit comments