From 925b1caedd1df7eb6cd486b2d3351b2c708d553f Mon Sep 17 00:00:00 2001 From: hikariatama Date: Sat, 28 May 2022 08:12:36 +0000 Subject: [PATCH] Add GeekTG compat; Continue integrating Heroku --- hikka/heroku.py | 6 ++++++ hikka/loader.py | 8 ++++---- hikka/main.py | 3 +++ hikka/utils.py | 38 +++++++++++++++++++++++++++++++++++--- 4 files changed, 48 insertions(+), 7 deletions(-) diff --git a/hikka/heroku.py b/hikka/heroku.py index 871e712..f96eee8 100644 --- a/hikka/heroku.py +++ b/hikka/heroku.py @@ -111,3 +111,9 @@ def get_repo(): repo.heads.master.set_tracking_branch(origin.refs.master) repo.heads.master.checkout(True) return repo + + +def init(): + """Will be run on every Heroku start""" + # Create repo if not found + get_repo() diff --git a/hikka/loader.py b/hikka/loader.py index 24784db..2d56bff 100644 --- a/hikka/loader.py +++ b/hikka/loader.py @@ -584,8 +584,8 @@ class Modules: @staticmethod def send_config_one( mod: "Module", - db: "Database", # noqa: F821 - translator: "Translator" = None, # noqa: F821 + db: "Database", # type: ignore + translator: "Translator" = None, # type: ignore skip_hook: bool = False, ): """Send config to single instance""" @@ -703,8 +703,8 @@ class Modules: async def send_ready_one( self, mod: Module, - client: "TelegramClient", # noqa: F821 - db: "Database", # noqa: F821 + client: "TelegramClient", # type: ignore + db: "Database", # type: ignore allclients: list, no_self_unload: bool = False, from_dlmod: bool = False, diff --git a/hikka/main.py b/hikka/main.py index db0388d..9b6df08 100755 --- a/hikka/main.py +++ b/hikka/main.py @@ -86,6 +86,9 @@ try: except Exception: pass +if "DYNO" in os.environ: + heroku.init() + def run_config( db: database.Database, diff --git a/hikka/utils.py b/hikka/utils.py index d9b8e23..13a540f 100755 --- a/hikka/utils.py +++ b/hikka/utils.py @@ -426,7 +426,7 @@ def merge(a: dict, b: dict) -> dict: async def set_avatar( - client: "TelegramClient", # noqa: F821 + client: "TelegramClient", # type: ignore peer: Entity, avatar: str, ) -> bool: @@ -454,7 +454,7 @@ async def set_avatar( async def asset_channel( - client: "TelegramClient", # noqa: F821 + client: "TelegramClient", # type: ignore title: str, description: str, *, @@ -526,7 +526,7 @@ async def asset_channel( async def dnd( - client: "TelegramClient", # noqa: F821 + client: "TelegramClient", # type: ignore peer: Entity, archive: Optional[bool] = True, ) -> bool: @@ -596,6 +596,10 @@ def get_named_platform() -> str: is_okteto = "OKTETO" in os.environ is_docker = "DOCKER" in os.environ is_lavhost = "LAVHOST" in os.environ + is_heroku = "DYNO" in os.environ + + if is_heroku: + return "♓️ Heroku" if is_docker: return "🐳 Docker" @@ -901,3 +905,31 @@ def get_lang_flag(countrycode: str) -> str: init_ts = time.perf_counter() + +# GeekTG Compatibility +def get_git_info(): + # https://github.com/GeekTG/Friendly-Telegram/blob/master/friendly-telegram/utils.py#L133 + try: + repo = git.Repo() + ver = repo.heads[0].commit.hexsha + except Exception: + ver = "" + + return [ + ver, + f"https://github.com/hikariatama/Hikka/commit/{ver}" + if ver + else "", + ] + + +def get_version_raw(): + """Get the version of the userbot""" + # https://github.com/GeekTG/Friendly-Telegram/blob/master/friendly-telegram/utils.py#L128 + from . import version + return ".".join(list(map(str, list(version.__version__)))) + + +get_platform_name = get_named_platform + +