RSSHub/lib/routes/fdroid/apprelease.js

34 lines
1.4 KiB
JavaScript

const got = require('@/utils/got');
const cheerio = require('cheerio');
module.exports = async (ctx) => {
const response = await got.get(`https://f-droid.org/en/packages/${ctx.params.app}/`);
const data = response.data;
const $ = cheerio.load(data);
const app_name = $('.package-title').find('h3').text().trim();
const app_descr = $('.package-title').find('.package-summary').text();
const items = [];
$('.package-versions-list')
.find('.package-version')
.each(function () {
const item = {};
const version = $(this).find('.package-version-header').find('a').eq(0).attr('name');
item.title = version;
item.guid = $(this).find('.package-version-header').find('a').eq(1).attr('name');
item.pubDate = new Date($(this).find('.package-version-header').text().split('Added on ')[1]).toUTCString();
item.description = [$(this).find('.package-version-download').html(), $(this).find('.package-version-requirement').html(), $(this).find('.package-version-source').html()].join('<br/>');
item.link = `https://f-droid.org/en/packages/${ctx.params.app}/#${version}`;
items.push(item);
});
ctx.state.data = {
title: `${app_name} releases on F-Droid`,
discription: app_descr,
link: `https://f-droid.org/en/packages/${ctx.params.app}/`,
item: items,
};
};