mirror of
https://github.com/ClovertaTheTrilobita/SanYeCao-Nonebot.git
synced 2026-04-01 22:04:51 +00:00
Merge remote-tracking branch 'SanYeCao-Nonebot/master'
This commit is contained in:
commit
76716b10ca
12 changed files with 264 additions and 257 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
|
@ -18,3 +18,4 @@ error.log
|
||||||
bili.cookie
|
bili.cookie
|
||||||
*.log
|
*.log
|
||||||
.mp4
|
.mp4
|
||||||
|
/bili.cookie
|
||||||
|
|
|
||||||
|
|
@ -18,10 +18,10 @@ TEMP_PATH = Path() / "resources" / "temp"
|
||||||
TEMPLATE_PATH = Path() / "resources" / "template"
|
TEMPLATE_PATH = Path() / "resources" / "template"
|
||||||
|
|
||||||
|
|
||||||
IMAGE_PATH.mkdir(parents=True, exist_ok=True)
|
# IMAGE_PATH.mkdir(parents=True, exist_ok=True)
|
||||||
RECORD_PATH.mkdir(parents=True, exist_ok=True)
|
# RECORD_PATH.mkdir(parents=True, exist_ok=True)
|
||||||
TEXT_PATH.mkdir(parents=True, exist_ok=True)
|
# TEXT_PATH.mkdir(parents=True, exist_ok=True)
|
||||||
LOG_PATH.mkdir(parents=True, exist_ok=True)
|
# LOG_PATH.mkdir(parents=True, exist_ok=True)
|
||||||
FONT_PATH.mkdir(parents=True, exist_ok=True)
|
# FONT_PATH.mkdir(parents=True, exist_ok=True)
|
||||||
DATA_PATH.mkdir(parents=True, exist_ok=True)
|
# DATA_PATH.mkdir(parents=True, exist_ok=True)
|
||||||
TEMP_PATH.mkdir(parents=True, exist_ok=True)
|
# TEMP_PATH.mkdir(parents=True, exist_ok=True)
|
||||||
|
|
|
||||||
|
|
@ -77,6 +77,7 @@ def netease_cloud_music_is_login(session):
|
||||||
try:
|
try:
|
||||||
loginurl = session.post(f'https://music.163.com/weapi/w/nuser/account/get?csrf_token={csrf_token}',data={'params': login_params(None), 'encSecKey': login_encSecKey()}, headers=headers).json()
|
loginurl = session.post(f'https://music.163.com/weapi/w/nuser/account/get?csrf_token={csrf_token}',data={'params': login_params(None), 'encSecKey': login_encSecKey()}, headers=headers).json()
|
||||||
if '200' in str(loginurl['code']):
|
if '200' in str(loginurl['code']):
|
||||||
|
print(loginurl)
|
||||||
print('登录成功')
|
print('登录成功')
|
||||||
return session, True
|
return session, True
|
||||||
else:
|
else:
|
||||||
|
|
@ -171,9 +172,6 @@ def netease_music_download(song_id,song_name,singer,session):
|
||||||
download_url = 'https://music.163.com/weapi/song/enhance/player/url/v1?br=999000'
|
download_url = 'https://music.163.com/weapi/song/enhance/player/url/v1?br=999000'
|
||||||
url = session.post(download_url, headers=headers,data=data).json()['data'][0]['url']
|
url = session.post(download_url, headers=headers,data=data).json()['data'][0]['url']
|
||||||
|
|
||||||
if url is None:
|
|
||||||
return -1
|
|
||||||
|
|
||||||
#下载歌曲
|
#下载歌曲
|
||||||
data = requests.get(url, stream=True)
|
data = requests.get(url, stream=True)
|
||||||
file_path = os.path.join(save_path, f"{song_name}-{singer}.wav")
|
file_path = os.path.join(save_path, f"{song_name}-{singer}.wav")
|
||||||
|
|
|
||||||
|
|
@ -20,17 +20,23 @@ class QrFortune(Model):
|
||||||
table_description = "运势表"
|
table_description = "运势表"
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
async def get_fortune(cls) -> Self | None:
|
async def get_fortune(cls,member_openid:str | None) -> Self | None:
|
||||||
"""
|
"""
|
||||||
随机获取运势
|
随机获取运势
|
||||||
:return:
|
:return:
|
||||||
"""
|
"""
|
||||||
fortunes = await cls.all()
|
# 查询今日是否已经获取过今日运势,如果获取过则直接从日志取
|
||||||
if not fortunes:
|
result = await QrFortuneLog.is_get_fortune_log(member_openid)
|
||||||
|
if result is None:
|
||||||
|
result = await cls.all()
|
||||||
|
if not result:
|
||||||
# 执行初始化
|
# 执行初始化
|
||||||
await cls.bulk_create(Fortune_initial_data)
|
await cls.bulk_create(Fortune_initial_data)
|
||||||
fortunes = await cls.all()
|
result = random.choice(await cls.all())
|
||||||
return random.choice(fortunes) if fortunes else None
|
# 把抽取的今日运势插入日志
|
||||||
|
await QrFortuneLog.insert_fortune_log(result, member_openid)
|
||||||
|
return
|
||||||
|
return result
|
||||||
|
|
||||||
|
|
||||||
class QrFortuneLog(Model):
|
class QrFortuneLog(Model):
|
||||||
|
|
|
||||||
219
src/my_sqlite/models/tarot.py
Normal file
219
src/my_sqlite/models/tarot.py
Normal file
|
|
@ -0,0 +1,219 @@
|
||||||
|
import os
|
||||||
|
import random
|
||||||
|
from datetime import datetime
|
||||||
|
from tortoise import fields
|
||||||
|
from typing_extensions import Self
|
||||||
|
from src.my_sqlite.data_init.db_connect import Model
|
||||||
|
|
||||||
|
|
||||||
|
tarots_img_path = os.getcwd()+'/src/image/tarot/TarotImages/'
|
||||||
|
|
||||||
|
|
||||||
|
class MajorArcanaLog:
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
class MajorArcana(Model):
|
||||||
|
"""
|
||||||
|
大阿尔克纳牌
|
||||||
|
"""
|
||||||
|
id = fields.IntField(pk=True)
|
||||||
|
name = fields.CharField(max_length=255, unique=True, description="牌名")
|
||||||
|
upright_meaning = fields.TextField(description="正位含义")
|
||||||
|
reversed_meaning = fields.TextField(description="逆位含义")
|
||||||
|
image = fields.CharField(max_length=255, description="图片文件名")
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
# 指定表名
|
||||||
|
table = "major_arcana"
|
||||||
|
table_description = "大阿尔克纳牌"
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
async def tarotChoice(cls, user_id: str | None) -> MajorArcanaLog | None:
|
||||||
|
"""
|
||||||
|
大阿尔克纳牌抽取
|
||||||
|
:param user_id:
|
||||||
|
:return:
|
||||||
|
"""
|
||||||
|
record = await MajorArcanaLog.getTarotLog(user_id)
|
||||||
|
if record:
|
||||||
|
return record
|
||||||
|
# 0正1逆
|
||||||
|
ints = random.randint(0, 1)
|
||||||
|
arcana = await cls.all()
|
||||||
|
if not arcana:
|
||||||
|
await cls.bulk_create(Major_arcana_initial_data)
|
||||||
|
arcana = await cls.all()
|
||||||
|
tarots = random.choice(arcana)
|
||||||
|
# 正位
|
||||||
|
if ints == 0:
|
||||||
|
return await MajorArcanaLog.insertTarotLog(tarots, user_id, tarots_img_path+tarots.image,"正位")
|
||||||
|
# 逆位
|
||||||
|
if ints == 1:
|
||||||
|
return await MajorArcanaLog.insertTarotLog(tarots, user_id, tarots_img_path+tarots.image,"逆位")
|
||||||
|
|
||||||
|
|
||||||
|
class MajorArcanaLog(Model):
|
||||||
|
"""
|
||||||
|
大阿尔克纳牌
|
||||||
|
"""
|
||||||
|
id = fields.IntField(pk=True)
|
||||||
|
user_id = fields.CharField(max_length=255, description="用户id")
|
||||||
|
ints = fields.CharField(max_length=64,description="正逆")
|
||||||
|
name = fields.CharField(max_length=64, unique=True, description="牌名")
|
||||||
|
meaning = fields.TextField(description="正位/逆位含义")
|
||||||
|
image = fields.CharField(max_length=255, description="图片文件名")
|
||||||
|
create_time = fields.DateField(auto_now_add=True)
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
# 指定表名
|
||||||
|
table = "major_arcana_log"
|
||||||
|
table_description = "大阿尔克纳牌抽取日志"
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
async def insertTarotLog(cls, model: MajorArcana | None, user_id: str | None, image: str | None, ints:str | None) -> Self | None:
|
||||||
|
"""
|
||||||
|
插入大阿尔克纳牌抽取日志
|
||||||
|
:param model:
|
||||||
|
:param user_id:
|
||||||
|
:param image:
|
||||||
|
:param ints:
|
||||||
|
:return:
|
||||||
|
"""
|
||||||
|
|
||||||
|
if ints == "正位":
|
||||||
|
meaning = model.upright_meaning
|
||||||
|
else:
|
||||||
|
meaning = model.reversed_meaning
|
||||||
|
data = {
|
||||||
|
'user_id': user_id,
|
||||||
|
'ints': ints,
|
||||||
|
'name': model.name,
|
||||||
|
'meaning': meaning,
|
||||||
|
'image': image,
|
||||||
|
'create_time':datetime.now().date()
|
||||||
|
}
|
||||||
|
|
||||||
|
return await cls.create(**data)
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
async def getTarotLog(cls, user_id: str | None ) -> Self | None:
|
||||||
|
"""
|
||||||
|
查询大阿尔克纳牌抽取日志
|
||||||
|
:param user_id:
|
||||||
|
:return:
|
||||||
|
"""
|
||||||
|
return await cls.filter(user_id=user_id,create_time = datetime.now().date()).first()
|
||||||
|
|
||||||
|
|
||||||
|
Major_arcana_initial_data = [
|
||||||
|
MajorArcana(
|
||||||
|
name="愚者 (The Fool) ",
|
||||||
|
upright_meaning="从零开始; 好赌运; 不墨守成规; 追求新奇的梦想; 冒险; 放浪形骸; 艺术家的气质; 异于常人; 直攻要害、盲点; 爱情狩猎者; 爱情历经沧桑; 不拘形式的自由恋爱",
|
||||||
|
reversed_meaning=" 不安定; 孤注一掷会失败; 缺乏责任感; 损失; 脚跟站不稳; 堕落; 没发展; 没计划; 走错路; 行为乖张; 轻浮的恋情; 感情忽冷忽热; 不安定的爱情之旅",
|
||||||
|
image="The Fool.jpg"),
|
||||||
|
MajorArcana(
|
||||||
|
name="魔术师 (The Magician)",
|
||||||
|
upright_meaning="好的开始; 具独创性; 有发展的; 新计划成功; 想像力丰富或有好点子; 有恋情发生; 拥有默契良好的伴侣; 有新恋人出现; 值得效仿的对象出现",
|
||||||
|
reversed_meaning=" 失败; 优柔寡断; 才能平庸; 有被欺诈的危险; 技术不足; 过于消极; 没有判断力; 缺乏创造力; 爱情没有进展 ",
|
||||||
|
image="The Magician.jpg"),
|
||||||
|
MajorArcana(
|
||||||
|
name="女祭司 (The High Priestess)",
|
||||||
|
upright_meaning="知性、优秀的判断力; 具洞察力及先见之明; 强大的战斗意志; 冷静的统率力; 学问、研究等精神方面幸运; 独立自主的女性; 柏拉图式的爱情; 有心灵上交往至深的友人; 冷淡的恋情 ",
|
||||||
|
reversed_meaning=" 无知、缺乏理解力; 研究不足; 不理性的态度; 自我封闭; 神经质; 洁癖; 与女性朋友柒争执; 对人冷淡; 晚婚或独身主义; 没有结果的单相思; 气色不好; 不孕",
|
||||||
|
image="The High Priestess.jpg"),
|
||||||
|
MajorArcana(
|
||||||
|
name="皇后 (The Empress)",
|
||||||
|
upright_meaning="充满创造力与母性光辉; 生活富足、美满; 事业上有出色的规划与执行能力,易取得成果; 感情中温柔体贴,是理想的伴侣; 孕育新生命或有新的创意项目诞生",
|
||||||
|
reversed_meaning=" 创造力受阻; 生活陷入混乱,经济上可能出现问题; 感情中可能变得情绪化、占有欲强; 缺乏实际行动,计划难以实现; 健康方面可能有妇科问题",
|
||||||
|
image="The Empress.jpg "),
|
||||||
|
MajorArcana(
|
||||||
|
name="皇帝 (The Emperor)",
|
||||||
|
upright_meaning="以坚强的意志力及手腕获致成功; 富裕和力量; 有责任感; 良好的处理能力; 具领导能力; 男性的思考; 坚持到底; 虽有点专制却值得信赖; 条件诱人的提亲; 与年长者恋爱 ",
|
||||||
|
reversed_meaning=" 不成熟; 意志薄弱; 虚有其表; 看不清现实; 欠缺实务能力; 因傲慢而招人反感; 工作过度; 固执; 没有经济基础; 没有好对象; 苦恋结束; 勉强的感情",
|
||||||
|
image="The Emperor.jpg "),
|
||||||
|
MajorArcana(
|
||||||
|
name="教皇 (The Hierophant) ",
|
||||||
|
upright_meaning="受人信赖; 有贵人相助; 贡献; 受上司重视; 能胜任工作; 拥有一颗温柔的心; 受惠于有益的建言; 接触宗教的事物大吉; 与年长的异性有缘; 良缘; 深情宽大的爱; 有结良缘的机会 ",
|
||||||
|
reversed_meaning=" 没信用; 没有贵人相助; 孤立无援; 不受欢迎的好意; 依赖心是最大的敌人; 太罗嗦而讨人厌; 碍于私情而无法成功; 心胸狭窄; 得不到亲人的谅解的恋情; 彼此过于关心; 缘分浅薄的恋情 ",
|
||||||
|
image="The Hierophant.jpg"),
|
||||||
|
MajorArcana(
|
||||||
|
name="恋人 (The Lovers) ",
|
||||||
|
upright_meaning="幸运的结合; 有希望的将来; 有共同做事的伙伴; 与人合作或社团活动; 敏感决定前进之路的好时机; 有意气相投的朋友; 爱情机会将到来; 罗曼蒂克的恋情; 爱的预感",
|
||||||
|
reversed_meaning=" 分离; 消解; 不合作的态度; 眼花缭乱; 没有满意的成果; 无法持续; 退休; 妨碍; 血气方刚; 多情的人; 分手; 冷漠的爱; 背信; 逃避爱情; 短暂的恋情",
|
||||||
|
image="The Lovers.jpg"),
|
||||||
|
MajorArcana(
|
||||||
|
name="战车 (The Chariot)",
|
||||||
|
upright_meaning="前进必胜; 先下手为强; 独立; 起程; 在颠簸中仍有好成绩; 活泼; 有野心; 以速度取胜; 有开拓精神; 握有指挥权; 战胜敌手; 富行动力的恋情; 恋爱的胜利者 ",
|
||||||
|
reversed_meaning=" 失败; 丧失战斗意志; 状态不佳; 挫折; 性子过急为失败之因; 不感兴趣; 效率不佳; 资金运转困难; 无奋斗精神; 有强劲敌手进入; 被拒绝; 因怯懦而使恋情不顺 ",
|
||||||
|
image="The Chariot.jpg "),
|
||||||
|
MajorArcana(
|
||||||
|
name="力量 (Strength) ",
|
||||||
|
upright_meaning="不屈不挠的精神; 将不可能化为可能的意志力; 全力以赴; 突破难关; 坚强的信念和努力; 挑战已知危险的勇气; 神秘的力量; 旺盛的斗志; 轰轰烈烈的恋情; 克服困难的真实爱情",
|
||||||
|
reversed_meaning=" 疑心病; 犹豫不决; 实力不足; 无忍耐力; 危险的赌注; 勉强为之而适得其反; 丧失自信; 喜欢故弄玄虚; 体力不足; 自大自负; 误用力气 ",
|
||||||
|
image="Strength.jpg"),
|
||||||
|
MajorArcana(
|
||||||
|
name="隐士 (The Hermit) ",
|
||||||
|
upright_meaning="智能与卓越见解; 不断地追求更高层次的东西; 思虑周密; 冷静沉着; 不多言; 接触知性事物吉; 正中核心的建言; 活动慢慢进行较有成果; 出局; 追求柏拉图式的爱情; 暗中的爱情",
|
||||||
|
reversed_meaning=" 一视同仁; 不够通融; 不专心易生错误; 过分警戒,无法顺利进行; 秘密泄漏; 过于固执不听别人的意见; 孤独; 动机不单纯; 因怨言及偏见招人嫌; 轻浮的爱情; 怀疑爱情",
|
||||||
|
image="The Hermit.jpg"),
|
||||||
|
MajorArcana(
|
||||||
|
name="命运之轮 (The Wheel of Fortune) ",
|
||||||
|
upright_meaning="机会到来; 随机应变能力佳; 好运; 转换期; 意想不到的幸运; 升迁有望; 变化丰富; 好时机; 宿命的相逢; 一见钟情; 幸运的婚姻; 富贵的身份 ",
|
||||||
|
reversed_meaning=" 低潮期; 时机未到; 评估易出错; 时机不好; 没有头绪; 处于劣势; 生活艰苦; 情况恶化; 计划停滞需要再等待; 失恋; 短暂的恋情; 易错失良机; 不敌诱惑; 爱情无法持久 ",
|
||||||
|
image="The Wheel of Fortune.jpg"),
|
||||||
|
MajorArcana(
|
||||||
|
name="正义 (Justice)",
|
||||||
|
upright_meaning="公正; 严正的意见; 良好的均衡关系; 严守中立立场; 凡事合理化; 身兼两种工作; 协调者; 与裁判、法律相关者; 表里一致的公正人物; 以诚实之心光明正大地交往; 彼此能获得协调 ",
|
||||||
|
reversed_meaning=" 不公正; 不平衡; 不利的条件; 偏颇; 先入为主的观念; 偏见与独断; 纷争、诉讼; 问心有愧; 无法两全; 天平两边无法平衡; 性格不一致; 无视于社会道德观的恋情; 偏爱",
|
||||||
|
image="Justice.jpg "),
|
||||||
|
MajorArcana(
|
||||||
|
name="倒吊人 (The Hanged Man)",
|
||||||
|
upright_meaning="接受考验; 无法动弹; 被牺牲; 有失必有得; 从痛苦的体验中获得教训; 过度期; 不贪图眼前利益; 浴火重生; 多方学习; 奉献的爱; 明知辛苦但全力以赴",
|
||||||
|
reversed_meaning=" 无谓的牺牲; 折断骨头; 有噩运、居于劣势; 任性妄为; 不努力; 变得没有耐性; 利己主义者; 受到惩罚; 无偿的爱; 缺乏共同奋斗的伙伴",
|
||||||
|
image="The Hanged Man.jpg"),
|
||||||
|
MajorArcana(
|
||||||
|
name="死神 (Death)",
|
||||||
|
upright_meaning="失败; 毁灭之日将近; 损害继续延续; 失业; 进展停滞; 交易停止; 为时已晚; 停滞状态; 生病或意外的暗示; 味如嚼蜡的生活; 不幸的恋情; 恋情终止; 彼此间有很深的鸿沟; 别离 ",
|
||||||
|
reversed_meaning=" 起死回生的机会; 脱离低迷期; 改变印象; 回心转意再出发; 挽回名誉; 奇迹似地康复; 突然改变方针; 已经死心的事有了转机; 斩断情丝,重新出发",
|
||||||
|
image="Death.jpg "),
|
||||||
|
MajorArcana(
|
||||||
|
name="节欲 (Temperance) ",
|
||||||
|
upright_meaning="单纯化; 顺畅; 交往平顺; 两者相融顺畅; 调整; 彼此交换有利条件; 平凡中也有重要的契机; 平顺的心境; 纯爱; 从好感转为爱意; 深爱 ",
|
||||||
|
reversed_meaning=" 消耗; 每节制的损耗,对身心产生不好的影响; 疲劳; 不定性的工作; 缺乏调整能力; 下降; 浪费; 不要与人 合作; 不融洽; 爱情的配合度不佳 ",
|
||||||
|
image="Temperance.jpg"),
|
||||||
|
MajorArcana(
|
||||||
|
name="恶魔 (The Devil)",
|
||||||
|
upright_meaning="被束缚; 堕落; 恶魔的私语; 卑躬屈膝; 欲望的俘虏; 荒废的生活; 举债度日; 病魔入侵; 夜游过多; 不可告人的事; 恶意; 不可抗拒的诱惑; 私密恋情; 沉溺于感官刺激之下",
|
||||||
|
reversed_meaning=" 逃离拘束; 长期的苦恼获得解放; 斩断前缘; 越过难关; 暂时停止; 拒绝诱惑; 舍弃私欲; 治愈长期病痛; 别离 时刻; 如深陷泥沼爱恨交加的恋情",
|
||||||
|
image="The Devil.jpg "),
|
||||||
|
MajorArcana(
|
||||||
|
name="塔 (The Tower) ",
|
||||||
|
upright_meaning="致命的打击; 纷争; 纠纷不断; 与周遭事物对立,情况恶化; 意想不到的事情; 急病; 受牵连; 急剧的大变动; 信念奔溃; 逆境; 破产; 没有预警,突然分离; 破灭的爱; 玩火自焚",
|
||||||
|
reversed_meaning=" 紧迫的状态; 险恶的气氛; 内讧; 即将破灭; 急需解决的问题; 承受震撼; 背水一战; 注意刑事问题; 因骄傲自大将付出惨痛的代价; 状况不佳; 困境; 爱情危机; 分离的预感 ",
|
||||||
|
image="The Tower.jpg "),
|
||||||
|
MajorArcana(
|
||||||
|
name="星辰 (The Star) ",
|
||||||
|
upright_meaning="愿望达成; 前途光明; 充满希望的未来; 美好的生活; 曙光出现; 大胆的幻想; 水准提高; 新的创造力; 想像力; 理想的对象; 美好的恋情; 爱苗滋生 ",
|
||||||
|
reversed_meaning=" 挫折、失败; 理想过高; 缺乏想像力; 异想天开; 事与愿违; 失望; 从事不喜欢的工作; 好高骛远; 情况悲观; 不可期待的对象; 没 有爱的生活; 秘密恋情; 仓皇失措",
|
||||||
|
image="The Star.jpg"),
|
||||||
|
MajorArcana(
|
||||||
|
name="月亮 (The Moon) ",
|
||||||
|
upright_meaning="不安与动摇; 心中不平静; 谎言; 暧昧不明; 鬼迷心窍; 暗藏动乱; 欺骗; 终止; 不安的爱; 三角关系",
|
||||||
|
reversed_meaning=" 从危险的骗局中逃脱; 状况稍为好转; 误会冰释; 破除迷惘; 时间能解决一切; 眼光要长远; 静观等待; 早期发现早期治疗有效; 事前察知危险; 对虚情假意的恋情已不在乎 ",
|
||||||
|
image="The Moon.jpg"),
|
||||||
|
MajorArcana(
|
||||||
|
name="太阳 (The Sun)",
|
||||||
|
upright_meaning="丰富的生命力; 巨大的成就感; 人际关系非常好; 爱情美满; 内心充满了热情和力量; 一定能够实现的约定; 飞黄腾达; 无忧无虑",
|
||||||
|
reversed_meaning=" 情绪低落; 事情失败; 朋友的离去和人际关系的恶化; 无法安定内心; 忧郁孤单寂寞; 爱情不顺 利; 取消的计划; 工作上困难重重 ",
|
||||||
|
image="The Sun.jpg "),
|
||||||
|
MajorArcana(
|
||||||
|
name="审判 (Judgement)",
|
||||||
|
upright_meaning="复活的喜悦; 开运; 公开; 改革期; 危机解除; 决断; 荣升; 崭露头角; 好消息; 爱的使者; 恢复健康; 坦白; 复苏的爱; 再会; 爱的奇迹 ",
|
||||||
|
reversed_meaning="一败不起; 幻灭; 离复苏还有很长的时间; 不利的决定; 不被采用; 还未开始就结束了; 坏消息; 延期; 无法决定; 虽重新开始,却又恢复原状; 分离、消除; 恋恋不舍",
|
||||||
|
image="Judgement.jpg "),
|
||||||
|
MajorArcana(
|
||||||
|
name="世界 (The World)",
|
||||||
|
upright_meaning="完成; 成功; 拥有毕生的志业; 达成目标; 永续不断; 最盛期; 完美无缺; 接触异国,将获得幸运; 到达标准; 精神亢奋; 快乐的结束; 模范情侣 ",
|
||||||
|
reversed_meaning=" 未完成; 无法达到计划中的成就; 因准备不足而失败; 中途无法在进行; 不完全燃烧; 一时不顺利; 饱和状态; 烦恼延续; 精神松弛; 个人惯用的表现方式; 因不成熟而 使情感受挫; 合谋; 态度不够圆融",
|
||||||
|
image="The World.jpg ")]
|
||||||
|
|
@ -1,5 +0,0 @@
|
||||||
运势&塔罗:
|
|
||||||
lockLuck: false #是否启用运势功能
|
|
||||||
lockTarot: false #是否启用塔罗牌功能
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1,147 +0,0 @@
|
||||||
import datetime
|
|
||||||
import os
|
|
||||||
import random
|
|
||||||
import yaml
|
|
||||||
from PIL import Image
|
|
||||||
from nonebot.adapters.onebot.v11 import Bot, Event
|
|
||||||
from nonebot.adapters.qq import MessageSegment
|
|
||||||
from nonebot.plugin.on import on_command
|
|
||||||
from nonebot.rule import to_me
|
|
||||||
|
|
||||||
|
|
||||||
# 创建一个消息事件处理器,当收到消息时触发
|
|
||||||
tarot = on_command("今日塔罗", rule=to_me(), priority=10, block=True)
|
|
||||||
|
|
||||||
# 导入yaml模块
|
|
||||||
with open('src/onebot_plugins/config/controller.yaml', 'r', encoding='utf-8') as f:
|
|
||||||
# 读取yaml文件
|
|
||||||
controllerResult = yaml.load(f.read(), Loader=yaml.FullLoader)
|
|
||||||
|
|
||||||
lockLuck = controllerResult.get("运势&塔罗").get("lockLuck")
|
|
||||||
lockTarot = controllerResult.get("运势&塔罗").get("lockTarot")
|
|
||||||
@tarot.handle()
|
|
||||||
async def handle_tarot(bot: Bot,event: Event):
|
|
||||||
txt, img = tarotChoice(lockTarot)
|
|
||||||
tod = str(datetime.date.today())
|
|
||||||
|
|
||||||
image_segment = MessageSegment.image(os.getcwd()+'/'+img)
|
|
||||||
await bot.send(event, image_segment)
|
|
||||||
await bot.send(event, txt)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def tarotChoice(lockTarot):
|
|
||||||
ints = random.randint(0, 1)
|
|
||||||
if ints == 0:
|
|
||||||
tarots = random.choice(tarot)
|
|
||||||
txt = tarots[0] + '\n' + '正位' + '\n' + tarots[1]
|
|
||||||
img = f'src/image/tarotT/TarotImages' + tarots[3]
|
|
||||||
img_folder = 'AbstractImages' if lockTarot else 'TarotImages'
|
|
||||||
img = f'src/image/tarot/{img_folder}/{tarots[3]}'
|
|
||||||
return txt, img
|
|
||||||
if ints == 1:
|
|
||||||
tarots = random.choice(tarot)
|
|
||||||
txt = tarots[0] + '\n' + '逆位' + '\n' + tarots[2]
|
|
||||||
img_folder = 'AbstractImages' if lockTarot else 'TarotImages'
|
|
||||||
img1 = f'src/image/tarot/side{img_folder}/' + tarots[3]
|
|
||||||
if not os.path.exists(f'src/image/tarot/side{img_folder}'):
|
|
||||||
os.mkdir(f'src/image/tarot/side{img_folder}')
|
|
||||||
if os.path.exists(img1):
|
|
||||||
return txt, img1
|
|
||||||
else:
|
|
||||||
# 打开图像
|
|
||||||
img = Image.open(f'src/image/tarot/{img_folder}/{tarots[3]}')
|
|
||||||
|
|
||||||
if img.mode == 'RGBA':
|
|
||||||
img = img.convert('RGB')
|
|
||||||
# 旋转180度
|
|
||||||
rotated_img = img.rotate(180)
|
|
||||||
|
|
||||||
# 保存旋转后的图像
|
|
||||||
rotated_img.save(f'src/image/tarot/side{img_folder}/' + tarots[3])
|
|
||||||
return txt, img1
|
|
||||||
|
|
||||||
tarot = [['愚者 (The Fool)',
|
|
||||||
'从零开始; 好赌运; 不墨守成规; 追求新奇的梦想; 冒险; 放浪形骸; 艺术家的气质; 异于常人; 直攻要害、盲点; 爱情狩猎者; 爱情历经沧桑; 不拘形式的自由恋爱',
|
|
||||||
'不安定; 孤注一掷会失败; 缺乏责任感; 损失; 脚跟站不稳; 堕落; 没发展; 没计划; 走错路; 行为乖张; 轻浮的恋情; 感情忽冷忽热; 不安定的爱情之旅',
|
|
||||||
'The Fool.jpg'],
|
|
||||||
['魔术师 (The Magician)',
|
|
||||||
'好的开始; 具独创性; 有发展的; 新计划成功; 想像力丰富或有好点子; 有恋情发生; 拥有默契良好的伴侣; 有新恋人出现; 值得效仿的对象出现',
|
|
||||||
'失败; 优柔寡断; 才能平庸; 有被欺诈的危险; 技术不足; 过于消极; 没有判断力; 缺乏创造力; 爱情没有进展',
|
|
||||||
'The Magician.jpg'],
|
|
||||||
['女祭司 (The High Priestess)',
|
|
||||||
'知性、优秀的判断力; 具洞察力及先见之明; 强大的战斗意志; 冷静的统率力; 学问、研究等精神方面幸运; 独立自主的女性; 柏拉图式的爱情; 有心灵上交往至深的友人; 冷淡的恋情',
|
|
||||||
'无知、缺乏理解力; 研究不足; 不理性的态度; 自我封闭; 神经质; 洁癖; 与女性朋友柒争执; 对人冷淡; 晚婚或独身主义; 没有结果的单相思; 气色不好; 不孕',
|
|
||||||
'The High Priestess.jpg'],
|
|
||||||
['皇帝 (The Emperor)',
|
|
||||||
'以坚强的意志力及手腕获致成功; 富裕和力量; 有责任感; 良好的处理能力; 具领导能力; 男性的思考; 坚持到底; 虽有点专制却值得信赖; 条件诱人的提亲; 与年长者恋爱',
|
|
||||||
'不成熟; 意志薄弱; 虚有其表; 看不清现实; 欠缺实务能力; 因傲慢而招人反感; 工作过度; 固执; 没有经济基础; 没有好对象; 苦恋结束; 勉强的感情',
|
|
||||||
'The Emperor.jpg'],
|
|
||||||
['教皇 (The Hierophant)',
|
|
||||||
'受人信赖; 有贵人相助; 贡献; 受上司重视; 能胜任工作; 拥有一颗温柔的心; 受惠于有益的建言; 接触宗教的事物大吉; 与年长的异性有缘; 良缘; 深情宽大的爱; 有结良缘的机会',
|
|
||||||
'没信用; 没有贵人相助; 孤立无援; 不受欢迎的好意; 依赖心是最大的敌人; 太罗嗦而讨人厌; 碍于私情而无法成功; 心胸狭窄; 得不到亲人的谅解的恋情; 彼此过于关心; 缘分浅薄的恋情',
|
|
||||||
'The Hierophant.jpg'],
|
|
||||||
['恋人 (The Lovers)',
|
|
||||||
'幸运的结合; 有希望的将来; 有共同做事的伙伴; 与人合作或社团活动; 敏感决定前进之路的好时机; 有意气相投的朋友; 爱情机会将到来; 罗曼蒂克的恋情; 爱的预感',
|
|
||||||
'分离; 消解; 不合作的态度; 眼花缭乱; 没有满意的成果; 无法持续; 退休; 妨碍; 血气方刚; 多情的人; 分手; 冷漠的爱; 背信; 逃避爱情; 短暂的恋情',
|
|
||||||
'The Lovers.jpg'],
|
|
||||||
['战车 (The Chariot)',
|
|
||||||
'前进必胜; 先下手为强; 独立; 起程; 在颠簸中仍有好成绩; 活泼; 有野心; 以速度取胜; 有开拓精神; 握有指挥权; 战胜敌手; 富行动力的恋情; 恋爱的胜利者',
|
|
||||||
'失败; 丧失战斗意志; 状态不佳; 挫折; 性子过急为失败之因; 不感兴趣; 效率不佳; 资金运转困难; 无奋斗精神; 有强劲敌手进入; 被拒绝; 因怯懦而使恋情不顺',
|
|
||||||
'The Chariot.jpg'],
|
|
||||||
['力量 (Strength)',
|
|
||||||
'不屈不挠的精神; 将不可能化为可能的意志力; 全力以赴; 突破难关; 坚强的信念和努力; 挑战已知危险的勇气; 神秘的力量; 旺盛的斗志; 轰轰烈烈的恋情; 克服困难的真实爱情',
|
|
||||||
'疑心病; 犹豫不决; 实力不足; 无忍耐力; 危险的赌注; 勉强为之而适得其反; 丧失自信; 喜欢故弄玄虚; 体力不足; 自大自负; 误用力气',
|
|
||||||
'Strength.jpg'],
|
|
||||||
['隐士 (The Hermit)',
|
|
||||||
'智能与卓越见解; 不断地追求更高层次的东西; 思虑周密; 冷静沉着; 不多言; 接触知性事物吉; 正中核心的建言; 活动慢慢进行较有成果; 出局; 追求柏拉图式的爱情; 暗中的爱情',
|
|
||||||
'一视同仁; 不够通融; 不专心易生错误; 过分警戒,无法顺利进行; 秘密泄漏; 过于固执不听别人的意见; 孤独; 动机不单纯; 因怨言及偏见招人嫌; 轻浮的爱情; 怀疑爱情',
|
|
||||||
'The Hermit.jpg'],
|
|
||||||
['命运之轮 (The Wheel of Fortune)',
|
|
||||||
'机会到来; 随机应变能力佳; 好运; 转换期; 意想不到的幸运; 升迁有望; 变化丰富; 好时机; 宿命的相逢; 一见钟情; 幸运的婚姻; 富贵的身份',
|
|
||||||
'低潮期; 时机未到; 评估易出错; 时机不好; 没有头绪; 处于劣势; 生活艰苦; 情况恶化; 计划停滞需要再等待; 失恋; 短暂的恋情; 易错失良机; 不敌诱惑; 爱情无法持久',
|
|
||||||
'The Wheel of Fortune.jpg'],
|
|
||||||
['正义 (Justice)',
|
|
||||||
'公正; 严正的意见; 良好的均衡关系; 严守中立立场; 凡事合理化; 身兼两种工作; 协调者; 与裁判、法律相关者; 表里一致的公正人物; 以诚实之心光明正大地交往; 彼此能获得协调',
|
|
||||||
'不公正; 不平衡; 不利的条件; 偏颇; 先入为主的观念; 偏见与独断; 纷争、诉讼; 问心有愧; 无法两全; 天平两边无法平衡; 性格不一致; 无视于社会道德观的恋情; 偏爱',
|
|
||||||
'Justice.jpg'],
|
|
||||||
['倒吊人 (The Hanged Man)',
|
|
||||||
'接受考验; 无法动弹; 被牺牲; 有失必有得; 从痛苦的体验中获得教训; 过度期; 不贪图眼前利益; 浴火重生; 多方学习; 奉献的爱; 明知辛苦但全力以赴',
|
|
||||||
'无谓的牺牲; 折断骨头; 有噩运、居于劣势; 任性妄为; 不努力; 变得没有耐性; 利己主义者; 受到惩罚; 无偿的爱; 缺乏共同奋斗的伙伴',
|
|
||||||
'The Hanged Man.jpg'],
|
|
||||||
['死神 (Death)',
|
|
||||||
'失败; 毁灭之日将近; 损害继续延续; 失业; 进展停滞; 交易停止; 为时已晚; 停滞状态; 生病或意外的暗示; 味如嚼蜡的生活; 不幸的恋情; 恋情终止; 彼此间有很深的鸿沟; 别离',
|
|
||||||
'起死回生的机会; 脱离低迷期; 改变印象; 回心转意再出发; 挽回名誉; 奇迹似地康复; 突然改变方针; 已经死心的事有了转机; 斩断情丝,重新出发',
|
|
||||||
'Death.jpg'],
|
|
||||||
['节欲 (Temperance)',
|
|
||||||
'单纯化; 顺畅; 交往平顺; 两者相融顺畅; 调整; 彼此交换有利条件; 平凡中也有重要的契机; 平顺的心境; 纯爱; 从好感转为爱意; 深爱',
|
|
||||||
'消耗; 每节制的损耗,对身心产生不好的影响; 疲劳; 不定性的工作; 缺乏调整能力; 下降; 浪费; 不要与人 合作; 不融洽; 爱情的配合度不佳',
|
|
||||||
'Temperance.jpg'],
|
|
||||||
['恶魔 (The Devil)',
|
|
||||||
'被束缚; 堕落; 恶魔的私语; 卑躬屈膝; 欲望的俘虏; 荒废的生活; 举债度日; 病魔入侵; 夜游过多; 不可告人的事; 恶意; 不可抗拒的诱惑; 私密恋情; 沉溺于感官刺激之下',
|
|
||||||
'逃离拘束; 长期的苦恼获得解放; 斩断前缘; 越过难关; 暂时停止; 拒绝诱惑; 舍弃私欲; 治愈长期病痛; 别离 时刻; 如深陷泥沼爱恨交加的恋情',
|
|
||||||
'The Devil.jpg'],
|
|
||||||
['塔 (The Tower)',
|
|
||||||
'致命的打击; 纷争; 纠纷不断; 与周遭事物对立,情况恶化; 意想不到的事情; 急病; 受牵连; 急剧的大变动; 信念奔溃; 逆境; 破产; 没有预警,突然分离; 破灭的爱; 玩火自焚',
|
|
||||||
'紧迫的状态; 险恶的气氛; 内讧; 即将破灭; 急需解决的问题; 承受震撼; 背水一战; 注意刑事问题; 因骄傲自大将付出惨痛的代价; 状况不佳; 困境; 爱情危机; 分离的预感',
|
|
||||||
'The Tower.jpg'],
|
|
||||||
['星辰 (The Star)',
|
|
||||||
'愿望达成; 前途光明; 充满希望的未来; 美好的生活; 曙光出现; 大胆的幻想; 水准提高; 新的创造力; 想像力; 理想的对象; 美好的恋情; 爱苗滋生',
|
|
||||||
'挫折、失败; 理想过高; 缺乏想像力; 异想天开; 事与愿违; 失望; 从事不喜欢的工作; 好高骛远; 情况悲观; 不可期待的对象; 没 有爱的生活; 秘密恋情; 仓皇失措',
|
|
||||||
'The Star.jpg'],
|
|
||||||
['月亮 (The Moon)',
|
|
||||||
'不安与动摇; 心中不平静; 谎言; 暧昧不明; 鬼迷心窍; 暗藏动乱; 欺骗; 终止; 不安的爱; 三角关系',
|
|
||||||
'从危险的骗局中逃脱; 状况稍为好转; 误会冰释; 破除迷惘; 时间能解决一切; 眼光要长远; 静观等待; 早期发现早期治疗有效; 事前察知危险; 对虚情假意的恋情已不在乎',
|
|
||||||
'The Moon.jpg'],
|
|
||||||
['太阳 (The Sun)',
|
|
||||||
'丰富的生命力; 巨大的成就感; 人际关系非常好; 爱情美满; 内心充满了热情和力量; 一定能够实现的约定; 飞黄腾达; 无忧无虑',
|
|
||||||
'情绪低落; 事情失败; 朋友的离去和人际关系的恶化; 无法安定内心; 忧郁孤单寂寞; 爱情不顺 利; 取消的计划; 工作上困难重重',
|
|
||||||
'The Sun.jpg'],
|
|
||||||
['审判 (Judgement)',
|
|
||||||
'复活的喜悦; 开运; 公开; 改革期; 危机解除; 决断; 荣升; 崭露头角; 好消息; 爱的使者; 恢复健康; 坦白; 复苏的爱; 再会; 爱的奇迹',
|
|
||||||
' 一败不起; 幻灭; 离复苏还有很长的时间; 不利的决定; 不被采用; 还未开始就结束了; 坏消息; 延期; 无法决定; 虽重新开始,却又恢复原状; 分离、消除; 恋恋不舍',
|
|
||||||
'Judgement.jpg'],
|
|
||||||
['世界 (The World)',
|
|
||||||
'完成; 成功; 拥有毕生的志业; 达成目标; 永续不断; 最盛期; 完美无缺; 接触异国,将获得幸运; 到达标准; 精神亢奋; 快乐的结束; 模范情侣',
|
|
||||||
'未完成; 无法达到计划中的成就; 因准备不足而失败; 中途无法在进行; 不完全燃烧; 一时不顺利; 饱和状态; 烦恼延续; 精神松弛; 个人惯用的表现方式; 因不成熟而 使情感受挫; 合谋; 态度不够圆融',
|
|
||||||
'The World.jpg']]
|
|
||||||
|
|
@ -1,59 +0,0 @@
|
||||||
from nonebot import on_command
|
|
||||||
from nonebot.adapters.onebot.v11 import Bot, Event
|
|
||||||
from nonebot.adapters.console import MessageSegment
|
|
||||||
from nonebot.rule import to_me
|
|
||||||
|
|
||||||
# 创建一个消息事件处理器,当收到消息时触发
|
|
||||||
reply = on_command("你好", rule=to_me(), priority=10, block=True)
|
|
||||||
|
|
||||||
|
|
||||||
@reply.handle()
|
|
||||||
async def handle_reply(bot: Bot, event: Event):
|
|
||||||
# 获取用户发送的消息
|
|
||||||
user_message = event.get_message().extract_plain_text().strip().replace(" ", "").replace("/", "")
|
|
||||||
|
|
||||||
|
|
||||||
# 这里构建Markdown格式的消息内容
|
|
||||||
# markdown_message = MessageSegment.markdown(
|
|
||||||
# """
|
|
||||||
# ### 这是标题
|
|
||||||
# 这是一段正文内容,你可以在这里按照[Markdown语法](https://www.markdown.com.cn/)添加更多元素,比如**加粗**、*斜体*等。
|
|
||||||
# - 列表项1
|
|
||||||
# - 列表项2
|
|
||||||
# - 今天天气怎么样?
|
|
||||||
# ⛅ 多云 20℃~24℃
|
|
||||||
# 🌡️ 风速 1-2级
|
|
||||||
# 💨 10-15公里/小时
|
|
||||||
# 🌬️ 微风 2-3级
|
|
||||||
# 🌡️ 降水概率 50%
|
|
||||||
# 🌡️ 降水强度 微弱
|
|
||||||
# 🌡️ 紫外线强度 弱
|
|
||||||
# 🌡️ 能见度 10公里
|
|
||||||
#
|
|
||||||
# """
|
|
||||||
# )
|
|
||||||
# await bot.send(event=event, message=markdown_message, at_sender=True)
|
|
||||||
# 定义回复内容
|
|
||||||
if user_message == "你好":
|
|
||||||
reply_message = "你好呀!我是你的机器人助手。"
|
|
||||||
elif user_message == "今天天气怎么样":
|
|
||||||
reply_message = "抱歉,我暂时无法得知天气信息哦 你可以通过天气预报网站查询。"
|
|
||||||
else:
|
|
||||||
reply_message = "我不太理解你的意思呢,你可以换个说法试试。"
|
|
||||||
# 发送回复消息
|
|
||||||
await bot.send(event=event, message=reply_message)
|
|
||||||
|
|
||||||
# @reply.handle()
|
|
||||||
# async def hp(bot: Bot, event: Event):
|
|
||||||
# # 获取全部群列表
|
|
||||||
# group_list = await bot.get_group_list()
|
|
||||||
#
|
|
||||||
# for group in group_list:
|
|
||||||
# print(group)
|
|
||||||
# # 获取群成员列表
|
|
||||||
# member_list = await bot.get_group_member_list(group_id=group['group_id'])
|
|
||||||
# for member in member_list:
|
|
||||||
# print(member)
|
|
||||||
# # 获取群成员信息
|
|
||||||
# await bot.get_group_member_info(group_id=group['group_id'],
|
|
||||||
# user_id=member['user_id'])
|
|
||||||
|
|
@ -1,14 +0,0 @@
|
||||||
from nonebot.adapters.cqhttp import Bot, Message, GroupMessageEvent, GroupDecreaseNoticeEvent, GroupIncreaseNoticeEvent
|
|
||||||
from nonebot import on_notice
|
|
||||||
|
|
||||||
welcome = on_notice()
|
|
||||||
|
|
||||||
# 监听加群事件
|
|
||||||
@welcome.handle() # 监听 welcome
|
|
||||||
async def welcome_new_member(event: GroupIncreaseNoticeEvent):
|
|
||||||
user = event.get_user_id() # 获取新成员的id
|
|
||||||
at_ = "爆裂吧!现实!粉碎吧!精神!Banishiment this world!! 应召唤而来 [CQ:at,qq={}]".format(user)
|
|
||||||
msg = at_ + '欢迎加入本群!'
|
|
||||||
msg = Message(msg)
|
|
||||||
await welcome.finish(message=Message(f'{msg}')) # 发送消息
|
|
||||||
|
|
||||||
|
|
@ -78,7 +78,7 @@ t2 = on_command("添加人设",aliases={"更新人设","删除人设","切换人
|
||||||
async def handle_function(message: MessageEvent):
|
async def handle_function(message: MessageEvent):
|
||||||
|
|
||||||
if not hasattr(message, 'group_openid'):
|
if not hasattr(message, 'group_openid'):
|
||||||
await t3.finish("暂未在当前场景下开放此功能。")
|
await t2.finish("暂未在当前场景下开放此功能。")
|
||||||
|
|
||||||
member_openid, group_openid = message.author.id, message.group_openid
|
member_openid, group_openid = message.author.id, message.group_openid
|
||||||
if not await GroupChatRole.get_admin_list(group_openid, member_openid):
|
if not await GroupChatRole.get_admin_list(group_openid, member_openid):
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,7 @@ with open(os.getcwd() + '/src/ai_chat/config/chat_ai.yaml', 'r', encoding='utf-8
|
||||||
admin_password = chat.get('admin_password')
|
admin_password = chat.get('admin_password')
|
||||||
|
|
||||||
|
|
||||||
menu = ['/今日运势','/图','/点歌','/摸摸头','/群老婆','/今日老婆', "/开启ai","/关闭ai","/角色列表","/添加人设", "/更新人设", "/删除人设", "/切换人设", "/管理员注册",
|
menu = ['/今日运势','/今日塔罗','/图','/点歌','/摸摸头','/群老婆','/今日老婆', "/开启ai","/关闭ai","/角色列表","/添加人设", "/更新人设", "/删除人设", "/切换人设", "/管理员注册",
|
||||||
'/待办', '/test','/天气','我喜欢你', "❤", "/待办查询", "/新建待办", "/删除待办" ,"/cf", "/奶龙", "/repo", "/info", "/B站搜索", "/BV搜索", "/喜报", "/悲报"]
|
'/待办', '/test','/天气','我喜欢你', "❤", "/待办查询", "/新建待办", "/删除待办" ,"/cf", "/奶龙", "/repo", "/info", "/B站搜索", "/BV搜索", "/喜报", "/悲报"]
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,24 +2,17 @@
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
from nonebot.rule import to_me
|
from nonebot.rule import to_me
|
||||||
from nonebot.plugin import on_command
|
from nonebot.plugin import on_command
|
||||||
from nonebot.adapters.qq import Message, MessageEvent, MessageSegment, exception
|
from nonebot.adapters.qq import Message, MessageEvent, MessageSegment,exception
|
||||||
|
|
||||||
from src.image.get_image import get_image_names
|
from src.image.get_image import get_image_names
|
||||||
from src.my_sqlite.models.fortune import QrFortune,QrFortuneLog
|
from src.my_sqlite.models.fortune import QrFortune,QrFortuneLog
|
||||||
|
from src.my_sqlite.models.tarot import MajorArcana
|
||||||
|
|
||||||
fortune_by_sqlite = on_command("今日运势", rule=to_me(), priority=10, block=True)
|
fortune_by_sqlite = on_command("今日运势", rule=to_me(), priority=10, block=True)
|
||||||
@fortune_by_sqlite.handle()
|
@fortune_by_sqlite.handle()
|
||||||
async def get_today_fortune(message: MessageEvent):
|
async def get_today_fortune(message: MessageEvent):
|
||||||
|
|
||||||
local_image_path = get_image_names()
|
local_image_path = get_image_names()
|
||||||
member_openid = message.get_user_id()
|
result = await QrFortune.get_fortune(message.get_user_id())
|
||||||
# 查询今日是否已经获取过今日运势,如果获取过则直接从日志取
|
|
||||||
result = await QrFortuneLog.is_get_fortune_log(member_openid)
|
|
||||||
if result is None:
|
|
||||||
# 获取 运势说明
|
|
||||||
result = await QrFortune.get_fortune()
|
|
||||||
# 把抽取的今日运势插入日志
|
|
||||||
await QrFortuneLog.insert_fortune_log(result, member_openid)
|
|
||||||
|
|
||||||
content = ("\n" + "您的今日运势为:" + "\n" +
|
content = ("\n" + "您的今日运势为:" + "\n" +
|
||||||
result.fortune_summary + "\n" +
|
result.fortune_summary + "\n" +
|
||||||
|
|
@ -32,8 +25,23 @@ async def get_today_fortune(message: MessageEvent):
|
||||||
MessageSegment.file_image(Path(local_image_path)),
|
MessageSegment.file_image(Path(local_image_path)),
|
||||||
MessageSegment.text(content),
|
MessageSegment.text(content),
|
||||||
])
|
])
|
||||||
|
|
||||||
try:
|
try:
|
||||||
await fortune_by_sqlite.finish(msg)
|
await fortune_by_sqlite.finish(msg)
|
||||||
except exception.ActionFailed:
|
except exception.ActionFailed:
|
||||||
await fortune_by_sqlite.finish("您的今日运势被外星人抢走啦,请重试。这绝对不是咱的错,绝对不是!")
|
await fortune_by_sqlite.finish("您的今日运势被外星人抢走啦,请重试。这绝对不是咱的错,绝对不是!")
|
||||||
|
|
||||||
|
|
||||||
|
tarot = on_command("今日塔罗", rule=to_me(), priority=10, block=True)
|
||||||
|
@tarot.handle()
|
||||||
|
async def tarot(message: MessageEvent):
|
||||||
|
result = await MajorArcana.tarotChoice(message.get_user_id())
|
||||||
|
|
||||||
|
content = ("\n" + result.ints + "\n" +
|
||||||
|
result.name + "\n" +
|
||||||
|
"含义:" + result.meaning)
|
||||||
|
|
||||||
|
msg = Message([
|
||||||
|
MessageSegment.file_image(Path(result.image)),
|
||||||
|
MessageSegment.text(content),
|
||||||
|
])
|
||||||
|
await fortune_by_sqlite.finish(msg)
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue