• Ищем качественного (не новичок) разработчиков Xenforo для этого форума! В идеале, чтобы ты был фулл стек программистом. Если у тебя есть что показать, то свяжись с нами по контактным данным: https://t.me/DREDD

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

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


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


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

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

Python:
Expand Collapse Copy
# 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()
 
Последнее редактирование:
Эх...
Были времена.
 
Что бы было красиво, сделал так. Может какой то индус сделает это по другому но главное, что работает
1640250238554.png

flexшу
 
python3: can't open file 'C:\Users\PC\main.py': [Errno 2] No such file or directory кавоч чего?
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
переделайте это на плюсы
 
командную строку нужно открыть там где у тебя файлик лежит
ну или через cd в нужный путь перейти
 
~~~
WARNING! SHIT CODE DETECTED!
~~~


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


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

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

Python:
Expand Collapse Copy
# 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()
Все-таки пайтон неплохо выглядит
 
Failed to change status;
либо я тупой либо лыжи не едут
 
У кого failed to change status, проверьте используемый токен (нужен IOS).

UPD: Можете разные попробовать ? (по дефолту IOS пользуюсь и беды не знаю)
 
У кого failed to change status, проверьте используемый токен (нужен IOS).
у кого failed to change status
1.
Пожалуйста, авторизуйтесь для просмотра ссылки.

2. Запоминаем инструкцию, которую дал нам сайт
3. kate mobile
4. У нас есть токен с фулл доступом
 
Назад
Сверху Снизу