top10
All checks were successful
fetch npm modules / f0ck the f0cker (push) Successful in 26s

This commit is contained in:
Flummi 2024-02-18 02:18:43 +01:00
parent 6c6f739110
commit d69f9b8427
2 changed files with 54 additions and 0 deletions

View File

@ -1,5 +1,7 @@
import db from "../../inc/sql.mjs"; import db from "../../inc/sql.mjs";
import lib from "../lib.mjs"; import lib from "../lib.mjs";
import config from "../config.mjs";
import fetch from "flumm-fetch";
export default (router, tpl) => { export default (router, tpl) => {
router.get(/^\/ranking$/, async (req, res) => { router.get(/^\/ranking$/, async (req, res) => {
@ -53,5 +55,43 @@ export default (router, tpl) => {
} }
}); });
router.get(/^\/top10$/, async (req, res) => {
const d = new Date();
d.setMonth(d.getMonth() - 1);
const month = (d.getMonth() + 1).toString().padStart(2, '0');
const year = d.getFullYear();
const url = `${config.apis.stats.url1}/${year}-${month}/${config.apis.stats.url2}`;
const options = {
method: 'GET',
headers: {
Authorization: config.apis.stats.auth
}
};
const topres = await (await fetch(url, options)).text();
const list = topres.match(/(f0ck.me\/b\/)(?<link>.{8}\.\w*)/g).slice(0, 10).map(e => e.split('/')[2]);
const f0cks = [];
for(const l of list) {
const f = await db`
select id, username
from items
where dest = ${l}
limit 1
`;
f0cks.push(f[0]);
}
res.reply({
body: tpl.render('top10', {
f0cks,
year,
month,
tmp: null
}, req)
});
});
return router; return router;
}; };

14
views/top10.html Normal file
View File

@ -0,0 +1,14 @@
@include(snippets/header)
<h3>Top10 ({{ year }}-{{ month }})</h3>
<table class="table">
@each(f0cks as f0ck)
<tr>
<td><a href="//f0ck.me/{{ f0ck.id }}"><img src="//f0ck.me/t/{{ f0ck.id }}.webp" /></a></td>
<td><a href="//f0ck.me/{{ f0ck.id }}">{{ f0ck.id }}</a></td>
<td>{{ f0ck.username }}</td>
</tr>
@endeach
</table>
@include(snippets/footer)