mirror of
https://github.com/ImranR98/Obtainium.git
synced 2025-10-25 20:03:44 +02:00
Progress
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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')),
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
@@ -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];
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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(
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user