Skip to content

Commit

Permalink
feat(route): recover route konachan (#16934)
Browse files Browse the repository at this point in the history
* feat(route): recover route konachan

* fix(yande): correct maintainers list format

* fix: namespace name

---------
  • Loading branch information
NekoAria authored Sep 26, 2024
1 parent 1d22c0a commit 6e99633
Show file tree
Hide file tree
Showing 5 changed files with 93 additions and 77 deletions.
8 changes: 0 additions & 8 deletions lib/router.js
Original file line number Diff line number Diff line change
Expand Up @@ -47,14 +47,6 @@ router.get('/huya/live/:id', lazyloadRouteHandler('./routes/huya/live'));
// f-droid
// router.get('/fdroid/apprelease/:app', lazyloadRouteHandler('./routes/fdroid/apprelease'));

// konachan
router.get('/konachan/post/popular_recent', lazyloadRouteHandler('./routes/konachan/post-popular-recent'));
router.get('/konachan.com/post/popular_recent', lazyloadRouteHandler('./routes/konachan/post-popular-recent'));
router.get('/konachan.net/post/popular_recent', lazyloadRouteHandler('./routes/konachan/post-popular-recent'));
router.get('/konachan/post/popular_recent/:period', lazyloadRouteHandler('./routes/konachan/post-popular-recent'));
router.get('/konachan.com/post/popular_recent/:period', lazyloadRouteHandler('./routes/konachan/post-popular-recent'));
router.get('/konachan.net/post/popular_recent/:period', lazyloadRouteHandler('./routes/konachan/post-popular-recent'));

// PornHub
// router.get('/pornhub/category/:caty', lazyloadRouteHandler('./routes/pornhub/category'));
// router.get('/pornhub/search/:keyword', lazyloadRouteHandler('./routes/pornhub/search'));
Expand Down
67 changes: 0 additions & 67 deletions lib/routes-deprecated/konachan/post-popular-recent.js

This file was deleted.

7 changes: 7 additions & 0 deletions lib/routes/konachan/namespace.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
import type { Namespace } from '@/types';

export const namespace: Namespace = {
name: 'Konachan.com Anime Wallpapers',
url: 'konachan.com',
description: `konachan post`,
};
84 changes: 84 additions & 0 deletions lib/routes/konachan/post.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
import { Route } from '@/types';
import got from '@/utils/got';
import queryString from 'query-string';

export const route: Route = {
path: '/post/popular_recent/:period?',
categories: ['picture'],
example: '/konachan/post/popular_recent/1d',
parameters: {
period: '展示时间',
},
radar: [
{
source: ['konachan.com/post'],
},
],
name: 'Popular Recent Posts',
maintainers: ['magic-akari', 'NekoAria'],
description: `| 最近 24 小时 | 最近一周 | 最近一月 | 最近一年 |
| ------- | -------- | ------- | -------- |
| 1d | 1w | 1m | 1y |`,
handler,
};

async function handler(ctx) {
const { period = '1d' } = ctx.req.param();

const response = await got({
url: 'https://konachan.com/post/popular_recent.json',
searchParams: queryString.stringify({
period,
}),
});

const posts = response.data;

const titles = {
'1d': 'Last 24 hours',
'1w': 'Last week',
'1m': 'Last month',
'1y': 'Last year',
};

const mime = {
jpg: 'jpeg',
png: 'png',
};

const title = titles[period];

return {
title: `${title} - konachan.com`,
link: `https://konachan.com/post/popular_recent?period=${period}`,
item: posts.map((post) => ({
title: post.tags,
id: `${ctx.path}#${post.id}`,
guid: `${ctx.path}#${post.id}`,
link: `https://konachan.com/post/show/${post.id}`,
author: post.author,
pubDate: new Date(post.created_at * 1e3).toUTCString(),
description: (() => {
const result = [`<img src="${post.sample_url}" />`];
result.push(`<p>Rating:${post.rating}</p> <p>Score:${post.score}</p>`);
if (post.source) {
result.push(`<a href="${post.source}">Source</a>`);
}
if (post.parent_id) {
result.push(`<a href="https://konachan.com/post/show/${post.parent_id}">Parent</a>`);
}
return result.join('');
})(),
media: {
content: {
url: post.file_url,
type: `image/${mime[post.file_ext]}`,
},
thumbnail: {
url: post.preview_url,
},
},
category: post.tags.split(/\s+/),
})),
};
}
4 changes: 2 additions & 2 deletions lib/routes/yande/post.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,10 @@ export const route: Route = {
},
],
name: 'posts',
maintainers: ['fashioncj'],
maintainers: ['fashioncj', 'NekoAria'],
description: `| 最近 24 小时 | 最近一周 | 最近一月 | 最近一年 |
| ------- | -------- | ------- | -------- |
| 1d | 1w | 1m |1y|`,
| 1d | 1w | 1m | 1y |`,
handler,
};

Expand Down

0 comments on commit 6e99633

Please sign in to comment.