Skip to content

Commit

Permalink
Merge pull request knightcrawler-stremio#96 from iPromKnight/dmm-gitt…
Browse files Browse the repository at this point in the history
…rees

Fix DMM so that all pages are enumerated
  • Loading branch information
Gabisonfire authored Feb 27, 2024
2 parents 92dc4c5 + 49a6283 commit 4cbbb31
Showing 1 changed file with 10 additions and 6 deletions.
16 changes: 10 additions & 6 deletions src/producer/Crawlers/Sites/DebridMediaManagerCrawler.cs
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,11 @@ public partial class DebridMediaManagerCrawler(

[GeneratedRegex(@"[sS]([0-9]{1,2})|seasons?[\s-]?([0-9]{1,2})", RegexOptions.IgnoreCase, "en-GB")]
private static partial Regex SeasonMatcher();

private const string DownloadBaseUrl = "https://raw.githubusercontent.com/debridmediamanager/hashlists/main";

protected override IReadOnlyDictionary<string, string> Mappings => new Dictionary<string, string>();
protected override string Url => "https://api.github.com/repos/debridmediamanager/hashlists/contents";
protected override string Url => "https://api.github.com/repos/debridmediamanager/hashlists/git/trees/main?recursive=1";
protected override string Source => "DMM";

public override async Task Execute()
Expand All @@ -28,7 +30,11 @@ public override async Task Execute()

var json = JsonDocument.Parse(jsonBody);

foreach (var entry in json.RootElement.EnumerateArray())
var entriesArray = json.RootElement.GetProperty("tree");

logger.LogInformation("Found {Entries} total DMM pages", entriesArray.GetArrayLength());

foreach (var entry in entriesArray.EnumerateArray())
{
await ParsePage(entry, client);
}
Expand All @@ -43,9 +49,7 @@ private async Task ParsePage(JsonElement entry, HttpClient client)
return;
}

var url = entry.GetProperty("download_url").GetString();

var pageSource = await client.GetStringAsync(url);
var pageSource = await client.GetStringAsync($"{DownloadBaseUrl}/{name}");

await ExtractPageContents(pageSource, name);
}
Expand Down Expand Up @@ -130,7 +134,7 @@ private async Task InsertTorrentsForPage(JsonDocument json)

private async Task<(bool Success, string? Name)> IsAlreadyIngested(JsonElement entry)
{
var name = entry.GetProperty("name").GetString();
var name = entry.GetProperty("path").GetString();

if (string.IsNullOrEmpty(name))
{
Expand Down

0 comments on commit 4cbbb31

Please sign in to comment.