Загрузка...

Скрипт для просмотра/чистки бесед ВК

Тема в разделе Python создана пользователем MALWARE 3 май 2022. (поднята 4 июн 2025 в 18:00) 1687 просмотров

Загрузка...
  1. MALWARE
    MALWARE Автор темы 3 май 2022 мяукаю 11 480 12 мар 2021
    Python
    import vk_api
    token = 'token'
    api = vk_api.VkApi(token=token).get_api()
    mode = input('Какие беседы показать? 1 - все, 2 - только те, в которых ты состоишь, 3 - только те, где ты не состоишь и не очистил историю, 4 - только те, где ты состоишь и очистил историю: ')
    if not int(mode) in [1,2,3,4]: exit('Неверное значение')
    print('Получаю беседы...')
    for i in range(1, 100000001):
    try:
    chat = api.messages.getChat(chat_id=i)
    except Exception as e:
    if str(e) == "[946] Chat not supported": print(str(i)+': Фантом-чат')
    elif str(e) == "[100] One of the parameters specified was missing or invalid: chat_id param is incorrect": break
    else:
    print(e)
    break
    chat_info = str(chat['id'])+': '+str(chat['title'])+'. '
    if 'left' in chat:
    chat_info += 'Вышел, '
    if mode in ['2', '4']: continue
    elif 'kicked' in chat:
    chat_info += 'Исключен, '
    if mode in ['2', '4']: continue
    else:
    chat_info += 'В составе, '
    if mode == '3': continue
    if api.messages.getHistory(peer_id=2000000000+chat['id'])['count'] == 0:
    chat_info += 'история очищена.'
    if mode == '3': continue
    else:
    chat_info += 'история не очищена.'
    if mode == '4': continue
    print(chat_info)
    input('Всё!\n')
    Использование: в переменную token вставить токен.
    Почему я не использовал chat_ids, чтобы получить сразу несколько бесед? Потому что существуют фантом-чаты... Допустим, беседы с ID 1, 2, 3 - обычные беседы, с ID 4 - фантом-чат, ID 5 - несуществующая беседа (то есть всего 4 беседы). Если я в chat_ids подставлю 1,4 - будет ошибка. Если 1,2,5 - тоже будет ошибка. Поэтому, после долгих эскперементов, я думаю, что лучше всего получать беседы по одной.
     
    3 май 2022 Изменено
  2. спонс
    спонс 3 май 2022 спонс 744 21 авг 2020
    больно глазам...
     
  3. Еремей
    Еремей 3 май 2022 Гламурный эмо-гопник 1745 20 июл 2018
    Используй однострочное условие, а не вот Это
    if not int(mode) in [1,2,3,4]: exit('Неверное значение')
     
    1. ZeN
      Еремей, что за однострочное условие?
    2. Еремей
      ZeN, ну смотри. Для примера возьмём ту строчку, что я указал
      Всё это можно поместить в одну строчку по схеме
      действие1 if условие else действие2
      и оно будет нормально работать не нарушай правила PEP8
      Если переделать, то получится:
      exit("Неверное значение") if not int(mode) in range(1,4) else pass
  4. danilasecret
    danilasecret 6 окт 2022 Заблокирован(а) 2 24 май 2022
    for i in range(1, 100000001):
    откуда взялось 100000001 ?
    Что смеяться. Есть методы, которые позволят узнать сколько бесед есть

    Простой код. Полезен
     
  5. sunrisetuna
    sunrisetuna 16 авг 2024 игрок админ создатель 5294 3 окт 2021
    нормально ты темы двухгодовалые апаешь

    но а так за код спасибо :smile_ty:
     
    1. God_likeGL Layer 1
      sunrisetuna, пока актуально пусть апает
Top