This commit is contained in:
yasir 2023-02-27 12:12:40 +07:00
parent 641453eba5
commit 188950b265
8 changed files with 56 additions and 24 deletions

View file

@ -9,4 +9,4 @@ FROM yasirarism/misskaty-docker:latest
COPY . .
# Set CMD Bot
CMD ["python3", "-m", "misskaty"]
CMD ["bash", "start.sh"]

View file

@ -5,5 +5,5 @@ services:
build:
context: .
dockerfile: Dockerfile
command: python3 -m misskaty
command: bash start.sh
restart: on-failure

View file

@ -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 = {

View file

@ -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)

View file

@ -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__ = """<b>Enable or disable nightmode (locks the chat at specified intervals everyday)</b>

View file

@ -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(
{

1
start.sh Normal file
View file

@ -0,0 +1 @@
python3 update.py && python3 -m misskaty

49
update.py Normal file
View file

@ -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!')