@bot.message_handler(commands=['start'])
def bot_send_message(message):
markup = types.ReplyKeyboardMarkup(one_time_keyboard=True, resize_keyboard=True)
create = types.KeyboardButton('Создать задачу')
markup.add(create)
bot.send_message(message.chat.id, 'Я могу создать задачу.', reply_markup=markup)
@bot.message_handler(content_types=["text"])
def handle_text(message):
markup = types.InlineKeyboardMarkup()
show_project = types.InlineKeyboardButton(text='Проекты', callback_data='show_project')
markup.add(show_project)
if message.text.strip() == 'Создать задачу':
bot.send_message(message.chat.id, 'Напишите название проекта. Для просмотра проектов нажмите кнопку.',
reply_markup=markup)
bot.register_next_step_handler(message, get_project)
@bot.callback_query_handler(func=lambda call: call.data.startswith('show_project'))
def list_of_project(call):
if call.data == 'show_project':
jira_projects = jira.projects()
keys = sorted(project.key for project in jira_projects)[0:]
bot.send_message(call.message.chat.id, 'Вот все доступные проекты: ' + '\n'.join(keys))
pass
def get_project(message):
global jira_project
jira_project = message.text.strip()
bot.send_message(message.chat.id, 'Создание задачи. Напишите название.')
bot.register_next_step_handler(message, get_create_issue_summary)
@bot.message_handler(content_types=["text"])
def get_create_issue_summary(message):
markup = types.ReplyKeyboardMarkup(one_time_keyboard=True, resize_keyboard=True)
item1 = types.KeyboardButton("Highest")
markup.add(item1)
item2 = types.KeyboardButton("High")
markup.add(item2)
item3 = types.KeyboardButton("Middle")
markup.add(item3)
item4 = types.KeyboardButton("Low")
markup.add(item4)
item5= types.KeyboardButton("Lowest")
markup.add(item5)
global jira_summary
jira_summary = message.text.strip()
bot.send_message(message.chat.id, 'Создание задачи. Введите приоритет.', reply_markup=markup)
bot.register_next_step_handler(message, get_create_issue_priority)
def get_create_issue_priority(message):
global jira_priority
jira_priority = message.text.strip()
bot.send_message(message.chat.id, 'Создание задачи. Введите описание')
bot.register_next_step_handler(message, get_create_issue_description)
@bot.message_handler(content_types=["text"])
def get_create_issue_description(message):
keyboard = types.InlineKeyboardMarkup()
key_yes = types.InlineKeyboardButton(text='Да', callback_data='yes')
keyboard.add(key_yes)
key_no = types.InlineKeyboardButton(text='Нет', callback_data='no')
keyboard.add(key_no)
global jira_description
jira_description = message.text.strip()
bot.send_message(message.chat.id, 'Проект: ' + jira_project + '\n' +
'Название: ' + jira_summary + '\n' +
'Приоритет: ' + jira_priority + '\n' +
'Описание: ' + jira_description)
bot.send_message(message.chat.id, 'Создать задачу? (Да/Нет)', reply_markup=keyboard)
@bot.callback_query_handler(func=lambda call: True)
def callback_worker(call):
if call.data == 'yes':
issue = jira.create_issue(project=jira_project,
summary=jira_summary,
issuetype={'name': 'Task'},
priority ={'name': jira_priority},
description =jira_description)
bot.send_message(call.message.chat.id, 'Задача ' + issue.key + ' создана')
bot.send_message(call.message.chat.id, 'Чтобы выернуться в начало нажите /start')
if call.data == 'no':
bot.send_message(call.message.chat.id, 'Создание задачи отменено.')
bot.send_message(call.message.chat.id, 'Чтобы выернуться в начало нажите /start')
if __name__ == '__main__':
bot.infinity_polling()