From 773d3455ae424237855e03c931dad632b597a600 Mon Sep 17 00:00:00 2001 From: Imran Remtulla Date: Sun, 10 Nov 2024 02:27:00 -0500 Subject: [PATCH 1/3] Uptodown - fix broken web scraping logic (#1956) --- lib/app_sources/uptodown.dart | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/lib/app_sources/uptodown.dart b/lib/app_sources/uptodown.dart index e59998c3..fa447b8c 100644 --- a/lib/app_sources/uptodown.dart +++ b/lib/app_sources/uptodown.dart @@ -42,19 +42,16 @@ class Uptodown extends AppSource { String? version = html.querySelector('div.version')?.innerHtml; String? name = html.querySelector('#detail-app-name')?.innerHtml.trim(); String? author = html.querySelector('#author-link')?.innerHtml.trim(); - var detailElements = html.querySelectorAll('#technical-information td'); - String? appId = (detailElements.elementAtOrNull(2))?.innerHtml.trim(); - String? dateStr = (detailElements.elementAtOrNull(29))?.innerHtml.trim(); + var detailElements = html + .querySelectorAll('#technical-information td') + .map((e) => e.innerHtml.trim()) + .where((e) => !e.startsWith('<')) + .toList(); + String? appId = detailElements.elementAtOrNull(0); + String? dateStr = detailElements.elementAtOrNull(6); String? fileId = html.querySelector('#detail-app-name')?.attributes['data-file-id']; - String? extension = html - .querySelectorAll('td') - .where((e) => e.text.toLowerCase().trim() == 'file type') - .firstOrNull - ?.nextElementSibling - ?.text - .toLowerCase() - .trim(); + String? extension = detailElements.elementAtOrNull(7)?.toLowerCase(); return Map.fromEntries([ MapEntry('version', version), MapEntry('appId', appId), From 52b2d0868c0d12d33529b7744a1b346d3cc2c591 Mon Sep 17 00:00:00 2001 From: Imran Remtulla Date: Sun, 10 Nov 2024 02:42:26 -0500 Subject: [PATCH 2/3] Add signature info to README (#1957) --- README.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index c6502781..4591c959 100644 --- a/README.md +++ b/README.md @@ -58,7 +58,13 @@ Or, contribute some configurations to the website by creating a PR at [this repo alt="Get it on F-Droid" height="80">](https://f-droid.org/packages/dev.imranr.obtainium.fdroid/) -[PGP Public Key](https://keyserver.ubuntu.com/pks/lookup?search=contact%40imranr.dev&fingerprint=on&op=index) +Verification info: +- Package ID: `dev.imranr.obtainium` +- SHA-256 Hash of Signing Certificate: `B3:53:60:1F:6A:1D:5F:D6:60:3A:E2:F5:0B:E8:0C:F3:01:36:7B:86:B6:AB:8B:1F:66:24:3D:A9:6C:D5:73:62` + - Note: The above signature is also valid for the F-Droid flavour of Obtainium, thanks to [reproducible builds](https://f-droid.org/docs/Reproducible_Builds/). +- [PGP Public Key](https://keyserver.ubuntu.com/pks/lookup?search=contact%40imranr.dev&fingerprint=on&op=index) (to verify APK hashes) + + ## Limitations - For some sources, data is gathered using Web scraping and can easily break due to changes in website design. In such cases, more reliable methods may be unavailable. From 83616b7a7981fc52e871fc78d28e1caf8f98e929 Mon Sep 17 00:00:00 2001 From: Imran Remtulla Date: Sun, 10 Nov 2024 02:46:25 -0500 Subject: [PATCH 3/3] Upgrade packages, increment version --- pubspec.lock | 44 ++++++++++++++++++++++---------------------- pubspec.yaml | 4 ++-- 2 files changed, 24 insertions(+), 24 deletions(-) diff --git a/pubspec.lock b/pubspec.lock index 85b44dd0..44e86297 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -231,10 +231,10 @@ packages: dependency: "direct main" description: name: device_info_plus - sha256: c4af09051b4f0508f6c1dc0a5c085bf014d5c9a4a0678ce1799c2b4d716387a0 + sha256: f545ffbadee826f26f2e1a0f0cbd667ae9a6011cc0f77c0f8f00a969655e6e95 url: "https://pub.dev" source: hosted - version: "11.1.0" + version: "11.1.1" device_info_plus_platform_interface: dependency: transitive description: @@ -420,26 +420,26 @@ packages: dependency: "direct main" description: name: flutter_local_notifications - sha256: "674173fd3c9eda9d4c8528da2ce0ea69f161577495a9cc835a2a4ecd7eadeb35" + sha256: "725145682706fb0e5a30f93e5cb64f3df7ed7743de749bd555b22bf75ee718c0" url: "https://pub.dev" source: hosted - version: "17.2.4" + version: "18.0.0" flutter_local_notifications_linux: dependency: transitive description: name: flutter_local_notifications_linux - sha256: c49bd06165cad9beeb79090b18cd1eb0296f4bf4b23b84426e37dd7c027fc3af + sha256: "8f685642876742c941b29c32030f6f4f6dacd0e4eaecb3efbb187d6a3812ca01" url: "https://pub.dev" source: hosted - version: "4.0.1" + version: "5.0.0" flutter_local_notifications_platform_interface: dependency: transitive description: name: flutter_local_notifications_platform_interface - sha256: "85f8d07fe708c1bdcf45037f2c0109753b26ae077e9d9e899d55971711a4ea66" + sha256: "6c5b83c86bf819cdb177a9247a3722067dd8cc6313827ce7c77a4b238a26fd52" url: "https://pub.dev" source: hosted - version: "7.2.0" + version: "8.0.0" flutter_localizations: dependency: transitive description: flutter @@ -819,10 +819,10 @@ packages: dependency: "direct main" description: name: share_plus - sha256: "3af2cda1752e5c24f2fc04b6083b40f013ffe84fb90472f30c6499a9213d5442" + sha256: "9c9bafd4060728d7cdb2464c341743adbd79d327cb067ec7afb64583540b47c8" url: "https://pub.dev" source: hosted - version: "10.1.1" + version: "10.1.2" share_plus_platform_interface: dependency: transitive description: @@ -835,10 +835,10 @@ packages: dependency: "direct main" description: name: shared_preferences - sha256: "746e5369a43170c25816cc472ee016d3a66bc13fcf430c0bc41ad7b4b2922051" + sha256: "95f9997ca1fb9799d494d0cb2a780fd7be075818d59f00c43832ed112b158a82" url: "https://pub.dev" source: hosted - version: "2.3.2" + version: "2.3.3" shared_preferences_android: dependency: transitive description: @@ -929,10 +929,10 @@ packages: dependency: "direct main" description: name: sqflite - sha256: "79a297dc3cc137e758c6a4baf83342b039e5a6d2436fcdf3f96a00adaaf2ad62" + sha256: "2d7299468485dca85efeeadf5d38986909c5eb0cd71fd3db2c2f000e6c9454bb" url: "https://pub.dev" source: hosted - version: "2.4.0" + version: "2.4.1" sqflite_android: dependency: transitive description: @@ -953,10 +953,10 @@ packages: dependency: transitive description: name: sqflite_darwin - sha256: "769733dddf94622d5541c73e4ddc6aa7b252d865285914b6fcd54a63c4b4f027" + sha256: "96a698e2bc82bd770a4d6aab00b42396a7c63d9e33513a56945cbccb594c2474" url: "https://pub.dev" source: hosted - version: "2.4.1-1" + version: "2.4.1" sqflite_platform_interface: dependency: transitive description: @@ -1145,10 +1145,10 @@ packages: dependency: transitive description: name: webview_flutter_android - sha256: "74693a212d990b32e0b7055d27db973a18abf31c53942063948cdfaaef9787ba" + sha256: dec83a8da0a2dcd8a25418534cc59348dbc2855fa1dd0cc929c62b6029fde392 url: "https://pub.dev" source: hosted - version: "4.0.0" + version: "4.0.1" webview_flutter_platform_interface: dependency: transitive description: @@ -1161,18 +1161,18 @@ packages: dependency: transitive description: name: webview_flutter_wkwebview - sha256: d4034901d96357beb1b6717ebf7d583c88e40cfc6eb85fe76dd1bf0979a9f251 + sha256: f14ee08021772fed913da8daebcfdeb46be457081e521e93e9918fe6cd1ce9e8 url: "https://pub.dev" source: hosted - version: "3.16.0" + version: "3.16.1" win32: dependency: transitive description: name: win32 - sha256: "10169d3934549017f0ae278ccb07f828f9d6ea21573bab0fb77b0e1ef0fce454" + sha256: "84ba388638ed7a8cb3445a320c8273136ab2631cd5f2c57888335504ddab1bc2" url: "https://pub.dev" source: hosted - version: "5.7.2" + version: "5.8.0" win32_registry: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index 7a04a4ee..304a5cb6 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -17,7 +17,7 @@ publish_to: 'none' # Remove this line if you wish to publish to pub.dev # https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html # In Windows, build-name is used as the major, minor, and patch parts # of the product and file versions while build-number is used as the build suffix. -version: 1.1.29+2286 +version: 1.1.30+2287 environment: sdk: '>=3.0.0 <4.0.0' @@ -38,7 +38,7 @@ dependencies: cupertino_icons: ^1.0.5 path_provider: ^2.0.11 flutter_fgbg: ^0.6.0 - flutter_local_notifications: ^17.0.0 + flutter_local_notifications: ^18.0.0 provider: ^6.0.3 http: ^1.0.0 webview_flutter: ^4.0.0