Beispiel #1
0
    def __new__(meta, name, bases, dct):
        print('-----------------------------------')
        print(f"Allocating memory for class {name}")
        print(meta)
        print(bases)
        print(dct)

        if '__asynclib__' in dct:
            #using async requests
            import multio
            multio.init(dct['__asynclib__'])
            dct['asynclib'] = multio.asynclib
        # no __async__ member implies sync blocking

        return super(AsyncApi, meta).__new__(meta, name, bases, dct)
Beispiel #2
0
Datei: bot.py Projekt: slice/drc
import datetime
import logging

import multio
from curious.core.client import Client
from ruamel.yaml import YAML

from irc import IRC, User

with open('config.yml', 'r') as fp:
    config = YAML().load(fp)

logging.basicConfig(level=logging.DEBUG)
logging.getLogger('lomond').setLevel(logging.WARNING)
logging.getLogger('curious').setLevel(logging.WARNING)
multio.init('trio')

bot = Client(config['discord']['token'])
bot.irc = IRC(config['irc']['host'],
              config['irc']['port'],
              autojoin=config['irc']['autojoin'],
              nick=config['irc'].get('nick'),
              bot=bot,
              config=config)


@bot.irc.on('privmsg')
async def privmsg_handler(channel: str, author: User, message: str):
    dest = bot.find_channel(config['discord']['broadcast_channel'])
    clean_message = message.replace('@', '@\u200b').replace(
        '`', '\N{MODIFIER LETTER GRAVE ACCENT}')[:1500]
Beispiel #3
0
def run_asy(urls: list):
    """ set up trio """
    multio.init("trio")
    return trio.run(nurs, urls)
Beispiel #4
0
import logging
import multio
from curious import EventContext
from curious.commands import CommandsManager, Context
from curious.commands.exc import ConditionsFailedError, ConversionFailedError
from curious.core.client import Client
from pathlib import Path

from sixx.credentials import discord

multio.init('curio')

client = Client(discord.token)
manager = CommandsManager.with_client(client, command_prefix='t!')
client.manager = manager

logger = logging.getLogger('6X')


@client.event('command_error')
async def handle_errors(event_ctx: EventContext, ctx: Context, error):
    if isinstance(error, ConditionsFailedError):
        logger.info('{author.name}#{author.discriminator} ({author.user.id}) '
                    'Tried to use the command `{0.command_name}`'.format(
                        ctx, error, author=ctx.author.user))
        return
    if isinstance(error, ConversionFailedError):
        await ctx.channel.messages.send(str(error))

    raise error
Beispiel #5
0
 def setup_class(cls):
     multio.init('trio')
Beispiel #6
0
"""
The core of Curious.

This package contains the bulk of the network interface with Discord, including parsing data that is incoming and 
delegating it to client code.

.. currentmodule:: curious.core

.. autosummary::
    :toctree: core
    
    client
    event
    gateway
    httpclient
    state
"""
import asks
import multio

if asks.init != multio.init:
    _init = multio.init
    multio.init = lambda lib: (asks.init(lib), _init(lib))

multio.init("curio")
Beispiel #7
0
def multio_init(*args, **kwargs):
    multio.init(os.environ.get("MULTIO_LIB"))
Beispiel #8
0
import yaml

import multio
import trio

import raven
from curious.dataclasses.presence import Game, GameType, Status
from curious.commands.exc import ConversionFailedError

from . import web
from .config import SENTRY_DSN, BOT_TOKEN, GLADOS_TOKEN, MASHERY_API_KEY, DEVELOPMENT
from .i18n import I18NCommandsManager
from .models import Database
from .orisa import Orisa, OrisaClient

multio.init("trio")

with open("logging.yaml") as logfile:
    logging.config.dictConfig(yaml.safe_load(logfile))

logger = logging.getLogger("orisa.main")

if SENTRY_DSN:
    logger.info("USING SENTRY")
    raven_client = raven.Client(dsn=SENTRY_DSN,
                                release=raven.fetch_git_sha(
                                    os.path.dirname(__file__)))

    @client.event("command_error")
    async def command_error(ev_ctx, ctx, err):
        exc_info = (type(err), err, err.__traceback__)
Beispiel #9
0
def asynclib(request):
    libstr = request.config.getoption("--async")
    multio.init(libstr)
    return multio.asynclib