diff --git a/Aberwyn/Aberwyn.csproj b/Aberwyn/Aberwyn.csproj index 3d6f856..b69becc 100644 --- a/Aberwyn/Aberwyn.csproj +++ b/Aberwyn/Aberwyn.csproj @@ -18,6 +18,7 @@ + @@ -43,7 +44,10 @@ - + + + + diff --git a/Aberwyn/Controllers/RssController.cs b/Aberwyn/Controllers/RssController.cs index 646ec95..2c342e8 100644 --- a/Aberwyn/Controllers/RssController.cs +++ b/Aberwyn/Controllers/RssController.cs @@ -71,6 +71,7 @@ public class RssController : Controller Leechers = t.Leechers, TorrentUrl = t.TorrentUrl, Metadata = t.Metadata, + IsDownloaded = t.IsDownloaded, IsNew = t.InfoHash != null && !seenHashes.Contains(t.InfoHash), AvailableOn = !string.IsNullOrEmpty(t.Metadata?.Providers) ? t.Metadata.Providers.Split(',').ToList() @@ -144,7 +145,7 @@ public class RssController : Controller } await _context.SaveChangesAsync(); - + _logger.LogInformation("SavedChanges to torrents"); return Json(new { success = true, diff --git a/Aberwyn/Data/DelugeClient.cs b/Aberwyn/Data/DelugeClient.cs index a36e81b..a47e6b0 100644 --- a/Aberwyn/Data/DelugeClient.cs +++ b/Aberwyn/Data/DelugeClient.cs @@ -56,7 +56,16 @@ namespace Aberwyn.Data var payload = new { method = "core.add_torrent_url", - @params = new object[] { torrentUrl, new { } }, + @params = new object[] + { + torrentUrl, + new + { + download_location = "/download/incomplete", + move_completed = true, + move_completed_path = "/media/Movies", + } + }, id = 3 }; diff --git a/Aberwyn/Models/TorrentInfo.cs b/Aberwyn/Models/TorrentInfo.cs index b237823..fa50121 100644 --- a/Aberwyn/Models/TorrentInfo.cs +++ b/Aberwyn/Models/TorrentInfo.cs @@ -108,6 +108,7 @@ public class TorrentListItemViewModel public MovieMetadata? Metadata { get; set; } public bool IsNew { get; set; } = false; public List AvailableOn { get; set; } = new(); + public bool IsDownloaded { get; set; } } public class JustWatchResponse { diff --git a/Aberwyn/Views/Rss/Index.cshtml b/Aberwyn/Views/Rss/Index.cshtml index 69828a5..a76cd10 100644 --- a/Aberwyn/Views/Rss/Index.cshtml +++ b/Aberwyn/Views/Rss/Index.cshtml @@ -92,10 +92,18 @@
@main.Seeders
@main.Leechers
-
- - -
+ @if (main.IsDownloaded) + { + ✔ Nedladdad + } + else + { +
+ +
+ }
@@ -155,7 +163,67 @@ url.searchParams.set('sort', field); window.location = url; } - function confirmDownload(title) { - return confirm(`Vill du ladda ner "${title}"?`); - } + + + + diff --git a/Aberwyn/wwwroot/service-worker.js b/Aberwyn/wwwroot/service-worker.js index 42b540e..f010d7b 100644 --- a/Aberwyn/wwwroot/service-worker.js +++ b/Aberwyn/wwwroot/service-worker.js @@ -3,7 +3,7 @@ const urlsToCache = [ '/', '/css/site.css', '/images/lewel-icon.png', - '/manifest.json' + '/manifest-v2.json' ]; self.addEventListener('install', event => { @@ -14,7 +14,7 @@ self.addEventListener('install', event => { ); }); -self.addEventListener("fetch", function (event) { +/*self.addEventListener("fetch", function (event) { const url = new URL(event.request.url); // Hoppa över root / om du inte vill cachea den @@ -28,8 +28,29 @@ self.addEventListener("fetch", function (event) { return response || fetch(event.request); }) ); +});*/ + +self.addEventListener("fetch", event => { + // 🔴 Ignorera allt som inte är GET (POST, PUT, DELETE etc) + if (event.request.method !== "GET") { + return; + } + + const url = new URL(event.request.url); + + // Hoppa över root om du vill + if (url.pathname === "/") { + return; + } + + event.respondWith( + caches.match(event.request).then(response => { + return response || fetch(event.request); + }) + ); }); + self.addEventListener('push', function (event) { console.log("📨 Push event mottagen!", event);