From 773d3455ae424237855e03c931dad632b597a600 Mon Sep 17 00:00:00 2001 From: Imran Remtulla Date: Sun, 10 Nov 2024 02:27:00 -0500 Subject: [PATCH] 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 e59998c..fa447b8 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),