user_id
можно найти в объекте Message, когда пользователь отправляет сообщение.user_id
через username
с помощью API ботов нельзя pageToken
со значением, которое получили.messages = []
next_page_token = None
for _ in range(3):
if next_page_token:
msgs = service.users().messages().list(userId='me',maxResults=500, pageToken=next_page_token).execute()
else:
msgs = service.users().messages().list(userId='me',maxResults=500).execute()
messages.extend(msgs)
next_page_token = msgs['nextPageToken']
if rolename in member.roles:
вынесен за цикл. Переменная rolename
так же переопределена, хотя она является параметром, а именно - той ролью, которую нужно исключить. Это вообще непонятно зачем сделано rolename = discord.utils.get(ctx.guild.roles)
и зачем это в цикле. Просто условно 10 раз назначить одну и ту же переменную одинаковую, получив какой-то элемент из списка ролей? Ну и при условии выпадения блока из цикла, всегда выбирается последний человек, независимо от его роли. А там роль может быть выше бота, так же последним человеком может быть и владелец сервера. params = {'access_token': TOKEN, 'v': 5.131, 'message_ids': [369]}
r = requests.get('https://api.vk.com/method/messages.getById', params=params)
print(r.json()['response']['items'][0]['attachments'][0]['photo']['sizes'])
r = requests.get('{server}?act=a_check&key={key}&ts={ts}&wait=90'.format(server=data['server'], key=data['key'], ts=data['ts'])).json()
print(r['updates'][0]['object']['message']['attachments'][0]['photo']['sizes'])
/unban @user1222
, то можно использовать встроенный конвертер. async def unban(ctx,*, member: discord.Member):
frist_name
- неправильно. first_name
bot.send_message(message.chat.id,+ str(Random.randint(0, 1000)))
неправильный вызов, зачем тут плюс и обращаться к библиотеки нужно как random.
/starts
, вы же отправляете /start
def hotels_max(message, *args):
maximum_hotels = int(message.text)
for sorted_hotel in args[0][:maximum_hotels]:
hotel_name, hotel_price, hotel_id = sorted_hotel.split(',')
kb = types.InlineKeyboardMarkup()
kb.add(types.InlineKeyboardButton('Получить фото', callback_data=f'hotel_{hotel_id}'))
bot.send_message(message.from_user.id, f'{hotel_name}, {hotel_price}', reply_markup=kb)
@bot.callback_query_handler(func=lambda call: call.data.startswith('hotel_'))
def hotel_photo(call):
# Предположу, что фото можно будет получить по ID отеля, поэтому достаем его
hotel_id = call.data.split('_')[-1]
# ну и дальше уже получаем фото и отправляем
switch_inline_query_current_chat
равным, допустим, "Аккумуляторы"@bot.message_handler(commands=['start'])
def send_start(message):
markup = InlineKeyboardMarkup()
markup.add(InlineKeyboardButton('Аккумуляторы', switch_inline_query_current_chat='Аккумуляторы'))
bot.send_message(message.chat.id, 'Товары', reply_markup=markup)
@bot.inline_handler(lambda query: query.query == 'Аккумуляторы')
def query_video(inline_query):
r = InlineQueryResultArticle('1', 'SONY VTC6 3000 mah 30A 18650', InputTextMessageContent('Аккумулятор 1'), description='blah', url='https://buy-battery.com/goods/1', hide_url=True, thumb_url='https://via.placeholder.com/50')
r2 = InlineQueryResultArticle('2', 'SONY VTC5A 2600 mah 35A 18650', InputTextMessageContent('Аккумулятор 2'), description='blah', url='https://buy-battery.com/goods/2', hide_url=True, thumb_url='https://via.placeholder.com/50')
bot.answer_inline_query(inline_query.id, [r, r2])
msg.reply_markup.rows[0].buttons[0].url
import re
msg = '''[Message(id=899, peer_id=PeerUser(user_id=7415649360), date=datetime.datetime(2021, 8, 10, 9, 52, 37, tzinfo=datetime.timezone.utc), message='⚠️ WARNING: The following is a third party advertisement. Do not trust anything that promises to make you money. Use the following website at your own risk.\n--------------------- \n\nFree 100 OZC, price listing $30/OZC \n\nStart in 15/07/2021: Free 100 OZC, price listing $30/OZC \n \n--------------------- \nPress the "Visit website" button to earn LTC.\nYou will be redirected to a third party site.', out=False, mentioned=False, media_unread=False, silent=False, post=False, from_scheduled=False, legacy=False, edit_hide=False, pinned=False, from_id=None, fwd_from=None, via_bot_id=None, reply_to=None, media=None, reply_markup=ReplyInlineMarkup(rows=[KeyboardButtonRow(buttons=[KeyboardButtonUrl(text=' Go to website', url='https://doge.click/visit/Ka1gfo')]), KeyboardButtonRow(buttons=[KeyboardButtonCallback(text=' Report', data=b'{"name":"ReportClick","id":"click_tasks61124bf44b4413.68559229"}', requires_password=False), KeyboardButtonCallback(text='⏩ Skip', data=b'{"name":"SkipClick","id":"click_tasks61124bf44b4413.68559229"}', requires_password=False)])]), entities=[MessageEntityItalic(offset=0, length=156), MessageEntityItalic(offset=157, length=21), MessageEntityBold(offset=182, length=35), MessageEntityItalic(offset=283, length=21), MessageEntityItalic(offset=307, length=45), MessageEntityItalic(offset=353, length=45)], views=None, forwards=None, replies=None, edit_date=None, post_author=None, grouped_id=None, restriction_reason=[], ttl_period=None), total=57]'''
print(re.search(r'(https://.+?)\'', msg).group(1))