不一致的API包装。

aiocord的Python项目详细描述


安装

python3 -m pip install aiocord

简单用法

importasyncioimportaiohttpimportaiocord.engine# externaltoken='APPLICATION_TOKEN'# get the event looploop=asyncio.get_event_loop()# create a sessionsession=aiohttp.ClientSession(loop=loop)# cooperative clientclient=aiocord.engine.Client(session,token,loop=loop)@client.track('ready')asyncdefhandle_0(shard,version,initial_guild_ids):# caution! blockingprint(shard,'ready')@client.track('message create')asyncdefhandle_1(shard,guild,channel,message):signal='.say 'ifmessage.content.startswith(signal):response=message.content[len(signal):]awaitclient.create_message(channel.id,content=response)asyncdefinitialize():awaitclient.start()asyncdeffinalize():awaitclient.close()awaitsession.close()try:loop.run_until_complete(initialize())try:loop.run_forever()exceptKeyboardInterrupt:passfinally:loop.run_until_complete(finalize())

高级用法

importasyncioimportaiohttpimportaiocordimportfunctoolstoken='APPLICATION_TOKEN'# get the event looploop=asyncio.get_event_loop()# create a sessionsession=aiohttp.ClientSession(loop=loop)# used for fetching inforest=aiocord.rest.Client(session,loop=loop)# authorizerest.authorize(token)# this is our stream handlerdefhandle(shard,event,data):# caution! blockingprint(shard,event)ifevent=='READY':session_id=data['session_id']# needed for resumeshard.patch(session_id)returnshards=[]asyncdefinitialize():# sharding informationdata=awaitrest.get_gateway_bot()# shard count and gateway urlcount,url=data['shards'],data['url']# index is the shard idforindexinrange(count):# needed for identifyinfo=(index,count)# used for listening to eventsgateway=aiocord.gateway.Client(session,token,info,loop=loop)# docs advice to routinely update the response of the# get gateway bot request, hence why this method existsgateway.update(url)# pass the current gateway to our handlercallback=functools.partial(handle,gateway)# will be called with# every event dispatchgateway.track(callback)# connect, start event steam# and identify with info givenawaitgateway.start()shards.append(gateway)ifnotindex<count:breakawaitasyncio.sleep(5.5)asyncdeffinalize():forgatewayinshards:awaitgateway.close()awaitsession.close()try:loop.run_until_complete(initialize())try:loop.run_forever()exceptKeyboardInterrupt:passfinally:loop.run_until_complete(finalize())

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
解释java选择方法   连接到127.0.0.1的java间歇性故障,连接到IP(eth0)时没有故障   java如何优雅地杀死hadoop作业/intercept`hadoop作业杀死`   java如何通过引导类加载器以编程方式加载另一个类?   url Java:在查询参数之前使用片段构建URI   在BroadLeaf表blc_order_属性中保存OrderAttributes值时发生java错误   安卓将功能从xml转换为java   java如何将数据写入文件?   java JPA SQL结果映射   Java中整数对象比较运算符的引用安全性   Spring测试失败:java。lang.NoClassDefFoundError:org/springframework/cglib/transform/impl/memorysafuendecaredthrowableStrategy   rich:extendedDataTable中的java行选择和数据处理   java为什么我需要在volatile上对多个线程使用synchronized?   java尽管构建成功,但为什么会出现此错误?   数组$ArrayList不能转换为java。util。java中的ArrayList   java如何根据泛型类型调用方法?   java将JLabel添加到JPanel,将JPanel添加到JFrame   如果MapStruct中的源为null,则java将父目标设置为null   JavaJBossDrools从DRL插入事实   java不同的JRE安装(windows)