Исходник Динамический Статус в вк

Sos
Пользователь
Статус
Оффлайн
Регистрация
26 Авг 2019
Сообщения
256
Реакции[?]
55
Поинты[?]
0
~~~
WARNING! SHIT CODE DETECTED!
~~~


Помню на форуме публиковали подобную статью, поэтому решил повторить её


Для начала:
1. Получаем токен
Пожалуйста, авторизуйтесь для просмотра ссылки.

2. Устанавливаем все зависимости
pip3 install vk_api
3. Вставляем токен в нужное поле
4. Прописываем python3 main.py и радуемся!

Python:
# pip3 install vk_api
import vk_api, sys, time
from vk_api import exceptions
from datetime import datetime
from random import randint


class VkStatus:
    def __init__(self):
        self.vk_session = None
        self.token = "$ Токен сюда $"
    def auth(self):
        try:
            self.vk_session = vk_api.VkApi(
                token=self.token,
            )
        except exceptions.AccessDenied:
            return "[DynamicStatus] Login failed; [reason: AccessDenied;]"
        except exceptions.AccountBlocked:
            return "[DynamicStatus] Login failed; [reason: AccountBlocked;]"
        except exceptions.AuthError:
            return "[DynamicStatus] Login failed; [reason: AuthError;]"
        except exceptions.TwoFactorError:
            return "[DynamicStatus] Login failed; [reason: TwoFactorError;]"
        finally:
            return "[DynamicStatus] Login successfull;"
    def set_status(self, status: str):
        try:
            self.vk_session.method(
                "status.set", {
                    "text": status,
                }
            )
            return True
        except:
            return False

    def run(self):
        a = self.auth()
        print(a)
        if a != "[DynamicStatus] Login successfull;":
            sys.exit(1)
        print("[DynamicStatus] Starting status changer;")
        while True:
            status = VkStatus.get_status()
            g = self.set_status(
                status
            )
            if g:
                print("[DynamicStatus] Status changed;")
            else:
                print("[DynamicStatus] Failed to change status;")
            # Можно статично сделать статично но почему бы и так не сделать ?
            r = randint(30, 60)
            print(f"[DynamicStatus] Next status change after {r} seconds;")
            time.sleep(r)
    def get_status() -> str:
        now = datetime.now()
        NY = datetime(2022, 1, 1)
        d = NY - now

        # Что бы было красиво, сделал так. Может какой то индус сделает это по другому но главное, что работает
        better_lang = {
            "часов": [0, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20],
            "часа": [22, 23, 24, 3, 2, 4],
            "час": [1,21,]
        }
        better_lang2 = {
            "день": [1, 21,],
            "дней": [5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 25, 26, 27, 28, 29, 30,],
            "дня": [22, 23, 24, 2, 3, 4]
        }
        mm,ss = divmod(d.seconds, 60)
        hh,mm = divmod(mm, 60)
        # Это тоже костыль но работает ведь :\
        hrs_text = ""
        day_text = ""
        for i, k in better_lang.items():
            if hh in k:
                hrs_text = i
        for i, k in better_lang2.items():
            if d.days in k:
                day_text = i


        return f'? До нового года: {d.days} {day_text} {hh} {hrs_text} {mm} мин'
if __name__ == "__main__":
    VkStatus().run()
 
Последнее редактирование:
how to доказать всем что не еблан
Пользователь
Статус
Оффлайн
Регистрация
14 Авг 2019
Сообщения
386
Реакции[?]
108
Поинты[?]
17K
how to доказать всем что не еблан
Пользователь
Статус
Оффлайн
Регистрация
14 Авг 2019
Сообщения
386
Реакции[?]
108
Поинты[?]
17K
#include <brain>
Забаненный
Статус
Оффлайн
Регистрация
29 Сен 2020
Сообщения
588
Реакции[?]
99
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
переделайте это на плюсы
 
how to доказать всем что не еблан
Пользователь
Статус
Оффлайн
Регистрация
14 Авг 2019
Сообщения
386
Реакции[?]
108
Поинты[?]
17K
командную строку нужно открыть там где у тебя файлик лежит
ну или через cd в нужный путь перейти
 
Участник
Статус
Оффлайн
Регистрация
29 Дек 2019
Сообщения
381
Реакции[?]
168
Поинты[?]
3K
~~~
WARNING! SHIT CODE DETECTED!
~~~


Помню на форуме публиковали подобную статью, поэтому решил повторить её


Для начала:
1. Получаем токен
Пожалуйста, авторизуйтесь для просмотра ссылки.

2. Устанавливаем все зависимости
pip3 install vk_api
3. Вставляем токен в нужное поле
4. Прописываем python3 main.py и радуемся!

Python:
# pip3 install vk_api
import vk_api, sys, time
from vk_api import exceptions
from datetime import datetime
from random import randint


class VkStatus:
    def __init__(self):
        self.vk_session = None
        self.token = "$ Токен сюда $"
    def auth(self):
        try:
            self.vk_session = vk_api.VkApi(
                token=self.token,
            )
        except exceptions.AccessDenied:
            return "[DynamicStatus] Login failed; [reason: AccessDenied;]"
        except exceptions.AccountBlocked:
            return "[DynamicStatus] Login failed; [reason: AccountBlocked;]"
        except exceptions.AuthError:
            return "[DynamicStatus] Login failed; [reason: AuthError;]"
        except exceptions.TwoFactorError:
            return "[DynamicStatus] Login failed; [reason: TwoFactorError;]"
        finally:
            return "[DynamicStatus] Login successfull;"
    def set_status(self, status: str):
        try:
            self.vk_session.method(
                "status.set", {
                    "text": status,
                }
            )
            return True
        except:
            return False

    def run(self):
        a = self.auth()
        print(a)
        if a != "[DynamicStatus] Login successfull;":
            sys.exit(1)
        print("[DynamicStatus] Starting status changer;")
        while True:
            status = VkStatus.get_status()
            g = self.set_status(
                status
            )
            if g:
                print("[DynamicStatus] Status changed;")
            else:
                print("[DynamicStatus] Failed to change status;")
            # Можно статично сделать статично но почему бы и так не сделать ?
            r = randint(30, 60)
            print(f"[DynamicStatus] Next status change after {r} seconds;")
            time.sleep(r)
    def get_status() -> str:
        now = datetime.now()
        NY = datetime(2022, 1, 1)
        d = NY - now

        # Что бы было красиво, сделал так. Может какой то индус сделает это по другому но главное, что работает
        better_lang = {
            "часов": [0, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20],
            "часа": [22, 23, 24, 3, 2, 4],
            "час": [1,21,]
        }
        better_lang2 = {
            "день": [1, 21,],
            "дней": [5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 25, 26, 27, 28, 29, 30,],
            "дня": [22, 23, 24, 2, 3, 4]
        }
        mm,ss = divmod(d.seconds, 60)
        hh,mm = divmod(mm, 60)
        # Это тоже костыль но работает ведь :\
        hrs_text = ""
        day_text = ""
        for i, k in better_lang.items():
            if hh in k:
                hrs_text = i
        for i, k in better_lang2.items():
            if d.days in k:
                day_text = i


        return f'? До нового года: {d.days} {day_text} {hh} {hrs_text} {mm} мин'
if __name__ == "__main__":
    VkStatus().run()
Все-таки пайтон неплохо выглядит
 
Sos
Пользователь
Статус
Оффлайн
Регистрация
26 Авг 2019
Сообщения
256
Реакции[?]
55
Поинты[?]
0
Эксперт
Статус
Оффлайн
Регистрация
10 Фев 2021
Сообщения
1,740
Реакции[?]
559
Поинты[?]
2K
how to доказать всем что не еблан
Пользователь
Статус
Оффлайн
Регистрация
14 Авг 2019
Сообщения
386
Реакции[?]
108
Поинты[?]
17K
Sos
Пользователь
Статус
Оффлайн
Регистрация
26 Авг 2019
Сообщения
256
Реакции[?]
55
Поинты[?]
0
У кого failed to change status, проверьте используемый токен (нужен IOS).

UPD: Можете разные попробовать ? (по дефолту IOS пользуюсь и беды не знаю)
 
how to доказать всем что не еблан
Пользователь
Статус
Оффлайн
Регистрация
14 Авг 2019
Сообщения
386
Реакции[?]
108
Поинты[?]
17K
У кого failed to change status, проверьте используемый токен (нужен IOS).
у кого failed to change status
1.
Пожалуйста, авторизуйтесь для просмотра ссылки.

2. Запоминаем инструкцию, которую дал нам сайт
3. kate mobile
4. У нас есть токен с фулл доступом
 
how to доказать всем что не еблан
Пользователь
Статус
Оффлайн
Регистрация
14 Авг 2019
Сообщения
386
Реакции[?]
108
Поинты[?]
17K
Сверху Снизу