示例#1
0
def project_switch(message, flag):
    if flag == 1:
        keyboard = telebot.types.ReplyKeyboardMarkup(resize_keyboard=True, one_time_keyboard=True)
        keyboard.add('Отмена')
        bot.send_message(message.chat.id, 'Введите название проекта', reply_markup=keyboard)
        SetState(message.from_user.id, 21, cursor, db)
    elif flag == 2:
        projects = GetProjects(message.from_user.id, cursor)
        keyboard = telebot.types.InlineKeyboardMarkup()
        if len(projects) != 0:
            for i in range(0, len(projects)):
                keyboard.add(telebot.types.InlineKeyboardButton(text=projects[i][0],
                                                                callback_data='edit_project_' + str(projects[i][1])))
            bot.send_message(message.chat.id, 'Доступные для редактирования проекты', reply_markup=keyboard)
        else:
            bot.send_message(message.chat.id, 'Доступных для редактирования проектов нет',
                             reply_markup=get_keyboard(message.from_user.id))
    elif flag == 3:
        projects = GetAllProjects(cursor)
        keyboard = telebot.types.InlineKeyboardMarkup()
        if len(projects) != 0:
            for i in range(0, len(projects)):
                keyboard.add(telebot.types.InlineKeyboardButton(text=projects[i][0],
                                                                callback_data='look_project_' + str(projects[i][1])))
            bot.send_message(message.chat.id, 'Все проекты "Корпуса"', reply_markup=keyboard)
        else:
            bot.send_message(message.chat.id, 'Активных проектов нет',
                             reply_markup=get_keyboard(message.from_user.id))
    elif flag == 4:
        bot.delete_message(chat_id=message.chat.id, message_id=message.message_id)
        bot.send_message(message.chat.id, 'Работа с проектами завершена',
                         reply_markup=get_keyboard(message.from_user.id))
示例#2
0
def looking_profile(call):
    bot.delete_message(chat_id=call.message.chat.id,
                       message_id=call.message.message_id)
    if call.data[-1] == '*':
        bot.send_message(call.message.chat.id,
                         'Главное меню',
                         reply_markup=get_keyboard(call.from_user.id))
    else:
        profile = GetProfile(call.data[16:], cursor)
        if profile[0] != None:
            string = 'Пользователь: ' + profile[0]
            string += "\nФото: "
            bot.send_message(call.message.chat.id, string)
            if profile[3] != None:
                bot.send_photo(call.message.chat.id, profile[3])
            else:
                bot.send_message(call.message.chat.id, 'Фото недоступно')
            string = "Телефон: " + str(profile[1])
            string = string + "\nЭлектронная почта: " + profile[2]
            string = string + "\nДата регистрации: " + profile[5]
            string = string + '\nАвторитет: ' + str(profile[4])
            if profile[6] != None:
                string = string + '\nСумма оценок в текущем месяце: ' + str(
                    profile[6])
            if profile[7] != None:
                string = string + '\nДосье: ' + profile[8]
            wallet = GetWallet(call.data[16:], cursor)
            if wallet != 'wallet':
                string = string + '\nEtherium-кошелек:' + wallet
            try:
                string = string + '\nТокены вклада: ' + str(
                    GetContributionTokens(call.data[16:], cursor))
                string = string + '\nТокены инвестиций: ' + str(
                    GetInvestmentTokens(call.data[16:], cursor))
            except:
                print("Fix it 2")
            string = string + '\nРоли в системе: '
            rangs = GetRangs(call.data[16:], cursor)
            for rang in rangs:
                string = string + GetTitleOfRang(rang, cursor) + ', '
            string = string[:len(string) - 2]
            projects = GetProjectsOfUser(call.data[16:], cursor)
            if len(projects):
                string += '\nСостоит в проектах: '
                for project in projects:
                    string += '"' + project[0] + '", '
                string = string[:len(string) - 2]
            else:
                string += '\nАктивных проектов нет'
            bot.send_message(call.message.chat.id,
                             string,
                             reply_markup=get_keyboard(call.from_user.id))
            # except:
            #     bot.send_message(call.message.chat.id, "Анкета заполнена не полностью",
            #                      reply_markup=get_keyboard(call.from_user.id))
        else:
            bot.send_message(call.message.chat.id,
                             "Ой, анкета еще не заполнена",
                             reply_markup=get_keyboard(call.from_user.id))
示例#3
0
def voting(call):
    bot.delete_message(chat_id=call.message.chat.id, message_id=call.message.message_id)
    authority = GetAuthority(call.from_user.id, cursor)
    try:
        BudgetVote(call.data[-1], authority, cursor, db)
        bot.send_message(call.message.chat.id, 'Спасибо за ваш голос! Текущий прогресс голосования:\n' + BudgetInfo(cursor),
                     reply_markup=get_keyboard(call.from_user.id))
    except:
        bot.send_message(call.message.chat.id,
                         'Спасибо за участие. К сожалению, голосование уже окончилось. Его результат:\n' + BudgetInfo(cursor, True),
                         reply_markup=get_keyboard(call.from_user.id))
示例#4
0
def looking_marks(call):
    bot.delete_message(chat_id=call.message.chat.id,
                       message_id=call.message.message_id)
    if call.data[-1] == '*':
        bot.send_message(call.message.chat.id,
                         'Главное меню',
                         reply_markup=get_keyboard(call.from_user.id))
    else:
        user = call.data[14:]
        dates = GetAllDatesOfVotingByUser(user, cursor)
        info = ''
        if len(dates) > 0:
            for date in dates:
                info += '<b>' + date[0] + '</b>\n'
                marks = GetMarksForDateAndUser(date[0], 1, user, cursor)
                info += '<b>Ось отношений:</b>\n'
                for mark in marks:
                    if mark[0] == '1' or mark[0] == 1:
                        info += '  Личностный рост'
                    elif mark[0] == '2' or mark[0] == 2:
                        info += '  Ясность позиции'
                    elif mark[0] == '3' or mark[0] == 3:
                        info += '  Энергия'
                    info += ': <b>' + str(mark[1]) + '</b>\n'
                marks = GetMarksForDateAndUser(date[0], 2, user, cursor)
                info += '<b>Ось дела:</b>\n'
                for mark in marks:
                    if mark[0] == '1' or mark[0] == 1:
                        info += '  Движение'
                    elif mark[0] == '2' or mark[0] == 2:
                        info += '  Завершенность'
                    elif mark[0] == '3' or mark[0] == 3:
                        info += '  Подтверждение средой'
                    elif mark[0] == '4' or mark[0] == 4:
                        info += '  Бонус для тимлида'
                    info += ': <b>' + str(mark[1]) + '</b>\n'
                marks = GetMarksForDateAndUser(date[0], 3, user, cursor)
                info += '<b>Ось власти:</b>\n'
                for mark in marks:
                    if mark[0] == '1' or mark[0] == 1:
                        info += '  Самоуправление'
                    elif mark[0] == '2' or mark[0] == 2:
                        info += '  Стратегия'
                    elif mark[0] == '3' or mark[0] == 3:
                        info += '  Управляемость'
                    info += ': <b>' + str(mark[1]) + '</b>\n'
            bot.send_message(call.message.chat.id, info, parse_mode='HTML')
        else:
            bot.send_message(call.message.chat.id,
                             'Для данного пользователя пока нет оценок',
                             reply_markup=get_keyboard(call.from_user.id))
        bot.send_message(call.message.chat.id,
                         'Главное меню',
                         reply_markup=get_keyboard(call.from_user.id))
示例#5
0
def looking_dosier(call):
    nick = call.data.split('%')[1]
    bot.delete_message(chat_id=call.message.chat.id,
                       message_id=call.message.message_id)
    dossier = GetDossier(nick, cursor)
    if dossier == -1:
        bot.send_message(call.message.chat.id,
                         'Досье для данного пользователя еще не добавлено',
                         reply_markup=get_keyboard(call.from_user.id))
    else:
        bot.send_message(call.message.chat.id,
                         'Досье пользователя ' + nick + ':\n\n' + dossier,
                         reply_markup=get_keyboard(call.from_user.id))
示例#6
0
def finish_budget(message):
    if isRang(GetRangs(message.from_user.id, cursor), [9]):
        if not (IsThereActiveVoting(cursor)):
            bot.send_message(message.chat.id, 'На данный момент активных голосований нет',
                             reply_markup=get_keyboard(message.from_user.id))
        else:
            if GetUserWhoStartedVoting(cursor) == message.from_user.id:
                bot.send_message(message.chat.id, 'Утверждение бюджета завершено. Результат:\n' + BudgetInfo(cursor),
                                 reply_markup=get_keyboard(message.from_user.id))
                FinishVoting(cursor, db)
                emission(message)
            else:
                bot.send_message(message.chat.id, 'Голосование может завершить только тот, кто его начал',
                                 reply_markup=get_keyboard(message.from_user.id))
示例#7
0
def redacting_profile(call):
    if call.data[-1] == '1':
        bot.edit_message_text(chat_id=call.message.chat.id,
                              message_id=call.message.message_id,
                              text='Введите новое имя')
        SetState(call.from_user.id, 41, cursor, db)
    elif call.data[-1] == '2':
        bot.edit_message_text(chat_id=call.message.chat.id,
                              message_id=call.message.message_id,
                              text='Введите новый телефон')
        SetState(call.from_user.id, 42, cursor, db)
    elif call.data[-1] == '3':
        bot.edit_message_text(
            chat_id=call.message.chat.id,
            message_id=call.message.message_id,
            text='Введите новый электронный адрес Google-аккаунта')
        SetState(call.from_user.id, 43, cursor, db)
    elif call.data[-1] == '4':
        bot.edit_message_text(chat_id=call.message.chat.id,
                              message_id=call.message.message_id,
                              text='Загрузите новое фото')
        SetState(call.from_user.id, 44, cursor, db)
    elif call.data[-1] == '6':
        bot.edit_message_text(chat_id=call.message.chat.id,
                              message_id=call.message.message_id,
                              text='Введите новый адрес кошелька')
        SetState(call.from_user.id, 45, cursor, db)
    elif call.data[-1] == '5':
        bot.delete_message(chat_id=call.message.chat.id,
                           message_id=call.message.message_id)
        bot.send_message(call.message.chat.id,
                         'Редактирование окончено',
                         reply_markup=get_keyboard(call.from_user.id))
        SetState(call.from_user.id, 6, cursor, db)
示例#8
0
def setting_dosier2(message):
    dossier = message.text
    SetDossier(dossier, config.current_user_for_dossier, cursor, db)
    SetState(message.from_user.id, 6, cursor, db)
    bot.send_message(message.chat.id,
                     "Успешно",
                     reply_markup=get_keyboard(message.from_user.id))
示例#9
0
def send_budget_offer(message):
    if isRang(GetRangs(message.from_user.id, cursor), [9]):
        if IsThereActiveVoting(cursor):
            bot.send_message(message.chat.id, 'В данный момент уже проходит голосование за утверждение бюджета',
                             reply_markup=get_keyboard(message.from_user.id))
        else:
            bot.send_message(message.chat.id, 'Введите предполагаемую сумму бюджета')
            SetState(message.from_user.id, 51, cursor, db)
示例#10
0
def give_tokens3(call):
    bot.delete_message(chat_id=call.message.chat.id, message_id=call.message.message_id)
    nick = call.data.split('%')[1]
    tokens = float(call.data.split('%')[2])
    AddContributionTokens(nick, tokens, cursor, db)
    ReduceContributionTokens('@'+call.from_user.username, tokens, cursor, db)
    bot.send_message(GetChatId(nick,cursor),'Пользователь @'+call.from_user.username+' перевел вам на счет '+str(tokens)+' токенов вклада')
    bot.send_message(call.message.chat.id, "Успешно",
                     reply_markup=get_keyboard('@' + call.from_user.username))
示例#11
0
def setting_rang1(call):
    if call.data.split('%')[1] == 'back':
        SetState(call.from_user.id, 6, cursor, db)
        bot.delete_message(chat_id=call.message.chat.id,
                           message_id=call.message.message_id)
        bot.send_message(call.message.chat.id,
                         "Главное меню",
                         reply_markup=get_keyboard(call.from_user.id))
    else:
        nick = call.data.split('%')[1]
        rangs = GetRangs(nick, cursor)
        str_rang = ''
        for rang in rangs:
            str_rang = str_rang + GetTitleOfRang(rang, cursor) + ', '
        str_rang = str_rang[:len(str_rang) - 2]
        keyboard = telebot.types.InlineKeyboardMarkup()
        keyboard.row(
            telebot.types.InlineKeyboardButton(text='Первый курс',
                                               callback_data='set_rang_2#' +
                                               str(nick)),
            telebot.types.InlineKeyboardButton(text='Второй курс',
                                               callback_data='set_rang_3#' +
                                               str(nick)),
            telebot.types.InlineKeyboardButton(text='Третий курс',
                                               callback_data='set_rang_4#' +
                                               str(nick)))
        keyboard.row(
            telebot.types.InlineKeyboardButton(text='Тьютор',
                                               callback_data='set_rang_5#' +
                                               str(nick)),
            telebot.types.InlineKeyboardButton(text='Преподаватель',
                                               callback_data='set_rang_6#' +
                                               str(nick)),
            telebot.types.InlineKeyboardButton(text='Head teacher',
                                               callback_data='set_rang_11#' +
                                               str(nick)))
        keyboard.row(
            telebot.types.InlineKeyboardButton(text='Трекер',
                                               callback_data='set_rang_7#' +
                                               str(nick)),
            telebot.types.InlineKeyboardButton(text='Эксперт',
                                               callback_data='set_rang_10#' +
                                               str(nick)))
        keyboard.row(
            telebot.types.InlineKeyboardButton(text='Инвестор',
                                               callback_data='set_rang_8#' +
                                               str(nick)),
            telebot.types.InlineKeyboardButton(text='Admin',
                                               callback_data='set_rang_9#' +
                                               str(nick)))
        bot.delete_message(chat_id=call.message.chat.id,
                           message_id=call.message.message_id)
        bot.send_message(call.message.chat.id,
                         'Выберите роль для пользователя ' +
                         GetName(nick, cursor) + ' (текущие роли: ' +
                         str_rang + ')',
                         reply_markup=keyboard)
示例#12
0
def get_id(message):
    if message.chat.type == 'private':
        try:
            SetId('@' + message.from_user.id, message.from_user.id, cursor, db)
            SetChatId(message.from_user.id, message.chat.id, cursor, db)
        finally:
            bot.send_message(message.chat.id,
                             'Ok',
                             reply_markup=get_keyboard(message.from_user.id))
示例#13
0
def delete_project(message):
    projects = GetAllProjects(cursor)
    keyboard = telebot.types.InlineKeyboardMarkup()
    if len(projects) != 0:
        for i in range(0, len(projects)):
            keyboard.add(telebot.types.InlineKeyboardButton(text=projects[i][0],
                                                            callback_data='dlt_project_' + str(projects[i][1])))
        bot.send_message(message.chat.id, 'Выберите проект', reply_markup=keyboard)
    else:
        bot.send_message(message.chat.id, 'Активных проектов нет',
                         reply_markup=get_keyboard(message.from_user.id))
示例#14
0
def start(message):
    if message.chat.type == 'private':
        id = message.from_user.id
        nick = '@' + message.from_user.username
        if not (IsUserInDB(id, nick, cursor)):
            keyboard = telebot.types.InlineKeyboardMarkup()
            url_button = telebot.types.InlineKeyboardButton(
                text="Наш канал",
                url="https://t.me/joinchat/FcADIxGou--U0fMfLs9Tvg")
            keyboard.add(url_button)
            bot.send_message(
                message.chat.id,
                "Привет. Сейчас я отправлю тебе ссылку на наш канал. Если ты хочешь стать частью нашего комьюнити - напиши туда и тебе обязательно ответят.",
                reply_markup=keyboard)
        elif IsAbit(nick, cursor, True):
            SetId(nick, id, cursor, db)
            bot.send_message(
                message.chat.id,
                "Привет! Я бот антишколы Корпус, мне сказали что ты наш новый курсант, давай я занесу твои данные в базу. Начнём с имени, как тебя зовут (имя и фамилия)?"
            )
            SetState(id, 1, cursor, db)
        elif IsInvitedInvestor(nick, cursor, True):
            SetId(nick, id, cursor, db)
            bot.send_message(
                message.chat.id,
                "Здравствуйте, я ваш личный помощник, бот анти-школы Корпус. Я буду помогать взаимодействать с нашей системой. Давайте для начала внесём ваши данные в нашу базу. Начнём с имени. Напишите ваше полное имя"
            )
            SetState(id, 1, cursor, db)
        elif IsInvitedTutor(nick, cursor, True):
            SetId(nick, id, cursor, db)
            bot.send_message(
                message.chat.id,
                "Добрый день. Вы назначены тьютором анти-школы Корпус. Давайте для начала внесём ваши данные в нашу базу. Начнём с имени. Напишите ваше полное имя"
            )
            SetState(id, 1, cursor, db)
        elif IsInvitedExpert(nick, cursor, True):
            SetId(nick, id, cursor, db)
            bot.send_message(
                message.chat.id,
                "Добрый день, уважаемый эксперт. Вы стали частью нашего коммьюнити. Давайте для начала внесём ваши данные в нашу базу. Начнём с имени. Напишите ваше полное имя"
            )
            SetState(id, 1, cursor, db)
        elif IsInvitedEducator(nick, cursor, True):
            SetId(nick, id, cursor, db)
            bot.send_message(
                message.chat.id,
                "Добрый день. Вы назначены преподавателем анти-школы Корпус. Давайте для начала внесём ваши данные в нашу базу. Начнём с имени. Напишите ваше полное имя"
            )
            SetState(id, 1, cursor, db)
        else:
            bot.send_message(message.chat.id,
                             'Главное меню',
                             reply_markup=get_keyboard(message.from_user.id))
示例#15
0
def change_tokens2(message):
    try:
        tokens = float(message.text)
        if tokens>float(GetInvestmentTokens('@'+message.from_user.username,cursor)):
            bot.send_message(message.chat.id, 'У вас на счету недостаточно токенов вклада. Введите меньшую сумму')
        else:
            AddContributionTokens('@'+message.from_user.username,tokens,cursor,db)
            ReduceInvestmentTokens('@'+message.from_user.username,tokens,cursor,db)
            SetState('@' + message.from_user.username, 6, cursor,db)
            bot.send_message(message.chat.id, "Успешно",
                             reply_markup=get_keyboard('@' + message.from_user.username))
    except:
        bot.send_message(message.chat.id, 'Необходимо ввести число')
示例#16
0
def ask_tokens3(call):
    nick = call.data.split('%')[1]
    tokens = float(call.data.split('%')[2])
    keyboard = telebot.types.InlineKeyboardMarkup()
    id = OrganizeExchange('@'+call.from_user.username,nick,tokens,cursor,db)
    keyboard.row(telebot.types.InlineKeyboardButton(text='Да',callback_data='exchange_'+str(id)+'_yes'),
                 telebot.types.InlineKeyboardButton(text='Нет', callback_data='exchange_' + str(id) + '_no'))
    bot.delete_message(chat_id=call.message.chat.id, message_id=call.message.message_id)
    bot.send_message(GetChatId(nick,cursor),"Пользователь "+GetName('@'+call.from_user.username,cursor)+' просит у вас '+str(tokens)+
                     ' токенов вклада (у вас на счету '+str(GetContributionTokens(nick,cursor))+'). Вы согласны на сделку?',
                     reply_markup=keyboard)
    bot.send_message(call.message.chat.id,'Предложение пользователю '+GetName(nick,cursor)+'. Дождитесь, пока он ответит на него.',
                     reply_markup=get_keyboard('@'+call.from_user.username))
示例#17
0
def deleting_rang2(call):
    words = call.data.split('%')
    rang = words[1]
    nick = words[2]
    DeleteRang(nick, int(rang), cursor, db)
    SetState(nick, 6, cursor, db)
    bot.delete_message(chat_id=call.message.chat.id,
                       message_id=call.message.message_id)
    bot.send_message(call.message.chat.id,
                     "Успешно",
                     reply_markup=get_keyboard(call.from_user.id))
    bot.send_message(
        GetChatId(nick, cursor),
        'У вас убрали роль "' + GetTitleOfRang(rang, cursor) + '"')
示例#18
0
def setting_rang2(call):
    text = call.data[9:]
    words = text.split('#')
    rang = int(words[0])
    nick = words[1]
    AddRang(nick, rang, cursor, db)
    SetState(nick, 6, cursor, db)
    bot.delete_message(chat_id=call.message.chat.id,
                       message_id=call.message.message_id)
    bot.send_message(call.message.chat.id,
                     "Успешно",
                     reply_markup=get_keyboard(call.from_user.id))
    bot.send_message(
        GetChatId(nick, cursor),
        'Вам добавлена роль "' + GetTitleOfRang(rang, cursor) + '"')
示例#19
0
def enter_budget_money(message):
    url = message.text
    budget_info.append(url)
    #count = bot.get_chat_members_count(message.chat.id) - 1
    members = GetListOfUsers(cursor)
    count = len(members)
    StartVoting(message.chat.id, message.from_user.id, count, budget_info[0], cursor, db)
    bot.send_message(message.chat.id,
                     'Утверждается бюджет на следующий месяц\nПодробности по ссылке: ' + url + '\nИтоговая сумма: ' +
                     str(budget_info[0]),
                     reply_markup=get_keyboard(message.from_user.id))
    SetState(message.from_user.id, 6, cursor, db)
    keyboard = telebot.types.InlineKeyboardMarkup()
    keyboard.row(telebot.types.InlineKeyboardButton(text="За", callback_data="voting_1"),
                 telebot.types.InlineKeyboardButton(text="Против", callback_data="voting_2"))
    for i in range(0, len(members)):
        if members[i][2] != None and members[i][0] != message.from_user.id:
            bot.send_message(members[i][2],
                             'Началось голосование за утверждение бюджета. Подробности по ссылке: ' + url + '\nИтоговая сумма: ' +
                             str(budget_info[0]) +
                             '\nВыразите ваше мнение', reply_markup=keyboard)
示例#20
0
def adding_abit(message):
    nick = message.text
    keyboard = telebot.types.ReplyKeyboardMarkup(resize_keyboard=True)
    keyboard.add(telebot.types.InlineKeyboardButton('Закончить'))
    if nick == 'Закончить':
        bot.send_message(message.chat.id,
                         'Все абитуриенты успешно зачислены',
                         reply_markup=get_keyboard(message.from_user.id))
        #username = "******" + message.from_user.id
        SetState(message.from_user.id, 6, cursor, db)
    else:
        if nick[0] != '@':
            nick = "@" + nick
        if not (IsUserInDB(1, nick, cursor)):
            AddAbit(nick, cursor, db)
            bot.send_message(message.chat.id,
                             "Абитуриент зачислен",
                             reply_markup=keyboard)
        else:
            bot.send_message(message.chat.id,
                             "Этот пользователь уже есть в базе",
                             reply_markup=keyboard)
示例#21
0
def adding_investor(message):
    nick = message.text
    keyboard = telebot.types.ReplyKeyboardMarkup(resize_keyboard=True)
    keyboard.add(telebot.types.InlineKeyboardButton('Закончить'))
    if nick == 'Закончить':
        bot.send_message(message.chat.id,
                         'Все инвесторы успешно добавлены',
                         reply_markup=get_keyboard(message.from_user.id))
        username = "******" + message.from_user.username
        SetState(username, 6, cursor, db)
    else:
        if nick[0] != '@':
            nick = "@" + nick
        if not (IsUserInDB(1, nick, cursor)):
            InviteInvestor(nick, cursor, db)
            bot.send_message(message.chat.id,
                             "Инвестор добавлен",
                             reply_markup=keyboard)
        else:
            bot.send_message(message.chat.id,
                             "Этот пользователь уже есть в базе",
                             reply_markup=keyboard)
示例#22
0
def ask_tokens2(message):
    try:
        tokens = float(message.text)
        users = GetListOfUsers(cursor)
        keyboard = telebot.types.InlineKeyboardMarkup()
        flag = False
        for user in users:
            try:
                user_tokens = GetContributionTokens(user[0], cursor)
                if user_tokens>=tokens:
                    flag = True
                    keyboard.add(telebot.types.InlineKeyboardButton(
                        text=GetName(user[0], cursor) + '(' + str(user_tokens) + ' токенов на счету)',
                        callback_data='ask_tokens%' + user[0] + '%' + str(tokens)))
            except:
                continue
        if flag:
            bot.send_message(message.chat.id, "У кого вы хотите попросить токены?", reply_markup=keyboard)
        else:
            bot.send_message(message.chat.id, "Ни у кого нет достаточного количества токенов для данной сделки",
                             reply_markup=get_keyboard('@'+message.from_user.username))
        SetState('@' + message.from_user.username, 6, cursor, db)
    except:
        bot.send_message(message.chat.id, 'Необходимо ввести число')
示例#23
0
def deleting_rang1(call):
    nick = call.data.split('%')[1]
    if nick == 'back':
        SetState(call.from_user.id, 6, cursor, db)
        bot.delete_message(chat_id=call.message.chat.id,
                           message_id=call.message.message_id)
        bot.send_message(call.message.chat.id,
                         "Главное меню",
                         reply_markup=get_keyboard(call.from_user.id))
    else:
        rangs = GetRangs(nick, cursor)
        keyboard = telebot.types.InlineKeyboardMarkup()
        for rang in rangs:
            keyboard.add(
                telebot.types.InlineKeyboardButton(
                    text=GetTitleOfRang(rang, cursor),
                    callback_data='del_rang%' + str(rang) + '%' + str(nick)))
        bot.delete_message(chat_id=call.message.chat.id,
                           message_id=call.message.message_id)
        bot.send_message(
            call.message.chat.id,
            'Выберите роль, которую вы хотите убрать у пользователя ' +
            GetName(nick, cursor),
            reply_markup=keyboard)
示例#24
0
def user_entering_pic(message):
    photo = message.photo[len(message.photo) - 1].file_id
    id = message.from_user.id
    if IsAbit(id, cursor):
        DeleteRang(id, 1, cursor, db)
        AddRang(id, 2, cursor, db)
        bot.send_message(
            message.chat.id,
            "Красавчик, спасибо. Отныне ты курсант антишколы Корпус!",
            reply_markup=get_keyboard(message.from_user.id))
    elif IsInvitedInvestor(id, cursor):
        DeleteRang(id, 12, cursor, db)
        AddRang(id, 8, cursor, db)
        bot.send_message(message.chat.id,
                         "Cпасибо. Теперь вы полноправный член нашей системы!",
                         reply_markup=get_keyboard(message.from_user.id))
    elif IsInvitedTutor(id, cursor):
        DeleteRang(id, 13, cursor, db)
        AddRang(id, 5, cursor, db)
        bot.send_message(message.chat.id,
                         "Cпасибо. Теперь вы полноправный член нашей системы!",
                         reply_markup=get_keyboard(message.from_user.id))
    elif IsInvitedEducator(id, cursor):
        DeleteRang(id, 15, cursor, db)
        AddRang(id, 6, cursor, db)
        bot.send_message(message.chat.id,
                         "Cпасибо. Теперь вы полноправный член нашей системы!",
                         reply_markup=get_keyboard(message.from_user.id))
    elif IsInvitedExpert(id, cursor):
        DeleteRang(id, 14, cursor, db)
        AddRang(id, 10, cursor, db)
        bot.send_message(message.chat.id,
                         "Cпасибо. Теперь вы полноправный член нашей системы!",
                         reply_markup=get_keyboard(message.from_user.id))
    else:
        # UpdateProfile(username, user_info['name'], photo, user_info['phone'], user_info['email'], cursor, db)
        bot.send_message(message.chat.id,
                         "Профиль обновлен",
                         reply_markup=get_keyboard(message.from_user.id))
    UpdatePhoto(id, photo, cursor, db)
    BecomeBeginner(id, cursor, db)
    SetChatId(id, message.chat.id, cursor, db)
    SetState(id, 6, cursor, db)
示例#25
0
def deleting(call):
    bot.delete_message(call.message.chat.id, call.message.message_id)
    project_id = call.data.split('_')[2]
    DeleteProject(project_id, cursor, db)
    bot.send_message(call.message.chat.id, 'Успешно', reply_markup=get_keyboard(call.from_user.id))
示例#26
0
def give_tokens(message):
    tokens = GetContributionTokens('@'+message.from_user.username,cursor)
    if tokens == 0.0 :
        bot.send_message(message.chat.id, 'У вас на счету нет токенов вклада', reply_markup=get_keyboard('@'+message.from_user.username))
    else:
        bot.send_message(message.chat.id, 'У вас на счету <b>'+str(tokens)+'</b> токенов вклада. Сколько из них вы хотите переслать?',parse_mode='HTML')
        SetState('@'+message.from_user.username,71,cursor,db)
示例#27
0
def get_profile(message):
    if message.chat.type == 'private':
        if isRang(GetRangs(message.from_user.id, cursor),
                  [2, 3, 4, 5, 6, 7, 8, 9, 10]):
            profile = GetProfile(message.from_user.id, cursor)
            if profile[0] != None:
                string = 'Пользователь: ' + profile[0]
                string += "\nФото: "
                bot.send_message(message.chat.id, string)
                try:
                    bot.send_photo(message.chat.id, profile[3])
                except telebot.apihelper.ApiException:
                    bot.send_message(message.chat.id, 'Фото недоступно')
                try:
                    string = "Телефон: " + str(profile[1])
                except:
                    pass
                try:
                    string = string + "\nGoogle-аккаунт: " + profile[2]
                except:
                    pass
                try:
                    string = string + "\nДата регистрации: " + profile[5]
                    string = string + '\nАвторитет: ' + str(profile[4])
                    if profile[6] == None:
                        string = string + '\nСумма оценок в текущем месяце: 0'
                    else:
                        string = string + '\nСумма оценок в текущем месяце: ' + str(
                            profile[6])
                    if profile[7] != None:
                        string = string + '\nДосье: ' + profile[7]
                    wallet = GetWallet(message.from_user.id, cursor)
                    if wallet != 'wallet':
                        string = string + '\nEtherium-кошелек:' + wallet
                    try:
                        string = string + '\nТокены вклада: ' + str(
                            GetContributionTokens(message.from_user.id,
                                                  cursor))
                        string = string + '\nТокены инвестиций: ' + str(
                            GetInvestmentTokens(message.from_user.id, cursor))
                    except:
                        print("Fix it 2")
                except:
                    print("Fix it")
                string = string + '\nРоли в системе: '
                rangs = GetRangs(message.from_user.id, cursor)
                for rang in rangs:
                    string = string + GetTitleOfRang(rang, cursor) + ', '
                string = string[:len(string) - 2]
                projects = GetProjectsOfUser(message.from_user.id, cursor)
                if len(projects):
                    string += '\nСостоит в проектах: '
                    for project in projects:
                        string += '"' + project[0] + '", '
                    string = string[:len(string) - 2]
                else:
                    string += '\nАктивных проектов нет'
                bot.send_message(message.chat.id,
                                 string,
                                 reply_markup=get_keyboard(
                                     message.from_user.id))
            else:
                bot.send_message(message.chat.id,
                                 "Ой, анкета еще не заполнена",
                                 reply_markup=get_keyboard(
                                     message.from_user.id))
            SetState(message.from_user.id, 6, cursor, db)
示例#28
0
def admin(message):
    AddRang(message.from_user.id, 9, cursor, db)
    bot.send_message(message.chat.id,
                     'Ok',
                     reply_markup=get_keyboard(message.from_user.id))
示例#29
0
def text(message):
    if not (IsUserInDB(message.from_user.id, '@' + message.from_user.username,
                       cursor)):
        start(message)
    elif message.chat.type == 'private':
        mess = message.text
        cherrypy.log(message.text)
        if mess == '📂 Проекты':
            projectsMenu(message)
        elif mess == '📊 Оценки':
            keyboard = telebot.types.ReplyKeyboardMarkup(
                one_time_keyboard=True, resize_keyboard=True)
            if IsUserTeamlead(message.from_user.id, cursor):
                keyboard.add(emojize(':crown: Оценка нематериального вклада'))
                #keyboard.add('Оценка вклада экспертов')
            if isRang(GetRangs(message.from_user.id, cursor), [5, 8, 9, 10]):
                keyboard.row(emojize(':eyes: Посмотреть свои оценки'),
                             emojize(':newspaper: Оценки пользователей'))
            else:
                keyboard.add(emojize(':eyes: Посмотреть свои оценки'))
            if isRang(GetRangs(message.from_user.id, cursor), [9]):
                keyboard.add('Подвести итоги оценок вклада')
            keyboard.add('Назад')
            bot.send_message(message.chat.id,
                             'Вкладка <b>"Оценки"</b>',
                             reply_markup=keyboard,
                             parse_mode='HTML')
        elif mess == 'Оценка вклада экспертов':
            # start_expert_voting(message)
            pass
        elif mess == '👑 Оценка нематериального вклада':
            contribution(message)
        elif mess == '👀 Посмотреть свои оценки':
            marks_of(message, message.from_user.id)
        elif mess == '📋 Профиль':
            keyboard = telebot.types.ReplyKeyboardMarkup(
                one_time_keyboard=True, resize_keyboard=True)
            keyboard.row(emojize(':eyes: Посмотреть профиль'),
                         emojize(':scissors: Редактировать профиль'),
                         emojize(':name_badge: Сбросить профиль'))
            keyboard.add(emojize(':newspaper: Профили пользователей'))
            keyboard.add(emojize('Назад'))
            bot.send_message(message.chat.id,
                             'Вкладка <b>"Профиль"</b>',
                             reply_markup=keyboard,
                             parse_mode='HTML')
        elif mess == '➕📓 Добавить абитуриентов':
            add_abit(message)
        elif mess == '👔 Функции администратора':
            keyboard = telebot.types.ReplyKeyboardMarkup(
                one_time_keyboard=True, resize_keyboard=True)
            keyboard.add('Добавить пользователей в систему')
            keyboard.row('Указать роль для пользователя',
                         'Убрать роль пользователя')
            if IsThereActiveVoting(cursor):
                keyboard.add('Закончить утверждение бюджета')
            else:
                keyboard.add(
                    emojize(
                        ':loudspeaker: Начать голосование за утверждение бюджета'
                    ))
            keyboard.row('Удалить проект', 'Удалить пользователя')
            keyboard.add('Назад')
            bot.send_message(message.chat.id,
                             'Вкладка <b>"Администратор"</b>',
                             reply_markup=keyboard,
                             parse_mode='HTML')
        elif mess == 'Указать роль для пользователя':
            set_rang(message)
        elif mess == 'Убрать роль пользователя':
            delete_rang(message)
        elif mess == 'Удалить проект':
            delete_project(message)
        elif mess == 'Добавить пользователей в систему':
            keyboard = telebot.types.ReplyKeyboardMarkup(
                one_time_keyboard=True, resize_keyboard=True)
            keyboard.row(
                emojize(':heavy_plus_sign::notebook: Добавить абитуриентов'),
                emojize(
                    ':heavy_plus_sign::money_with_wings: Добавить инвесторов'))
            keyboard.row(
                emojize(':heavy_plus_sign::trophy: Добавить тьюторов'),
                emojize(':heavy_plus_sign::microscope: Добавить экспертов'))
            keyboard.add(
                emojize(':heavy_plus_sign::pencil: Добавить преподавателей'))
            keyboard.add('Назад')
            bot.send_message(message.chat.id,
                             'Кого вы хотите добавить?',
                             reply_markup=keyboard)
        elif mess == '➕🏆 Добавить тьюторов':
            add_tutor(message)
        elif mess == '➕🔬 Добавить экспертов':
            add_expert(message)
        elif mess == '➕✏ Добавить преподавателей':
            add_educator(message)
        elif mess == '💳 Функции инвестора':
            keyboard = telebot.types.ReplyKeyboardMarkup(
                one_time_keyboard=True, resize_keyboard=True)
            keyboard.row('Купить токены у пользователей',
                         'Продать токены пользователям')
            keyboard.row('Купить токены у системы', 'Продать токены системе')
            keyboard.add('Назад')
            bot.send_message(message.chat.id,
                             'Вкладка <b>"Инвестор"</b>',
                             reply_markup=keyboard,
                             parse_mode='HTML')
        elif mess == '👀 Посмотреть профиль':
            get_profile(message)

        elif mess == '✂ Редактировать профиль':
            red_profile(message)
        elif mess == '📛 Сбросить профиль':
            reset(message)
        elif mess == '➕💸 Добавить инвесторов':
            add_investor(message)
        elif mess == '📰 Профили пользователей':
            look_profiles(message)
        elif mess == '📰 Оценки пользователей':
            look_marks(message)
        elif mess == "Создать новый проект":
            project_switch(message, 1)
        elif mess == "Редактировать проект":
            project_switch(message, 2)
        elif mess == "Список проектов":
            project_switch(message, 3)
        elif mess == 'Назад':
            bot.send_message(message.chat.id,
                             'Главное меню',
                             reply_markup=get_keyboard(message.from_user.id))
        elif mess == '📢 Начать голосование за утверждение бюджета':
            send_budget_offer(message)
        elif mess == 'Закончить утверждение бюджета':
            finish_budget(message)
        elif mess == 'Функции тьютора':
            keyboard = telebot.types.ReplyKeyboardMarkup(
                one_time_keyboard=True, resize_keyboard=True)
            keyboard.add(
                emojize(':heavy_plus_sign::notebook: Добавить абитуриентов'))
            keyboard.row('Добавить досье пользователю',
                         'Посмотреть досье пользователя')
            keyboard.add('Назад')
            bot.send_message(message.chat.id,
                             'Вкладка <b>"Тьютор"</b>',
                             reply_markup=keyboard,
                             parse_mode='HTML')
        elif mess == 'Добавить досье пользователю':
            add_dosier(message)
        elif mess == 'Посмотреть досье пользователя':
            look_dosier(message)
        elif mess == '🌐 Токены' or mess == 'Вернуться':
            # keyboard = telebot.types.ReplyKeyboardMarkup(one_time_keyboard=True, resize_keyboard=True)
            # keyboard.add(emojize(':performing_arts: Обменяться токенами вклада'))
            # keyboard.add(emojize(':currency_exchange: Обменять токены инвестиции на токены вклада'))
            # keyboard.add('Назад')
            # bot.send_message(message.chat.id, 'Работа с токенами Корпуса', reply_markup=keyboard)
            bot.send_message(message.chat.id,
                             'Функция временно недоступна',
                             reply_markup=get_keyboard(message.from_user.id))
        elif mess == '🎭 Обменяться токенами вклада':
            keyboard = telebot.types.ReplyKeyboardMarkup(
                one_time_keyboard=True, resize_keyboard=True)
            keyboard.row('Попросить токены вклада', 'Передать токены вклада')
            keyboard.add('Вернуться')
            bot.send_message(message.chat.id,
                             'Что вы хотите?',
                             reply_markup=keyboard)
        # elif mess == 'Попросить токены вклада':
        #     ask_tokens(message)
        # elif mess == 'Передать токены вклада':
        #     give_tokens(message)
        # elif mess == '💱 Обменять токены инвестиции на токены вклада':
        #     change_investment_tokens(message)
        elif mess in ['hi', 'Hi', 'Привет', 'привет', 'hello', 'Hello']:
            bot.send_message(message.chat.id,
                             'Привет, ' + message.from_user.id,
                             reply_markup=get_keyboard(message.from_user.id))
        elif mess in [
                'Купить токены у пользователей',
                'Продать токены пользователям', 'Купить токены у системы',
                'Продать токены системе'
        ]:
            bot.send_message(message.chat.id,
                             'Функция пока недоступна',
                             reply_markup=get_keyboard(message.from_user.id))
        else:
            bot.send_message(message.chat.id,
                             'Неизвестная команда',
                             reply_markup=get_keyboard(message.from_user.id))