Added ability to send MangaDex Id to Kavita+ if present
This commit is contained in:
parent
7b35990e40
commit
47ec5f0171
4 changed files with 13 additions and 2 deletions
|
@ -9,8 +9,15 @@ public class ScrobblingServiceTests
|
||||||
[InlineData("https://anilist.co/manga/35851/Byeontaega-Doeja/", 35851)]
|
[InlineData("https://anilist.co/manga/35851/Byeontaega-Doeja/", 35851)]
|
||||||
[InlineData("https://anilist.co/manga/30105", 30105)]
|
[InlineData("https://anilist.co/manga/30105", 30105)]
|
||||||
[InlineData("https://anilist.co/manga/30105/Kekkaishi/", 30105)]
|
[InlineData("https://anilist.co/manga/30105/Kekkaishi/", 30105)]
|
||||||
public void CanParseWeblink(string link, long expectedId)
|
public void CanParseWeblink_AniList(string link, long expectedId)
|
||||||
{
|
{
|
||||||
Assert.Equal(ScrobblingService.ExtractId<long>(link, ScrobblingService.AniListWeblinkWebsite), expectedId);
|
Assert.Equal(ScrobblingService.ExtractId<long>(link, ScrobblingService.AniListWeblinkWebsite), expectedId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Theory]
|
||||||
|
[InlineData("https://mangadex.org/title/316d3d09-bb83-49da-9d90-11dc7ce40967/honzuki-no-gekokujou-shisho-ni-naru-tame-ni-wa-shudan-wo-erandeiraremasen-dai-3-bu-ryouchi-ni-hon-o", "316d3d09-bb83-49da-9d90-11dc7ce40967")]
|
||||||
|
public void CanParseWeblink_MangaDex(string link, string expectedId)
|
||||||
|
{
|
||||||
|
Assert.Equal(ScrobblingService.ExtractId<string?>(link, ScrobblingService.MangaDexWeblinkWebsite), expectedId);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -27,6 +27,8 @@ public class PlusSeriesDtoBuilder : IEntityBuilder<PlusSeriesDto>
|
||||||
ScrobblingService.MalWeblinkWebsite),
|
ScrobblingService.MalWeblinkWebsite),
|
||||||
GoogleBooksId = ScrobblingService.ExtractId<string?>(series.Metadata.WebLinks,
|
GoogleBooksId = ScrobblingService.ExtractId<string?>(series.Metadata.WebLinks,
|
||||||
ScrobblingService.GoogleBooksWeblinkWebsite),
|
ScrobblingService.GoogleBooksWeblinkWebsite),
|
||||||
|
MangaDexId = ScrobblingService.ExtractId<string?>(series.Metadata.WebLinks,
|
||||||
|
ScrobblingService.MangaDexWeblinkWebsite),
|
||||||
VolumeCount = series.Volumes.Count,
|
VolumeCount = series.Volumes.Count,
|
||||||
ChapterCount = series.Volumes.SelectMany(v => v.Chapters).Count(c => !c.IsSpecial),
|
ChapterCount = series.Volumes.SelectMany(v => v.Chapters).Count(c => !c.IsSpecial),
|
||||||
Year = series.Metadata.ReleaseYear
|
Year = series.Metadata.ReleaseYear
|
||||||
|
|
|
@ -25,6 +25,7 @@ public record PlusSeriesDto
|
||||||
public int? AniListId { get; set; }
|
public int? AniListId { get; set; }
|
||||||
public long? MalId { get; set; }
|
public long? MalId { get; set; }
|
||||||
public string? GoogleBooksId { get; set; }
|
public string? GoogleBooksId { get; set; }
|
||||||
|
public string? MangaDexId { get; set; }
|
||||||
public string SeriesName { get; set; }
|
public string SeriesName { get; set; }
|
||||||
public string? AltSeriesName { get; set; }
|
public string? AltSeriesName { get; set; }
|
||||||
public MediaFormat MediaFormat { get; set; }
|
public MediaFormat MediaFormat { get; set; }
|
||||||
|
|
|
@ -67,13 +67,14 @@ public class ScrobblingService : IScrobblingService
|
||||||
public const string AniListWeblinkWebsite = "https://anilist.co/manga/";
|
public const string AniListWeblinkWebsite = "https://anilist.co/manga/";
|
||||||
public const string MalWeblinkWebsite = "https://myanimelist.net/manga/";
|
public const string MalWeblinkWebsite = "https://myanimelist.net/manga/";
|
||||||
public const string GoogleBooksWeblinkWebsite = "https://books.google.com/books?id=";
|
public const string GoogleBooksWeblinkWebsite = "https://books.google.com/books?id=";
|
||||||
|
public const string MangaDexWeblinkWebsite = "https://mangadex.org/title/";
|
||||||
|
|
||||||
private static readonly IDictionary<string, int> WeblinkExtractionMap = new Dictionary<string, int>()
|
private static readonly IDictionary<string, int> WeblinkExtractionMap = new Dictionary<string, int>()
|
||||||
{
|
{
|
||||||
{AniListWeblinkWebsite, 0},
|
{AniListWeblinkWebsite, 0},
|
||||||
{MalWeblinkWebsite, 0},
|
{MalWeblinkWebsite, 0},
|
||||||
{GoogleBooksWeblinkWebsite, 0},
|
{GoogleBooksWeblinkWebsite, 0},
|
||||||
|
{MangaDexWeblinkWebsite, 0},
|
||||||
};
|
};
|
||||||
|
|
||||||
private const int ScrobbleSleepTime = 700; // We can likely tie this to AniList's 90 rate / min ((60 * 1000) / 90)
|
private const int ScrobbleSleepTime = 700; // We can likely tie this to AniList's 90 rate / min ((60 * 1000) / 90)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue