Skip to content

Commit

Permalink
get main server for https://mangalib.me/
Browse files Browse the repository at this point in the history
  • Loading branch information
Oleg Koloskov committed Nov 19, 2022
1 parent 2052065 commit 7730749
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 9 deletions.
2 changes: 1 addition & 1 deletion Elib2Ebook/Elib2Ebook.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
<DockerDefaultTargetOS>Linux</DockerDefaultTargetOS>
<LangVersion>10</LangVersion>
<PackageId>Elib2Ebook</PackageId>
<Version>1.30.4</Version>
<Version>1.30.5</Version>
</PropertyGroup>

<ItemGroup>
Expand Down
4 changes: 0 additions & 4 deletions Elib2Ebook/Logic/Getters/RanobeLib/HentaiLibGetter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,4 @@ namespace Elib2Ebook.Logic.Getters.RanobeLib;
public class HentaiLibGetter : MangaLibGetterBase {
public HentaiLibGetter(BookGetterConfig config) : base(config) { }
protected override Uri SystemUrl => new("https://hentailib.me");

protected override string GetImageUrl(Uri url, RanobeLibChapter chapter, MangaLibPg p) {
return $"https://img3.hentailib.org/manga/{GetId(url)}/chapters/{chapter.ChapterSlug}/{p.U}";
}
}
23 changes: 19 additions & 4 deletions Elib2Ebook/Logic/Getters/RanobeLib/MangaLibGetterBase.cs
Original file line number Diff line number Diff line change
Expand Up @@ -22,25 +22,40 @@ private static IEnumerable<MangaLibPg> GetPg(HtmlDocument doc) {
return pg.OrderBy(p => p.P);
}

private static Uri GetImgServer(HtmlDocument doc) {
var defaultServer = "https://img33.imgslib.link".AsUri();

var match = Regex.Match(doc.ParsedText, "\"servers\":(?<servers>{.*?})");
if (match.Success) {
var servers = match.Groups["servers"].Value.Deserialize<Dictionary<string, string>>();
if (servers.TryGetValue("main", out var main)) {
return main.AsUri();
}
}

Console.WriteLine($"Не удалось определить основной сервер изображений. Использую {defaultServer}");
return defaultServer;
}

protected override async Task<HtmlDocument> GetChapter(Uri url, RanobeLibChapter chapter) {
var chapterDoc = await Config.Client.GetHtmlDocWithTriesAsync(url.AppendSegment($"/v{chapter.ChapterVolume}/c{chapter.ChapterNumber}?bid={chapter.BranchId}"));
var header = chapterDoc.QuerySelector("div.auth-form-title");
if (header != default && header.GetText() == "Авторизация") {
throw new Exception("Произведение доступно только зарегистрированным пользователям. Добавьте в параметры вызова свои логин и пароль");
}

var pg = GetPg(chapterDoc);
var sb = new StringBuilder();

foreach (var p in pg) {
var imageUrl = GetImageUrl(url, chapter, p);
var imageUrl = GetImageUrl(GetImgServer(chapterDoc), url, chapter, p);
sb.Append($"<img src='{imageUrl}'/>");
}

return sb.AsHtmlDoc();
}

protected virtual string GetImageUrl(Uri url, RanobeLibChapter chapter, MangaLibPg p) {
return $"https://img33.imgslib.link/manga/{GetId(url)}/chapters/{chapter.ChapterSlug}/{p.U}";
private string GetImageUrl(Uri imageServer, Uri url, RanobeLibChapter chapter, MangaLibPg p) {
return imageServer.MakeRelativeUri($"/manga/{GetId(url)}/chapters/{chapter.ChapterSlug}/{p.U}").ToString();
}
}

0 comments on commit 7730749

Please sign in to comment.