from threading import Thread, Lock from pony.orm import db_session, select, commit from datetime import datetime, timedelta from json import load as jsload from os.path import abspath, dirname, join # Custom Modules from modules import parsers, keyboards, helpers from modules.crypter import crypt_password, decrypt_password from modules.database import User, Data, ParsedData, Settings, Document from modules.api import ClasseVivaAPI, ApiServerError, FileNotOwnedError with open(join(dirname(abspath(__file__)), "settings.json")) as settings_file: js_settings = jsload(settings_file) bot = Bot(js_settings["token"]) updatesEvery = js_settings["updateEveryMin"] restrictedMode = js_settings["restrictedMode"] updateLock = Lock() @db_session(retry=3) def runUserUpdate(chatId, long_fetch, runDatetime, sendMessages=True): api = ClasseVivaAPI() if helpers.userLogin(chatId, api, _quiet=True): userdata = Data.get(chatId=chatId) settings = Settings.get(chatId=chatId) try: data = helpers.fetchStrict(api) except ApiServerError: return
from json import load as jsload from os.path import abspath, dirname, join from stem import Signal from stem.control import Controller from modules import parsers from modules.crypter import decrypt_password from modules.database import User, Data, ParsedData with open(join(dirname(abspath(__file__)), "../settings.json")) as settings_file: js_settings = jsload(settings_file) maxMessageLength = 4096 adminIds = js_settings["admins"] bot = Bot(js_settings["token"]) def renewProxy(): if js_settings["useProxy"]: with Controller.from_port( address=js_settings["torProxyIP"], port=js_settings["torControlPort"]) as controller: controller.authenticate(password=js_settings["torControlPassword"]) controller.signal(Signal.NEWNYM) def getProxy(): if js_settings["useProxy"]: proxyIP = "socks5://{}:{}".format(js_settings["torProxyIP"], js_settings["torProxyPort"])
from modules import helpers, keyboards from modules.api import AuthenticationFailedError, IliadApi from modules.crypter import crypt_password, decrypt_password from modules.database import User, Data try: f = open('token.txt', 'r') token = f.readline().strip() f.close() except FileNotFoundError: token = input(" * Incolla qui il token di BotFather: ") f = open('token.txt', 'w') f.write(token) f.close() bot = Bot(token) updatesEvery = 30 # minutes @db_session def runUserUpdate(chatId): user = User.get(chatId=chatId) api = IliadApi(user.username, decrypt_password(chatId)) try: api.load() except AuthenticationFailedError: helpers.clearUserData(chatId) return helpers.fetchAndStore(api, chatId) user.remainingCalls = 3
from threading import Thread from pony.orm import db_session, commit from modules.database import User, Clip from modules import keyboards, inline, helpers try: with open('token.txt', 'r') as f: token = f.readline().strip() except FileNotFoundError: token = environ.get("CLIPSHARE_BOT_TOKEN") if token == "": raise ValueError("The Bot token is empty! Use the token.txt file or " "the `CLIPSHARE_BOT_TOKEN` environment variable.") bot = Bot(token) @db_session def reply(msg): chatId = msg['chat']['id'] text = msg['text'] name = msg['from']['first_name'] if not User.exists(lambda u: u.chatId == chatId): User(chatId=chatId) user = User.get(chatId=chatId) if user.status == "newclip": if text == "/cancel": user.status = "normal"
from pony.orm import db_session from modules.api import GeometryDashApi, ApiRequestError from modules.database import User try: f = open('token.txt', 'r') token = f.readline().strip() f.close() except FileNotFoundError: token = input(" * Paste here the API Token: ") f = open('token.txt', 'w') f.write(token) f.close() bot = Bot(token) api = GeometryDashApi() @db_session def reply(msg): chatId = msg['from']['id'] text = msg['text'] name = msg['from']['first_name'] if not User.exists(lambda u: u.chatId == chatId): User(chatId=chatId) user = User.get(chatId=chatId) if text.startswith("/geticon"):
# Python Libraries from time import sleep from telepotpro import Bot, glance from telepotpro.namedtuple import InlineQueryResultArticle, InputTextMessageContent from threading import Thread from json import load as jsload from os.path import abspath, dirname, join from modules import keyboards with open(join(dirname(abspath(__file__)), "settings.json")) as settings_file: js_settings = jsload(settings_file) bot = Bot(js_settings["token"]) dataMap = {} def reply(msg): chatId = msg['chat']['id'] if chatId > 0: bot.sendMessage( chatId, "Hi! I'm the Fs In Chat Bot 👋\n" "You can type @fsinchatbot on any chat to display a message " "with a button every user can press to pay respects!\n\n" "Press the button below to try now!", parse_mode="HTML", reply_markup=keyboards.tryInline()) def button_press(msg): msgIdent = msg['inline_message_id']
def setBot(token): global bot bot = Bot(token)
from time import sleep from telepotpro import Bot, glance from telepotpro.namedtuple import InlineQueryResultArticle, InputTextMessageContent from threading import Thread from json import load as jsload from os.path import abspath, dirname, join from hashlib import sha256 from requests import post from requests.utils import requote_uri with open(join(dirname(abspath(__file__)), "settings.json")) as settings_file: settings = jsload(settings_file) bot = Bot(settings["token"]) def expandUrl(url: str): header = { "Authorization": settings["bitlyAuth"], "Content-Type": "application/json" } params = {"bitlink_id": requote_uri(url)} try: response = post("https://api-ssl.bitly.com/v4/expand", json=params, headers=header) data = response.json() long = data["long_url"] except Exception: long = url return long
from telepotpro.exception import * from pony.orm import db_session, select from os.path import abspath, dirname, join from json import load as jsload from time import sleep from threading import Thread from datetime import datetime from modules.apiHelpers import ApiHelpers from modules.database import User, Message from modules import keyboards, dbQuery with open(join(dirname(abspath(__file__)), "settings.json")) as settings_file: js_settings = jsload(settings_file) bot = Bot(js_settings["token"]) helpers = ApiHelpers(js_settings) forwardChannel = js_settings["forwardChannel"] makersita = -1001108947027 @db_session def getUserString(user, forceName: bool = False): if user.username != "" and not forceName: return f"@{user.username}" fullname = " ".join((user.firstName, user.lastName)) return f"<a href=\"tg://user?id={user.chatId}\">{fullname}</a>" def getPosChar(n: int): chars = {