Загрузка...

Script for viewing/cleaning VK conversations

Thread in Python created by MALWARE May 3, 2022. (bumped Jul 18, 2025 at 4:48 PM) 1818 views

  1. MALWARE
    MALWARE Topic starter May 3, 2022 мяукаю 11,879 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