def post(call=None, post=None): if post: chat_id = call.chat.id elif not post: call = call chat_id = call.message.chat.id post = models.Thread.objects.get( id=call.data.split()[2]) ############################ text = post.title + "\n\n" + post.text url = 'https://%s/users/%s/threads/%s/' % ("shlyapikbot.herokuapp.com", post.user.login, post.id) keys = types.InlineKeyboardMarkup() keys.add(types.InlineKeyboardButton(text='Открыть комментарии', url=url)) bot.send_message(chat_id, text, reply_markup=keys) bot_action.set_position(user_id=chat_id, position='nothing') msg = bot.send_message(chat_id, 'Открыть меню') keys = types.InlineKeyboardMarkup() keys.add( types.InlineKeyboardButton(text='Открыть меню', callback_data='menu ' + str(msg.message_id))) bot.edit_message_text(text='🛋', reply_markup=keys, chat_id=chat_id, message_id=msg.message_id)
def get_user(message): try: user = models.User.objects.get(id=message.chat.id) except models.User.DoesNotExist: user = bot_action.create_user( name=message.chat.first_name, login=message.chat.username if message.chat.username else 'None', user_id=message.chat.id) msg = bot.send_message(message.chat.id, "Введите описание своего канала") bot_action.set_position(user_id=message.chat.id, position='get_description ' + str(msg.message_id)) keys = types.InlineKeyboardMarkup() keys.add( types.InlineKeyboardButton(text='Мне не нужно описание', callback_data='no_description ' + str(msg.message_id))) bot.edit_message_text(message_id=msg.message_id, chat_id=message.chat.id, text="Введите описание своего канала", reply_markup=keys) return user else: return user
def no_description(call): bot_action.set_position(user_id=call.message.chat.id, position='nothing') a_u = about_user(call.message) info_about = "Имя: %s\nСсылка: %s\nДата начала постинга: %s\nОписание: %s" % ( a_u['name'], a_u['shortname'], a_u['date'], a_u['desc']) bot.send_message(call.message.chat.id, 'ок, без описания\n\n' + info_about) # и тут тоже)
def get_name(message): if len(message.text) > 40: bot.send_message(message.chat.id, 'Имя должно быть не более 40 символов') else: user = get_user(message) user.name = message.text user.save() bot_action.set_position(message.chat.id, 'nothing') bot.send_message(message.chat.id, 'вы сменили имя') about_me(message)
def get_title(message): print("получаем тайтл") message_id = bot_action.get_position(message.chat.id).split()[1] bot.delete_message(message.chat.id, message_id) post = bot_action.create_post(user_id=message.chat.id, title=message.text, text='Пост ещё не создан') msg = bot.send_message(message.chat.id, 'Теперь вводите текст') bot_action.set_position(user_id=message.chat.id, position='get_text ' + str(msg.message_id) + ' ' + str(post.id))
def change_description(call): bot_action.set_position(call.message.chat.id, 'get_description') msg = bot.send_message(call.message.chat.id, 'Вводите новое описание') keys = types.InlineKeyboardMarkup() keys.add( types.InlineKeyboardButton(text='ненадо я передумал!!!', callback_data='i_do_not_want ' + str(msg.message_id))) bot.edit_message_text('Вводите новое описание', call.message.chat.id, msg.message_id, reply_markup=keys)
def get_url(message): if len(message.text) > 40: bot.send_message(message.chat.id, 'Ссылка должна быть не более чем 40 символов!!1') else: if bot_action.is_there_login(message.text): bot.send_message(message.chat.id, 'Этот юзернейм уже используется') change_url(message) else: user = get_user(message) user.login = message.text bot_action.set_position(message.chat.id, 'nothing') user.save() bot.send_message(message.chat.id, 'ссылку успЕШно заменеНА') about_me(message)
def change_url(call): try: message = call.message except AttributeError: message = call bot_action.set_position(message.chat.id, 'get_url') msg = bot.send_message(message.chat.id, 'Введите новый юзернейм') keys = types.InlineKeyboardMarkup() keys.add( types.InlineKeyboardButton(text='ненадо я передумал!!!', callback_data='i_do_not_want ' + str(msg.message_id))) bot.edit_message_text( 'Введите новый юзернейм\n' 'Юзернейм может содержать только английские буквы, цифры и _', message.chat.id, msg.message_id, reply_markup=keys)
def new_post(message=None, call=None): print("создаем новый пост что ") if message: message = message elif call: message = call.message msg = bot.send_message( chat_id=message.chat.id, text='Введите заголовок.', ) bot_action.set_position(user_id=message.chat.id, position='get_title ' + str(msg.message_id)) keys = types.InlineKeyboardMarkup() keys.add( types.InlineKeyboardButton(text='Мне не нужен заголовок', callback_data='no_title ' + str(msg.message_id))) bot.edit_message_text(text='Введите заголовок', chat_id=message.chat.id, message_id=msg.message_id, reply_markup=keys)
def get_description(message): user = get_user(message) user.description = message.text user.save() if message.chat.username == None: change_url(message) else: bot_action.set_position(user_id=message.chat.id, position='nothing') a_u = about_user(message) info_about = "Имя: %s\nСсылка: %s\nДата начала постинга: %s\nОписание: %s\nПостов запощено: %s" % ( a_u['name'], a_u['shortname'], a_u['date'], a_u['desc'], a_u['count']) msg = bot.send_message(message.chat.id, info_about) keys = types.InlineKeyboardMarkup() keys.add( types.InlineKeyboardButton(text='Открыть меню', callback_data='menu ' + str(msg.message_id))) bot.edit_message_text(info_about, message.chat.id, msg.message_id, reply_markup=keys)
def i_do_not_want(call): bot.send_message(call.message.chat.id, 'ок, вы передумали') menu(call.message) bot_action.set_position(call.message.chat.id, 'nothing')
def delete_post(call): post = models.Thread.objects.get(id=call.data.split()[2]) post.delete() bot.send_message(call.message.chat.id, 'Пост удалён') bot_action.set_position(user_id=call.message.chat.id, position='nothing') menu(call.message)
def no(call): bot.send_message(call.message.chat.id, 'Ок, не удаляем посты') bot_action.set_position(user_id=call.message.chat.id, position='nothing') menu(call.message)
def start(message): user = get_user(message) if user[1] is not 'created': bot_action.set_position(user_id=message.chat.id, position='nothing')