Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # -*- coding: utf-8 -*-
- import vk_api
- from vk_api import VkUpload
- from vk_api.longpoll import VkLongPoll, VkEventType
- from vk_api.utils import get_random_id
- import urllib.request
- import random
- def log(text):
- print(text)
- def help_command(api, arguments, event):
- text = '''📌 Bot commands:
- /help - помощь
- /state - состояние бота
- /echo - повтор сообщения
- /rand - случайное число
- /vagina - сгенерированная нейросетями вагина'''
- api['vk'].messages.send(peer_id=event.peer_id, message=text , random_id=get_random_id())
- def state_command(api, arguments, event):
- text = '''📌 Bot commands:
- ✅ /help
- ✅ /state
- ✅ /echo
- ✅ /rand
- ✅ /vagina
- 📌 Статусы:
- ⚒ - в разработке
- ✅ - работает
- ⚠ - есть проблемы
- ⛔ - не работает'''
- api['vk'].messages.send(peer_id=event.peer_id, message=text , random_id=get_random_id())
- def echo_command(api, arguments, event):
- if arguments == '':
- text = '''⚠ "text" argument is missing
- ✏ usage: /echo (text)'''
- else:
- text = arguments
- api['vk'].messages.send(peer_id=event.peer_id, message=text , random_id=get_random_id())
- def vagina_command(api, arguments, event):
- photo_id = random.randint(0, 1000)
- photo_url = 'https://thisvaginadoesnotexist.com/images/{}.png'.format(str(photo_id).rjust(6, '0'))
- urllib.request.urlretrieve(photo_url, 'local.png')
- text = 'Vagina #{}\nImage url: {}'.format(photo_id, photo_url)
- photo = api['upload'].photo_messages('local.png')
- vk_photo_url = 'photo{}_{}'.format(
- photo[0]['owner_id'], photo[0]['id']
- )
- api['vk'].messages.send(peer_id=event.peer_id, message=text, random_id=get_random_id(), attachment=vk_photo_url)
- def rand_command(api, arguments, event):
- args = arguments.split(' ')
- text = ''
- if len(args) >= 2:
- try:
- lower, upper = int(args[0]), int(args[1])
- if lower >= upper:
- text = '⚠ "lower" must be less than "upper"'
- else:
- text = 'Your random number is {}'.format(
- random.randint(lower, upper)
- )
- except:
- text = '''⚠ Wrong numbers
- ✏ usage: /rand (lower upper)'''
- elif len(args) == 1 and args[0] == '':
- text = '''⚠ "lower" argument is missing
- ⚠ "upper" argument is missing
- ✏ usage: /rand (lower upper)'''
- elif len(args) == 1:
- text = '''⚠ "upper" argument is missing
- ✏ usage: /rand (lower upper)'''
- api['vk'].messages.send(peer_id=event.peer_id, message=text , random_id=get_random_id())
- class Bot:
- _TOKEN = 'YOUR TOKEN'
- _COMMANDS = {
- '/help': help_command,
- '/state': state_command,
- '/echo': echo_command,
- '/rand': rand_command,
- '/vagina': vagina_command
- }
- def __init__(self):
- vk_session = vk_api.VkApi(token=self._TOKEN)
- self._vk = vk_session.get_api()
- self._upload = vk_api.VkUpload(vk_session)
- self._longpoll = VkLongPoll(vk_session)
- log('Bot has been successfully started')
- def listen(self):
- for event in self._longpoll.listen():
- if event.type == VkEventType.MESSAGE_NEW:
- self._select_command(event)
- def _select_command(self, event):
- command, arguments = self._parse_command(event.text)
- if command:
- self._execute_command(command, arguments, event)
- def _parse_command(self, text):
- if len(text) > 0 and text[0] != '/':
- return None, None
- text = text.strip().lower()
- parsed_text = text.split(' ', 1)
- command = parsed_text[0]
- arguments = ''
- if len(parsed_text) > 1:
- arguments = parsed_text[1]
- log('parsed command: {} ({})'.format(command, arguments))
- return command, arguments
- def _execute_command(self, command, arguments, event):
- default_command = lambda api, args, event: print("Unknown command: " + command)
- api = {
- 'vk': self._vk,
- 'upload': self._upload,
- 'longpoll': self._longpoll
- }
- log('executing command: {} ({})'.format(command, arguments))
- self._COMMANDS.get(command, default_command)(api, arguments, event)
- def main():
- random.seed()
- bot = Bot()
- bot.listen()
- if __name__ == '__main__':
- main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement