Exemple #1
0
def get_not_in_corp_users(message):  # получение пользователей не сост в орг
    """
    :param message: message
    :return: список пользователей не сост в орг
    """
    global connect
    global cursor
    try:
        cursor.execute(
            "SELECT ID,NickName,Profession,UserRank FROM Users WHERE Comp=0 ORDER BY RANDOM() LIMIT 5"
        )
        users = cursor.fetchall()
        msg_text = ''
        markup = types.InlineKeyboardMarkup()
        for i in range(len(users)):
            if users[i][0] != message.from_user.id:
                call = '/invite' + str(users[i][0])
                msg = 'Пригласить  ' + str(users[i][1])
                key = types.InlineKeyboardButton(msg, callback_data=call)
                markup.add(key)
                msg_text += str(users[i][1]) + ' ' + str(
                    users[i][2]) + ' Ранг: ' + str(users[i][3])
                msg_text += '\n'
        return msg_text, markup
    except Exception as e:
        print(e)
        functions.error_log(e)
        return 'Нет свободных людей', None
Exemple #2
0
def corp_info(user_id):  # информация об орг
    """
    :param user_id: user_id
    :return: информация об орг
    """
    global connect
    global cursor
    try:
        corp_id = get_corp(user_id)
        cursor.execute(
            "SELECT Description FROM Companies WHERE ID={0}".format(corp_id))
        desc = cursor.fetchall()[0][0]
        cursor.execute(
            "SELECT Name FROM Companies WHERE ID={0}".format(corp_id))
        company = cursor.fetchall()[0][0]
        owner = get_owner_nickname(corp_id)
        msg = '<b>Название:</b> <i>{0}</i>\n<b>Владелец:</b> <i>{1}</i>\n<b>Описание:</b> <i>{2}</i>'.format(
            company, owner, desc)
        return msg
    except IndexError:
        msg = 'Вы не состоите в организации'
        return msg
    except Exception as e:
        msg = 'Что-то пошло не по плану'
        functions.error_log(e)
        return msg
Exemple #3
0
def give_new_prof(user_id):  # выдача новой профессии
    """
    :param user_id: user_id
    :return: выдача списка новых профессий
    """
    global connect
    global cursor
    try:
        user_markup = telebot.types.ReplyKeyboardMarkup(True, False)
        cursor.execute("SELECT Spec FROM Users WHERE ID=" + str(user_id))
        prof_id = cursor.fetchall()
        prof_id = prof_id[0][0]
        if prof_id == 'low':
            prof_id = 3
        elif prof_id == 'gym':
            prof_id = 0
        else:
            prof_id = 1
        cursor.execute(
            "SELECT Prof FROM Profs WHERE ProfRank<={0} AND ProfCheck={1}".
            format(str(get_user_rank(user_id)), prof_id))
        profs = cursor.fetchall()
        for i in range(len(profs)):
            print(i)
            user_markup.row(profs[i][0])
        args.bot.send_message(
            parse_mode='HTML',
            chat_id=user_id,
            text='<i>У вас появилась возможность выбрать новую профессию</i>',
            reply_markup=user_markup)
        args.new_prof_list.append(user_id)
    except Exception as e:
        functions.error_log(e)
Exemple #4
0
def get_top(top):  # генерация списка топов
    """
    :param top: orgs/rich
    :return: список топов
    """
    global connect
    global cursor
    try:
        if top == 'rich':
            cursor.execute(
                "SELECT NickName FROM Users ORDER BY Money DESC LIMIT 10")
            users = cursor.fetchall()
            cursor.execute("SELECT ID FROM Users ORDER BY Money DESC LIMIT 10")
            users_id = cursor.fetchall()
            res = '<b>Топ-10 богачей:</b>'
            for i in range(len(users)):
                res += '\n{}) {}: {}'.format(i + 1, users[i][0],
                                             get_balance(int(users_id[i][0])))
            cursor.close()
            connect.close()
            return res
        elif top == 'orgs':
            cursor.execute(
                "SELECT Name FROM Companies ORDER BY CountWorks DESC LIMIT 10")
            orgs = cursor.fetchall()
            res = '<b>Топ-10 организаций:</b>'
            for i in range(len(orgs)):
                res += '\n{}) {}:'.format(i + 1, orgs[i][0])
            return res
    except Exception as e:
        functions.error_log(e)
Exemple #5
0
def get_workers(user_id):  # получение работников для выдачи задания
    """
    :param user_id: user_id
    :return: список работников для выдачи задания
    """
    global connect
    global cursor
    try:
        cursor.execute(
            "SELECT ID,NickName,Profession,UserRank FROM Users WHERE Status='{0}' ORDER BY RANDOM() LIMIT 5"
            .format(str(args.waitStatus)))
        users = cursor.fetchall()
        msg_text = ''
        markup = types.InlineKeyboardMarkup()
        for i in range(len(users)):
            if users[i][0] != user_id and int(users[i][0]) != 0:
                call = '/task' + str(users[i][0])
                msg = 'Дать задание  ' + str(users[i][1])
                key = types.InlineKeyboardButton(msg, callback_data=call)
                markup.add(key)
                msg_text += str(users[i][1]) + ' ' + str(
                    users[i][2]) + ' Ранг: ' + str(users[i][3])
                msg_text += '\n'
        return msg_text, markup
    except Exception as e:
        functions.error_log(e)
        return 'Некому дать задание', None
Exemple #6
0
def set_profession(message, in_prof_arr):  # установка профессии пользователя
    """
    :param message: message
    :param in_prof_arr: dataBase.set_profession
    :return: установка профессии
    """
    global connect
    global cursor
    try:
        if message.text in args.techList:
            cursor.execute("SELECT Spec FROM Users WHERE ID=" +
                           str(message.from_user.id))
            spec = cursor.fetchall()
            if spec[0][0] == 'tech':
                cursor.execute(
                    "UPDATE Users SET Profession='{0}' WHERE ID='{1}'".format(
                        str(message.text), str(message.from_user.id)))
            else:
                cursor.close()
                connect.close()
                return False
        elif message.text in args.gumList:
            cursor.execute("SELECT Spec FROM Users WHERE ID=" +
                           str(message.from_user.id))
            spec = cursor.fetchall()
            if spec[0][0] == 'gum':
                cursor.execute(
                    "UPDATE Users SET Profession='{0}' WHERE ID='{1}'".format(
                        str(message.text), str(message.from_user.id)))
            else:
                cursor.close()
                connect.close()
                return False
        elif in_prof_arr:
            cursor.execute(
                "UPDATE Users SET Profession='{0}' WHERE ID='{1}'".format(
                    str(message.text), str(message.from_user.id)))
        else:
            cursor.execute("SELECT Spec FROM Users WHERE ID=" +
                           str(message.from_user.id))
            spec = cursor.fetchall()
            if spec[0][0] == 'low':
                cursor.execute(
                    "UPDATE Users SET Profession='{0}' WHERE ID='{1}'".format(
                        str(message.text), str(message.from_user.id)))
            else:
                cursor.close()
                connect.close()
                return False
        connect.commit()
        return True
    except Exception as e:
        functions.error_log(e)
Exemple #7
0
def add_quest(arguments):  # функция добавления квеста
    """
    :param arguments: аргументы, требуемые для добавления квеста
    :return: добавление квеста
    """
    global connect
    global cursor
    try:
        cursor.execute("INSERT INTO Quests VALUES(?, ?, ?, ?)", arguments)
        connect.commit()
    except Exception as e:
        functions.error_log(e)
Exemple #8
0
def refresh_corp_tasks(user_id):  # обновление заданий орг
    """
    :param user_id: user_id
    :return: обновление заданий орг
    """
    global connect
    global cursor
    try:
        cursor.execute(
            "DELETE FROM CorpTasks WHERE ownerID={0}".format(user_id))
        connect.commit()
    except Exception as e:
        functions.error_log(e)
Exemple #9
0
def get_spec(user_id):  # получение специализации пользователя
    """
    :param user_id: user_id
    :return: специальность пользователя
    """
    global connect
    global cursor
    try:
        cursor.execute("SELECT Spec FROM Users WHERE ID=" + str(user_id))
        spec = cursor.fetchall()
        return spec[0][0]
    except Exception as e:
        functions.error_log(e)
Exemple #10
0
def set_nickname(nickname):  # установка ника пользователя
    """
    :param nickname: message
    :return: установка никнейма
    """
    global connect
    global cursor
    try:
        cursor.execute("UPDATE Users SET NickName='{0}' WHERE ID={1}".format(
            str(nickname.text), nickname.from_user.id))
        connect.commit()
    except Exception as e:
        functions.error_log(e)
Exemple #11
0
def get_nickname(user_id):  # получение ника пользователя
    """
    :param user_id: user_id
    :return: ник пользователя
    """
    global connect
    global cursor
    try:
        cursor.execute("SELECT NickName FROM Users WHERE ID=" + str(user_id))
        name = cursor.fetchall()
        return name[0][0]
    except Exception as e:
        functions.error_log(e)
Exemple #12
0
def set_owner(user_id, owner):  # установка владельца орг
    """
    :param user_id: user_id
    :param owner: 1/0
    :return: установка владельца орг
    """
    global connect
    global cursor
    try:
        cursor.execute("UPDATE Users SET isOwner={0} WHERE ID={1}".format(
            owner, user_id))
        connect.commit()
    except Exception as e:
        functions.error_log(e)
Exemple #13
0
def upd_spec(user_id, spec):  # обновление специализации пользователя
    """
    :param user_id: user_id
    :param spec: user's spec
    :return: обновление специализации пользователя
    """
    global connect
    global cursor
    try:
        cursor.execute("UPDATE Users SET Spec='{0}' WHERE ID={1}".format(
            spec, str(user_id)))
        connect.commit()
    except Exception as e:
        functions.error_log(e)
Exemple #14
0
def upd_corp(user_id, company):  # обновление организации пользователя
    """
    :param user_id: user_id
    :param company: get_corp()
    :return: обновление организации пользователя
    """
    global connect
    global cursor
    try:
        cursor.execute("UPDATE Users SET Comp={0} WHERE ID={1}".format(
            company, user_id))
        connect.commit()
    except Exception as e:
        functions.error_log(e)
Exemple #15
0
def upd_is_corp_task(user_id, is_corp):  # обновление corptask
    """
    :param user_id: user_id
    :param is_corp: is_corp_task
    :return: обновление corptask
    """
    global connect
    global cursor
    try:
        cursor.execute("UPDATE Users SET corptask={0} WHERE ID={1}".format(
            is_corp, user_id))
        connect.commit()
    except Exception as e:
        functions.error_log(e)
Exemple #16
0
def get_corp(user_id):  # получение ID орг
    """
    :param user_id: user_id
    :return: ID орг
    """
    global connect
    global cursor
    try:
        cursor.execute("SELECT Comp FROM Users WHERE ID=" + str(user_id))
        corp_id = cursor.fetchall()[0][0]
        return corp_id
    except Exception as e:
        functions.error_log(e)
        return True
Exemple #17
0
def get_balance(user_id):  # получение баланса
    """
    :param user_id: user_id
    :return: баланс пользователя
    """
    global connect
    global cursor
    try:
        cursor.execute("SELECT Money FROM Users WHERE ID=" + str(user_id))
        money = str(cursor.fetchall()[0][0])
        money += str(args.currency)
        return money
    except Exception as e:
        functions.error_log(e)
Exemple #18
0
def upd_task_now(user_id, task):  # обновление текущего задания
    """
    :param user_id: user_id
    :param task: task
    :return: обновление текущего задания
    """
    global connect
    global cursor
    try:
        cursor.execute("UPDATE Users SET TaskNow='{0}' WHERE ID={1}".format(
            str(task), str(user_id)))
        connect.commit()
    except Exception as e:
        functions.error_log(e)
Exemple #19
0
def get_all_users():
    """
    :return: все id из users
    """
    global connect
    global cursor
    try:
        tmp = []
        cursor.execute("SELECT ID FROM Users")
        res = cursor.fetchall()
        for i in range(len(res)):
            tmp.append(int(res[i][0]))
        return tmp
    except Exception as e:
        functions.error_log(e)
Exemple #20
0
def set_last_worker(user_id, worker_id):
    """
    :param user_id: user_id
    :param worker_id: worker_id
    :return: установить id пользователя, которому было выдано последнее задание
    """
    global connect
    global cursor
    try:
        cursor.execute(
            "UPDATE HiddenInfo SET lastWorker={0} WHERE ID={1}".format(
                worker_id, user_id))
        connect.commit()
    except Exception as e:
        functions.error_log(e)
Exemple #21
0
def minus_money(user_id, money):  # вычитание денег
    """
    :param user_id: user_id
    :param money: money count
    :return: вычитание денег
    """
    global connect
    global cursor
    try:
        cursor.execute(
            "UPDATE Users SET Money=Money-{0} WHERE ID='{1}'".format(
                money, user_id))
        connect.commit()
    except Exception as e:
        functions.error_log(e)
Exemple #22
0
def plus_count_works(user_id):  # указание количества выполненных работ
    """
    :param user_id: user_id
    :return: добавление +1 к выполненным работам
    """
    global connect
    global cursor
    try:
        cursor.execute(
            "UPDATE Users SET Count_Works=Count_Works+1 WHERE ID='{0}'".format(
                str(user_id)))
        connect.commit()
        up_lvl(user_id)  # повышение ранга
    except Exception as e:
        functions.error_log(e)
Exemple #23
0
def is_owner(user_id):  # проверка является ли пользователь главой орг
    """
    :param user_id: user_id
    :return: является ли пользователь главой орг
    """
    global connect
    global cursor
    try:
        cursor.execute("SELECT Comp FROM Users WHERE isOwner=1 AND ID=" +
                       str(user_id))
        res = cursor.fetchall()[0][0]
        return True
    except Exception as e:
        functions.error_log(e)
        return False
Exemple #24
0
def get_avatar_params(user_id):
    """
    :param user_id: user_id
    :return: получение параметров аватара для его генерации и отправки пользователю
    """
    global connect
    global cursor
    try:
        cursor.execute(
            "SELECT Head, Body, Face FROM Avatars WHERE ID={0}".format(
                user_id))
        res = cursor.fetchall()[0]
        return res
    except Exception as e:
        functions.error_log(e)
Exemple #25
0
def get_last_worker(user_id):
    """
    :param user_id: user_id
    :return: id пользователя, которому было выдано последнее задание
    """
    global connect
    global cursor
    try:
        cursor.execute(
            "SELECT lastWorker FROM HiddenInfo WHERE ID={0}".format(user_id))
        worker = cursor.fetchall()[0][0]
        return int(worker)
    except Exception as e:
        functions.error_log(e)
        return 0
Exemple #26
0
def upd_corp_count_works(
        corp_id):  # увеличение количества выполненных работ орг
    """
    :param corp_id: user_id
    :return: увеличение количества выполненных работ орг
    """
    global connect
    global cursor
    try:
        cursor.execute(
            "UPDATE Companies SET CountWorks=CountWorks+1 WHERE ID={0}".format(
                corp_id))
        connect.commit()
    except Exception as e:
        functions.error_log(e)
Exemple #27
0
def get_members_id(corp_id):  # получение ID членов орг
    """
    :param corp_id: get_corp()
    :return: ID членов орг
    """
    global connect
    global cursor
    try:
        cursor.execute("SELECT ID FROM Users WHERE Comp={0}".format(corp_id))
        users = cursor.fetchall()
        res = []
        for i in range(len(users)):
            res.append(int(users[i][0]))
        return res
    except Exception as e:
        functions.error_log(e)
Exemple #28
0
def get_corp_name(comp_id):  # получение названия орг
    """
    :param comp_id: get_comp()
    :return: название орг
    """
    global connect
    global cursor
    try:
        if comp_id == 0:
            return '0'
        cursor.execute("SELECT Name FROM Companies WHERE ID=" + str(comp_id))
        corp_name = cursor.fetchall()[0][0]
        return corp_name
    except Exception as e:
        functions.error_log(e)
        return True
Exemple #29
0
def get_avatar(ids):  # полученя аватара (мб не работает)
    """
    :param ids: user_id
    :return: аватар (мб не работает)
    """
    global connect
    global cursor
    try:
        cursor.execute("SELECT photo FROM userPhotos WHERE ID=" + str(ids))
        photo = cursor.fetchall()[0][0]
        photo = photo.encode()[2:-1]
        print(photo)
        print(type(photo))
        return photo
    except Exception as e:
        functions.error_log(e)
Exemple #30
0
def is_free(user_id):  # проверить выполняет ли пользователь какую-либо работу
    """
    :param user_id: user_id
    :return: выполняет ли пользователь какую-либо работу сейчас
    """
    global connect
    global cursor
    try:
        cursor.execute("SELECT Status FROM Users WHERE ID=" + str(user_id))
        status = cursor.fetchall()
        if status[0][0] == args.waitStatus:
            return True
        else:
            return False
    except Exception as e:
        functions.error_log(e)