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

Начинающий
Статус
Оффлайн
Регистрация
21 Июн 2021
Сообщения
125
Реакции[?]
18
Поинты[?]
1K
точно?)
До нг осталось 0 дней 2 часа 5 минут
Не пишется?)
У меня не писалось, писался просто 0 и сразу шли часы. В коде который я скинул это уже исправлено и работает.
точно?)
До нг осталось 0 дней 2 часа 5 минут
Не пишется?)
Ты можешь зайти в код в этой теме и в графе better_lang2, точнее в поле дней нет цифры 0. Поэтому писаться он не будет.
 
how to доказать всем что не еблан
Пользователь
Статус
Оффлайн
Регистрация
14 Авг 2019
Сообщения
386
Реакции[?]
108
Поинты[?]
17K
У меня не писалось, писался просто 0 и сразу шли часы. В коде который я скинул это уже исправлено и работает.

Ты можешь зайти в код в этой теме и в графе better_lang2, точнее в поле дней нет цифры 0. Поэтому писаться он не будет.
а, сорян, быканул
 
Начинающий
Статус
Оффлайн
Регистрация
1 Сен 2020
Сообщения
13
Реакции[?]
0
Поинты[?]
0
А можно как нибудь сделать авто статус со своим текстом?:roflanBuldiga:
 
Sos
Пользователь
Статус
Оффлайн
Регистрация
26 Авг 2019
Сообщения
256
Реакции[?]
55
Поинты[?]
0
А можно как нибудь сделать авто статус со своим текстом?:roflanBuldiga:
Да
Python:
def get_status(state: int) -> str:
    
    if state == 0:
        return "text 1"
    elif state == 1:
        return "text 2"
# Ну либо как угодно редактируешь данную функцию, можешь при вызове функции передавать аргументы, или создать переменную вне данной функции и изменять её в зависимости от текста
 
Начинающий
Статус
Оффлайн
Регистрация
26 Май 2019
Сообщения
51
Реакции[?]
6
Поинты[?]
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()
я конечно дико извиняюсь все дела, но че мешает юзать
Пожалуйста, авторизуйтесь для просмотра ссылки.
для вывода уже отформатированной в человеческий язык даты?
 
Начинающий
Статус
Оффлайн
Регистрация
1 Сен 2020
Сообщения
13
Реакции[?]
0
Поинты[?]
0
Да
Python:
def get_status(state: int) -> str:
  
    if state == 0:
        return "text 1"
    elif state == 1:
        return "text 2"
# Ну либо как угодно редактируешь данную функцию, можешь при вызове функции передавать аргументы, или создать переменную вне данной функции и изменять её в зависимости от текста
а можешь пожалуйста готовый код скинуть? а то я в программирование слаб
 
Sos
Пользователь
Статус
Оффлайн
Регистрация
26 Авг 2019
Сообщения
256
Реакции[?]
55
Поинты[?]
0
Сверху Снизу