Skip to content

Commit

Permalink
Fix bug on grouple sites parsing and release 1.51.10.40
Browse files Browse the repository at this point in the history
  • Loading branch information
MonkAlex committed Sep 18, 2023
1 parent c6b1b09 commit 0cac0c7
Show file tree
Hide file tree
Showing 13 changed files with 86 additions and 35 deletions.
6 changes: 6 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,10 @@
# История версий
***
## 1.51.10.40 — 2023-09-18

### Исправлено
* Актуализирована поддержка https://readmanga.live/, https://m.mintmanga.live

***
## 1.51.9.39 — 2023-06-03

Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@

На текущий момент поддерживаются:
1. [ReadManga](https://readmanga.live/)
2. [MintManga](https://mintmanga.live)
2. [MintManga](https://m.mintmanga.live)
3. [Hentaichan](https://x.henchan.pro/)
4. [Acomics](https://acomics.ru)
5. [Mangachan](https://manga-chan.me/)
Expand Down
1 change: 1 addition & 0 deletions Sites/Grouple.ru/Constants.cs
Original file line number Diff line number Diff line change
Expand Up @@ -7,5 +7,6 @@ namespace Grouple
public static class Constants
{
public const string ReadmangaHost = "https://readmanga.live/";
public const string MintmangaHost = "https://m.mintmanga.live/";
}
}
34 changes: 34 additions & 0 deletions Sites/Grouple.ru/Convertation/From51_9To51_10.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
using System;
using System.Threading.Tasks;
using MangaReader.Core.Convertation;
using MangaReader.Core.Convertation.Primitives;
using MangaReader.Core.NHibernate;
using MangaReader.Core.Services.Config;

namespace Grouple.ru.Convertation
{
public class From51_9To51_10 : ConfigConverter
{
protected override async Task ProtectedConvert(IProcess process)
{
using (var context = Repository.GetEntityContext())
{
var setting = ConfigStorage.GetPlugin<Mintmanga>().GetSettings();
var oldMainUri = new Uri("https://mintmanga.live/");
var mainUri = new Uri("https://m.mintmanga.live/");
if (setting != null && Equals(oldMainUri, setting.MainUri))
{
setting.MainUri = mainUri;
await context.Save(setting).ConfigureAwait(false);
}
}
}

public From51_9To51_10()
{
this.Version = new Version(1, 51, 10, 39);
this.CanReportProcess = false;
this.Name = "Обновляем ссылки на m.mintmanga.live...";
}
}
}
2 changes: 1 addition & 1 deletion Sites/Grouple.ru/GroupleParser.cs
Original file line number Diff line number Diff line change
Expand Up @@ -175,7 +175,7 @@ public override async Task UpdateContent(IManga manga)
document.LoadHtml(page.Content);
hasCopyrightNotice = Copyrights.Any(c => document.DocumentNode.InnerText.Contains(c));
var linkNodes = document.DocumentNode
.SelectNodes("//div[@class=\"chapters-link chapters\"]//a[contains(@class, 'chapter-link')]")
.SelectNodes("//tr[@class=\"item-row\"]//a[contains(@class, 'chapter-link')]")
.Reverse()
.ToList();
links = linkNodes
Expand Down
48 changes: 24 additions & 24 deletions Tests/Tests.Entities/Cache.json
Original file line number Diff line number Diff line change
Expand Up @@ -19,13 +19,31 @@
},
{
"Uri": "https://hentai2read.com/attention_please_yamashita_shunya/",
"FolderSize": 551549,
"FolderSize": 564762,
"FilesInFolder": 4,
"AllFilesUnique": true,
"Description": "Storyline\r\n\r\nFlight attendant genre + maid.",
"Status": "Parody -\r\nRanking 6891st\r\nStatus Completed\r\nRelease Year 2010\r\nView 132,096 views\r\nPage 4 pages\r\nAuthor YAMASHITA Shunya\r\nArtist YAMASHITA Shunya\r\nCategory Adult, Comedy, Oneshot\r\nContent Full Color, Gangbang, Group Intercourse, Maids\r\nCharacter -\r\nLanguage English\r\n",
"Status": "Parody -\r\nRanking 6891st\r\nStatus Completed\r\nRelease Year 2010\r\nView 134,738 views\r\nPage 4 pages\r\nAuthor YAMASHITA Shunya\r\nArtist YAMASHITA Shunya\r\nCategory Adult, Comedy, Oneshot\r\nContent Full Color, Gangbang, Group Intercourse, Maids\r\nCharacter -\r\nLanguage English\r\n",
"Name": "Attention Please (YAMASHITA Shunya)"
},
{
"Uri": "https://m.mintmanga.live/love_mate",
"FolderSize": 0,
"FilesInFolder": 0,
"AllFilesUnique": false,
"Description": "Ямато, приехал учиться в высшей школе в Токио из предместья Хиросимы. По пути к своей тёте, у которой он поселился на время учёбы, встречает красивую девушку и влюбляется в нее с первого взгляда. Позже оказывается, что девушка — его соседка, зовут её Судзука, и она поступила в ту же высшую школу. Он пытается привлечь её внимание, и даже вступает в команду по лёгкой атлетике, в которой она состоит.",
"Status": "Томов 18, завершено\r\nПеревод: завершён\r\nЖанры: школа сёнэн гарем романтика драма этти повседневность спорт\r\nКатегория: Манга\r\nАвтор: Сэо Кодзи\r\nГод выпуска: 2003\r\nВозрастная рекомендация: NC-17\r\nПрочее: Не Яой\r\nИздательство: Kodansha\r\nЖурнал: Shuukan Shounen Magazine\r\nПереводчики: Ной Студия, AngelVan, cheer_less\r\nПопулярность:\r\n",
"Name": "Love Mate"
},
{
"Uri": "https://m.mintmanga.live/persefona",
"FolderSize": 40225698,
"FilesInFolder": 21,
"AllFilesUnique": false,
"Description": "",
"Status": "Выпуск завершено\r\nПеревод: завершён\r\nЖанры: фэнтези дзёсэй история драма\r\nКатегория: Манхва\r\nАвтор: Гера\r\nГод выпуска: 2022\r\nВозрастная рекомендация: R\r\nПрочее: Веб, Не Яой\r\nТеги: Насилие ГГ женщина Мать и дочь Зверолюди Разумные расы\r\nПереводчик: Melinoie Team\r\n",
"Name": "Persephone"
},
{
"Uri": "https://manga-chan.me/manga/15659-this-girlfriend-is-fiction.html",
"FolderSize": 0,
Expand Down Expand Up @@ -53,31 +71,13 @@
"Status": "Другие названия\r\nТип Манхва\r\nАвтор Hale, Gaonbi\r\nСтатус (Томов) 1 том, выпуск продолжается\r\nЗагружено 5 глав, перевод продолжается\r\nТэги драма, мистика, романтика, ужасы, веб\r\nПереводчики Disolver el lirio, Black Rosarium\r\n",
"Name": "Eve Scramble"
},
{
"Uri": "https://mintmanga.live/love_mate",
"FolderSize": 0,
"FilesInFolder": 0,
"AllFilesUnique": false,
"Description": "Ямато, приехал учиться в высшей школе в Токио из предместья Хиросимы. По пути к своей тёте, у которой он поселился на время учёбы, встречает красивую девушку и влюбляется в нее с первого взгляда. Позже оказывается, что девушка — его соседка, зовут её Судзука, и она поступила в ту же высшую школу. Он пытается привлечь её внимание, и даже вступает в команду по лёгкой атлетике, в которой она состоит.",
"Status": "Томов: 18, завершено\r\nПеревод: переведено\r\nЖанры: спорт, повседневность, этти, школа, романтика, драма, сёнэн, гарем …\r\nКатегория: Манга\r\nАвтор: Сэо Кодзи\r\nГод выпуска: 2003\r\nВозрастная рекомендация: NC-17\r\nПрочее: Не Яой\r\nИздательство: Kodansha\r\nЖурнал: Shuukan Shounen Magazine\r\nПереводчики: Ной Студия, AngelVan, cheer_less\r\nПопулярность:\r\n",
"Name": "Love Mate"
},
{
"Uri": "https://mintmanga.live/persefona",
"FolderSize": 40225698,
"FilesInFolder": 21,
"AllFilesUnique": false,
"Description": "",
"Status": "Томов: 1, завершено\r\nПеревод: переведено\r\nЖанры: дзёсэй, фэнтези, драма, история\r\nКатегория: Манхва\r\nАвтор: Гера\r\nГод выпуска: 2022\r\nВозрастная рекомендация: R\r\nПрочее: Не Яой, Веб\r\nТеги: ГГ женщина, Зверолюди, Насилие, Мать и дочь, Разумные расы\r\nПереводчик: Melinoie Team\r\n",
"Name": "Persephone"
},
{
"Uri": "https://readmanga.live/kuroshitsuji_dj___black_sheep",
"FolderSize": 26853190,
"FilesInFolder": 110,
"AllFilesUnique": false,
"Description": "Все знают безупречного дворецкого поместья Фантомхайв. Но подождите...в этой истории что-то не так... что здесь забыла овца?!",
"Status": "Томов: 1, завершено\r\nПеревод: переведено\r\nКатегории: Додзинси, Манга\r\nАвтор: Kiyo\r\nВозрастная рекомендация: PG-13\r\nПереводчик: Manga-Kya\r\n",
"Status": "Выпуск завершено\r\nПеревод: завершён\r\nКатегории: Додзинси, Манга\r\nАвтор: Kiyo\r\nВозрастная рекомендация: PG-13\r\nПереводчик: Manga-Kya\r\n",
"Name": "Kuroshitsuji dj - Black Sheep"
},
{
Expand All @@ -86,7 +86,7 @@
"FilesInFolder": 0,
"AllFilesUnique": false,
"Description": "4-кадровая манга дополнительно включенная в тома манги \"Город,в котором ты живешь\"",
"Status": "Томов: 1, завершено\r\nПеревод: переведено\r\nЖанры: повседневность, комедия\r\nКатегории: Ёнкома, Манга\r\nАвтор: Сэо Кодзи\r\nГод выпуска: 2008\r\nИздательство: Kodansha\r\nПереводчик: Aoshi Shinomori\r\n",
"Status": "Выпуск завершено\r\nПеревод: завершён\r\nЖанры: комедия повседневность\r\nКатегории: Манга, Ёнкома\r\nАвтор: Сэо Кодзи\r\nГод выпуска: 2008\r\nИздательство: Kodansha\r\nПереводчик: Aoshi Shinomori\r\n",
"Name": "Love Mate 2"
},
{
Expand All @@ -100,11 +100,11 @@
},
{
"Uri": "https://x.henchan.pro/manga/30720-yankee-my-home.html",
"FolderSize": 12983432,
"FolderSize": 9829916,
"FilesInFolder": 22,
"AllFilesUnique": true,
"Description": "",
"Status": "Аниме/манга Оригинальные работы\r\nАвтор Kawaisaw\r\nПереводчик BLANDR\r\nЯзык На русском\r\n",
"Name": "YANKEE MY HOME!"
}
]
]
10 changes: 9 additions & 1 deletion Tests/Tests.Entities/Library/Update.cs
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,10 @@
namespace Tests.Entities.Library
{
[TestFixture]
[Parallelizable(ParallelScope.None)]
public class Update : TestClass
{
[Test]
[Parallelizable(ParallelScope.None)]
public async Task TestUpdate()
{
var library = new LibraryViewModel();
Expand Down Expand Up @@ -53,6 +53,10 @@ void OnLogReceived(LogEventStruct les)
[Test]
public async Task UpdateMangaWithPause()
{
using (var context = Repository.GetEntityContext())
foreach (var forDelete in await context.Get<IManga>().ToListAsync().ConfigureAwait(false))
await context.Delete(forDelete).ConfigureAwait(false);

var events = new List<LibraryViewModelArgs>();
void LibraryOnLibraryChanged(object sender, LibraryViewModelArgs e)
{
Expand Down Expand Up @@ -105,6 +109,10 @@ void LibraryOnLibraryChanged(object sender, LibraryViewModelArgs e)
[Test]
public async Task UpdateManyMangas()
{
using (var context = Repository.GetEntityContext())
foreach (var forDelete in await context.Get<IManga>().ToListAsync().ConfigureAwait(false))
await context.Delete(forDelete).ConfigureAwait(false);

var library = new LibraryViewModel();
var ids = Enumerable.Range(40_000, 2500).ToList();

Expand Down
2 changes: 1 addition & 1 deletion Tests/Tests.Entities/Manga/BonusesChapter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ public async Task ReadmangaBonus()
[Test, MintManga]
public async Task MintmangaBonus()
{
var manga = await Mangas.CreateFromWeb(new Uri("https://mintmanga.live/harukana_receive")).ConfigureAwait(false);
var manga = await Mangas.CreateFromWeb(new Uri($"{Grouple.Constants.MintmangaHost}harukana_receive")).ConfigureAwait(false);
await manga.Parser.UpdateContent(manga).ConfigureAwait(false);
var chapters = manga.Volumes.SelectMany(v => v.Container).OfType<Grouple.GroupleChapter>();
Assert.AreEqual(1, chapters.Count(c => c.VolumeNumber == 1 && c.Number == 0));
Expand Down
4 changes: 2 additions & 2 deletions Tests/Tests.Entities/Manga/MangaMove.cs
Original file line number Diff line number Diff line change
Expand Up @@ -34,12 +34,12 @@ public async Task CreateReadmangaWithHistoryAndMove()

// Если сайт больше не редиректит, осталась возможность редиректа вручную в клиенте.
if (manga.Uri == readmangaUri)
manga.Uri = new Uri("https://mintmanga.live/btooom_");
manga.Uri = new Uri($"{Grouple.Constants.MintmangaHost}btooom_");

await context.Save(manga).ConfigureAwait(false);

var volume = new Volume();
volume.Container.Add(new Chapter(new Uri("https://mintmanga.live/vzryv_/vol1/1?mtr=1"), string.Empty));
volume.Container.Add(new Chapter(new Uri($"{Grouple.Constants.MintmangaHost}vzryv_/vol1/1?mtr=1"), string.Empty));

var chartersNotInHistory = History.GetItemsWithoutHistory(volume);
Assert.AreEqual(0, chartersNotInHistory.Count);
Expand Down
2 changes: 1 addition & 1 deletion Tests/Tests.Entities/Manga/MintmangaStructure.cs
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ public class MintmangaStructure : TestClass
[Test]
public async Task AddMintmangaWithExtra()
{
var chapters = await GetCountOfChapters("https://mintmanga.live/love_mate").ConfigureAwait(false);
var chapters = await GetCountOfChapters($"{Grouple.Constants.MintmangaHost}love_mate").ConfigureAwait(false);
Assert.AreEqual(168, chapters);
}

Expand Down
4 changes: 3 additions & 1 deletion Tests/Tests.Entities/Manga/ReadmangaCensored.cs
Original file line number Diff line number Diff line change
Expand Up @@ -33,14 +33,16 @@ public async Task NotCensoredReadmanga()
[Test]
public async Task CensoredReadmanga()
{
var login = new GroupleLogin() { Name = "[email protected]", Password = "JUadiSHrosiv" };
await login.DoLogin(ReadmangaPlugin.Manga);
var manga = await Get($"{Grouple.Constants.ReadmangaHost}school_teacher/vol2/10?mtr=1").ConfigureAwait(false);
var chapter = manga.Volumes.Single(v => v.Number == 2).Container.ToList()[5];
await parser.UpdatePages(chapter).ConfigureAwait(false);
Assert.IsTrue(chapter.Container.First().ImageLink.IsAbsoluteUri);
}

[Test]
[TestCase("https://mintmanga.live/in_the_first_grade")]
[TestCase("https://m.mintmanga.live/in_the_first_grade")]
[TestCase("https://readmanga.live/shaman_warrior")]
[TestCase("https://readmanga.live/the_magician_s_bride")]
[NonParallelizable]
Expand Down
4 changes: 2 additions & 2 deletions Tests/Tests.Entities/MangaInfos.cs
Original file line number Diff line number Diff line change
Expand Up @@ -47,10 +47,10 @@ public static class Readmanga

public static class Mintmanga
{
[InfoCache("https://mintmanga.live/persefona", true)]
[InfoCache("https://m.mintmanga.live/persefona", true)]
public static MangaInfo Persefona;

[InfoCache("https://mintmanga.live/love_mate", false)]
[InfoCache("https://m.mintmanga.live/love_mate", false)]
public static MangaInfo LoveMate;
}

Expand Down
2 changes: 1 addition & 1 deletion VersionInfo.cs
Original file line number Diff line number Diff line change
Expand Up @@ -11,4 +11,4 @@
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]

[assembly: AssemblyVersion("1.51.9.39")]
[assembly: AssemblyVersion("1.51.10.40")]

0 comments on commit 0cac0c7

Please sign in to comment.