Загрузка...

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

Тема в разделе Python создана пользователем MALWARE 3 май 2022. (поднята Вчера, в 11:07) 1593 просмотра

Загрузка...
  1. MALWARE
    MALWARE Автор темы 3 май 2022 мяукаю 10 547 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 спонс 745 21 авг 2020
    больно глазам...
     
  3. Еремей
    Еремей 3 май 2022 Гламурный эмо-гопник 1746 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
    нормально ты темы двухгодовалые апаешь

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