Skip to main content

Remote Graia Broadcast.

Project description

Calamity

传说中有柄魔剑斩下了灾祸,灾祸带给人们以痛苦以幸福以哀嚎以歌颂,何来彼此.

子非鱼,安知鱼之乐

CodeFactor GitHub CodeQL

安装

pip install calamity
pdm add calamity

特性

使用

入门

Server 端

from calamity import Calamity

Calamity.server()

Client 端

  • 客户端 A
import asyncio

from calamity import Calamity
from graia.broadcast import Broadcast, Dispatchable, BaseDispatcher, DispatcherInterface

loop = asyncio.get_event_loop()
bcc = Broadcast(loop=loop)
bcc = Calamity.patch()

class ExampleEvent(Dispatchable):
    class Dispatcher(BaseDispatcher):
        @staticmethod
        async def catch(interface: DispatcherInterface):
            if interface.annotation is str:
                return "Calamity"


@bcc.receiver(ExampleEvent, remote=True)
async def event_receiver(event: str):
    print("Hello Broadcast!", event)

@bcc.receiver(ExampleEvent)
async def event_receiver1(event: str):
    print("Hello Lacia!", event)

async def main():
    bcc.postEvent(ExampleEvent())

loop.run_until_complete(main())
loop.run_forever()
  • 客户端 B
import asyncio

from calamity import Calamity
from graia.broadcast import Broadcast, Dispatchable, BaseDispatcher, DispatcherInterface

loop = asyncio.get_event_loop()
bcc = Broadcast(loop=loop)
bcc = Calamity.patch(debug=True)

class ExampleEvent(Dispatchable):
    class Dispatcher(BaseDispatcher):
        @staticmethod
        async def catch(interface: DispatcherInterface):
            if interface.annotation is str:
                return "Calamity"


@bcc.receiver(ExampleEvent)
async def event_receiver(event: str):
    print("Hello Broadcast!", event)

@bcc.receiver(ExampleEvent)
async def event_receiver1(event: str):
    print("Hello Lacia!", event)

async def main():
    bcc.postEvent(ExampleEvent(), remote=True)

loop.run_until_complete(main())
loop.run_forever()

提示

bcc = Broadcast(loop=loop) # 声明 bcc
bcc = Calamity.patch(debug=True) # remote bcc

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

calamity-0.1.0.tar.gz (4.7 kB view details)

Uploaded Source

Built Distribution

calamity-0.1.0-py3-none-any.whl (5.1 kB view details)

Uploaded Python 3

File details

Details for the file calamity-0.1.0.tar.gz.

File metadata

  • Download URL: calamity-0.1.0.tar.gz
  • Upload date:
  • Size: 4.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.8.2 pkginfo/1.8.2 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.8.8

File hashes

Hashes for calamity-0.1.0.tar.gz
Algorithm Hash digest
SHA256 ceab0eae5de4c446b55e1d81d6fcb8de50da6273b4bf66e81ada704fdf379754
MD5 2bafe624d5907f0a094bdcb429526264
BLAKE2b-256 89d307c233647dd8797d83432405305ddb9372e514df3e6047c9cd38ca3b1cc1

See more details on using hashes here.

File details

Details for the file calamity-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: calamity-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 5.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.8.2 pkginfo/1.8.2 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.8.8

File hashes

Hashes for calamity-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4d19b6a5eb8ec5d1e11a2603d6c7e7cec759cfd95e35bd588244f0b78e7b088e
MD5 19bed307e0ea48e5e8d8c4d73e30673e
BLAKE2b-256 a76154fa866f5eba8a564247b5ee44bce866b1ddf3e6b76044776e831e3688c6

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page