This commit is contained in:
Imran Remtulla
2022-12-20 18:00:22 -05:00
parent 9a129d41df
commit 6a21045e5b
16 changed files with 181 additions and 173 deletions

View File

@@ -25,8 +25,9 @@ class APKMirror extends AppSource {
@override
Future<APKDetails> getLatestAPKDetails(
String standardUrl, Map<String, String> additionalData,
{bool trackOnly = false}) async {
String standardUrl,
Map<String, String> additionalSettings,
) async {
Response res = await get(Uri.parse('$standardUrl/feed'));
if (res.statusCode == 200) {
String? titleString = parse(res.body)

View File

@@ -32,7 +32,7 @@ class FDroid extends AppSource {
@override
String? tryInferringAppId(String standardUrl,
{Map<String, String> additionalData = const {}}) {
{Map<String, String> additionalSettings = const {}}) {
return Uri.parse(standardUrl).pathSegments.last;
}
@@ -60,8 +60,9 @@ class FDroid extends AppSource {
@override
Future<APKDetails> getLatestAPKDetails(
String standardUrl, Map<String, String> additionalData,
{bool trackOnly = false}) async {
String standardUrl,
Map<String, String> additionalSettings,
) async {
String? appId = tryInferringAppId(standardUrl);
return getAPKUrlsFromFDroidPackagesAPIResponse(
await get(Uri.parse('https://f-droid.org/api/v1/packages/$appId')),

View File

@@ -9,7 +9,7 @@ class FDroidRepo extends AppSource {
FDroidRepo() {
name = tr('fdroidThirdPartyRepo');
additionalSourceAppSpecificFormItems = [
additionalSourceAppSpecificSettingFormItems = [
[
GeneratedFormItem('appIdOrName',
label: tr('appIdOrName'),
@@ -32,9 +32,10 @@ class FDroidRepo extends AppSource {
@override
Future<APKDetails> getLatestAPKDetails(
String standardUrl, Map<String, String> additionalData,
{bool trackOnly = false}) async {
String? appIdOrName = additionalData['appIdOrName'];
String standardUrl,
Map<String, String> additionalSettings,
) async {
String? appIdOrName = additionalSettings['appIdOrName'];
if (appIdOrName == null) {
throw NoReleasesError();
}

View File

@@ -49,7 +49,7 @@ class GitHub extends AppSource {
])
];
additionalSourceAppSpecificFormItems = [
additionalSourceAppSpecificSettingFormItems = [
[
GeneratedFormItem('includePrereleases',
label: tr('includePrereleases'),
@@ -110,14 +110,15 @@ class GitHub extends AppSource {
@override
Future<APKDetails> getLatestAPKDetails(
String standardUrl, Map<String, String> additionalData,
{bool trackOnly = false}) async {
var includePrereleases = additionalData['includePrereleases'] == 'true';
String standardUrl,
Map<String, String> additionalSettings,
) async {
var includePrereleases = additionalSettings['includePrereleases'] == 'true';
var fallbackToOlderReleases =
additionalData['fallbackToOlderReleases'] == 'true';
additionalSettings['fallbackToOlderReleases'] == 'true';
var regexFilter =
additionalData['filterReleaseTitlesByRegEx']?.isNotEmpty == true
? additionalData['filterReleaseTitlesByRegEx']
additionalSettings['filterReleaseTitlesByRegEx']?.isNotEmpty == true
? additionalSettings['filterReleaseTitlesByRegEx']
: null;
Response res = await get(Uri.parse(
'https://${await getCredentialPrefixIfAny()}api.$host/repos${standardUrl.substring('https://$host'.length)}/releases'));
@@ -149,7 +150,7 @@ class GitHub extends AppSource {
continue;
}
var apkUrls = getReleaseAPKUrls(releases[i]);
if (apkUrls.isEmpty && !trackOnly) {
if (apkUrls.isEmpty && additionalSettings['trackOnly'] != 'true') {
continue;
}
targetRelease = releases[i];

View File

@@ -25,8 +25,9 @@ class GitLab extends AppSource {
@override
Future<APKDetails> getLatestAPKDetails(
String standardUrl, Map<String, String> additionalData,
{bool trackOnly = false}) async {
String standardUrl,
Map<String, String> additionalSettings,
) async {
Response res = await get(Uri.parse('$standardUrl/-/tags?format=atom'));
if (res.statusCode == 200) {
var standardUri = Uri.parse(standardUrl);

View File

@@ -23,14 +23,15 @@ class IzzyOnDroid extends AppSource {
@override
String? tryInferringAppId(String standardUrl,
{Map<String, String> additionalData = const {}}) {
{Map<String, String> additionalSettings = const {}}) {
return FDroid().tryInferringAppId(standardUrl);
}
@override
Future<APKDetails> getLatestAPKDetails(
String standardUrl, Map<String, String> additionalData,
{bool trackOnly = false}) async {
String standardUrl,
Map<String, String> additionalSettings,
) async {
String? appId = tryInferringAppId(standardUrl);
return FDroid().getAPKUrlsFromFDroidPackagesAPIResponse(
await get(

View File

@@ -24,8 +24,9 @@ class Mullvad extends AppSource {
@override
Future<APKDetails> getLatestAPKDetails(
String standardUrl, Map<String, String> additionalData,
{bool trackOnly = false}) async {
String standardUrl,
Map<String, String> additionalSettings,
) async {
Response res = await get(Uri.parse('$standardUrl/en/download/android'));
if (res.statusCode == 200) {
var version = parse(res.body)

View File

@@ -18,8 +18,9 @@ class Signal extends AppSource {
@override
Future<APKDetails> getLatestAPKDetails(
String standardUrl, Map<String, String> additionalData,
{bool trackOnly = false}) async {
String standardUrl,
Map<String, String> additionalSettings,
) async {
Response res =
await get(Uri.parse('https://updates.$host/android/latest.json'));
if (res.statusCode == 200) {

View File

@@ -23,8 +23,9 @@ class SourceForge extends AppSource {
@override
Future<APKDetails> getLatestAPKDetails(
String standardUrl, Map<String, String> additionalData,
{bool trackOnly = false}) async {
String standardUrl,
Map<String, String> additionalSettings,
) async {
Response res = await get(Uri.parse('$standardUrl/rss?path=/'));
if (res.statusCode == 200) {
var parsedHtml = parse(res.body);

View File

@@ -9,7 +9,7 @@ class SteamMobile extends AppSource {
SteamMobile() {
host = 'store.steampowered.com';
name = tr('steam');
additionalSourceAppSpecificFormItems = [
additionalSourceAppSpecificSettingFormItems = [
[
GeneratedFormItem('app',
label: tr('app'), required: true, opts: apks.entries.toList())
@@ -29,11 +29,12 @@ class SteamMobile extends AppSource {
@override
Future<APKDetails> getLatestAPKDetails(
String standardUrl, Map<String, String> additionalData,
{bool trackOnly = false}) async {
String standardUrl,
Map<String, String> additionalSettings,
) async {
Response res = await get(Uri.parse('https://$host/mobile'));
if (res.statusCode == 200) {
var apkNamePrefix = additionalData['app'];
var apkNamePrefix = additionalSettings['app'];
if (apkNamePrefix == null) {
throw NoReleasesError();
}