From 889026b092f9716238f8bfd8e99bc1b859a9611f Mon Sep 17 00:00:00 2001 From: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com> Date: Sat, 12 Apr 2025 16:56:10 -0700 Subject: [PATCH 1/9] Add auto sync winget fork to workflow --- .github/workflows/submit-winget.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/submit-winget.yml b/.github/workflows/submit-winget.yml index 5385c1c3..efa6cee7 100644 --- a/.github/workflows/submit-winget.yml +++ b/.github/workflows/submit-winget.yml @@ -11,6 +11,11 @@ jobs: runs-on: windows-latest if: ${{ !github.event.release.prerelease }} steps: + - name: Sync Winget Fork + run: gh repo sync ${{ secrets.WINGET_USERNAME }}/winget-pkgs -b master + env: + GH_TOKEN: ${{ secrets.WINGET_TOKEN }} + - name: Submit package to Windows Package Manager Community Repository run: | $wingetPackage = "Tautulli.Tautulli" From e735294e1c14f380b73a853f6e25686aa133baff Mon Sep 17 00:00:00 2001 From: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com> Date: Fri, 18 Apr 2025 18:21:27 -0700 Subject: [PATCH 2/9] Uppercase ZIP archive export download tooltip --- data/interfaces/default/js/tables/export_table.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/interfaces/default/js/tables/export_table.js b/data/interfaces/default/js/tables/export_table.js index 1d8a7b43..c0f6cf2f 100644 --- a/data/interfaces/default/js/tables/export_table.js +++ b/data/interfaces/default/js/tables/export_table.js @@ -162,7 +162,7 @@ export_table_options = { var tooltip_title = ''; var icon = ''; if (rowData['thumb_level'] || rowData['art_level'] || rowData['logo_level'] || rowData['individual_files']) { - tooltip_title = 'Zip Archive'; + tooltip_title = 'ZIP Archive'; icon = 'fa-file-archive'; } else { tooltip_title = rowData['file_format'].toUpperCase() + ' File'; From cc88cffc1fd20b3bc1d558128e7aa5cf5cfbf4b7 Mon Sep 17 00:00:00 2001 From: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com> Date: Sat, 3 May 2025 16:08:17 -0700 Subject: [PATCH 3/9] Fix retrieving history for collections/playlists with over 1000 items --- plexpy/datatables.py | 17 ++++++++++------- plexpy/webserve.py | 8 ++++---- 2 files changed, 14 insertions(+), 11 deletions(-) diff --git a/plexpy/datatables.py b/plexpy/datatables.py index 0cc94760..49dedacc 100644 --- a/plexpy/datatables.py +++ b/plexpy/datatables.py @@ -144,14 +144,17 @@ def build_custom_where(custom_where=[]): and_or = ' OR ' if w[0].endswith('OR') else ' AND ' w[0] = w[0].rstrip(' OR') - if isinstance(w[1], (list, tuple)) and len(w[1]): + if w[0].endswith(' IN') and isinstance(w[1], (list, tuple)) and len(w[1]): + c_where += w[0] + '(' + ','.join(['?'] * len(w[1])) + ')' + and_or + args += w[1] + elif isinstance(w[1], (list, tuple)) and len(w[1]): c_where += '(' for w_ in w[1]: if w_ is None: c_where += w[0] + ' IS NULL' - elif str(w_).startswith('LIKE '): - c_where += w[0] + ' LIKE ?' - args.append(w_[5:]) + elif w[0].endswith(' LIKE'): + c_where += w[0] + ' ?' + args.append(w_) elif w[0].endswith('<') or w[0].endswith('>'): c_where += w[0] + '= ?' args.append(w_) @@ -163,9 +166,9 @@ def build_custom_where(custom_where=[]): else: if w[1] is None: c_where += w[0] + ' IS NULL' - elif str(w[1]).startswith('LIKE '): - c_where += w[0] + ' LIKE ?' - args.append(w[1][5:]) + elif w[0].endswith(' LIKE'): + c_where += w[0] + ' ?' + args.append(w[1]) elif w[0].endswith('<') or w[0].endswith('>'): c_where += w[0] + '= ?' args.append(w[1]) diff --git a/plexpy/webserve.py b/plexpy/webserve.py index 3f8890cc..c402092f 100644 --- a/plexpy/webserve.py +++ b/plexpy/webserve.py @@ -1978,9 +1978,9 @@ class WebInterface(object): pms_connect = pmsconnect.PmsConnect() result = pms_connect.get_item_children(rating_key=kwargs.pop('rating_key'), media_type=kwargs.pop('media_type')) rating_keys = [child['rating_key'] for child in result['children_list']] - custom_where.append(['session_history_metadata.rating_key OR', rating_keys]) - custom_where.append(['session_history_metadata.parent_rating_key OR', rating_keys]) - custom_where.append(['session_history_metadata.grandparent_rating_key OR', rating_keys]) + custom_where.append(['session_history_metadata.rating_key IN OR', rating_keys]) + custom_where.append(['session_history_metadata.parent_rating_key IN OR', rating_keys]) + custom_where.append(['session_history_metadata.grandparent_rating_key IN OR', rating_keys]) else: rating_key = helpers.split_strip(kwargs.pop('rating_key', '')) if rating_key: @@ -2024,7 +2024,7 @@ class WebInterface(object): if 'guid' in kwargs: guid = helpers.split_strip(kwargs.pop('guid', '').split('?')[0]) if guid: - custom_where.append(['session_history_metadata.guid', ['LIKE ' + g + '%' for g in guid]]) + custom_where.append(['session_history_metadata.guid LIKE', [f"{g}%" for g in guid]]) data_factory = datafactory.DataFactory() history = data_factory.get_datatables_history(kwargs=kwargs, custom_where=custom_where, From ff5edc06fe7d7e161005dfb6809b173631fc1984 Mon Sep 17 00:00:00 2001 From: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com> Date: Sat, 10 May 2025 15:56:52 -0700 Subject: [PATCH 4/9] Update crypto donation --- data/interfaces/default/base.html | 50 +++++++++++++++++++++++- data/interfaces/default/css/tautulli.css | 22 ++++++++++- data/interfaces/default/settings.html | 1 - 3 files changed, 69 insertions(+), 4 deletions(-) diff --git a/data/interfaces/default/base.html b/data/interfaces/default/base.html index 5ff448b8..d6c9f859 100644 --- a/data/interfaces/default/base.html +++ b/data/interfaces/default/base.html @@ -234,7 +234,7 @@ ${next.modalIncludes()}
  • Patreon
  • Stripe
  • PayPal
  • -
  • Crypto
  • +
  • Crypto
  • @@ -283,7 +283,16 @@ ${next.modalIncludes()}

    - Click the button below to continue to Coinbase. + Select a cryptocurrency. +

    + +
    +
    + + +
    +

    + Or click the button below to continue to Coinbase.