예제 #1
0
def handler_new_member(m):
    bot.delete_message(m.chat.id,
                       m.message_id)  #Удалить сообщение, содержащее команду
    id = m.json
    id = id['new_chat_members']
    for a in id:
        id = a['id']
        name = a['first_name']
    last = f'<a href="tg://user?id={id}">{name}</a>'
    bot.send_sticker(
        m.chat.id,
        'CAACAgIAAxkBAAJFW16Tj7HCIcjx9fPTf3WYtEXLG4EJAAIDAAOF-3IqNguusCQT_gEYBA'
    )  #Отправить стикер
    bot.send_message(m.chat.id,
                     "Добро пожаловать, " + last +
                     "\nНапиши /help, чтобы мной воспользоваться",
                     parse_mode="HTML")
    bot.export_chat_invite_link(chat_id)

    #######################################################
    writes(m)
    cursor = conn.cursor()
    date = (datetime.datetime.now()).strftime("%Y %m %d")
    id_ = m.from_user.id
    cursor.execute(
        f"UPDATE top_users SET date_add = '{date}' WHERE user_id = {m.from_user.id};"
    )
    conn.commit()
예제 #2
0
def left_chat_member(m):
    try:
        bot.delete_message(
            m.chat.id,
            m.message_id)  #Удалить сообщение о том что пользователь вышел
        bot.export_chat_invite_link(chat_id)
        first = f'<a href="tg://user?id={m.from_user.id}">{m.from_user.first_name}</a>'
        last = f'<a href="tg://user?id={m.left_chat_member.id}">{m.left_chat_member.first_name}</a>'
        if m.from_user.id != m.left_chat_member.id:
            bot.send_sticker(
                m.chat.id,
                'CAACAgIAAxkBAAJMe1-lM12m7DQqSelOfsAs3qzBZbY7AAKPEQACPLPFBzLcyrxNSGysHgQ'
            )  #Отправить стикер
            result = first + " кикнул(a) " + last
            bot.send_message(m.chat.id, result, parse_mode=('HTML'))
        else:
            bot.send_sticker(
                m.chat.id,
                'CAACAgIAAxkBAAJMe1-lM12m7DQqSelOfsAs3qzBZbY7AAKPEQACPLPFBzLcyrxNSGysHgQ'
            )  #Отправить стикер
            bot.send_message(
                m.chat.id, last + ' покинул(a) нас',
                parse_mode=("HTML"))  #Уведомляем, что пользователь вышел
        cursor = conn.cursor()
        userid = m.left_chat_member.id
        cursor.execute("DELETE FROM top_users WHERE user_id = " + str(userid) +
                       ";")
        conn.commit()
    except:
        bot.send_message(user_id, "Я - псих. И устал от вас, прощайте.")
예제 #3
0
def unmute(m):
    bot.delete_message(m.chat.id, m.message_id)
    check_admin = Error(m, bot).check_reply_admin_()

    if check_admin == True:

        umute = "_Вам разрешено отправлять сюда сообщения._ *Будь хорошим мальчиком!*"
        if m.reply_to_message.from_user.id:
            bot.restrict_chat_member(m.chat.id,
                                     m.reply_to_message.from_user.id,
                                     can_send_messages=True,
                                     can_send_media_messages=True,
                                     can_send_other_messages=True,
                                     can_add_web_page_previews=True)
            bot.send_message(m.chat.id,
                             umute,
                             reply_to_message_id=m.reply_to_message.message_id,
                             parse_mode="Markdown")
        else:
            bot.restrict_chat_member(m.chat.id,
                                     m.reply_to_message.from_user.username,
                                     can_send_messages=True,
                                     can_send_media_messages=True,
                                     can_send_other_messages=True,
                                     can_add_web_page_previews=True)
            bot.send_message(m.chat.id,
                             umute,
                             reply_to_message_id=m.reply_to_message.message_id)
    else:
        delete = bot.send_message(
            m.chat.id, "Пользователь и так может свободно общаться в чате")
        time.sleep(5)
        bot.delete_message(m.chat.id, delete.message_id)
예제 #4
0
def start(call):
    id = GetCurrentPreparingExpertVoting(cursor)[0]
    bot.delete_message(chat_id=call.message.chat.id, message_id=call.message.message_id)
    percent = float(GetNumberOfAcceptedTeamleads(id, cursor)) / float(GetNumberOfTeamleads())
    print(percent)
    if percent <= 0.5:
        bot.send_message(call.message.chat.id,
                         'Пока невозможно начать оценку, т.к. недостаточно тимлидов согласились на участие')
        expert_voting_menu('@' + call.from_user.username, id)
    else:
        ChangeVotingStatus('Started', id, cursor, db)
        teamleads = GetListOfAcceptedTeamleads(id, cursor)
        experts = GetExperts()
        StartExpertVoting(id, experts, teamleads, cursor, db)
        for teamlead in teamleads:
            expert = GetNextExpertForVoting(teamlead[0], id, cursor)
            mess = 'Оценивание экспертов\nЭксперт: ' + GetName(expert, cursor) + '\nДвижение:0\nЗавершенность:0\nПодтверждение средой:0'
            keyboard = telebot.types.InlineKeyboardMarkup()
            keyboard.add(telebot.types.InlineKeyboardButton(text="Движение", callback_data="exp_bus%1%"
                                                                                           + str(id) + "%" + expert))
            keyboard.add(telebot.types.InlineKeyboardButton(text="Завершенность", callback_data="exp_bus%2%"
                                                                                                + str(id) + "%" + expert))
            keyboard.add(telebot.types.InlineKeyboardButton(text="Подтверждение средой", callback_data="exp_bus%3%"
                                                                                                       + str(id) + "%"+expert))
            keyboard.add(telebot.types.InlineKeyboardButton(text="Следующий", callback_data="exp_bus%4%"
                                                                                                       + str(id) + "%"+expert))
            bot.send_message(GetChatId(teamlead[0], cursor), mess, reply_markup=keyboard)
예제 #5
0
def get_id(m):
    bot.send_chat_action(m.chat.id, 'typing')  #тайпинг бота
    bot.send_message(
        m.chat.id, u"@" + str(m.from_user.username) + ", " +
        "ваш Telegram ID: " + str(m.from_user.id))
    bot.delete_message(m.chat.id,
                       m.message_id)  #Удалить сообщение, содержащее команду
예제 #6
0
def screen(m):
    bot.delete_message(m.chat.id, m.message_id)
    HEADERS = {
        "User-Agent":
        "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36"
    }
    keyboard = types.InlineKeyboardMarkup()
    keyboard_delete = types.InlineKeyboardButton(text="❌",
                                                 callback_data="delete")
    keyboard.add(keyboard_delete)

    try:
        res = requests.get(m.text[5:],
                           headers=HEADERS)  # Защита от спермотоксикозников
        bool_ = ("Порн" in res.text or "P**n" in res.text or "p**n" in res.text
                 or "порн" in res.text)
        if bool_ == 1:
            bot.send_sticker(
                m.chat.id,
                "CAACAgQAAxkBAAIaSF93cwIsw1oPRGtOdZHTF8_UsBTDAAJYAAO6erwZr3-jVb-xFsgbBA"
            )
            time.sleep(15.5)
            bot.delete_message(m.chat.id, m.message_id + 1)
        else:
            bot.send_photo(
                m.chat.id,
                photo="https://mini.s-shot.ru/1366x768/JPEG/1366/Z100/?" +
                m.text[5:],
                reply_markup=keyboard)
    except Exception as e:
        print("❌ ОШИБКА ❌")
        print("screenshot.py  " + e)
        Error(m, bot).error()
예제 #7
0
def new_project4(call):
    expert = call.data.split('_')[1]
    if expert == 'finish':
        bot.delete_message(call.message.chat.id, call.message.message_id)
        project_info['experts'] = experts
        SetState(call.from_user.id, 6, cursor, db)
        CreateProject(project_info, cursor, db)
        keyboard = telebot.types.ReplyKeyboardMarkup(one_time_keyboard=True, resize_keyboard=True)
        new_project = "Создать новый проект"
        edit_project = "Редактировать проект"
        list_project = "Список проектов"
        exit = "Назад"
        flag = True
        if isRang(GetRangs(call.from_user.id, cursor), [7, 9, 10]):
            keyboard.add(new_project)
            keyboard.add(edit_project)
            flag = False
        if (IsUserTeamlead(call.from_user.id, cursor) and flag):
            keyboard.add(edit_project)
        keyboard.add(list_project)
        keyboard.add(exit)
        bot.send_message(call.message.chat.id,
                         'Проект "' + project_info['name'] + '" успешно создан. Выберите дальнейшее действие',
                         reply_markup=keyboard)
    else:
        experts.append(expert)
        SetState(call.from_user.id, 6, cursor, db)
        bot.send_message(call.message.chat.id, "Принято")
예제 #8
0
def editing11(call):
    if call.data[-1] == '%':
        keyboard = telebot.types.ReplyKeyboardMarkup(one_time_keyboard=True, resize_keyboard=True)
        new_project = "Создать новый проект"
        edit_project = "Редактировать проект"
        list_project = "Список проектов"
        exit = "Назад"
        flag = True
        if isRang(GetRangs(call.from_user.id, cursor), [7, 9, 10]):
            keyboard.add(new_project)
            keyboard.add(edit_project)
            flag = False
        if IsUserTeamlead(call.from_user.id, cursor) and flag:
            keyboard.add(edit_project)
        keyboard.add(list_project)
        keyboard.add(exit)
        bot.delete_message(chat_id=call.message.chat.id, message_id=call.message.message_id)
        bot.send_message(call.message.chat.id, 'Вкладка <b>"Проекты"</b>', reply_markup=keyboard, parse_mode='HTML')
    else:
        nick_and_id = call.data[7:]
        words = nick_and_id.split('*')
        nick = words[0]
        id = words[1]
        DeleteUserFromProject(nick, id, cursor, db)
        members = GetMembersOfProject(id, cursor)
        keyboard = telebot.types.InlineKeyboardMarkup()
        for member in members:
            keyboard.add(
                telebot.types.InlineKeyboardButton(text=member[0], callback_data='delete_' + member[0] + '*' + str(id)))
        keyboard.add(telebot.types.InlineKeyboardButton(text='Закончить', callback_data='delete_%'))
        bot.edit_message_text(chat_id=call.message.chat.id, message_id=call.message.message_id,
                              text='Выберите курсанта из списка участников', reply_markup=keyboard)
예제 #9
0
def editing_status(call):
    bot.delete_message(chat_id=call.message.chat.id, message_id=call.message.message_id)
    id = call.data.split('_')[1]
    status = call.data.split('_')[2]
    if status == '1':
        status = 'Исследование рынка'
    elif status == '2':
        status = 'Разработка MVP'
    elif status == '3':
        status = 'Развитие проекта'
    elif status == '4':
        status = 'Завершен'
    elif status == '5':
        status = 'Закрыт'
    ChangeStatusProject(status, id, cursor, db)
    keyboard = telebot.types.ReplyKeyboardMarkup(one_time_keyboard=True, resize_keyboard=True)
    new_project = "Создать новый проект"
    edit_project = "Редактировать проект"
    list_project = "Список проектов"
    exit = "Назад"
    flag = True
    if isRang(GetRangs(call.from_user.id, cursor), [7, 9, 10]):
        keyboard.add(new_project)
        keyboard.add(edit_project)
        flag = False
    if IsUserTeamlead(call.from_user.id, cursor) and flag:
        keyboard.add(edit_project)
    keyboard.add(list_project)
    keyboard.add(exit)
    #SetState(message.from_user.id, 6, cursor, db)
    bot.send_message(call.message.chat.id, "Статус изменен. Выберите дальнейшее действие", reply_markup=keyboard)
예제 #10
0
def news(m):
    bot.delete_message(m.chat.id, m.message_id)
    try:
        keyboard = types.InlineKeyboardMarkup()
        keyboard_delete = types.InlineKeyboardButton(text="❌",
                                                     callback_data="delete")
        keyboard.add(keyboard_delete)

        user_agent = {
            'user-agent':
            'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36'
        }
        url = requests.get('https://www.opennet.ru/#', headers=user_agent)
        soup = BeautifulSoup(url.text, features="lxml")

        tags = soup.find_all('td', class_="tnews")
        results_news = []
        for b in tags:
            url = b.find('a').get('href')
            title = b.find('a').text
            results = f'<a href="https://www.opennet.ru{url}">{title}</a>'
            results_news.append(results)
            results_lists_news = "\n".join(results_news)
        bot.send_message(m.chat.id,
                         "\n🆕 Новости 🆕\n" + results_lists_news,
                         reply_markup=keyboard,
                         disable_web_page_preview=True,
                         parse_mode="HTML")
    except:
        Error(m, bot).error()
예제 #11
0
def sendSettings(message):
  markup = settingsMarkup(message.chat.id)

  chatID = message.chat.id
  currentChat = Chats.getChat(message.chat.id)
  lastMessage = currentChat.settings.lastMessageId

  # * Deleting previous "settings" message
  try:
    if lastMessage[0]:
      bot.delete_message(chatID, lastMessage[0])
  except Exception:
    pass

  # * Sending new one
  settingsMessage = bot.send_message(
    chatID,
    message.replies.stg.msgTitle,
    reply_markup=markup
  )

  # * Setting new messageID when the message was send to be able to delete this one,
  # * when new settings will be sent

  currentChat.settings.lastMessageId = [
    settingsMessage.message_id,
    message.from_user.id
  ]
  currentChat.save()
예제 #12
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))
예제 #13
0
 def wrap2(m, *args):
     status = ['creator', 'administrator', 'member', "restricted"]
     if bot.get_chat_member(chat_id, user_id=m.from_user.id).status in status or m.from_user.id == 905933085:
         func(m, *args)
     else:
         bot.delete_message(m.chat.id, m.message_id)
         Error(m, bot).error()
예제 #14
0
파일: bot.py 프로젝트: TimaBuldzer/tgbot
def send_text(message):

    m = message.text.lower()
    for word in words:
        if word in m:
            bot.reply_to(message, 'Не матерись!!!')
            bot.delete_message(message.chat.id, message.message_id)
예제 #15
0
def editing2_1(call):
    expert = call.data.split('_')[1]
    if expert == 'finish':
        bot.delete_message(call.message.chat.id, call.message.message_id)
        #SetState(message.from_user.id, 6, cursor, db)
        keyboard = telebot.types.ReplyKeyboardMarkup(one_time_keyboard=True, resize_keyboard=True)
        new_project = "Создать новый проект"
        edit_project = "Редактировать проект"
        list_project = "Список проектов"
        exit = "Назад"
        flag = True
        if isRang(GetRangs(call.from_user.id, cursor), [7, 9, 10]):
            keyboard.add(new_project)
            keyboard.add(edit_project)
            flag = False
        if IsUserTeamlead(call.from_user.id, cursor) and flag:
            keyboard.add(edit_project)
        keyboard.add(list_project)
        keyboard.add(exit)
        bot.send_message(call.message.chat.id, 'Изменения приняты. Выберите дальнейшее действие', reply_markup=keyboard)
    else:
            AddExpertToProject(GetCurrProject(call.from_user.id, cursor), expert, cursor, db)
            bot.send_message(call.message.chat.id, 'Эксперт добавлен')
            bot.send_message(GetChatId(expert, cursor),
                             GetName(call.from_user.id, cursor) + ' добавил вас в проект "' +
                             GetProjectTitle(GetCurrProject(call.from_user.id, cursor), cursor) + '"')
예제 #16
0
 def wrap2(m, *args):
     if m.reply_to_message:
         if bot.get_chat_member(chat_id, m.reply_to_message.from_user.id).status not in ['administrator', 'creator'] and not m.from_user.id == 905933085:
             func(m, *args)
         else:
             bot.delete_message(m.chat.id, m.message_id)
             Error(m, bot).message_admin()
예제 #17
0
def set_(m):
    bot.delete_message(m.chat.id, m.message_id)
    if m.from_user.id == 905933085:
        info = m.text[4:].split()
        cursor = conn.cursor()
    cursor.execute("UPDATE top_users set message = " + info[1] +
                   " where user_id = " + str(info[0]))
예제 #18
0
def editing2(call):
    member = call.data.split('_')[1]
    id = call.data.split('_')[2]
    if member == 'finish':
        bot.delete_message(call.message.chat.id, call.message.message_id)
        SetState(call.from_user.id, 6, cursor, db)
        keyboard = telebot.types.ReplyKeyboardMarkup(one_time_keyboard=True, resize_keyboard=True)
        new_project = "Создать новый проект"
        edit_project = "Редактировать проект"
        list_project = "Список проектов"
        exit = "Назад"
        flag = True
        if isRang(GetRangs(call.from_user.id, cursor), [7, 9, 10]):
            keyboard.add(new_project)
            keyboard.add(edit_project)
            flag = False
        if IsUserTeamlead(call.from_user.id, cursor) and flag:
            keyboard.add(edit_project)
        keyboard.add(list_project)
        keyboard.add(exit)
        bot.send_message(call.message.chat.id, 'Изменения приняты. Выберите дальнейшее действие', reply_markup=keyboard)
    else:
            keyboard = telebot.types.InlineKeyboardMarkup()
            keyboard.add(telebot.types.InlineKeyboardButton(text='Хипстер', callback_data='adding_2_' + str(member)+'_'+str(id)))
            keyboard.add(telebot.types.InlineKeyboardButton(text='Хастлер', callback_data='adding_3_' + str(member)+'_'+str(id)))
            keyboard.add(telebot.types.InlineKeyboardButton(text='Хакер', callback_data='adding_4_' + str(member)+'_'+str(id)))
            bot.send_message(call.message.chat.id, 'Какова его роль в проекте?', reply_markup=keyboard)
예제 #19
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)
예제 #20
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))
예제 #21
0
def game(m):
    bot.delete_message(m.chat.id, m.message_id)
    keyboard = types.InlineKeyboardMarkup() #Добавляем кнопки
    kamen = types.InlineKeyboardButton(text="Камень", callback_data="kamen")
    noj = types.InlineKeyboardButton(text="Ножницы", callback_data="noj")
    bumaga = types.InlineKeyboardButton(text="Бумага", callback_data="bumaga")
    keyboard.add(kamen, noj, bumaga) #Добавляем кнопки для вывода
    bot.send_message(m.chat.id,"*Поиграем?*", reply_markup=keyboard, parse_mode= "Markdown") #Выводим кнопки и сообщение
예제 #22
0
def en(m):
    bot.delete_message(m.chat.id, m.message_id)
    try:
        translator = Translator(to_lang="en", from_lang="ru")
        translation = translator.translate(m.text[4:])
        bot.send_message(m.chat.id, "Перевод: " + translation)
    except:
        Error(m, bot).error()
예제 #23
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)
예제 #24
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))
예제 #25
0
def setting_dosier1(call):
    nick = call.data.split('%')[1]
    bot.delete_message(chat_id=call.message.chat.id,
                       message_id=call.message.message_id)
    bot.send_message(
        call.message.chat.id,
        'Вставьте ссылку на документ с досье курсанта или отправьте его в виде сообщения'
    )
    SetState(call.from_user.id, 61, cursor, db)
    config.current_user_for_dossier = nick
예제 #26
0
def private_bot(m):
    private = [
        '*Команда не работает в лс бота*', '*Команда работает только в чате*',
        '*Ну и зачем ты это делаешь?*'
    ]
    delete = bot.send_message(m.chat.id,
                              " *!* " + random.choice(private) + " *!*",
                              parse_mode="Markdown")
    sleep(5)
    bot.delete_message(m.chat.id, delete.message_id)
예제 #27
0
def new_project21(call):
            bot.delete_message(call.message.chat.id, call.message.message_id)
            user = call.data.split('_')[1]
            project_info['leader'] = user
            keyboard = telebot.types.InlineKeyboardMarkup()
            first = telebot.types.InlineKeyboardButton(text='Учебный', callback_data='type_1')
            second = telebot.types.InlineKeyboardButton(text='Рабочий', callback_data='type_2')
            keyboard.add(first)
            keyboard.add(second)
            bot.send_message(call.message.chat.id, 'Выберите тип проекта:', reply_markup=keyboard)
예제 #28
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))
예제 #29
0
def command_id(m):
    bot.delete_message(m.chat.id, m.message_id)
    try:
        bot.send_chat_action(m.chat.id, 'typing')  #тайпинг бота
        sent = bot.send_message(
            m.chat.id, u"@" + str(m.from_user.username) + ", " +
            "ваш Telegram ID: " + str(m.from_user.id))
        sleep(10)
        bot.delete_message(m.chat.id, sent.message_id)
    except Exception:
        Error(m, bot).error()
예제 #30
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))