From 188950b265b7d55c874fac79e3aad1924c04e37c Mon Sep 17 00:00:00 2001 From: yasir Date: Mon, 27 Feb 2023 12:12:40 +0700 Subject: [PATCH] update --- Dockerfile | 2 +- docker-compose.yml | 2 +- misskaty/__init__.py | 3 +- misskaty/__main__.py | 3 -- misskaty/plugins/nightmodev2.py | 4 +-- misskaty/vars.py | 16 +---------- start.sh | 1 + update.py | 49 +++++++++++++++++++++++++++++++++ 8 files changed, 56 insertions(+), 24 deletions(-) create mode 100644 start.sh create mode 100644 update.py diff --git a/Dockerfile b/Dockerfile index c02df7e3..b0606283 100644 --- a/Dockerfile +++ b/Dockerfile @@ -9,4 +9,4 @@ FROM yasirarism/misskaty-docker:latest COPY . . # Set CMD Bot -CMD ["python3", "-m", "misskaty"] +CMD ["bash", "start.sh"] diff --git a/docker-compose.yml b/docker-compose.yml index bd79d343..44c218b4 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -5,5 +5,5 @@ services: build: context: . dockerfile: Dockerfile - command: python3 -m misskaty + command: bash start.sh restart: on-failure \ No newline at end of file diff --git a/misskaty/__init__.py b/misskaty/__init__.py index f9c23408..337db9ef 100644 --- a/misskaty/__init__.py +++ b/misskaty/__init__.py @@ -9,7 +9,7 @@ from apscheduler.jobstores.mongodb import MongoDBJobStore from pymongo import MongoClient from pyrogram import Client -from misskaty.vars import API_HASH, API_ID, BOT_TOKEN, DATABASE_URI, USER_SESSION +from misskaty.vars import API_HASH, API_ID, BOT_TOKEN, DATABASE_URI, USER_SESSION, TZ basicConfig( format="%(asctime)s - %(name)s - %(levelname)s - %(message)s", @@ -38,7 +38,6 @@ user = Client( session_string=USER_SESSION, ) -TZ = os.environ.get("TIME_ZONE", "Asia/Jakarta") pymonclient = MongoClient(DATABASE_URI) jobstores = { diff --git a/misskaty/__main__.py b/misskaty/__main__.py index 0e654fc6..b2acb61e 100644 --- a/misskaty/__main__.py +++ b/misskaty/__main__.py @@ -72,9 +72,6 @@ async def start_bot(): except Exception as e: LOGGER.error(str(e)) scheduler.start() - LOGGER.info(scheduler.get_jobs()) - if bool(scheduler.get_jobs()): - scheduler.start() if os.path.exists("restart.pickle"): with open('restart.pickle', 'rb') as status: chat_id, message_id = pickle.load(status) diff --git a/misskaty/plugins/nightmodev2.py b/misskaty/plugins/nightmodev2.py index 2ff5265f..664b2de2 100644 --- a/misskaty/plugins/nightmodev2.py +++ b/misskaty/plugins/nightmodev2.py @@ -8,11 +8,11 @@ from pyrogram.errors import (ChannelInvalid, ChannelPrivate, ChatAdminRequired, ChatNotModified) from pyrogram.types import ChatPermissions, InlineKeyboardButton, InlineKeyboardMarkup -from misskaty import BOT_NAME, BOT_USERNAME, TZ, app, scheduler +from misskaty import BOT_NAME, BOT_USERNAME, app, scheduler from misskaty.core.message_utils import * from misskaty.core.decorator.ratelimiter import ratelimiter from misskaty.core.decorator.permissions import adminsOnly -from misskaty.vars import COMMAND_HANDLER, LOG_CHANNEL +from misskaty.vars import COMMAND_HANDLER, LOG_CHANNEL, TZ __MODULE__ = "NightMode" __HELP__ = """Enable or disable nightmode (locks the chat at specified intervals everyday) diff --git a/misskaty/vars.py b/misskaty/vars.py index 072108a2..be9009aa 100644 --- a/misskaty/vars.py +++ b/misskaty/vars.py @@ -5,27 +5,12 @@ from dotenv import load_dotenv LOGGER = getLogger(__name__) -CONFIG_FILE_URL = environ.get("CONFIG_FILE_URL", "") -if len(CONFIG_FILE_URL) != 0: - try: - res = requests.get(CONFIG_FILE_URL) - if res.status_code == 200: - with open("config.env", "wb+") as f: - f.write(res.content) - else: - LOGGER.error(f"Failed to download config.env {res.status_code}") - except Exception as e: - LOGGER.error(f"CONFIG_FILE_URL: {e}") - -load_dotenv("config.env", override=True) - def getConfig(name: str): try: return environ[name] except: return "" - # Required ENV try: BOT_TOKEN = getConfig("BOT_TOKEN") @@ -39,6 +24,7 @@ try: except Exception as e: LOGGER.error(f"One or more env variables missing! Exiting now.\n{e}") sys.exit(1) +TZ = environ.get("TIME_ZONE", "Asia/Jakarta") COMMAND_HANDLER = environ.get("COMMAND_HANDLER", "! /").split() SUDO = list( { diff --git a/start.sh b/start.sh new file mode 100644 index 00000000..1d9128b9 --- /dev/null +++ b/start.sh @@ -0,0 +1 @@ +python3 update.py && python3 -m misskaty diff --git a/update.py b/update.py new file mode 100644 index 00000000..df996095 --- /dev/null +++ b/update.py @@ -0,0 +1,49 @@ +import requests +from subprocess import run as srun +import logging, os, dotenv + +LOGGER = logging.getLogger(__name__) + +CONFIG_FILE_URL = os.environ.get("CONFIG_FILE_URL", "") +try: + if len(CONFIG_FILE_URL) == 0: + raise TypeError + try: + res = requests.get(CONFIG_FILE_URL) + if res.status_code == 200: + with open("config.env", "wb+") as f: + f.write(res.content) + else: + LOGGER.error(f"config.env err: {res.status_code}") + except Exception as e: + LOGGER.error(f"ENV_URL: {e}") +except: + pass + +dotenv.load_dotenv("config.env", override=True) + +UPSTREAM_REPO = os.environ.get('UPSTREAM_REPO', '') +if len(UPSTREAM_REPO) == 0: + UPSTREAM_REPO = None + +UPSTREAM_BRANCH = os.environ.get("UPSTREAM_BRANCH", "") +if len(UPSTREAM_BRANCH) == 0: + UPSTREAM_BRANCH = "master" + +if UPSTREAM_REPO is not None: + if os.path.exists('.git'): + srun(["rm", "-rf", ".git"]) + + update = srun([f"git init -q \ + && git config --global user.email mail@yasir.eu.org \ + && git config --global user.name yasirarism \ + && git add . \ + && git commit -sm update -q \ + && git remote add origin {UPSTREAM_REPO} \ + && git fetch origin -q \ + && git reset --hard origin/{UPSTREAM_BRANCH} -q"], shell=True) + + if update.returncode == 0: + LOGGER.error('Successfully updated with latest commit from UPSTREAM_REPO') + else: + LOGGER.error('Something went wrong while updating, check UPSTREAM_REPO if valid or not!') \ No newline at end of file