Skip to content

Commit 3ed4374

Browse files
committed
Qt: Add setting for title parser
1 parent f66c177 commit 3ed4374

File tree

2 files changed

+45
-20
lines changed

2 files changed

+45
-20
lines changed

trackma/ui/qt/settings.py

Lines changed: 41 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,8 @@ def __init__(self, parent, worker, config, configfile):
4949
self.category_list = QListWidget()
5050
category_media = QListWidgetItem(
5151
getIcon('media-playback-start'), 'Media', self.category_list)
52+
category_library = QListWidgetItem(
53+
getIcon('media-playback-start'), 'Library', self.category_list)
5254
category_sync = QListWidgetItem(
5355
getIcon('view-refresh'), 'Sync', self.category_list)
5456
category_ui = QListWidgetItem(
@@ -197,9 +199,24 @@ def __init__(self, parent, worker, config, configfile):
197199

198200
g_kodi.setLayout(g_kodi_layout)
199201

202+
# Media form
203+
page_media_layout.addWidget(g_media)
204+
page_media_layout.addWidget(g_plex)
205+
page_media_layout.addWidget(g_jellyfin)
206+
page_media_layout.addWidget(g_kodi)
207+
page_media.setLayout(page_media_layout)
208+
209+
# Library tab
210+
page_library = QWidget()
211+
page_library_layout = QVBoxLayout()
212+
page_library_layout.setAlignment(QtCore.Qt.AlignTop)
213+
200214
# Group: Library
201215
g_playnext = QGroupBox('Library')
202216
g_playnext.setFlat(True)
217+
self.title_parser = QComboBox()
218+
for (n, label) in utils.available_parsers:
219+
self.title_parser.addItem(label, n)
203220
self.player = QLineEdit()
204221
self.player_browse = QPushButton('Browse...')
205222
self.player_browse.clicked.connect(self.s_player_browse)
@@ -221,39 +238,38 @@ def __init__(self, parent, worker, config, configfile):
221238

222239
g_playnext_layout = QGridLayout()
223240
g_playnext_layout.addWidget(
224-
QLabel('Player'), 0, 0, 1, 1)
241+
QLabel('Parser'), 0, 0, 1, 1)
242+
g_playnext_layout.addWidget(
243+
self.title_parser, 0, 1, 1, 1)
244+
g_playnext_layout.addWidget(
245+
QLabel('Player'), 1, 0, 1, 1)
225246
g_playnext_layout.addWidget(self.player,
226-
0, 1, 1, 1)
247+
1, 1, 1, 1)
227248
g_playnext_layout.addWidget(
228-
self.player_browse, 0, 2, 1, 1)
249+
self.player_browse, 1, 2, 1, 1)
229250
g_playnext_layout.addWidget(
230-
lbl_searchdirs, 1, 0, 1, 1)
251+
lbl_searchdirs, 2, 0, 1, 1)
231252
g_playnext_layout.addWidget(
232-
self.searchdirs, 1, 1, 1, 1)
253+
self.searchdirs, 2, 1, 1, 1)
233254
g_playnext_layout.addLayout(
234-
self.searchdirs_buttons, 1, 2, 1, 1)
255+
self.searchdirs_buttons, 2, 2, 1, 1)
235256
g_playnext_layout.addWidget(
236-
QLabel('Rescan Library at startup'), 2, 0, 1, 2)
257+
QLabel('Rescan Library at startup'), 3, 0, 1, 2)
237258
g_playnext_layout.addWidget(
238-
self.library_autoscan, 2, 2, 1, 1)
259+
self.library_autoscan, 3, 2, 1, 1)
239260
g_playnext_layout.addWidget(
240-
QLabel('Scan through whole list'), 3, 0, 1, 2)
261+
QLabel('Scan through whole list'), 4, 0, 1, 2)
241262
g_playnext_layout.addWidget(
242-
self.scan_whole_list, 3, 2, 1, 1)
263+
self.scan_whole_list, 4, 2, 1, 1)
243264
g_playnext_layout.addWidget(
244-
QLabel('Take subdirectory name into account'), 4, 0, 1, 2)
265+
QLabel('Take subdirectory name into account'), 5, 0, 1, 2)
245266
g_playnext_layout.addWidget(
246-
self.library_full_path, 4, 2, 1, 1)
267+
self.library_full_path, 5, 2, 1, 1)
247268

248269
g_playnext.setLayout(g_playnext_layout)
249270

250-
# Media form
251-
page_media_layout.addWidget(g_media)
252-
page_media_layout.addWidget(g_plex)
253-
page_media_layout.addWidget(g_jellyfin)
254-
page_media_layout.addWidget(g_kodi)
255-
page_media_layout.addWidget(g_playnext)
256-
page_media.setLayout(page_media_layout)
271+
page_library_layout.addWidget(g_playnext)
272+
page_library.setLayout(page_library_layout)
257273

258274
# Sync tab
259275
page_sync = QWidget()
@@ -451,7 +467,7 @@ def __init__(self, parent, worker, config, configfile):
451467

452468
# Content
453469
self.contents = QStackedWidget()
454-
for page in (page_media, page_sync, page_ui, page_theme):
470+
for page in (page_media, page_library, page_sync, page_ui, page_theme):
455471
scrollable_page = QScrollArea()
456472
scrollable_page.setWidgetResizable(True)
457473
scrollable_page.setWidget(page)
@@ -488,6 +504,8 @@ def _load(self):
488504
engine = self.worker.engine
489505
tracker_type = self.tracker_type.findData(
490506
engine.get_config('tracker_type'))
507+
title_parser = self.title_parser.findData(
508+
engine.get_config('title_parser'))
491509
autoretrieve = engine.get_config('autoretrieve')
492510
autosend = engine.get_config('autosend')
493511

@@ -506,6 +524,7 @@ def _load(self):
506524
self.tracker_ignore_not_next.setChecked(
507525
engine.get_config('tracker_ignore_not_next'))
508526

527+
self.title_parser.setCurrentIndex(max(0, title_parser))
509528
self.player.setText(engine.get_config('player'))
510529
self.library_autoscan.setChecked(engine.get_config('library_autoscan'))
511530
self.scan_whole_list.setChecked(engine.get_config('scan_whole_list'))
@@ -614,6 +633,8 @@ def _save(self):
614633
engine.set_config('tracker_ignore_not_next',
615634
self.tracker_ignore_not_next.isChecked())
616635

636+
engine.set_config('title_parser', self.title_parser.itemData(
637+
self.title_parser.currentIndex()))
617638
engine.set_config('player', self.player.text())
618639
engine.set_config('library_autoscan',
619640
self.library_autoscan.isChecked())

trackma/utils.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -180,6 +180,10 @@ class SearchMethod(Enum):
180180
('win32', 'Win32'),
181181
]
182182

183+
available_parsers = [
184+
('aie', 'AnimeInfoExtractor (Default)'),
185+
('anitopy', 'Anitopy (Experimental)'),
186+
]
183187

184188
def oauth_generate_pkce() -> str:
185189
import secrets

0 commit comments

Comments
 (0)