Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import vk_api
- from vk_api.longpoll import VkLongPoll, VkEventType
- import random
- import helper
- import pickle
- import urllib.request
- import json
- import logging
- import traceback
- import requests
- import time
- def captcha_handler(captcha):
- key = input("Enter captcha code {0}: ".format(captcha.get_url())).strip()
- # Пробуем снова отправить запрос с капчей
- return captcha.try_again(key)
- logging.basicConfig(format=u'%(filename)s[LINE:%(lineno)d]# %(levelname)-8s [%(asctime)s] %(message)s',
- level=logging.INFO, filename='log.txt')
- token = ''
- vk = vk_api.VkApi(token=token, captcha_handler=captcha_handler)
- vk._auth_token()
- session_api = vk.get_api()
- longpoll = VkLongPoll(vk)
- folder_id = "b1gtmceh9mu4d7rinqna"
- api_key = 'AQVNxJyscrPugartSif4BMcFGtZdy0M9hXJ4Frwt'
- url_yandex = 'https://tts.api.cloud.yandex.net/speech/v1/tts:synthesize'
- headers = {
- 'Authorization': 'Api-Key ' + api_key,
- }
- def create_admins_list(event):
- chat_id = event.chat_id
- admin = [547098395]
- chat = vk.method('messages.getChat', {'chat_id': chat_id, 'fields': 'online'})
- admin.append(chat['admin_id'])
- return admin
- def get_msg_info(event):
- message_id = event.message_id
- message_info = vk.method('messages.getById', {'message_ids': message_id})
- return message_info
- def mute(event):
- chat_id = event.chat_id
- admin = create_admins_list(event)
- if event.user_id in admin:
- try:
- message_info = get_msg_info(event)
- logging.info('Получена команда !мут')
- with open('mutbase.txt', 'rb') as mutbase:
- mut_list = pickle.load(mutbase)
- try:
- muted_id = message_info['items'][0]['reply_message']['from_id']
- except KeyError:
- muted_id = message_info['items'][0]['fwd_messages'][0]['from_id']
- if muted_id in admin:
- vk.method("messages.send", {"peer_id": 2000000000 + chat_id,
- "message": 'нельзя мутить админов (или бота)',
- "random_id": str(random.randint(1, 1000000000))})
- else:
- mut_list.append(muted_id)
- user_info = vk.method('users.get', {'user_ids': muted_id, 'fields': 'sex'})
- if user_info[0]['sex'] == 1:
- mute_message = f"замутили @id{muted_id}(девку)........"
- else:
- mute_message = f"замутили @id{muted_id}(пацана)........"
- vk.method("messages.send", {"peer_id": 2000000000 + chat_id,
- "message": mute_message,
- "random_id": str(random.randint(1, 1000000000))})
- with open('mutbase.txt', 'wb') as mutbase:
- pickle.dump(mut_list, mutbase)
- except IndexError:
- vk.method("messages.send", {"peer_id": 2000000000 + chat_id,
- "message": 'а каво мне мутить ты не подумал??? уебок',
- "random_id": str(random.randint(1, 1000000000))})
- else:
- vk.method("messages.send", {"peer_id": 2000000000 + chat_id,
- "message": 'долабеб ты че творишь (вариант 1 - ты не админ, '
- 'вариант 2 - ты хочешь замутить бота, вариант 3 - '
- 'пошёл нахуй',
- "random_id": str(random.randint(1, 1000000000))})
- def unmute(event):
- chat_id = event.chat_id
- logging.info('Получена команда !размут')
- admin = create_admins_list(event)
- if event.user_id in admin:
- try:
- message_info = get_msg_info(event)
- with open('mutbase.txt', 'rb') as mutbase:
- mut_list = pickle.load(mutbase)
- try:
- unmuted_id = message_info['items'][0]['reply_message']['from_id']
- except KeyError:
- unmuted_id = message_info['items'][0]['fwd_messages'][0]['from_id']
- for number, mut_id in enumerate(mut_list):
- if mut_id == unmuted_id:
- mut_list.pop(number)
- user_info = vk.method('users.get', {'user_ids': unmuted_id, 'fields': 'sex'})
- if user_info[0]['sex'] == 1:
- unmute_message = f"размутили @id{unmuted_id}(девку)........"
- else:
- unmute_message = f"размутили @id{unmuted_id}(пацана)........"
- vk.method("messages.send", {"peer_id": 2000000000 + chat_id,
- "message": unmute_message,
- "random_id": str(random.randint(1, 1000000000))})
- with open('mutbase.txt', 'wb') as mutbase:
- pickle.dump(mut_list, mutbase)
- except IndexError:
- vk.method("messages.send", {"peer_id": 2000000000 + chat_id,
- "message": 'кого размут сука??? кого блять??????',
- "random_id": str(random.randint(1, 1000000000))})
- else:
- vk.method("messages.send", {"peer_id": 2000000000 + chat_id,
- "message": 'ток админы могут hfpve блять размутить',
- "random_id": str(random.randint(1, 1000000000))})
- def ban(event):
- chat_id = event.chat_id
- logging.info('Получена команда !бан')
- admin = create_admins_list(event)
- if event.user_id in admin:
- message_info = get_msg_info(event)
- ban_id = message_info['items'][0]['reply_message']['from_id']
- if ban_id in admin:
- vk.method("messages.send", {"peer_id": 2000000000 + chat_id,
- "message": 'нельзя cyka',
- "random_id": str(random.randint(1, 1000000000))})
- else:
- try:
- user_info = vk.method('users.get', {'user_ids': ban_id, 'fields': 'sex'})
- if user_info[0]['sex'] == 1:
- ban_message = 'убили фраер_ессу суки'
- else:
- ban_message = 'убили фраера суки'
- vk.method('messages.removeChatUser', {'chat_id': chat_id, 'member_id': ban_id})
- vk.method("messages.send", {"peer_id": 2000000000 + chat_id,
- "message": ban_message,
- 'attachment': 'audio2000210783_389984836',
- "random_id": str(random.randint(1, 1000000000))})
- logging.info('Забанен' + str(ban_id))
- except vk_api.exceptions.ApiError:
- vk.method("messages.send", {"peer_id": 2000000000 + chat_id,
- "message": 'блять че ты делаешь так нельзя',
- "random_id": str(random.randint(1, 1000000000))})
- except KeyError:
- vk.method("messages.send", {"peer_id": 2000000000 + chat_id,
- "message": 'каво банить не слишу',
- "random_id": str(random.randint(1, 1000000000))})
- else:
- vk.method("messages.send", {"peer_id": 2000000000 + chat_id,
- "message": 'блять че ты делаешь так нельзя',
- "random_id": str(random.randint(1, 1000000000))})
- def humor(event):
- chat_id = event.chat_id
- logging.info('Получена команда !юмореска')
- try:
- text = helper.get_text()
- vk.method("messages.send", {"peer_id": 2000000000 + chat_id,
- "message": text,
- "random_id": str(random.randint(1, 1000000000))})
- except vk_api.exceptions.ApiError:
- text = helper.get_random_error_humor()
- vk.method("messages.send", {"peer_id": 2000000000 + chat_id,
- "message": text,
- "random_id": str(random.randint(1, 1000000000))})
- def samoban(event):
- chat_id = event.chat_id
- logging.info('Получена команда !самобан')
- message_info = get_msg_info(event)
- chance = random.randint(1, 1000)
- if chance == 1000:
- try:
- ban_id = message_info['items'][0]['from_id']
- vk.method('messages.removeChatUser', {'chat_id': chat_id, 'member_id': ban_id})
- vk.method("messages.send", {"peer_id": 2000000000 + chat_id,
- "message": 'ОН СДЕЛАЛ ХАРАКИРИ У ВАС НА ГЛАЗАХ',
- "random_id": str(random.randint(1, 1000000000))})
- except vk_api.exceptions.ApiError:
- vk.method("messages.send", {"peer_id": 2000000000 + chat_id,
- "message": 'Поздравляю, тебе выпало 1000, но тебя нельзя кикнуть,'
- ' так что пошел нахуй ок?',
- "random_id": str(random.randint(1, 1000000000))})
- else:
- vk.method("messages.send", {"peer_id": 2000000000 + chat_id,
- "message": (f'Выпало {chance}, еще один день без самобана.....'),
- "random_id": str(random.randint(1, 1000000000))})
- def warn(event):
- chat_id = event.chat_id
- logging.info('Получена команда !варн')
- admin = create_admins_list(event)
- if event.user_id in admin:
- message_info = get_msg_info(event)
- try:
- with open('database.txt', 'rb') as inp:
- warns = pickle.load(inp)
- try:
- warn_id = message_info['items'][0]['reply_message']['from_id']
- except KeyError:
- warn_id = message_info['items'][0]['fwd_messages'][0]['from_id']
- if warn_id in admin:
- vk.method("messages.send", {"peer_id": 2000000000 + chat_id,
- "message": 'нельзя дать варн админу',
- "random_id": str(random.randint(1, 1000000000))})
- else:
- user_info = vk.method('users.get', {'user_ids': warn_id, 'fields': 'sex'})
- user_name = user_info[0]['first_name']
- user_lastname = user_info[0]['last_name']
- try:
- warns[warn_id] += 1
- except KeyError:
- warns[warn_id] = 0
- warns[warn_id] += 1
- with open('database.txt', 'wb') as out:
- pickle.dump(warns, out)
- if warns[warn_id] >= 4:
- try:
- if user_info[0]['sex'] == 1:
- message_ban = 'убили фраер_ессу суки'
- else:
- message_ban = 'убили фраера суки'
- ban_id = warn_id
- vk.method('messages.removeChatUser', {'chat_id': chat_id, 'member_id': ban_id})
- vk.method("messages.send", {"peer_id": 2000000000 + chat_id,
- "message": message_ban,
- 'attachment': 'audio2000210783_389984836',
- "random_id": str(random.randint(1, 1000000000))})
- warns[warn_id] = 0
- except vk_api.exceptions.ApiError:
- vk.method("messages.send", {"peer_id": 2000000000 + chat_id,
- "message": 'блять че ты делаешь так нельзя',
- "random_id": str(random.randint(1, 1000000000))})
- else:
- if user_info[0]['sex'] == 1:
- message_warn = f"@id{warn_id}({user_name} {user_lastname}) получила варн, теперь их" \
- f" [{warns[warn_id]} из 4]"
- else:
- message_warn = f"@id{warn_id}({user_name} {user_lastname}) получил варн, теперь их" \
- f" [{warns[warn_id]} из 4]"
- vk.method("messages.send", {"peer_id": 2000000000 + chat_id,
- "message": message_warn,
- "random_id": str(random.randint(1, 1000000000))})
- with open('database.txt', 'wb') as out:
- pickle.dump(warns, out)
- except IndexError:
- vk.method("messages.send", {"peer_id": 2000000000 + chat_id,
- "message": 'а кому варн то блять?',
- "random_id": str(random.randint(1, 1000000000))})
- else:
- vk.method("messages.send", {"peer_id": 2000000000 + chat_id,
- "message": 'варны выдают ток админы',
- "random_id": str(random.randint(1, 1000000000))})
- def unwarn(event):
- chat_id = event.chat_id
- logging.info('Получена команда !анварн')
- try:
- message_info = get_msg_info(event)
- admin = create_admins_list(event)
- with open('database.txt', 'rb') as inp:
- warns = pickle.load(inp)
- try:
- warn_id = message_info['items'][0]['reply_message']['from_id']
- except KeyError:
- warn_id = message_info['items'][0]['fwd_messages'][0]['from_id']
- if warn_id in admin:
- vk.method("messages.send", {"peer_id": 2000000000 + chat_id,
- "message": 'админам похуй у них нет варнов',
- "random_id": str(random.randint(1, 1000000000))})
- else:
- user_info = vk.method('users.get', {'user_ids': warn_id, 'fields': 'sex'})
- user_name = user_info[0]['first_name']
- user_lastname = user_info[0]['last_name']
- if warns[warn_id] <= 0:
- vk.method("messages.send", {"peer_id": 2000000000 + chat_id,
- "message": f'@id{warn_id} ({user_name} {user_lastname})'
- f' и так без варнов, куда дальше то',
- "random_id": str(random.randint(1, 1000000000))})
- else:
- try:
- warns[warn_id] -= 1
- except KeyError:
- warns[warn_id] = 0
- with open('database.txt', 'wb') as out:
- pickle.dump(warns, out)
- if warns[warn_id] == 0:
- if user_info[0]['sex'] == 1:
- message_0 = f'@id{warn_id} ({user_name} {user_lastname}) поздравляю, ты свободная женщина без варнов'
- else:
- message_0 = f'@id{warn_id} ({user_name} {user_lastname}) поздравляю, ты свободный человек без варнов'
- vk.method("messages.send", {"peer_id": 2000000000 + chat_id,
- "message": message_0,
- "random_id": str(random.randint(1, 1000000000))})
- logging.info(f'{user_name} {user_lastname} теперь без варнов')
- else:
- vk.method("messages.send", {"peer_id": 2000000000 + chat_id,
- "message": (f"@id{warn_id}({user_name}"
- f" {user_lastname}) у тебя минус варн,"
- f" теперь их [{warns[warn_id]} из 4]"),
- "random_id": str(random.randint(1, 1000000000))})
- except IndexError:
- vk.method("messages.send", {"peer_id": 2000000000 + chat_id,
- "message": 'что анварн? что ты этим хотел сказать, уебок',
- "random_id": str(random.randint(1, 1000000000))})
- def full_anwarn(event):
- chat_id = event.chat_id
- logging.info('Получена команда !фуланварн')
- try:
- message_info = get_msg_info(event)
- admin = create_admins_list(event)
- with open('database.txt', 'rb') as inp:
- warns = pickle.load(inp)
- try:
- warn_id = message_info['items'][0]['reply_message']['from_id']
- except KeyError:
- warn_id = message_info['items'][0]['fwd_messages'][0]['from_id']
- if warn_id in admin:
- vk.method("messages.send", {"peer_id": 2000000000 + chat_id,
- "message": 'админам похуй у них нет варнов',
- "random_id": str(random.randint(1, 1000000000))})
- else:
- user_info = vk.method('users.get', {'user_ids': warn_id, 'fields': 'sex'})
- user_name = user_info[0]['first_name']
- user_lastname = user_info[0]['last_name']
- if user_info[0]['sex'] == 1:
- message = f'опа нахуй @id{warn_id}({user_name} {user_lastname}) свободна'
- else:
- message = f'опа нахуй @id{warn_id}({user_name} {user_lastname}) свободен'
- warns[warn_id] = 0
- with open('database.txt', 'wb') as out:
- pickle.dump(warns, out)
- vk.method("messages.send", {"peer_id": 2000000000 + chat_id,
- "message": message,
- "random_id": str(random.randint(1, 1000000000))})
- except IndexError:
- vk.method("messages.send", {"peer_id": 2000000000 + chat_id,
- "message": 'эм и че где пересланное сообщение',
- "random_id": str(random.randint(1, 1000000000))})
- def info(event):
- chat_id = event.chat_id
- logging.info('Получена команда !инфо')
- message_info = get_msg_info(event)
- try:
- admin = create_admins_list(event)
- try:
- info_id = message_info['items'][0]['reply_message']['from_id']
- except KeyError:
- info_id = message_info['items'][0]['fwd_messages'][0]['from_id']
- if info_id in admin:
- vk.method("messages.send", {"peer_id": 2000000000 + chat_id,
- "message": 'админам похуй у них нет варнов',
- "random_id": str(random.randint(1, 1000000000))})
- else:
- user_info = vk.method('users.get', {'user_ids': info_id})
- user_name = user_info[0]['first_name']
- user_lastname = user_info[0]['last_name']
- with open('database.txt', 'rb') as inp:
- warns = pickle.load(inp)
- vk.method("messages.send", {"peer_id": 2000000000 + chat_id,
- "message": (f"у {user_name}"
- f" {user_lastname} [{warns[info_id]} из 4] варнов"),
- "random_id": str(random.randint(1, 1000000000))})
- except IndexError:
- info_id = message_info['items'][0]['from_id']
- admin = create_admins_list(event)
- if info_id in admin:
- vk.method("messages.send", {"peer_id": 2000000000 + chat_id,
- "message": 'админам похуй у них нет варнов',
- "random_id": str(random.randint(1, 1000000000))})
- else:
- user_info = vk.method('users.get', {'user_ids': info_id})
- user_name = user_info[0]['first_name']
- user_lastname = user_info[0]['last_name']
- with open('database.txt', 'rb') as inp:
- warns = pickle.load(inp)
- vk.method("messages.send", {"peer_id": 2000000000 + chat_id,
- "message": (f"у {user_name}"
- f" {user_lastname} [{warns[info_id]} из 4] варнов"),
- "random_id": str(random.randint(1, 1000000000))})
- def info_bot(event):
- chat_id = event.chat_id
- logging.info('Получена команда !справка')
- vk.method("messages.send", {"peer_id": 2000000000 + chat_id,
- "message": '!мут - мутит\n!бан - банит\n!самобан - самобанит'
- '\n!юмореска - юмореска\n!варн - варн (4 варна - бан)'
- '\n!инфо - инфа о варнах\n!гс вкл/выкл - включает или выключает'
- ' распознавание голосовых\n!трек - трек\n!код - выполнить пайтон код\n'
- '!сбор - сбор всех участников конфы по гиперам\n!скажи - озвучить ваш текст'
- '\n!лозунг - озвучить ваш текст но как будто это говорит ленин_есса на'
- 'броневике\n!спой летова - поет летова хули\n!анек - рассказывает анек\n'
- 'Команды можно использовать голосом, с помощью голосового сообщения',
- "random_id": str(random.randint(1, 1000000000))})
- def full_info(event):
- chat_id = event.chat_id
- logging.info('Получена команда !фулинфо')
- all_info = []
- with open('database.txt', 'rb') as inp:
- warns = pickle.load(inp)
- for i in sorted(warns.keys()):
- user_info = vk.method('users.get', {'user_ids': i})
- user_name = user_info[0]['first_name']
- user_lastname = user_info[0]['last_name']
- message = f"{user_name} {user_lastname} - [{warns[i]} из 4] варнов"
- all_info.append(message)
- bot_message = ''
- for inf_num, inf in enumerate(all_info):
- bot_message += all_info[inf_num] + '\n'
- vk.method("messages.send", {"peer_id": 2000000000 + chat_id,
- "message": bot_message,
- "random_id": str(random.randint(1, 1000000000))})
- def test(event):
- chat_id = event.chat_id
- logging.info('Получена команда !тест')
- answers_list = ['Все ещё достоин', 'Пока не остыл', 'Ещё жив', 'Живой', 'Готов к труду и обороне',
- 'Скайнет на месте', 'Пошел нахуй', 'Who call the dragon knight?',
- 'блять до крови прищемил добровольные пальцы', '42', 'что', 'пажилой бот слушает',
- 'кручу код по кругу', 'проверяю условия', 'кирюша не тупи ты ближе подойди.....',
- '>пук\n>среньк', 'бот 12 лет пошлый']
- answer = random.choice(answers_list)
- vk.method("messages.send", {"peer_id": 2000000000 + chat_id,
- "message": answer,
- "random_id": str(random.randint(1, 1000000000))})
- def track(event):
- chat_id = event.chat_id
- logging.info('Получена команда !трек')
- if event.user_id == 436338702:
- track = helper.raf_music()
- vk.method("messages.send", {"peer_id": 2000000000 + chat_id,
- "message": '',
- 'attachment': track,
- "random_id": str(random.randint(1, 1000000000))})
- else:
- track = helper.random_letov()
- vk.method("messages.send", {"peer_id": 2000000000 + chat_id,
- "message": '',
- 'attachment': track,
- "random_id": str(random.randint(1, 1000000000))})
- def code(event):
- import math
- chat_id = event.chat_id
- ms_info = get_msg_info(event)
- if ms_info['items'][0]['from_id'] == 431631325:
- vk.method("messages.send", {"peer_id": 2000000000 + chat_id,
- "message": 'хаха у бойцова бан',
- "random_id": str(random.randint(1, 1000000000))})
- else:
- logging.info('Получена команда !код')
- try:
- code_raw = ms_info['items'][0]['text']
- code = eval(code_raw[5:])
- vk.method("messages.send", {"peer_id": 2000000000 + chat_id,
- "message": code,
- "random_id": str(random.randint(1, 1000000000))})
- except Exception as e: # тут из за евала может случиться сто миллионов ошибок
- vk.method("messages.send", {"peer_id": 2000000000 + chat_id,
- "message": 'Ошибка блять! ' + str(e),
- "random_id": str(random.randint(1, 1000000000))})
- def audio_to_text():
- folder_id = "b1gtmceh9mu4d7rinqna" # Идентификатор каталога
- api_key = 'AQVNxJyscrPugartSif4BMcFGtZdy0M9hXJ4Frwt'
- with open("audio.ogg", "rb") as f:
- data = f.read()
- params = "&".join([
- "topic=general",
- "folderId=%s" % folder_id,
- "lang=ru-RU"
- ])
- url = urllib.request.Request("https://stt.api.cloud.yandex.net/speech/v1/stt:recognize?%s" % params, data=data)
- url.add_header("Authorization", "Api-Key %s" % api_key)
- responseData = urllib.request.urlopen(url).read().decode('UTF-8')
- try:
- decodedData = json.loads(responseData)
- except:
- return
- if decodedData.get("error_code") is None:
- result = decodedData.get("result")
- else:
- result = decodedData.get("error_code")
- return result
- def audio_helper(text_from_audio, chat_id, user_name, user_lastname):
- if text_from_audio != '':
- vk.method("messages.send", {"peer_id": 2000000000 + chat_id,
- "message": (f'{user_name} {user_lastname} '
- f'сказал:\n\n'
- f'{text_from_audio}'),
- "random_id": str(random.randint(1, 1000000000))})
- else:
- vk.method("messages.send", {"peer_id": 2000000000 + chat_id,
- "message": (f'{user_name} {user_lastname}'
- f' отправил голосовое и ничего не сказал, лол'),
- "random_id": str(random.randint(1, 1000000000))})
- def audio_check(event):
- message_info = get_msg_info(event)
- user_id = event.user_id
- if user_id == 547098395:
- pass
- else:
- audio = message_info['items'][0]['attachments'][0]['audio_message']['link_ogg']
- urllib.request.urlretrieve(audio, "audio.ogg")
- text_from_audio = audio_to_text()
- return text_from_audio
- def audio_norm(event):
- chat_id = event.chat_id
- message_info = get_msg_info(event)
- user_id = event.user_id
- if user_id == 547098395:
- pass
- else:
- audio = message_info['items'][0]['attachments'][0]['audio_message']['link_ogg']
- urllib.request.urlretrieve(audio, "audio.ogg")
- text_from_audio = audio_to_text()
- user_info = vk.method('users.get', {'user_ids': user_id})
- user_name = user_info[0]['first_name']
- user_lastname = user_info[0]['last_name']
- vk.method("messages.send", {"peer_id": 2000000000 + chat_id,
- "message": f'{user_name} {user_lastname} сказал:\n\n{text_from_audio}',
- "random_id": str(random.randint(1, 1000000000))})
- return text_from_audio, user_name, user_lastname
- def audio_fwd(event):
- chat_id = event.chat_id
- message_info = get_msg_info(event)
- audio = message_info['items'][0]['fwd_messages'][0]['attachments'][0]['audio_message']['link_ogg']
- urllib.request.urlretrieve(audio, "audio.ogg")
- text_from_audio = audio_to_text()
- user_id = message_info['items'][0]['fwd_messages'][0]['from_id']
- user_info = vk.method('users.get', {'user_ids': user_id})
- user_name = user_info[0]['first_name']
- user_lastname = user_info[0]['last_name']
- audio_helper(text_from_audio, chat_id, user_name, user_lastname)
- def call(event):
- chat_id = event.chat_id
- admin = create_admins_list(event)
- if event.user_id in admin:
- logging.info("Получена команда !сбор")
- chat = vk.method('messages.getChat', {'chat_id': chat_id, 'fields': 'online'})
- users = chat['users']
- message = ''
- for user in users:
- user_id = user['id']
- user_name = user['first_name']
- user_surname = user['last_name']
- one_call = (f'@id{user_id}({user_name}'
- f' {user_surname}) приди!\n')
- message += one_call
- vk.method("messages.send", {"peer_id": 2000000000 + chat_id,
- "message": message,
- "random_id": str(random.randint(1, 1000000000))})
- else:
- vk.method("messages.send", {"peer_id": 2000000000 + chat_id,
- "message": "доступно ток админам (((",
- "random_id": str(random.randint(1, 1000000000))})
- def help_syntez_save(synt, chat_id):
- with open('speech.ogg', "wb") as f:
- for audio_content in synt:
- f.write(audio_content)
- upload_url = vk.method("docs.getMessagesUploadServer", {"type": "audio_message", "peer_id": 2000000000 + chat_id})
- post_info = requests.post(upload_url['upload_url'], files={'file': open("speech.ogg", 'rb')}).json()
- audio_doc = vk.method("docs.save", {"file": post_info['file']})
- audio_message = 'doc{}_{}'.format(audio_doc['audio_message']['owner_id'], audio_doc['audio_message']['id'])
- vk.method("messages.send", {"peer_id": 2000000000 + chat_id,
- "attachment": audio_message,
- "random_id": str(random.randint(1, 1000000000))})
- def syntez(event, text):
- chat_id = event.chat_id
- def synthesize(text):
- data = {
- 'text': text,
- 'lang': 'ru-RU',
- 'folderId': folder_id,
- 'voice': 'zahar',
- 'emotion': 'evil',
- }
- with requests.post(url_yandex, headers=headers, data=data, stream=True) as resp:
- if resp.status_code != 200:
- raise RuntimeError("Invalid response received: code: %d, message: %s" % (resp.status_code, resp.text))
- for chunk in resp.iter_content(chunk_size=None):
- yield chunk
- synt = synthesize(text)
- help_syntez_save(synt, chat_id)
- def syntez_loz(event, text):
- chat_id = event.chat_id
- def synthesize(text):
- data = {
- 'text': text,
- 'lang': 'ru-RU',
- 'folderId': folder_id,
- 'voice': 'omazh',
- 'emotion': 'evil'
- }
- with requests.post(url_yandex, headers=headers, data=data, stream=True) as resp:
- if resp.status_code != 200:
- raise RuntimeError("Invalid response received: code: %d, message: %s" % (resp.status_code, resp.text))
- for chunk in resp.iter_content(chunk_size=None):
- yield chunk
- synt = synthesize(text)
- help_syntez_save(synt, chat_id)
- def syntez_en(event, text):
- chat_id = event.chat_id
- def synthesize(text):
- data = {
- 'text': text,
- 'lang': 'en-US',
- 'folderId': folder_id,
- 'voice': 'zahar',
- 'emotion': 'evil',
- }
- with requests.post(url_yandex, headers=headers, data=data, stream=True) as resp:
- if resp.status_code != 200:
- raise RuntimeError("Invalid response received: code: %d, message: %s" % (resp.status_code, resp.text))
- for chunk in resp.iter_content(chunk_size=None):
- yield chunk
- synt = synthesize(text)
- help_syntez_save(synt, chat_id)
- def syntez_good(event, text):
- chat_id = event.chat_id
- def synthesize(text):
- data = {
- 'text': text,
- 'lang': 'ru-RU',
- 'folderId': folder_id,
- 'voice': 'zahar',
- 'emotion': 'good',
- }
- with requests.post(url_yandex, headers=headers, data=data, stream=True) as resp:
- if resp.status_code != 200:
- raise RuntimeError("Invalid response received: code: %d, message: %s" % (resp.status_code, resp.text))
- for chunk in resp.iter_content(chunk_size=None):
- yield chunk
- synt = synthesize(text)
- help_syntez_save(synt, chat_id)
- def anecdot(event):
- logging.info("Получена команда !анек")
- chat_id = event.chat_id
- try:
- text = helper.get_anek()
- syntez(event, text)
- except vk_api.exceptions.ApiError:
- vk.method("messages.send", {"peer_id": 2000000000 + chat_id,
- "message": 'технические шоколадки простите.........',
- "random_id": str(random.randint(1, 1000000000))})
- def sing_letov(event):
- logging.info("Получена команда !спой летова")
- text = helper.letov_text()
- syntez(event, text)
- def sing(event):
- logging.info("Получена команда !спой")
- text = helper.music_texts()
- syntez_good(event, text)
- def synt_msg_error(event):
- chat_id = event.chat_id
- vk.method("messages.send", {"peer_id": 2000000000 + chat_id,
- "message": 'эм ты че еблан',
- "random_id": str(random.randint(1, 1000000000))})
- def diarea(event):
- chat_id = event.chat_id
- members = vk.method('messages.getConversationMembers', {'peer_id': 2000000000 + chat_id})
- for member in members['items']:
- member_id = member['member_id']
- if member_id == 261498773 or member_id == 547098395:
- continue
- else:
- vk.method("messages.send", {"peer_id": 2000000000 + chat_id,
- "message": 'ЗАХОДИМ СЮДА КОНФА УМЕРЛА\n\n'
- 'https://vk.me/join/AJQ1d4zW7hEflOC5C8A4Dutl',
- "random_id": str(random.randint(1, 1000000000))})
- try:
- vk.method('messages.removeChatUser', {'chat_id': chat_id, 'member_id': member_id})
- except:
- continue
- def main():
- commands_audio = {'мут': mute,
- 'мод': mute,
- 'размут': unmute,
- 'развод': unmute,
- 'бан': ban,
- 'юмореска': humor,
- 'самобан': samoban,
- 'самый бан': samoban,
- 'самая бан': samoban,
- 'самая пан': samoban,
- 'варн': warn,
- 'парн': warn,
- 'варна': warn,
- 'анварн': unwarn,
- 'анвар': unwarn,
- 'инфо': info,
- 'тест': test,
- 'фулинфо': full_info,
- 'трек': track,
- 'справка': info_bot,
- 'сбор': call,
- 'анек': anecdot,
- 'а ник': anecdot,
- 'спой летова': sing_letov,
- 'спой летово': sing_letov,
- 'спой лето': sing_letov,
- 'спой': sing}
- commands = {'!мут': mute,
- '!размут': unmute,
- '!бан': ban,
- '!юмореска': humor,
- '!самобан': samoban,
- '!варн': warn,
- '!анварн': unwarn,
- '!инфо': info,
- '!тест': test,
- '!фулинфо': full_info,
- '!трек': track,
- '!справка': info_bot,
- '!сбор': call,
- '!анек': anecdot,
- '!спой летова': sing_letov,
- '!спой': sing,
- '!фуланварн': full_anwarn}
- for event in longpoll.listen():
- if event.type == VkEventType.MESSAGE_NEW:
- if event.from_chat:
- chat_id = event.chat_id
- with open('mutbase.txt', 'rb') as mutbase:
- mut_list = pickle.load(mutbase)
- try:
- if event.user_id in mut_list:
- pass
- else:
- audio_fwd(event)
- except KeyError:
- pass
- except IndexError:
- try:
- if event.user_id in mut_list:
- pass
- else:
- try:
- audio_command = audio_check(event).lower()
- if audio_command in commands_audio:
- commands_audio[audio_command](event)
- elif audio_command[0:5] == 'скажи':
- text = audio_command[6:]
- syntez(event, text)
- else:
- audio_norm(event)
- logging.info('Распознали какое - то голосовое')
- except KeyError:
- pass
- except TypeError:
- pass
- except AttributeError:
- pass
- except IndexError:
- pass
- if event.user_id in mut_list:
- try:
- message_id = event.message_id
- vk.method('messages.delete', {'message_ids': message_id, 'delete_for_all': 1})
- except vk_api.exceptions.ApiError:
- vk.method("messages.send", {"peer_id": 2000000000 + chat_id,
- "message": 'бот хотел чета удалить но там какая то ошибка'
- ' идите нахуй',
- "random_id": str(random.randint(1, 1000000000))})
- elif event.text.lower() in commands:
- commands[event.text.lower()](event)
- elif event.text.lower()[0:4] == '!код':
- code(event)
- elif event.text.lower()[0:6] == '!скажи':
- logging.info("Получена команда !скажи")
- text = event.text[7:]
- try:
- syntez(event, text)
- except RuntimeError:
- synt_msg_error(event)
- elif event.text.lower()[0:7] == '!лозунг':
- logging.info("Получена команда !лозунг")
- text = event.text[8:]
- try:
- syntez_loz(event, text)
- except RuntimeError:
- synt_msg_error(event)
- elif event.text.lower()[0:4] == '!say':
- logging.info("Получена команда !скажи")
- text = event.text[5:]
- try:
- syntez_en(event, text)
- except RuntimeError:
- synt_msg_error(event)
- elif event.text.lower() == '!диарея':
- ms_info = get_msg_info(event)
- if ms_info['items'][0]['from_id'] == 256460254:
- logging.info("пизда)")
- diarea(event)
- else:
- pass
- elif event.text.lower()[0:7] == '!конфач':
- text = event.text.lower()[7:]
- message_id = event.message_id
- if chat_id == 5:
- user_id = event.user_id
- user_info = vk.method('users.get', {'user_ids': user_id})
- user_name = user_info[0]['first_name']
- user_lastname = user_info[0]['last_name']
- vk.method('messages.delete', {'message_ids': message_id, 'delete_for_all': 1})
- vk.method("messages.send", {"peer_id": 2000000000 + 5,
- "message": f'{user_name} {user_lastname} попытался отправить'
- f'анонимное письмо, но проебался и чуть не отправил его в свою же'
- f'конфу',
- "random_id": str(random.randint(1, 1000000000))})
- else:
- try:
- vk.method('messages.delete', {'message_ids': message_id, 'delete_for_all': 1})
- except:
- pass
- vk.method("messages.send", {"peer_id": 2000000000 + 5,
- "message": f'(вам письмо): {text}',
- "random_id": str(random.randint(1, 1000000000))})
- elif event.text.lower()[0:8] == '!рекруты':
- if chat_id == 6:
- message_id = event.message_id
- user_id = event.user_id
- user_info = vk.method('users.get', {'user_ids': user_id})
- user_name = user_info[0]['first_name']
- user_lastname = user_info[0]['last_name']
- vk.method('messages.delete', {'message_ids': message_id, 'delete_for_all': 1})
- vk.method("messages.send", {"peer_id": 2000000000 + 6,
- "message": f'{user_name} {user_lastname} попытался отправить'
- f'анонимное письмо, но проебался и чуть не отправил его в свою же'
- f'конфу',
- "random_id": str(random.randint(1, 1000000000))})
- else:
- text = event.text.lower()[8:]
- message_id = event.message_id
- try:
- vk.method('messages.delete', {'message_ids': message_id, 'delete_for_all': 1})
- except vk_api.exceptions.ApiError:
- pass
- vk.method("messages.send", {"peer_id": 2000000000 + 6,
- "message": f'(голубь принес вам письмо): {text}',
- "random_id": str(random.randint(1, 1000000000))})
- if __name__ == '__main__':
- logging.info('Бот запущен!')
- try:
- main()
- except Exception as e: # тут надо бы выяснить какие ошибки бывают
- logging.error(f'Ошибка - {traceback.format_exc()}')
- time.sleep(25)
- main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement