From 7359813bbe474ccfd138226830938ad775af7f77 Mon Sep 17 00:00:00 2001 From: Brock H Caldwell Date: Tue, 22 Apr 2025 19:40:00 -0500 Subject: [PATCH] feat: language filter --- .../controllers/movie_results_controller.js | 20 ++++++++++++------- .../controllers/result_filter_controller.js | 12 +++++++++-- templates/torrentio/movies.html.twig | 4 ++-- templates/torrentio/tvshows.html.twig | 2 +- 4 files changed, 26 insertions(+), 12 deletions(-) diff --git a/assets/controllers/movie_results_controller.js b/assets/controllers/movie_results_controller.js index 6d312cb..beab7a1 100644 --- a/assets/controllers/movie_results_controller.js +++ b/assets/controllers/movie_results_controller.js @@ -14,13 +14,19 @@ export default class extends Controller { options = [] - connect() { - fetch(`/torrentio/movies/${this.imdbIdValue}`) - .then(res => res.text()) - .then(response => { - this.element.innerHTML = response; - this.options = this.element.querySelectorAll('tbody tr'); - }); + async connect() { + await this.setOptions(); + } + + async setOptions() { + if (this.options.length === 0) { + await fetch(`/torrentio/movies/${this.imdbIdValue}`) + .then(res => res.text()) + .then(response => { + this.element.innerHTML = response; + this.options = this.element.querySelectorAll('tbody tr'); + }); + } } listTargetConnected(target) { diff --git a/assets/controllers/result_filter_controller.js b/assets/controllers/result_filter_controller.js index 576cce2..6b01e33 100644 --- a/assets/controllers/result_filter_controller.js +++ b/assets/controllers/result_filter_controller.js @@ -19,7 +19,15 @@ export default class extends Controller { 'media-type': String } + async movieResultsOutletConnected(outlet) { + await this.parseDownloadOptionForFilter(outlet) + } + async tvResultsOutletConnected(outlet) { + await this.parseDownloadOptionForFilter(outlet) + } + + async parseDownloadOptionForFilter(outlet) { if (outlet.options.length === 0) { await outlet.setOptions(); } @@ -87,7 +95,7 @@ export default class extends Controller { this.activeFilter = { "resolution": this.resolutionTarget.value, "codec": this.codecTarget.value, - // "language": this.languageTarget.value, + "language": this.languageTarget.value, // "episodeNumber": this.episodeTarget.value, } @@ -112,7 +120,7 @@ export default class extends Controller { "resolution": option.querySelector('#resolution').textContent.trim(), "codec": option.querySelector('#codec').textContent.trim(), // "provider": option.querySelector('#provider').textContent, - // "language": option.querySelector('#language').textContent, + "languages": JSON.parse(option.dataset['languages']), // "codec": option.querySelector('#codec').textContent, } diff --git a/templates/torrentio/movies.html.twig b/templates/torrentio/movies.html.twig index 2d0062f..0a041dd 100644 --- a/templates/torrentio/movies.html.twig +++ b/templates/torrentio/movies.html.twig @@ -34,7 +34,7 @@ {% for result in results.results %} - + {{ result.size }} @@ -50,7 +50,7 @@ {{ result.provider }} - + {{ result.languageFlags }} diff --git a/templates/torrentio/tvshows.html.twig b/templates/torrentio/tvshows.html.twig index 49558cc..c871d37 100644 --- a/templates/torrentio/tvshows.html.twig +++ b/templates/torrentio/tvshows.html.twig @@ -70,7 +70,7 @@ {{ result.provider }} - + {{ result.languageFlags }}