From a13e366c6a51f338b9901b2fe14a83ed6ebaf7cb Mon Sep 17 00:00:00 2001 From: Emilien <4016501+unixfox@users.noreply.github.com> Date: Thu, 2 Jan 2025 22:40:15 +0100 Subject: [PATCH] feat: Automatically fetch latest tgtg version on startup --- lib/toogoodtogo-api.js | 34 +++++++++++++++++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) diff --git a/lib/toogoodtogo-api.js b/lib/toogoodtogo-api.js index ff836a6..fa92528 100644 --- a/lib/toogoodtogo-api.js +++ b/lib/toogoodtogo-api.js @@ -3,12 +3,16 @@ import got from "got"; import { CookieJar } from "tough-cookie"; import { config } from "./config.js"; +let tgtgVersion = "24.12.0"; + +await refreshLatestTgtgVersion(); + const api = got.extend({ cookieJar: new CookieJar(), prefixUrl: "https://apptoogoodtogo.com/api/", headers: _.defaults(config.get("api.headers"), { "User-Agent": - "TGTG/24.6.1 Dalvik/2.1.0 (Linux; Android 12; SM-G920V Build/MMB29K)", + `TGTG/${tgtgVersion} Dalvik/2.1.0 (Linux; Android 12; SM-G920V Build/MMB29K)`, "Content-Type": "application/json; charset=utf-8", Accept: "application/json", "Accept-Language": "en-US", @@ -22,6 +26,7 @@ const api = got.extend({ statusCodes: [401, 403, 408, 413, 429, 500, 502, 503, 504, 521, 522, 524], }, }); + export function authByEmail() { const credentials = config.get("api.credentials"); @@ -103,3 +108,30 @@ function updateSession(token) { config.set("api.session.accessToken", token.access_token); return token; } + +async function refreshLatestTgtgVersion() { + try { + const gplayResponse = await got.get("https://play.google.com/store/apps/details?id=com.app.tgtg", { + resolveBodyOnly: true + }) + const candidateVersions = []; + const matchesInitDataCallback = gplayResponse.matchAll( + /