Merge branch 'refs/heads/cuttingedge-merge-ServerV2' into Server-V2
# Conflicts: # Tranga/Server.cs
This commit is contained in:
commit
5bc2a8909d
@ -91,18 +91,22 @@ public readonly struct Chapter : IComparable
|
||||
{
|
||||
if (!Directory.Exists(Path.Join(downloadLocation, parentManga.folderName)))
|
||||
return false;
|
||||
FileInfo[] archives = new DirectoryInfo(Path.Join(downloadLocation, parentManga.folderName)).GetFiles();
|
||||
FileInfo[] archives = new DirectoryInfo(Path.Join(downloadLocation, parentManga.folderName)).GetFiles().Where(file => file.Name.Split('.')[^1] == "cbz").ToArray();
|
||||
Regex volChRex = new(@"(?:Vol(?:ume)?\.([0-9]+)\D*)?Ch(?:apter)?\.([0-9]+(?:\.[0-9]+)*)");
|
||||
|
||||
Chapter t = this;
|
||||
return archives.Select(archive => archive.Name).Any(archiveFileName =>
|
||||
string thisPath = GetArchiveFilePath(downloadLocation);
|
||||
FileInfo? archive = archives.FirstOrDefault(archive =>
|
||||
{
|
||||
Match m = volChRex.Match(archiveFileName);
|
||||
Match m = volChRex.Match(archive.Name);
|
||||
string archiveVolNum = m.Groups[1].Success ? m.Groups[1].Value : "0";
|
||||
string archiveChNum = m.Groups[2].Value;
|
||||
return archiveVolNum == t.volumeNumber &&
|
||||
archiveChNum == t.chapterNumber;
|
||||
return archiveVolNum == t.volumeNumber && archiveChNum == t.chapterNumber ||
|
||||
archiveVolNum == "0" && archiveChNum == t.chapterNumber;
|
||||
});
|
||||
if(archive is not null && thisPath != archive.FullName)
|
||||
archive.MoveTo(thisPath);
|
||||
return archive is not null;
|
||||
}
|
||||
/// <summary>
|
||||
/// Creates full file path of chapter-archive
|
||||
|
@ -299,6 +299,7 @@ public abstract class MangaConnector : GlobalBase
|
||||
RequestResult coverResult = downloadClient.MakeRequest(url, requestType);
|
||||
using MemoryStream ms = new();
|
||||
coverResult.result.CopyTo(ms);
|
||||
Directory.CreateDirectory(settings.coverImageCache);
|
||||
File.WriteAllBytes(saveImagePath, ms.ToArray());
|
||||
Log($"Saving cover to {saveImagePath}");
|
||||
return saveImagePath;
|
||||
|
@ -111,7 +111,7 @@ public class Mangaworld: MangaConnector
|
||||
|
||||
string posterUrl = document.DocumentNode.SelectSingleNode("//img[@class='rounded']").GetAttributeValue("src", "");
|
||||
|
||||
string coverFileNameInCache = SaveCoverImageToCache(posterUrl, publicationId, RequestType.MangaCover);
|
||||
string coverFileNameInCache = SaveCoverImageToCache(posterUrl, publicationId.Replace('/', '-'), RequestType.MangaCover);
|
||||
|
||||
string description = document.DocumentNode.SelectSingleNode("//div[@id='noidungm']").InnerText;
|
||||
|
||||
@ -153,10 +153,13 @@ public class Mangaworld: MangaConnector
|
||||
{
|
||||
foreach (HtmlNode volNode in document.DocumentNode.SelectNodes("//div[contains(concat(' ',normalize-space(@class),' '),'volume-element')]"))
|
||||
{
|
||||
string volume = volNode.SelectNodes("div").First(node => node.HasClass("volume")).SelectSingleNode("p").InnerText.Split(' ')[^1];
|
||||
string volume = Regex.Match(volNode.SelectNodes("div").First(node => node.HasClass("volume")).SelectSingleNode("p").InnerText,
|
||||
@"[Vv]olume ([0-9]+).*").Groups[1].Value;
|
||||
foreach (HtmlNode chNode in volNode.SelectNodes("div").First(node => node.HasClass("volume-chapters")).SelectNodes("div"))
|
||||
{
|
||||
string number = chNode.SelectSingleNode("a").SelectSingleNode("span").InnerText.Split(" ")[^1];
|
||||
|
||||
string number = Regex.Match(chNode.SelectSingleNode("a").SelectSingleNode("span").InnerText,
|
||||
@"[Cc]apitolo ([0-9]+).*").Groups[1].Value;
|
||||
string url = chNode.SelectSingleNode("a").GetAttributeValue("href", "");
|
||||
ret.Add(new Chapter(manga, null, volume, number, url));
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user