From d53b10c2ceb1f550bf84f5001116d87ca8c8b9a6 Mon Sep 17 00:00:00 2001 From: MikeZeDev Date: Fri, 23 Dec 2022 09:40:41 +0000 Subject: [PATCH] Bilibi : support more languages (#5248) * Bilibi : support more languages They support more language than Hakuneko. Currently we have 2 connectors : english and chinese. Urls are differents Now they also have mangas in french, spanish, and indonesian. We just have to put a language code in one api request The catch is : you get a different manga ID for a manga and a language. Therefore for gathering mangas list we have to performs loops with langage codes but there will be more manga displayed in list (if we make Bibili 'english' => multilingual') Or we make different connectors with just a langage code different But then, since url of website is the same, clipboard copy wont work as many website will have the exact same url --- src/web/mjs/connectors/BilibiliComics.mjs | 3 ++- src/web/mjs/connectors/BilibiliComicsES.mjs | 16 ++++++++++++++++ src/web/mjs/connectors/BilibiliComicsFR.mjs | 16 ++++++++++++++++ src/web/mjs/connectors/BilibiliComicsID.mjs | 16 ++++++++++++++++ src/web/mjs/connectors/BilibiliManhua.mjs | 3 +++ 5 files changed, 53 insertions(+), 1 deletion(-) create mode 100644 src/web/mjs/connectors/BilibiliComicsES.mjs create mode 100644 src/web/mjs/connectors/BilibiliComicsFR.mjs create mode 100644 src/web/mjs/connectors/BilibiliComicsID.mjs diff --git a/src/web/mjs/connectors/BilibiliComics.mjs b/src/web/mjs/connectors/BilibiliComics.mjs index 0fa0d5498c..d739b189fb 100644 --- a/src/web/mjs/connectors/BilibiliComics.mjs +++ b/src/web/mjs/connectors/BilibiliComics.mjs @@ -5,8 +5,9 @@ export default class BilibiliComics extends BilibiliManhua { constructor() { super(); super.id = 'bilibili-comics'; - super.label = 'Bilibili Comics'; + super.label = 'Bilibili Comics (English)'; this.tags = [ 'webtoon', 'english' ]; this.url = 'https://www.bilibilicomics.com'; + this.lang = 'en'; } } \ No newline at end of file diff --git a/src/web/mjs/connectors/BilibiliComicsES.mjs b/src/web/mjs/connectors/BilibiliComicsES.mjs new file mode 100644 index 0000000000..04691a4ad4 --- /dev/null +++ b/src/web/mjs/connectors/BilibiliComicsES.mjs @@ -0,0 +1,16 @@ +import BilibiliManhua from './BilibiliManhua.mjs'; + +export default class BilibiliComicsES extends BilibiliManhua { + + constructor() { + super(); + super.id = 'bilibili-comics-es'; + super.label = 'Bilibili Comics (Spanish)'; + this.tags = [ 'webtoon', 'spanish' ]; + this.url = 'https://www.bilibilicomics.com'; + this.lang = 'es'; + } + get icon() { + return '/img/connectors/bilibili-comics'; + } +} diff --git a/src/web/mjs/connectors/BilibiliComicsFR.mjs b/src/web/mjs/connectors/BilibiliComicsFR.mjs new file mode 100644 index 0000000000..394f48b9b2 --- /dev/null +++ b/src/web/mjs/connectors/BilibiliComicsFR.mjs @@ -0,0 +1,16 @@ +import BilibiliManhua from './BilibiliManhua.mjs'; + +export default class BilibiliComicsFR extends BilibiliManhua { + + constructor() { + super(); + super.id = 'bilibili-comics-fr'; + super.label = 'Bilibili Comics (French)'; + this.tags = [ 'webtoon', 'french' ]; + this.url = 'https://www.bilibilicomics.com'; + this.lang = 'fr'; + } + get icon() { + return '/img/connectors/bilibili-comics'; + } +} diff --git a/src/web/mjs/connectors/BilibiliComicsID.mjs b/src/web/mjs/connectors/BilibiliComicsID.mjs new file mode 100644 index 0000000000..f008f8de8e --- /dev/null +++ b/src/web/mjs/connectors/BilibiliComicsID.mjs @@ -0,0 +1,16 @@ +import BilibiliManhua from './BilibiliManhua.mjs'; + +export default class BilibiliComicsID extends BilibiliManhua { + + constructor() { + super(); + super.id = 'bilibili-comics-id'; + super.label = 'Bilibili Comics (Indonesian)'; + this.tags = [ 'webtoon', 'indonesian' ]; + this.url = 'https://www.bilibilicomics.com'; + this.lang = 'id'; + } + get icon() { + return '/img/connectors/bilibili-comics'; + } +} diff --git a/src/web/mjs/connectors/BilibiliManhua.mjs b/src/web/mjs/connectors/BilibiliManhua.mjs index 685e8f7899..d2cc6f7763 100644 --- a/src/web/mjs/connectors/BilibiliManhua.mjs +++ b/src/web/mjs/connectors/BilibiliManhua.mjs @@ -9,6 +9,7 @@ export default class BilibiliManhua extends Connector { super.label = '哔哩哔哩 漫画 (Bilibili Manhua)'; this.tags = [ 'manga', 'webtoon', 'chinese' ]; this.url = 'https://manga.bilibili.com'; + this.lang = 'cn'; this.config = { quality: { @@ -29,6 +30,8 @@ export default class BilibiliManhua extends Connector { const uri = new URL('/twirp/comic.v1.Comic' + path, this.url); uri.searchParams.set('device', 'pc'); uri.searchParams.set('platform', 'web'); + uri.searchParams.set('lang', this.lang); + uri.searchParams.set('sys_lang', this.lang); const request = new Request(uri, { method: 'POST', body: JSON.stringify(body),