Загрузка...

Script for viewing/cleaning VK conversations

Thread in Python created by MALWARE May 3, 2022. (bumped Jul 18, 2025) 1825 views

  1. MALWARE
    MALWARE Topic starter May 3, 2022 мяукаю 11,981 Mar 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 - тоже будет ошибка. Поэтому, после долгих эскперементов, я думаю, что лучше всего получать беседы по одной.
     
  2. спонс
    спонс May 3, 2022 спонс 744 Aug 21, 2020
    больно глазам...
     
  3. Еремей
    Еремей May 3, 2022 Гламурный эмо-гопник 1740 Jul 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 Oct 6, 2022 Banned 2 May 24, 2022
    for i in range(1, 100000001):
    откуда взялось 100000001 ?
    Что смеяться. Есть методы, которые позволят узнать сколько бесед есть

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

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