kopia lustrzana https://github.com/badgen/badgen.net
45 wiersze
1.2 KiB
TypeScript
45 wiersze
1.2 KiB
TypeScript
import got from '../libs/got'
|
|
import { parseDocument } from 'yaml'
|
|
import { version, versionColor } from '../libs/utils'
|
|
import { createBadgenHandler, PathArgs } from '../libs/create-badgen-handler'
|
|
|
|
const F_DROID_METADATA_REPO_URL = 'https://gitlab.com/fdroid/fdroiddata/raw/master/metadata/'
|
|
|
|
const client = got.extend({ prefixUrl: F_DROID_METADATA_REPO_URL })
|
|
|
|
export default createBadgenHandler({
|
|
title: 'F-Droid',
|
|
examples: {
|
|
'/f-droid/v/org.schabi.newpipe': 'version',
|
|
'/f-droid/v/com.amaze.filemanager': 'version',
|
|
'/f-droid/license/org.tasks': 'license'
|
|
},
|
|
handlers: {
|
|
'/f-droid/:topic<v|license>/:appId': handler
|
|
}
|
|
})
|
|
|
|
async function handler ({ topic, appId }: PathArgs) {
|
|
const yaml = await client.get(`${appId}.yml`).text()
|
|
const metadata = parseDocument(yaml)
|
|
|
|
switch (topic) {
|
|
case 'v': {
|
|
const ver = metadata.get('CurrentVersion')
|
|
return {
|
|
subject: 'f-droid',
|
|
status: version(ver),
|
|
color: versionColor(ver)
|
|
}
|
|
}
|
|
case 'license': {
|
|
const license = metadata.get('License')
|
|
return {
|
|
subject: 'license',
|
|
status: license || 'unknown',
|
|
color: 'blue'
|
|
}
|
|
}
|
|
}
|
|
}
|