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))
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))
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))
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))
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))
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))
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)
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))
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)
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))
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)
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))
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))
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))
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, 'Необходимо ввести число')
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))
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) + '"')
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) + '"')
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)
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)
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)
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, 'Необходимо ввести число')
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)
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)
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))
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)
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)
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))
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))