示例#1
0
文件: bots.py 项目: Svyat935/PonPon
def update_bot(user_id: int, bots: List[Updater]):
    bot = None
    token = get_token_bot(user_id)
    for updater in bots:
        if updater.bot.token == token:
            bot = updater
            break
    else:
        bot = Updater(token)
        bots.append(bot)
    if bot:
        # Clear all handlers before add news
        if bot.dispatcher.handlers:
            handlers = bot.dispatcher.handlers[0]
            for handler in handlers:
                bot.dispatcher.remove_handler(handler)

        with create_session() as db:
            behaviours = db.query(TelegramBehavior).filter_by(
                user_id=user_id).all()
            scripts = []
            for behaviour in behaviours:
                scripts.append(
                    db.query(TelegramScript).filter_by(
                        id=behaviour.script_id).first())
            change_bot_updater(bot, scripts)
示例#2
0
文件: user.py 项目: Svyat935/PonPon
 def validator_for_name(cls, variable):
     with create_session() as session:
         user_found = (session.query(UserModel).filter(
             UserModel.name == variable).first())
         if user_found:
             raise ValueError("User exist!")
         return variable
示例#3
0
def delete_all_scripts(user_id: int) -> None:
    with create_session() as db:
        telegram_behaviors = db.query(TelegramBehavior).filter_by(
            user_id=user_id)
        behaviors = telegram_behaviors.all()
        telegram_behaviors.delete()
        for behavior in behaviors:
            db.query(TelegramScript).filter_by(id=behavior.script_id).delete()
        db.commit()
示例#4
0
def get_scripts(user_id: int) -> List[TelegramScript]:
    with create_session() as db:
        behaviours = db.query(TelegramBehavior).filter_by(
            user_id=user_id).all()
        scripts = []
        for behaviour in behaviours:
            scripts.append(
                db.query(TelegramScript).filter_by(
                    id=behaviour.script_id).first())
    return scripts
示例#5
0
文件: user.py 项目: Svyat935/PonPon
 def validator_for_email(cls, variable):
     pattern = re.compile(
         "(^|\s)[-a-z0-9_.]+@([-a-z0-9]+\.)+[a-z]{2,6}(\s|$)")
     is_valid = pattern.match(variable)
     if is_valid:
         with create_session() as session:
             user_found = (session.query(UserModel).filter(
                 UserModel.email == variable).first())
             if user_found:
                 raise ValueError("Email exist!")
             return variable
     else:
         raise ValueError("Email isn't valid!")
示例#6
0
文件: auth.py 项目: Svyat935/PonPon
def authentication(user: UserCredentials) -> Optional[str]:
    with create_session() as session:
        user_found = (session.query(UserModel).filter(
            (UserModel.email == user.credentials)
            | (UserModel.name == user.credentials)).first())
        if user_found and bcrypt.checkpw(user.password.encode(),
                                         user_found.password.encode()):
            token = jwt.encode(
                {
                    "user_id": user_found.id,
                    "exp": JWT_EXPIRE_DAY
                },
                key=JWT_KEY,
                algorithm="HS256",
            )
            return token
    return None
示例#7
0
 async def create(self):
     with create_session() as db:
         db.add(self)
         db.commit()
         db.refresh(self)
     return self
示例#8
0
文件: bots.py 项目: Svyat935/PonPon
def get_token_bot(user_id) -> Optional[str]:
    with create_session() as db:
        settings = db.query(Settings).filter_by(user_id=user_id).first()
        if settings:
            return settings.telegram_token
    return None
示例#9
0
def get_user(user_id: Optional[int]) -> Optional[User]:
    if user_id is not None:
        with create_session() as db:
            user = db.query(User).filter_by(id=user_id).first()
            return user
    return None