From 5a3bfed451fd368fff5d8835362c347ace6f5cae Mon Sep 17 00:00:00 2001 From: "Gleb O. Ivaniczkij" Date: Fri, 26 Jul 2024 04:15:12 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A0=D0=B0=D0=B7=D1=80=D0=B0=D0=B1=D0=BE?= =?UTF-8?q?=D1=82=D0=B0=D0=BD=D0=BE=20=D0=BF=D1=80=D0=B8=D0=BB=D0=BE=D0=B6?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/__init__.py | 1 + app/main.py | 41 +++++++++++++++++++++++++++++++++++++++++ config/__init__.py | 1 + config/main.py | 14 ++++++++++++++ main.py | 14 ++++++++++++++ requirements.txt | 2 ++ 6 files changed, 73 insertions(+) create mode 100644 app/__init__.py create mode 100644 app/main.py create mode 100644 config/__init__.py create mode 100644 config/main.py create mode 100644 main.py create mode 100644 requirements.txt diff --git a/app/__init__.py b/app/__init__.py new file mode 100644 index 0000000..48ec86b --- /dev/null +++ b/app/__init__.py @@ -0,0 +1 @@ +from .main import set_online diff --git a/app/main.py b/app/main.py new file mode 100644 index 0000000..c148933 --- /dev/null +++ b/app/main.py @@ -0,0 +1,41 @@ +import json +import logging +import traceback +from urllib.parse import ParseResult, urlparse, urlencode + +import aiohttp + +import config + + +logging.basicConfig( + level=logging.ERROR, +) +logger = logging.getLogger() + +set_online_url = urlparse('https://api.vk.com/method/account.setOnline') + + +async def set_online(): + try: + query = { + 'access_token': config.VK.access_token, + 'voip': '0', + 'v': '5.154', + } + url = ParseResult( + scheme=set_online_url.scheme, + netloc=set_online_url.hostname, + path=set_online_url.path, + params=set_online_url.params, + query=urlencode(query), + fragment=set_online_url.fragment, + ) + async with aiohttp.ClientSession() as session: + async with session.get(url.geturl()) as response: + assert response.status == 200 + assert json.loads(await response.read()).get('response') == 1 + except AssertionError: + logger.error(traceback.format_exc()) + except Exception: + logger.critical(traceback.format_exc()) diff --git a/config/__init__.py b/config/__init__.py new file mode 100644 index 0000000..cac1356 --- /dev/null +++ b/config/__init__.py @@ -0,0 +1 @@ +from .main import VK diff --git a/config/main.py b/config/main.py new file mode 100644 index 0000000..df045f3 --- /dev/null +++ b/config/main.py @@ -0,0 +1,14 @@ +from configparser import RawConfigParser + + +config = RawConfigParser() +config.read( + filenames='./config.ini', +) + + +class VK: + access_token = config.get( + section='VK', + option='access_token', + ) diff --git a/main.py b/main.py new file mode 100644 index 0000000..1e4d253 --- /dev/null +++ b/main.py @@ -0,0 +1,14 @@ +import asyncio +import time + +import aioschedule + +from app import set_online + + +aioschedule.every(60 * 2).to(60 * 5).seconds.do(set_online) + +loop = asyncio.get_event_loop() +while True: + loop.run_until_complete(aioschedule.run_pending()) + time.sleep(.1) diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..afba7ba --- /dev/null +++ b/requirements.txt @@ -0,0 +1,2 @@ +aiohttp +aioschedule