Support Alconna to GraiaProject
Project description
Alconna Graia
������������ Alconna
��� GraiaProject
������������������������
������������������Dispatcher���SayaSchema ��� ������������
������������
���������
from arclet.alconna.graia import AlconnaDispatcher, Match, AlconnaProperty
from arclet.alconna import Alconna, Args
...
app = Ariadne(...)
alc = Alconna("!jrrp", Args["sth", str, 1123])
@app.broadcast.receiver(
GroupMessage,
dispatchers=[AlconnaDispatcher(alc, send_flag='stay')]
)
async def test2(
group: Group,
result: AlconnaProperty[GroupMessage],
sth: Match[str]
):
print("sign:", result.result)
print("sender:", group)
print("match", sth.available, sth.result)
������ Saya
in module.py:
from arclet.alconna.graia import Alc, Match, AlconnaProperty, AlconnaSchema
from arclet.alconna import Alconna, Args
...
channel = Channel.current()
alc = Alconna("!jrrp", Args["sth", str, 1123])
@channel.use(AlconnaSchema(Alc(alc)))
@channel.use(ListenerSchema([GroupMessage]))
async def test2(group: Group, result: AlconnaProperty[GroupMessage], sth: Match[str]):
print("sign:", result.result)
print("sender:", group)
print("match", sth.available, sth.result)
in main.py:
from arclet.alconna.graia import AlconnaBehaviour
from creart import create
...
saya = create(Saya)
create(AlconnaBehaviour)
with saya.module_context():
saya.require("module")
������ Saya Util
in module.py:
from graia.ariadne.util.saya import listen
from arclet.alconna.graia import Match, command, from_command
from arclet.alconna import Alconna, Args, Arpamar
...
@command(Alconna("!jrrp", Args["sth", str, 1123]), private=False)
async def test2(group: Group, result: Arpamar, sth: Match[str]):
print("sign:", result)
print("sender:", group)
print("match", sth.available, sth.result)
@from_command("foo bar {baz}")
@listen(GroupMessage)
async def test2(baz: int):
print("baz", baz)
in main.py:
from creart import create
...
saya = create(Saya)
with saya.module_context():
saya.require("module")
AlconnaDispatcher ������������
class AlconnaDispatcher(BaseDispatcher):
def __init__(
self,
command: Union[Alconna, AlconnaGroup],
*,
send_flag: Literal["reply", "post", "stay"] = "stay",
skip_for_unmatch: bool = True,
send_handler: Optional[Callable[[str], MessageChain]] = None,
allow_quote: bool = False
): ...
command
: ��������� Alconna ������
send_flag
: ���������������������������������������
- reply: ������������������������������
- post: ��������������� Broadcast ������
- stay: ������ AlconnaProperty ������������������������
skip_for_unmatch
: ���������������������������, ��������������������� send_flag ������
send_handler
: send_flag ��� reply ��� ���������������������������
allow_quote
: ������������������������������������������
������������
-
Match
: ������������������������������������foo: Match[int]
���������������Match.available
������������������������������Match.result
������������������ -
Query
: ������������������������������������������sth: Query[int] = Query("foo.bar")
���������������������������Query("foo.bar", 1234)
���������������Query.available
������������������������������Query.result
������������������
������������
from arclet.alconna.graia import Alc, Match
...
app = Ariadne(...)
@app.broadcast.receiver(
GroupMessage, dispatchers=[Alc.from_format("foo bar {baz:int}")]
)
async def test2(group: Group, baz: Match[int]):
print("sender:", group)
print("match", baz.available, baz.result)
or
from arclet.alconna.graia import Match, AlconnaSchema
...
channel = Channel.current()
@channel.use(AlconnaSchema.from_("foo <arg:str>", "bar"))
@channel.use(ListenerSchema([GroupMessage]))
async def test2(group: Group, sth: Match[str]):
print("sender:", group)
print("match", sth.available, sth.result)
������
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for arclet-alconna-graia-0.4.8.3.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8b304b33052b12be3c546fdb5ced25ae54decbb81afdd80dfc78060d0f7a32d1 |
|
MD5 | e0a5ada33e6f74367b0554ee8f609951 |
|
BLAKE2b-256 | 2a4f8ae7dbd1783478540354ee2423860e7cc5a447ddb2e6e905b89973e246b9 |
Hashes for arclet_alconna_graia-0.4.8.3-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8de9637933640eac34a147a42c232fb8b85274483379e6b8e29cf483e9969da8 |
|
MD5 | c6256cead8855ebdf67aed864d381c20 |
|
BLAKE2b-256 | 7b3a8cd9265dd7f0eb576db077d057c55aa77a295b507a3b5a4e669f222397a3 |