nonebot-plugin-rollpig 0.2.3__tar.gz → 0.2.5__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. {nonebot_plugin_rollpig-0.2.3 → nonebot_plugin_rollpig-0.2.5}/PKG-INFO +1 -1
  2. {nonebot_plugin_rollpig-0.2.3 → nonebot_plugin_rollpig-0.2.5}/nonebot_plugin_rollpig/__init__.py +30 -17
  3. {nonebot_plugin_rollpig-0.2.3 → nonebot_plugin_rollpig-0.2.5}/pyproject.toml +1 -1
  4. {nonebot_plugin_rollpig-0.2.3 → nonebot_plugin_rollpig-0.2.5}/LICENSE +0 -0
  5. {nonebot_plugin_rollpig-0.2.3 → nonebot_plugin_rollpig-0.2.5}/README.md +0 -0
  6. {nonebot_plugin_rollpig-0.2.3 → nonebot_plugin_rollpig-0.2.5}/nonebot_plugin_rollpig/resource/image/android-pig.png +0 -0
  7. {nonebot_plugin_rollpig-0.2.3 → nonebot_plugin_rollpig-0.2.5}/nonebot_plugin_rollpig/resource/image/apple-pig.png +0 -0
  8. {nonebot_plugin_rollpig-0.2.3 → nonebot_plugin_rollpig-0.2.5}/nonebot_plugin_rollpig/resource/image/bacon.png +0 -0
  9. {nonebot_plugin_rollpig-0.2.3 → nonebot_plugin_rollpig-0.2.5}/nonebot_plugin_rollpig/resource/image/big-lazy-pig.png +0 -0
  10. {nonebot_plugin_rollpig-0.2.3 → nonebot_plugin_rollpig-0.2.5}/nonebot_plugin_rollpig/resource/image/black-pig.png +0 -0
  11. {nonebot_plugin_rollpig-0.2.3 → nonebot_plugin_rollpig-0.2.5}/nonebot_plugin_rollpig/resource/image/black-white-pig.png +0 -0
  12. {nonebot_plugin_rollpig-0.2.3 → nonebot_plugin_rollpig-0.2.5}/nonebot_plugin_rollpig/resource/image/chained_crown_pig.png +0 -0
  13. {nonebot_plugin_rollpig-0.2.3 → nonebot_plugin_rollpig-0.2.5}/nonebot_plugin_rollpig/resource/image/crystal-pig.png +0 -0
  14. {nonebot_plugin_rollpig-0.2.3 → nonebot_plugin_rollpig-0.2.5}/nonebot_plugin_rollpig/resource/image/demon-pig.png +0 -0
  15. {nonebot_plugin_rollpig-0.2.3 → nonebot_plugin_rollpig-0.2.5}/nonebot_plugin_rollpig/resource/image/doll-pig.png +0 -0
  16. {nonebot_plugin_rollpig-0.2.3 → nonebot_plugin_rollpig-0.2.5}/nonebot_plugin_rollpig/resource/image/explosive-pig.png +0 -0
  17. {nonebot_plugin_rollpig-0.2.3 → nonebot_plugin_rollpig-0.2.5}/nonebot_plugin_rollpig/resource/image/goblin-pig.png +0 -0
  18. {nonebot_plugin_rollpig-0.2.3 → nonebot_plugin_rollpig-0.2.5}/nonebot_plugin_rollpig/resource/image/heaven-pig.png +0 -0
  19. {nonebot_plugin_rollpig-0.2.3 → nonebot_plugin_rollpig-0.2.5}/nonebot_plugin_rollpig/resource/image/human.png +0 -0
  20. {nonebot_plugin_rollpig-0.2.3 → nonebot_plugin_rollpig-0.2.5}/nonebot_plugin_rollpig/resource/image/invisible_pig.png +0 -0
  21. {nonebot_plugin_rollpig-0.2.3 → nonebot_plugin_rollpig-0.2.5}/nonebot_plugin_rollpig/resource/image/landmine-pig.png +0 -0
  22. {nonebot_plugin_rollpig-0.2.3 → nonebot_plugin_rollpig-0.2.5}/nonebot_plugin_rollpig/resource/image/lao_zhu_li.png +0 -0
  23. {nonebot_plugin_rollpig-0.2.3 → nonebot_plugin_rollpig-0.2.5}/nonebot_plugin_rollpig/resource/image/magic-pig.png +0 -0
  24. {nonebot_plugin_rollpig-0.2.3 → nonebot_plugin_rollpig-0.2.5}/nonebot_plugin_rollpig/resource/image/mc_porkchop.png +0 -0
  25. {nonebot_plugin_rollpig-0.2.3 → nonebot_plugin_rollpig-0.2.5}/nonebot_plugin_rollpig/resource/image/mechanical-pig.png +0 -0
  26. {nonebot_plugin_rollpig-0.2.3 → nonebot_plugin_rollpig-0.2.5}/nonebot_plugin_rollpig/resource/image/pig-ball.png +0 -0
  27. {nonebot_plugin_rollpig-0.2.3 → nonebot_plugin_rollpig-0.2.5}/nonebot_plugin_rollpig/resource/image/pig-bun.png +0 -0
  28. {nonebot_plugin_rollpig-0.2.3 → nonebot_plugin_rollpig-0.2.5}/nonebot_plugin_rollpig/resource/image/pig-cat.png +0 -0
  29. {nonebot_plugin_rollpig-0.2.3 → nonebot_plugin_rollpig-0.2.5}/nonebot_plugin_rollpig/resource/image/pig-die.png +0 -0
  30. {nonebot_plugin_rollpig-0.2.3 → nonebot_plugin_rollpig-0.2.5}/nonebot_plugin_rollpig/resource/image/pig-human.png +0 -0
  31. {nonebot_plugin_rollpig-0.2.3 → nonebot_plugin_rollpig-0.2.5}/nonebot_plugin_rollpig/resource/image/pig-souffle.png +0 -0
  32. {nonebot_plugin_rollpig-0.2.3 → nonebot_plugin_rollpig-0.2.5}/nonebot_plugin_rollpig/resource/image/pig-stamp.png +0 -0
  33. {nonebot_plugin_rollpig-0.2.3 → nonebot_plugin_rollpig-0.2.5}/nonebot_plugin_rollpig/resource/image/pig-turtle.png +0 -0
  34. {nonebot_plugin_rollpig-0.2.3 → nonebot_plugin_rollpig-0.2.5}/nonebot_plugin_rollpig/resource/image/pig.png +0 -0
  35. {nonebot_plugin_rollpig-0.2.3 → nonebot_plugin_rollpig-0.2.5}/nonebot_plugin_rollpig/resource/image/pig_god.png +0 -0
  36. {nonebot_plugin_rollpig-0.2.3 → nonebot_plugin_rollpig-0.2.5}/nonebot_plugin_rollpig/resource/image/pork-skewer.png +0 -0
  37. {nonebot_plugin_rollpig-0.2.3 → nonebot_plugin_rollpig-0.2.5}/nonebot_plugin_rollpig/resource/image/rainbow-pig.png +0 -0
  38. {nonebot_plugin_rollpig-0.2.3 → nonebot_plugin_rollpig-0.2.5}/nonebot_plugin_rollpig/resource/image/roasted-pig.png +0 -0
  39. {nonebot_plugin_rollpig-0.2.3 → nonebot_plugin_rollpig-0.2.5}/nonebot_plugin_rollpig/resource/image/skeleton-pig.png +0 -0
  40. {nonebot_plugin_rollpig-0.2.3 → nonebot_plugin_rollpig-0.2.5}/nonebot_plugin_rollpig/resource/image/snow-pig.png +0 -0
  41. {nonebot_plugin_rollpig-0.2.3 → nonebot_plugin_rollpig-0.2.5}/nonebot_plugin_rollpig/resource/image/soul-pig.png +0 -0
  42. {nonebot_plugin_rollpig-0.2.3 → nonebot_plugin_rollpig-0.2.5}/nonebot_plugin_rollpig/resource/image/tangyuan_pig.png +0 -0
  43. {nonebot_plugin_rollpig-0.2.3 → nonebot_plugin_rollpig-0.2.5}/nonebot_plugin_rollpig/resource/image/tank_pig.png +0 -0
  44. {nonebot_plugin_rollpig-0.2.3 → nonebot_plugin_rollpig-0.2.5}/nonebot_plugin_rollpig/resource/image/taxi-pig.png +0 -0
  45. {nonebot_plugin_rollpig-0.2.3 → nonebot_plugin_rollpig-0.2.5}/nonebot_plugin_rollpig/resource/image/vangogh_pig.png +0 -0
  46. {nonebot_plugin_rollpig-0.2.3 → nonebot_plugin_rollpig-0.2.5}/nonebot_plugin_rollpig/resource/image/watermelon-pig.png +0 -0
  47. {nonebot_plugin_rollpig-0.2.3 → nonebot_plugin_rollpig-0.2.5}/nonebot_plugin_rollpig/resource/image/wild-boar.png +0 -0
  48. {nonebot_plugin_rollpig-0.2.3 → nonebot_plugin_rollpig-0.2.5}/nonebot_plugin_rollpig/resource/image/zhuge-liang.png +0 -0
  49. {nonebot_plugin_rollpig-0.2.3 → nonebot_plugin_rollpig-0.2.5}/nonebot_plugin_rollpig/resource/image/zombie-pig.png +0 -0
  50. {nonebot_plugin_rollpig-0.2.3 → nonebot_plugin_rollpig-0.2.5}/nonebot_plugin_rollpig/resource/pig.json +0 -0
  51. {nonebot_plugin_rollpig-0.2.3 → nonebot_plugin_rollpig-0.2.5}/nonebot_plugin_rollpig/resource/template.html +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: nonebot_plugin_rollpig
3
- Version: 0.2.3
3
+ Version: 0.2.5
4
4
  Summary: 今天是什么小猪
5
5
  License: MIT
6
6
  License-File: LICENSE
@@ -1,11 +1,12 @@
1
- import json, random, datetime
1
+ import json, random, datetime, asyncio, requests
2
2
  from pathlib import Path
3
3
 
4
4
  from nonebot import on_command, require
5
5
  from nonebot.adapters.onebot.v11 import Event, MessageSegment
6
6
  from nonebot.log import logger
7
7
  from nonebot.plugin import PluginMetadata
8
- import requests
8
+
9
+ pig_images = []
9
10
 
10
11
  # 确保依赖插件先被 NoneBot 注册
11
12
  require("nonebot_plugin_htmlrender")
@@ -20,7 +21,7 @@ __plugin_meta__ = PluginMetadata(
20
21
  description="抽取属于自己的小猪",
21
22
  usage="""
22
23
  今日小猪 - 抽取今天属于你的小猪
23
- 随机小猪 - 从pighub随机获取一张猪猪图
24
+ 随机小猪 - 从PigHub随机获取一张猪猪图
24
25
  """,
25
26
  type="application",
26
27
  homepage="https://github.com/Bearlele/nonebot-plugin-rollpig",
@@ -41,19 +42,31 @@ roll_pig = on_command("随机小猪", block=True)
41
42
 
42
43
  @roll_pig.handle()
43
44
  async def _(event: Event):
44
- try:
45
- response = requests.get("https://pighub.top/api/all-images")
46
- response.raise_for_status() # 检查请求是否成功
47
- data = response.json()
48
- if data and data["images"]:
49
- pig = random.choice(data["images"])
50
- image_url = "https://pighub.top/data/" + pig["thumbnail"].split("/")[-1]
51
- await roll_pig.finish(MessageSegment.image(image_url))
52
- else:
53
- await roll_pig.finish("没有找到小猪图片")
54
- except requests.exceptions.RequestException as e:
55
- await roll_pig.finish(f"请求出错:{e}")
56
-
45
+ global pig_images
46
+ if not pig_images:
47
+ try:
48
+ data = await asyncio.to_thread(sync_fetch_pig_data, "https://pighub.top/api/all-images")
49
+ if data and data.get("images"):
50
+ pig_images = data["images"]
51
+ logger.success(f"成功从 PigHub 缓存 {len(pig_images)} 头猪猪")
52
+ else:
53
+ logger.warning("PigHub 中找不到猪猪")
54
+ except requests.exceptions.RequestException as e:
55
+ logger.error(f"从PigHub中获取猪猪失败: {e}")
56
+
57
+ if not pig_images:
58
+ await roll_pig.finish("猪圈空荡荡...")
59
+ return
60
+
61
+ pig = random.choice(pig_images)
62
+ image_url = "https://pighub.top/data/" + pig["thumbnail"].split("/")[-1]
63
+ await roll_pig.finish(MessageSegment.image(image_url))
64
+
65
+ def sync_fetch_pig_data(url: str):
66
+ response = requests.get(url, timeout=30)
67
+ response.raise_for_status()
68
+
69
+ return response.json()
57
70
 
58
71
  def load_json(path, default):
59
72
  if not path.exists():
@@ -78,7 +91,7 @@ def find_image_file(pig_id: str) -> Path | None:
78
91
  # 载入小猪信息
79
92
  PIG_LIST = load_json(PIGINFO_PATH, [])
80
93
  if not PIG_LIST:
81
- logger.error("小猪信息为空或不存在,请检查资源文件!")
94
+ logger.error("猪圈空荡荡,请检查资源文件!")
82
95
 
83
96
  # 主函数
84
97
  @cmd.handle()
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "nonebot_plugin_rollpig"
3
- version = "0.2.3"
3
+ version = "0.2.5"
4
4
  description = "今天是什么小猪"
5
5
  authors = ["Bear_lele <lele2587342146@gmail.com>"]
6
6
  license = "MIT"