Update main.py
This commit is contained in:
parent
e7fc605465
commit
393c4dcec5
39
main.py
39
main.py
@ -1,24 +1,33 @@
|
|||||||
from astrbot.api.event import filter, AstrMessageEvent, MessageEventResult
|
import re
|
||||||
|
import uuid
|
||||||
|
from astrbot.api.event import filter, AstrMessageEvent
|
||||||
from astrbot.api.star import Context, Star, register
|
from astrbot.api.star import Context, Star, register
|
||||||
from astrbot.api import logger
|
from astrbot.api import logger
|
||||||
|
|
||||||
@register("helloworld", "YourName", "一个简单的 Hello World 插件", "1.0.0")
|
GITHUB_URL_PATTERN = r"https://github\.com/[\w\-]+/[\w\-]+(?:/(pull|issues)/\d+)?"
|
||||||
|
GITHUB_REPO_OPENGRAPH = "https://opengraph.githubassets.com/{hash}/{appendix}"
|
||||||
|
STAR_HISTORY_URL = "https://api.star-history.com/svg?repos={identifier}&type=Date"
|
||||||
|
|
||||||
|
@register("astrbot_plugin_github_sub", "XieMu", "根据群聊中 GitHub 相关链接自动发送 GitHub OpenGraph 图片", "1.0.0", "https://github.com/xiemu-c/astrbot_plugin_github_sub")
|
||||||
class MyPlugin(Star):
|
class MyPlugin(Star):
|
||||||
def __init__(self, context: Context):
|
def __init__(self, context: Context):
|
||||||
super().__init__(context)
|
super().__init__(context)
|
||||||
|
|
||||||
async def initialize(self):
|
|
||||||
"""可选择实现异步的插件初始化方法,当实例化该插件类之后会自动调用该方法。"""
|
|
||||||
|
|
||||||
# 注册指令的装饰器。指令名为 helloworld。注册成功后,发送 `/helloworld` 就会触发这个指令,并回复 `你好, {user_name}!`
|
@filter.regex(GITHUB_URL_PATTERN)
|
||||||
@filter.command("helloworld")
|
async def github_repo(self, event: AstrMessageEvent):
|
||||||
async def helloworld(self, event: AstrMessageEvent):
|
'''解析 Github 仓库信息'''
|
||||||
"""这是一个 hello world 指令""" # 这是 handler 的描述,将会被解析方便用户了解插件内容。建议填写。
|
msg = event.message_str
|
||||||
user_name = event.get_sender_name()
|
match = re.search(GITHUB_URL_PATTERN, msg)
|
||||||
message_str = event.message_str # 用户发的纯文本消息字符串
|
repo_url = match.group(0)
|
||||||
message_chain = event.get_messages() # 用户所发的消息的消息链 # from astrbot.api.message_components import *
|
repo_url = repo_url.replace("https://github.com/", "")
|
||||||
logger.info(message_chain)
|
hash_value = uuid.uuid4().hex
|
||||||
yield event.plain_result(f"Hello, {user_name}, 你发了 {message_str}!") # 发送一条纯文本消息
|
opengraph_url = GITHUB_REPO_OPENGRAPH.format(hash=hash_value, appendix=repo_url)
|
||||||
|
logger.info(f"生成的 OpenGraph URL: {opengraph_url}")
|
||||||
|
|
||||||
async def terminate(self):
|
try:
|
||||||
"""可选择实现异步的插件销毁方法,当插件被卸载/停用时会调用。"""
|
yield event.image_result(opengraph_url)
|
||||||
|
except Exception as e:
|
||||||
|
logger.error(f"下载图片失败: {e}")
|
||||||
|
yield event.plain_result("下载 GitHub 图片失败: " + str(e))
|
||||||
|
return
|
||||||
|
Loading…
x
Reference in New Issue
Block a user