def __init__(self, bot: Bot): self.logger = get_logger("extensions.ticketing.panels") self.bot = bot # Start the reactions task self.ensure_initial_reactions.start() self.logger.info("loaded ticketing reaction panels")
def __init__(self, bot: Bot): self.logger = get_logger("extensions.ticketing") self.bot = bot # Connect to redis self.pool: Optional[aioredis.Redis] = None self.pool_set = Event() self.bot.loop.create_task(self.__redis_connect()) self.logger.info("loaded ticketing commands")
import requests, json from bot.logger import get_logger MAILER_LITE_API_PREFIX = "https://api.mailerlite.com/api/v2" MAILER_LITE_GROUP_SUB_TMPL = MAILER_LITE_API_PREFIX + "/groups/%s/subscribers" MAILER_LITE_USER_GROUPS_TMPL = MAILER_LITE_API_PREFIX + "/subscribers/%s/groups" LOG_CATEGORY = 'VSLBOT.UTIL' logger = get_logger(LOG_CATEGORY) class MailerLite(object): def __init__(self, apikey, group_id): self.apikey = apikey self.group_id = group_id def get_headers(self): return { 'content-type': 'application/json', 'x-mailerlite-apikey': self.apikey, } def get_user_groups(self, email): '''Get all groups the user has subscribed to''' headers = self.get_headers() url = MAILER_LITE_USER_GROUPS_TMPL % email.strip().lower() r = requests.get(url, headers=headers) resp = r.json() if r.status_code != 200: error = resp['error'] logger.error(
import aiohttp from dataclasses import asdict from bot.settings import AirtableConfig from bot.models import User from bot.logger import get_logger from bot.exceptions import AirtableRequestError logger = get_logger(__name__) class AirtableAPI: async def get_user(tg_id: str): column = "tg_id" params = {"filterByFormula": f"{column}='{tg_id}'"} try: async with aiohttp.ClientSession() as cs: async with cs.get( AirtableConfig.USERS, params=params, headers=AirtableConfig.HEADERS ) as r: resp = await r.json() except (aiohttp.ClientResponseError, aiohttp.ClientConnectorError): logger.exception("Problem when sending request") raise else: if "error" in resp: raise AirtableRequestError(resp["error"]["message"]) else: return resp