diff --git a/docs/en/anime.md b/docs/en/anime.md
index b319d6669..493b12437 100644
--- a/docs/en/anime.md
+++ b/docs/en/anime.md
@@ -18,6 +18,12 @@ For more tags, please go to [Search torrent](https://bangumi.moe/search/index)
+## Comics Kingdom
+
+### Archive
+
+
+
## Hanime.tv
### Recently updated
diff --git a/docs/en/picture.md b/docs/en/picture.md
index 304aaf937..2bf7960d9 100644
--- a/docs/en/picture.md
+++ b/docs/en/picture.md
@@ -104,10 +104,6 @@ pageClass: routes
-## ComicsKingdom Comic Strips
-
-
-
## DailyArt
diff --git a/lib/router.js b/lib/router.js
index 68b5c928b..153c3b33a 100644
--- a/lib/router.js
+++ b/lib/router.js
@@ -3681,7 +3681,7 @@ router.get('/mcdonalds/:category', lazyloadRouteHandler('./routes/mcdonalds/news
router.get('/gocomics/:name', lazyloadRouteHandler('./routes/gocomics/index'));
// Comics Kingdom
-router.get('/comicskingdom/:name', lazyloadRouteHandler('./routes/comicskingdom/index'));
+// router.get('/comicskingdom/:name', lazyloadRouteHandler('./routes/comicskingdom/index'));
// Media Digest
router.get('/mediadigest/:range/:category?', lazyloadRouteHandler('./routes/mediadigest/category'));
diff --git a/lib/routes/comicskingdom/index.js b/lib/v2/comicskingdom/index.js
similarity index 58%
rename from lib/routes/comicskingdom/index.js
rename to lib/v2/comicskingdom/index.js
index 18b333335..eb94afd0e 100644
--- a/lib/routes/comicskingdom/index.js
+++ b/lib/v2/comicskingdom/index.js
@@ -1,27 +1,25 @@
const got = require('@/utils/got');
const cheerio = require('cheerio');
+const { parseDate } = require('@/utils/parse-date');
+const { art } = require('@/utils/render');
+const path = require('path');
module.exports = async (ctx) => {
- const baseURL = 'https://www.comicskingdom.com';
+ const baseURL = 'https://comicskingdom.com';
const name = ctx.params.name;
const url = `${baseURL}/${name}/archive`;
- const response = await got({
- method: 'get',
- url,
- });
+ const { data } = await got(url);
- const data = response.data;
const $ = cheerio.load(data);
// Determine Comic and Author from main page
const comic = $('title').text().replace('Comics Kingdom - ', '').trim();
- const author = $('div.author p').text();
+ const author = $('.feature-title h2').text();
// Find the links for all non-archived items
- const links = $('div.archive-tile[data-is-blocked=false]')
- .map((i, el) => $(el).find('a[data-prem="Comic Tile"]').first().attr('href'))
- .get()
- .map((url) => `${baseURL}${url}`);
+ const links = $('div.tile')
+ .toArray()
+ .map((el) => $(el).find('a').first().attr('href'));
if (links.length === 0) {
throw `Comic Not Found - ${name}`;
@@ -29,17 +27,16 @@ module.exports = async (ctx) => {
const items = await Promise.all(
links.map((link) =>
ctx.cache.tryGet(link, async () => {
- const detailResponse = await got({
- method: 'get',
- url: link,
- });
+ const detailResponse = await got(link);
const content = cheerio.load(detailResponse.data);
- const title = content('title').text();
+ const title = content('meta[property="og:description"]').attr('content');
const image = content('meta[property="og:image"]').attr('content');
- const description = `
`;
+ const description = art(path.join(__dirname, 'templates/desc.art'), {
+ image,
+ });
// Pull the date out of the URL
- const pubDate = new Date(link.split('/').slice(-3).join('/')).toUTCString();
+ const pubDate = parseDate(link.substring(link.lastIndexOf('/') + 1), 'YYYY-MM-DD');
return {
title,
@@ -54,8 +51,10 @@ module.exports = async (ctx) => {
);
ctx.state.data = {
- title: `${comic} - Comics Kingdom`,
+ title: comic,
link: url,
+ image: $('.feature-logo').attr('src'),
item: items,
+ language: 'en-US',
};
};
diff --git a/lib/v2/comicskingdom/maintainer.js b/lib/v2/comicskingdom/maintainer.js
new file mode 100644
index 000000000..b057fd96b
--- /dev/null
+++ b/lib/v2/comicskingdom/maintainer.js
@@ -0,0 +1,3 @@
+module.exports = {
+ '/:name': ['stjohnjohnson'],
+};
diff --git a/lib/v2/comicskingdom/radar.js b/lib/v2/comicskingdom/radar.js
new file mode 100644
index 000000000..11b9cb4ab
--- /dev/null
+++ b/lib/v2/comicskingdom/radar.js
@@ -0,0 +1,13 @@
+module.exports = {
+ 'comicskingdom.com': {
+ _name: 'Comics Kingdom',
+ '.': [
+ {
+ title: 'Archive',
+ docs: 'https://docs.rsshub.app/anime.html#comics-kingdom',
+ source: ['/:name/*', '/:name'],
+ target: '/comicskingdom/:name',
+ },
+ ],
+ },
+};
diff --git a/lib/v2/comicskingdom/router.js b/lib/v2/comicskingdom/router.js
new file mode 100644
index 000000000..5d645842b
--- /dev/null
+++ b/lib/v2/comicskingdom/router.js
@@ -0,0 +1,3 @@
+module.exports = (router) => {
+ router.get('/:name', require('./index'));
+};
diff --git a/lib/v2/comicskingdom/templates/desc.art b/lib/v2/comicskingdom/templates/desc.art
new file mode 100644
index 000000000..81223ed27
--- /dev/null
+++ b/lib/v2/comicskingdom/templates/desc.art
@@ -0,0 +1 @@
+