コード例 #1
0
ファイル: api.py プロジェクト: asmodehn/krakask
    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)
コード例 #2
0
ファイル: bot.py プロジェクト: 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]
コード例 #3
0
ファイル: utils.py プロジェクト: MarkEEaton/fictograph
def run_asy(urls: list):
    """ set up trio """
    multio.init("trio")
    return trio.run(nurs, urls)
コード例 #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
コード例 #5
0
ファイル: test_asks_trio.py プロジェクト: raylu/asks
 def setup_class(cls):
     multio.init('trio')
コード例 #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")
コード例 #7
0
def multio_init(*args, **kwargs):
    multio.init(os.environ.get("MULTIO_LIB"))
コード例 #8
0
ファイル: __main__.py プロジェクト: jlaramie/Orisa
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__)
コード例 #9
0
ファイル: conftest.py プロジェクト: asmodehn/replies
def asynclib(request):
    libstr = request.config.getoption("--async")
    multio.init(libstr)
    return multio.asynclib