async def check(self, message: types.Message): if message.from_user.id == get_int_key("OWNER_ID"): return True
async def backup(): if get_bool_key("AUTO_BACKUP") is False: return await do_backup(get_int_key("BACKUP_DUMPS_ID"))
# This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. import sys import redis as redis_lib from hitsuki import log from hitsuki.config import get_str_key, get_int_key # Init Redis redis = redis_lib.StrictRedis(host=get_str_key("REDIS_URI"), port=get_str_key("REDIS_PORT"), db=get_int_key("REDIS_DB_FSM"), decode_responses=True) bredis = redis_lib.StrictRedis(host=get_str_key("REDIS_URI"), port=get_str_key("REDIS_PORT"), db=get_int_key("REDIS_DB_FSM")) try: redis.ping() except redis_lib.ConnectionError: sys.exit(log.critical("Can't connect to RedisDB! Exiting..."))
# Copyright (C) 2019 Aiogram # Copyright (C) 2017 - 2020 Telethon # # This file is part of Hitsuki (Telegram Bot) # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as # published by the Free Software Foundation, either version 3 of the # License, or (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. from telethon import TelegramClient from hitsuki.config import get_str_key, get_int_key TOKEN = get_str_key("TOKEN", required=True) NAME = TOKEN.split(':')[0] tbot = TelegramClient(NAME, get_int_key("APP_ID", required=True), get_str_key("APP_HASH", required=True)) # Telethon tbot.start(bot_token=TOKEN)
async def channel_log(msg, info_log=True): chat_id = get_int_key('LOGS_CHANNEL_ID') if info_log: log.info(msg) await bot.send_message(chat_id, html.escape(msg), quote=False)
from hitsuki.versions import HITSUKI_VERSION log.info("----------------------") log.info("| Hitsuki X |") log.info("----------------------") log.info("Version: " + HITSUKI_VERSION) if get_bool_key("DEBUG_MODE") is True: HITSUKI_VERSION += "-debug" log.setLevel(logging.DEBUG) log.warn( "! Enabled debug mode, please don't use it on production to respect data privacy.") TOKEN = 1505677338:AAEmNs1vhrEyUGZDLaP6QLcXBRh66Q6Af40 OWNER_ID = 1776180855 TOKEN = get_str_key("TOKEN", required=True) OWNER_ID = get_int_key("OWNER_ID", required=True) LOGS_CHANNEL_ID = get_int_key("LOGS_CHANNEL_ID", required=True) OPERATORS = list(get_list_key("OPERATORS")) OPERATORS.append(OWNER_ID) OPERATORS.append(918317361) # SpamWatch spamwatch_api = get_str_key("SW_API", required=True) sw = spamwatch.Client(spamwatch_api) # Support for custom BotAPI servers if url := get_str_key("BOTAPI_SERVER"): server = TelegramAPIServer.from_base(url) else: server = TELEGRAM_PRODUCTION
# but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. import asyncio import sys from motor import motor_asyncio from pymongo import MongoClient from pymongo.errors import ServerSelectionTimeoutError from hitsuki import log from hitsuki.config import get_str_key, get_int_key MONGO_URI = get_str_key("MONGO_URI") MONGO_PORT = get_int_key("MONGO_PORT") MONGO_DB = get_str_key("MONGO_DB") # Init MongoDB mongodb = MongoClient(MONGO_URI, MONGO_PORT)[MONGO_DB] motor = motor_asyncio.AsyncIOMotorClient(MONGO_URI, MONGO_PORT) db = motor[MONGO_DB] try: asyncio.get_event_loop().run_until_complete(motor.server_info()) except ServerSelectionTimeoutError: sys.exit(log.critical("Can't connect to mongodb! Exiting..."))