コード例 #1
0
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
コード例 #2
0
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"])
コード例 #3
0
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
コード例 #4
0
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"
コード例 #5
0
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"):
コード例 #6
0
# 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']
コード例 #7
0
def setBot(token):
    global bot
    bot = Bot(token)
コード例 #8
0
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
コード例 #9
0
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 = {