From d882cde772cfcc25d8de5a63ada2cea63db2fb76 Mon Sep 17 00:00:00 2001 From: tiagovla Date: Mon, 3 Oct 2022 21:33:36 -0300 Subject: [PATCH] feat: add frequency confirmation --- ppgee/client.py | 38 ++++++++++++++++++++++---------------- 1 file changed, 22 insertions(+), 16 deletions(-) diff --git a/ppgee/client.py b/ppgee/client.py index 3c7bbad..d7bbbd8 100644 --- a/ppgee/client.py +++ b/ppgee/client.py @@ -1,9 +1,11 @@ import aiohttp import asyncio import logging +from datetime import date from ppgee.errors import RequestException logger = logging.getLogger(__name__) +URL_BASE = "https://www.ppgee.ufmg.br/ppgeenet" class PPGEE: @@ -17,6 +19,12 @@ class PPGEE: await self.login() return self + async def __aexit__(self, exc_type, exc, tb) -> None: + await self.logoff() + await asyncio.sleep(1) + if self.session: + await self.session.close() + async def _request(self, method: str, url: str, **kwargs) -> str: async with self.session.request(method, url, **kwargs) as resp: if resp.status != 200: @@ -27,25 +35,23 @@ class PPGEE: async def login(self) -> str: logger.debug("Sending request to login.") - data = {"login": self.user, "senha": self.password} - return await self._request( - "post", "https://www.ppgee.ufmg.br/ppgeenet/login.php", data=data - ) + data: dict[str, str] = {"login": self.user, "senha": self.password} + return await self._request("post", f"{URL_BASE}/login.php", data=data) async def frequency(self) -> str: logger.debug("Sending request to frequency.") - return await self._request( - "get", "https://www.ppgee.ufmg.br/ppgeenet/afreq.php" - ) + return await self._request("get", f"{URL_BASE}/afreq.php") + + async def frequency_confirmation(self) -> str: + logger.debug("Sending request to confirm frequency.") + today = date.today() + data: dict[str, str] = { + "freqano": str(today.year), + "freqmes": str(today.month), + "confirma": "checkbox", + } + return await self._request("POST", f"{URL_BASE}/afreqpasso2.php", data=data) async def logoff(self) -> str: logger.debug("Sending request to logoff.") - return await self._request( - "get", "https://www.ppgee.ufmg.br/ppgeenet/logoff.php" - ) - - async def __aexit__(self, exc_type, exc, tb) -> None: - await self.logoff() - await asyncio.sleep(1) - if self.session: - await self.session.close() + return await self._request("get", f"{URL_BASE}/logoff.php")