From c66f7774948ac80a314c8f6fd323ca1970d1f349 Mon Sep 17 00:00:00 2001 From: Nikhil Badyal Date: Sun, 14 Apr 2024 23:07:31 +0530 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20Save=20patch=20time?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/app.py | 4 ++-- src/utils.py | 14 +++++++++++++- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/src/app.py b/src/app.py index 84cb323bb2..2622e6c7f4 100644 --- a/src/app.py +++ b/src/app.py @@ -13,7 +13,7 @@ from src.config import RevancedConfig from src.downloader.sources import apk_sources from src.exceptions import BuilderError, DownloadError, PatchingFailedError -from src.utils import slugify +from src.utils import slugify, time_zone class APP(object): @@ -81,7 +81,7 @@ def get_output_file_name(self: Self) -> str: ------- a string that represents the output file name for an APK file. """ - current_date = datetime.now(timezone("Asia/Kolkata")) + current_date = datetime.now(timezone(time_zone)) formatted_date = current_date.strftime("%Y%b%d_%I%M%p").upper() return f"Re-{self.app_name}-{slugify(self.app_version)}-{formatted_date}-output.apk" diff --git a/src/utils.py b/src/utils.py index 44c93d45e9..5437017eab 100644 --- a/src/utils.py +++ b/src/utils.py @@ -5,12 +5,15 @@ import re import subprocess import sys +import time +from datetime import datetime from json import JSONDecodeError from pathlib import Path from typing import Any import requests from loguru import logger +from pytz import timezone from requests import Response, Session from src.downloader.sources import APK_MIRROR_APK_CHECK @@ -37,6 +40,7 @@ session.headers["User-Agent"] = request_header["User-Agent"] updates_file = "updates.json" changelogs: dict[str, dict[str, str]] = {} +time_zone = "Asia/Kolkata" def update_changelog(name: str, response: dict[str, str]) -> None: @@ -217,6 +221,12 @@ def contains_any_word(string: str, words: list[str]) -> bool: return any(word in string for word in words) +def datetime_to_ms_epoch(dt: datetime) -> int: + """Returns millis since epoch.""" + microseconds = time.mktime(dt.timetuple()) * 1000000 + dt.microsecond + return int(round(microseconds / float(1000))) + + def save_patch_info(app: Any) -> None: """Save version info a patching resources used to a file.""" try: @@ -232,5 +242,7 @@ def save_patch_info(app: Any) -> None: "patches_version": app.resource["patches"]["version"], "cli_version": app.resource["cli"]["version"], "patches_json_version": app.resource["patches_json"]["version"], + "ms_epoch_since_patched": datetime_to_ms_epoch(datetime.now(timezone(time_zone))), + "date_patched": datetime.now(timezone(time_zone)), } - Path(updates_file).write_text(json.dumps(old_version, indent=4) + "\n") + Path(updates_file).write_text(json.dumps(old_version, indent=4, default=str) + "\n")