diff --git a/.gitignore b/.gitignore index abe61a7..8cdb4d5 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,5 @@ -.env.prod \ No newline at end of file +.env.prod +.venv +.xml +.idea +.db diff --git a/bot.py b/bot.py index a233c37..a81f4e6 100644 --- a/bot.py +++ b/bot.py @@ -1,14 +1,22 @@ import nonebot from nonebot.adapters.qq import Adapter as QQAdapter +from nonebot.adapters.onebot.v11 import Adapter as OneBotV11Adapter +from src.qq_plugins.data_init import data_init # 导入QQ插件 nonebot.init() - driver = nonebot.get_driver() -driver.register_adapter(QQAdapter) +driver.register_adapter(QQAdapter) # 注册QQ适配器 +# driver.register_adapter(OneBotV11Adapter) # 注册OneBot V11适配器 -nonebot.load_builtin_plugins('echo', 'single_session') +# nonebot.load_builtin_plugins('echo', 'single_session') nonebot.load_from_toml("pyproject.toml") +def init_all(): + # 初始化数据库 + data_init.QrFortune_init() + data_init.touch_init() + if __name__ == "__main__": - nonebot.run() \ No newline at end of file + init_all() + nonebot.run() diff --git a/src/common_plugins/cloud_music/agent.py b/src/common_plugins/cloud_music/agent.py new file mode 100644 index 0000000..3316f29 --- /dev/null +++ b/src/common_plugins/cloud_music/agent.py @@ -0,0 +1,53 @@ +# -*- coding: UTF-8 -*- + +import random +import execjs +agent = [ + "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36", + "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2227.1 Safari/537.36", + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/57.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3", + +] + +# 获取浏览器认证头 +def get_user_agents(): + return random.choice(agent) +# 读取js +def djs(js): + f = open(js, 'r', encoding='utf-8') + jst = '' + while True: + readline = f.readline() + if readline: + jst += readline + else: + break + return jst +def getjs(): + return djs('src/common_plugins/cloud_music/jsdm.js') + +# 获取ptqrtoken +def ptqrtoken(qrsign): + # 加载js + execjs_execjs = execjs.compile(getjs()) + return execjs_execjs.call('hash33', qrsign) +# 获取UI +def guid(): + # 加载js + execjs_execjs = execjs.compile(getjs()) + return execjs_execjs.call('guid') +# 获取g_tk +def get_g_tk(p_skey): + # 加载js + execjs_execjs = execjs.compile(getjs()) + return execjs_execjs.call('getToken', p_skey) +# 获取i +def S(): + # 加载js + execjs_execjs = execjs.compile(getjs()) + return execjs_execjs.call('S') +# 获取key +def a(): + # 加载js + execjs_execjs = execjs.compile(getjs()) + return execjs_execjs.call('a', 16) diff --git a/src/common_plugins/cloud_music/cloud_music.py b/src/common_plugins/cloud_music/cloud_music.py new file mode 100644 index 0000000..b0cd441 --- /dev/null +++ b/src/common_plugins/cloud_music/cloud_music.py @@ -0,0 +1,252 @@ +# -*- coding: utf-8 -*- +import base64 +import codecs +import json +import pickle +from random import Random + +from Crypto.Cipher import AES +import qrcode +import src.common_plugins.cloud_music.agent as agent +from threading import Thread +import time +import requests +from io import BytesIO +from PIL import Image +import os +from graiax import silkcoder + + +requests.packages.urllib3.disable_warnings() +headers = {'User-Agent': agent.get_user_agents(), 'Referer': 'https://music.163.com/'} + + +class showpng(Thread): + def __init__(self, data): + Thread.__init__(self) + self.data = data + + def run(self): + img = Image.open(BytesIO(self.data)) + img.show() + + +# 解密params和encSecKey值 +def keys(key): + while len(key) % 16 != 0: + key += '\0' + return str.encode(key) + + +def AES_aes(t, key, iv): + def p(s): return s + (AES.block_size - len(s) %AES.block_size) * chr(AES.block_size - len(s) % AES.block_size) + encrypt = str(base64.encodebytes(AES.new( keys(key), AES.MODE_CBC,keys(iv)).encrypt(str.encode(p(t)))),encoding='utf-8') + return encrypt + + +def RSA_rsa(i, e, f): + return format(int(codecs.encode( + i[::-1].encode('utf-8'), 'hex_codec'), 16) ** int(e, 16) % int(f, 16), 'x').zfill(256) + + +# 获取的参数 +key = agent.S() # i6c的值 +d = str({'key': key, 'type': "1", 'csrf_token': ""}) +e = "010001" # (["流泪", "强"])的值 +f = "00e0b509f6259df8642dbc35662901477df22677ec152b5ff68ace615bb7b725152b3ab17a876aea8a5aa76d2e417629ec4ee341f56135fccf695280104e0312ecbda92557c93870114af6c9d05c4f7f0c3685b7a46bee255932575cce10b424d813cfe4875d3e82047b97ddef52741d546b8e289dc6935b3ece0462db0a22b8e7" +g = "0CoJUm6Qyw8W8jud" # (["爱心", "女孩", "惊恐", "大笑"])的值 +iv = "0102030405060708" # 偏移量 +i = agent.a() # 随机生成长度为16的字符串 + + +def params(u): + if u is None: + return AES_aes(AES_aes(d, g, iv), i, iv) # g 和 i 都是key代替 + else: + return AES_aes(AES_aes(u,g,iv),i,iv) # g 和 i 都是key代替 + +def encSecKey(): + return RSA_rsa(i, e, f) + +""" + +使用二维码登录网易云音乐,需要先获取二维码的key,然后使用该key生成二维码,扫描二维码登录,最后通过登录接口 返回cookie 保存起来 + +""" + + + + +save_path = os.getcwd()+'/src/music/netease_music' + + +# 判断cookie是否有效 +def netease_cloud_music_is_login(session): + try: + session.cookies.load(ignore_discard=True) + except Exception: + pass + csrf_token = session.cookies.get('__csrf') + c = str({'csrf_token': csrf_token}) + try: + loginurl = session.post('https://music.163.com/weapi/w/nuser/account/get?csrf_token={}'.format(csrf_token),data={'params': params(None), 'encSecKey': encSecKey()}, headers=headers).json() + if '200' in str(loginurl['code']): + return session, True + else: + return session, False + except BaseException: + return session, False + +# 获取二维码的key +def get_qr_key(session): + url = f"https://music.163.com/weapi/login/qrcode/unikey" + data = {"params": params(None),"encSecKey": encSecKey()} + response = session.post(url, headers=headers,params=data) + result = json.loads(response.text) + if result.get("code") == 200: + unikey = result.get("unikey") + print(unikey) + return unikey + else: + return None + + + +# 创建 QRCode 对象 +qr = qrcode.QRCode( version=1, error_correction=qrcode.constants.ERROR_CORRECT_L, box_size=10, border=4, ) +# 生成二维码 +def create_qr_code(unikey): + # 添加数据 + pngurl = f"http://music.163.com/login?codekey={unikey}" + qr.add_data(pngurl) + img = qr.make_image() + a = BytesIO() + img.save(a, 'png') + png = a.getvalue() + # 将字节数据转换为图像 + img = Image.open(BytesIO(png)) + # 保存图像到本地文件 + img.save(save_path,'qrcode.png') + a.close() + return os.getcwd()+'/'+save_path+'/qrcode.png' + # # 打开二维码进行扫码操作 + # t = showpng(png) + # t.start() + + +# 检查二维码状态是否被扫描 +def check_qr_code(unikey,session): + tokenurl = f"https://music.163.com/weapi/login/qrcode/client/login?csrf_token=" + u = str({'key': unikey, 'type': "1", 'csrf_token': ""}) + qrcodedata = session.post( + tokenurl, + data={ + 'params': params(u), + 'encSecKey': encSecKey() + }, + headers=headers).json() + return qrcodedata.get('code') + + +def netease_music_search(keyword,session): + url = "http://music.163.com/api/search/get" + params = { + "s": keyword, + "type": 1, # 1 表示搜索歌曲,2 表示搜索专辑,3 表示搜索歌手等 + "limit": 50, # 限制搜索结果的数量 + "offset": 0, # 搜索结果的偏移量,可用于分页 + "sub": "false", + } + response = session.get(url, headers=headers, params=params) + data = response.json() + if "result" in data and "songs" in data["result"]: + songs = data["result"]["songs"] + if songs: + filtered_data = [item for item in songs if item.get('fee') == 8]# 过滤掉付费歌曲 + num = 0 + num = Random().randint(0, len(filtered_data) - 1) + first_song = filtered_data[num] # 获取第一首歌曲 + song_name = first_song["name"] + singer = first_song["artists"][0]["name"] + song_id = first_song["id"] + song_url = f"https://music.163.com/song?id={song_id}" + print(f"搜索结果:{song_name} - {singer}") + print(f"歌曲链接:{song_url}") + return song_id,song_name,singer,song_url + return None, None, None, None + + +def netease_music_download(song_id,song_name,singer,session): + if not os.path.exists(save_path): + os.makedirs(save_path) + download_url = f"http://music.163.com/song/media/outer/url?br=999000&id={song_id}.mp3" + response = session.get(download_url, headers=headers) + if response.status_code == 200: + print(f"正在下载 {song_name} - {singer} 歌曲...") + file_path = os.path.join(save_path, f"{song_name}-{singer}.mp3") + file_name = os.path.basename(f"{song_name}-{singer}.mp3") + with open(file_path, "wb") as f: + f.write(response.content) + output_silk_path = os.path.join(save_path, os.path.splitext(file_name)[0] + ".silk") + # 使用 graiax-silkcoder 进行转换 + silkcoder.encode(file_path, output_silk_path) + return output_silk_path + else: + return None + + +def netease_music_delete(): + for root, dirs, files in os.walk(save_path): + for file in files: + file_path = os.path.join(root, file) + os.remove(file_path) + + +# def main(): +# keyword = input("请输入你想要搜索的歌曲名称:") +# save_path = '../src/music/netease_music' +# if not os.path.exists(save_path): +# os.makedirs(save_path) +# song_id,song_name,singer,song_url = netease_music_search(keyword) +# if song_id: +# download_result = netease_music_download(song_id,song_name,singer) +# # download_result = netease_music_play(song_id,song_name,singer) +# if download_result: +# print(f"歌曲已成功下载到 {download_result}") +# else: +# print("歌曲下载失败,请检查网络或 API 状态。") + +# +# if __name__ == "__main__": +# main() + + +# def main(): +# cloud_music_login() + +# if __name__ == "__main__": +# main() + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/common_plugins/cloud_music/jsdm.js b/src/common_plugins/cloud_music/jsdm.js new file mode 100644 index 0000000..9c04f6b --- /dev/null +++ b/src/common_plugins/cloud_music/jsdm.js @@ -0,0 +1,42 @@ +function hash33(t) { + for (var e = 0, i = 0, n = t.length; i < n; ++i) + e += (e << 5) + t.charCodeAt(i); + return 2147483647 & e +} + +function getToken(p_skey) { + var str = p_skey || '', + hash = 5381; + for (var i = 0, len = str.length; i < len; ++i) { + hash += (hash << 5) + str.charCodeAt(i); + } + return hash & 0x7fffffff; +} + +function guid() { + return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) { + var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8); + return v.toString(16); + }).toUpperCase(); +}; + + +function S() { + var e = (new Date).getTime(); + return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, function(t) { + var n = (e + 16 * Math.random()) % 16 | 0; + return e = Math.floor(e / 16), + ("x" === t ? n : 7 & n | 8).toString(16) + }) +} + + +function a(a) { + var d, e, b = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789", c = ""; + for (d = 0; a > d; d += 1) + e = Math.random() * b.length, + e = Math.floor(e), + c += b.charAt(e); + return c +} + diff --git a/src/common_plugins/config/common.yaml b/src/common_plugins/config/common.yaml new file mode 100644 index 0000000..04e5a5b --- /dev/null +++ b/src/common_plugins/config/common.yaml @@ -0,0 +1,15 @@ +image: + image_local_path: "src/img_resource/MaoYuNa" + #SMMS图床相关配置 + smms_token: "" # sm.ms图床的token + smms_image_upload_history: "https://sm.ms/api/v2/upload_history" # sm.ms图床获取上传图片历史API地址 + #聚合图床相关配置 + ju_he_token: "" # 聚合图床的token + ju_he_image_list: "https://api.superbed.cn/timeline" # 聚合图床获取上传图片历史API地址 + + + + + + + diff --git a/src/common_plugins/img/get_image.py b/src/common_plugins/img/get_image.py new file mode 100644 index 0000000..2a8c692 --- /dev/null +++ b/src/common_plugins/img/get_image.py @@ -0,0 +1,46 @@ +import os +import yaml +import random +import requests + + +with open(os.getcwd() +'/src/common_plugins/config/common.yaml', 'r', encoding='utf-8') as f: + image = yaml.load(f.read(), Loader=yaml.FullLoader).get('image') + image_local_path = image.get('image_local_path') + smms_token = image.get('smms_token') + smms_image_upload_history = image.get('smms_image_upload_history') + ju_he_token = image.get('ju_he_token') + ju_he_image_list = image.get('ju_he_image_list') + +"""本地图片""" +def get_image_names(): + image_extensions = ['.jpg', '.jpeg', '.png', '.gif', '.bmp'] # 定义常见的图片文件扩展名 + image_names = [] + for root, dirs, files in os.walk(os.getcwd()+'/'+image_local_path): + for file in files: + if any(file.endswith(ext) for ext in image_extensions): # 检查文件是否是图片文件 + image_names.append(file) + random.choice(image_names) # 随机选取一张图片 + local_image_path = os.getcwd() + '/' + image_local_path + '/' + random.choice(image_names) # 随机选取一张图片的路径 + return local_image_path + +""" sm.ms 图床""" +def get_smms_image_url(): + # 定义请求的参数 + data = requests.get(smms_image_upload_history, headers={'Authorization': smms_token}, params={"page": "1"}).json().get('data') + urls = [item['url'] for item in data] + random_url = random.choice(urls) + return random_url + +"""聚合图床""" +def get_juhe_image_url(): + # 定义请求的参数 + params = {"token": ju_he_token,"f": "json","categories": "猫羽雫","page": 1, "size": 400} + random_url = random.choice(requests.get(ju_he_image_list, params=params).json().get('docs', [])).get('url') + return random_url + + +if __name__ == '__main__': + print(get_smms_image_url()) + print(get_juhe_image_url()) + print(get_image_names()) \ No newline at end of file diff --git a/src/img_resource/MaoYuNa/001.png b/src/img_resource/MaoYuNa/001.png new file mode 100644 index 0000000..e38a3d8 Binary files /dev/null and b/src/img_resource/MaoYuNa/001.png differ diff --git a/src/img_resource/MaoYuNa/002.png b/src/img_resource/MaoYuNa/002.png new file mode 100644 index 0000000..52970cc Binary files /dev/null and b/src/img_resource/MaoYuNa/002.png differ diff --git a/src/img_resource/MaoYuNa/003.png b/src/img_resource/MaoYuNa/003.png new file mode 100644 index 0000000..9231a83 Binary files /dev/null and b/src/img_resource/MaoYuNa/003.png differ diff --git a/src/img_resource/MaoYuNa/005.png b/src/img_resource/MaoYuNa/005.png new file mode 100644 index 0000000..98e4d29 Binary files /dev/null and b/src/img_resource/MaoYuNa/005.png differ diff --git a/src/img_resource/MaoYuNa/006.png b/src/img_resource/MaoYuNa/006.png new file mode 100644 index 0000000..ca818cd Binary files /dev/null and b/src/img_resource/MaoYuNa/006.png differ diff --git a/src/img_resource/MaoYuNa/007.png b/src/img_resource/MaoYuNa/007.png new file mode 100644 index 0000000..dd08f68 Binary files /dev/null and b/src/img_resource/MaoYuNa/007.png differ diff --git a/src/img_resource/MaoYuNa/008.png b/src/img_resource/MaoYuNa/008.png new file mode 100644 index 0000000..8601f32 Binary files /dev/null and b/src/img_resource/MaoYuNa/008.png differ diff --git a/src/img_resource/MaoYuNa/009.png b/src/img_resource/MaoYuNa/009.png new file mode 100644 index 0000000..ea00c0c Binary files /dev/null and b/src/img_resource/MaoYuNa/009.png differ diff --git a/src/img_resource/MaoYuNa/010.png b/src/img_resource/MaoYuNa/010.png new file mode 100644 index 0000000..36a0ff1 Binary files /dev/null and b/src/img_resource/MaoYuNa/010.png differ diff --git a/src/img_resource/MaoYuNa/011.png b/src/img_resource/MaoYuNa/011.png new file mode 100644 index 0000000..c329e0b Binary files /dev/null and b/src/img_resource/MaoYuNa/011.png differ diff --git a/src/img_resource/MaoYuNa/012.png b/src/img_resource/MaoYuNa/012.png new file mode 100644 index 0000000..a44b93e Binary files /dev/null and b/src/img_resource/MaoYuNa/012.png differ diff --git a/src/img_resource/MaoYuNa/013.png b/src/img_resource/MaoYuNa/013.png new file mode 100644 index 0000000..460696b Binary files /dev/null and b/src/img_resource/MaoYuNa/013.png differ diff --git a/src/img_resource/MaoYuNa/014.png b/src/img_resource/MaoYuNa/014.png new file mode 100644 index 0000000..7e8326a Binary files /dev/null and b/src/img_resource/MaoYuNa/014.png differ diff --git a/src/img_resource/MaoYuNa/015.png b/src/img_resource/MaoYuNa/015.png new file mode 100644 index 0000000..1e00e36 Binary files /dev/null and b/src/img_resource/MaoYuNa/015.png differ diff --git a/src/img_resource/MaoYuNa/016.png b/src/img_resource/MaoYuNa/016.png new file mode 100644 index 0000000..89162f3 Binary files /dev/null and b/src/img_resource/MaoYuNa/016.png differ diff --git a/src/img_resource/MaoYuNa/017.png b/src/img_resource/MaoYuNa/017.png new file mode 100644 index 0000000..684260d Binary files /dev/null and b/src/img_resource/MaoYuNa/017.png differ diff --git a/src/img_resource/MaoYuNa/018.png b/src/img_resource/MaoYuNa/018.png new file mode 100644 index 0000000..46211ee Binary files /dev/null and b/src/img_resource/MaoYuNa/018.png differ diff --git a/src/img_resource/MaoYuNa/019.png b/src/img_resource/MaoYuNa/019.png new file mode 100644 index 0000000..5b8a6c3 Binary files /dev/null and b/src/img_resource/MaoYuNa/019.png differ diff --git a/src/img_resource/MaoYuNa/020.png b/src/img_resource/MaoYuNa/020.png new file mode 100644 index 0000000..df39055 Binary files /dev/null and b/src/img_resource/MaoYuNa/020.png differ diff --git a/src/img_resource/MaoYuNa/021.png b/src/img_resource/MaoYuNa/021.png new file mode 100644 index 0000000..1b1eb7f Binary files /dev/null and b/src/img_resource/MaoYuNa/021.png differ diff --git a/src/img_resource/MaoYuNa/022.png b/src/img_resource/MaoYuNa/022.png new file mode 100644 index 0000000..be7d939 Binary files /dev/null and b/src/img_resource/MaoYuNa/022.png differ diff --git a/src/img_resource/MaoYuNa/023.png b/src/img_resource/MaoYuNa/023.png new file mode 100644 index 0000000..157bb81 Binary files /dev/null and b/src/img_resource/MaoYuNa/023.png differ diff --git a/src/img_resource/MaoYuNa/024.png b/src/img_resource/MaoYuNa/024.png new file mode 100644 index 0000000..428327d Binary files /dev/null and b/src/img_resource/MaoYuNa/024.png differ diff --git a/src/img_resource/MaoYuNa/025.png b/src/img_resource/MaoYuNa/025.png new file mode 100644 index 0000000..1bb308d Binary files /dev/null and b/src/img_resource/MaoYuNa/025.png differ diff --git a/src/img_resource/MaoYuNa/026.png b/src/img_resource/MaoYuNa/026.png new file mode 100644 index 0000000..8407f1c Binary files /dev/null and b/src/img_resource/MaoYuNa/026.png differ diff --git a/src/img_resource/MaoYuNa/027.png b/src/img_resource/MaoYuNa/027.png new file mode 100644 index 0000000..02cc14c Binary files /dev/null and b/src/img_resource/MaoYuNa/027.png differ diff --git a/src/img_resource/MaoYuNa/028.png b/src/img_resource/MaoYuNa/028.png new file mode 100644 index 0000000..f98d5fd Binary files /dev/null and b/src/img_resource/MaoYuNa/028.png differ diff --git a/src/img_resource/MaoYuNa/029.png b/src/img_resource/MaoYuNa/029.png new file mode 100644 index 0000000..7988d54 Binary files /dev/null and b/src/img_resource/MaoYuNa/029.png differ diff --git a/src/img_resource/MaoYuNa/030.png b/src/img_resource/MaoYuNa/030.png new file mode 100644 index 0000000..ba09c13 Binary files /dev/null and b/src/img_resource/MaoYuNa/030.png differ diff --git a/src/img_resource/MaoYuNa/031.png b/src/img_resource/MaoYuNa/031.png new file mode 100644 index 0000000..11b8608 Binary files /dev/null and b/src/img_resource/MaoYuNa/031.png differ diff --git a/src/img_resource/MaoYuNa/032.png b/src/img_resource/MaoYuNa/032.png new file mode 100644 index 0000000..d7d35fe Binary files /dev/null and b/src/img_resource/MaoYuNa/032.png differ diff --git a/src/img_resource/MaoYuNa/033.png b/src/img_resource/MaoYuNa/033.png new file mode 100644 index 0000000..8077042 Binary files /dev/null and b/src/img_resource/MaoYuNa/033.png differ diff --git a/src/img_resource/MaoYuNa/034.png b/src/img_resource/MaoYuNa/034.png new file mode 100644 index 0000000..a502084 Binary files /dev/null and b/src/img_resource/MaoYuNa/034.png differ diff --git a/src/img_resource/MaoYuNa/035.png b/src/img_resource/MaoYuNa/035.png new file mode 100644 index 0000000..0d42d3e Binary files /dev/null and b/src/img_resource/MaoYuNa/035.png differ diff --git a/src/img_resource/MaoYuNa/036.png b/src/img_resource/MaoYuNa/036.png new file mode 100644 index 0000000..1d16601 Binary files /dev/null and b/src/img_resource/MaoYuNa/036.png differ diff --git a/src/img_resource/MaoYuNa/037.png b/src/img_resource/MaoYuNa/037.png new file mode 100644 index 0000000..d1ae722 Binary files /dev/null and b/src/img_resource/MaoYuNa/037.png differ diff --git a/src/img_resource/MaoYuNa/038.png b/src/img_resource/MaoYuNa/038.png new file mode 100644 index 0000000..90a184e Binary files /dev/null and b/src/img_resource/MaoYuNa/038.png differ diff --git a/src/img_resource/MaoYuNa/039.png b/src/img_resource/MaoYuNa/039.png new file mode 100644 index 0000000..19ad741 Binary files /dev/null and b/src/img_resource/MaoYuNa/039.png differ diff --git a/src/img_resource/MaoYuNa/040.png b/src/img_resource/MaoYuNa/040.png new file mode 100644 index 0000000..83c9b01 Binary files /dev/null and b/src/img_resource/MaoYuNa/040.png differ diff --git a/src/img_resource/MaoYuNa/041.png b/src/img_resource/MaoYuNa/041.png new file mode 100644 index 0000000..80792e6 Binary files /dev/null and b/src/img_resource/MaoYuNa/041.png differ diff --git a/src/img_resource/MaoYuNa/042.png b/src/img_resource/MaoYuNa/042.png new file mode 100644 index 0000000..b6aa14a Binary files /dev/null and b/src/img_resource/MaoYuNa/042.png differ diff --git a/src/img_resource/MaoYuNa/043.png b/src/img_resource/MaoYuNa/043.png new file mode 100644 index 0000000..cab9839 Binary files /dev/null and b/src/img_resource/MaoYuNa/043.png differ diff --git a/src/img_resource/MaoYuNa/045.png b/src/img_resource/MaoYuNa/045.png new file mode 100644 index 0000000..0d2c01c Binary files /dev/null and b/src/img_resource/MaoYuNa/045.png differ diff --git a/src/img_resource/MaoYuNa/046.png b/src/img_resource/MaoYuNa/046.png new file mode 100644 index 0000000..a3285a1 Binary files /dev/null and b/src/img_resource/MaoYuNa/046.png differ diff --git a/src/img_resource/MaoYuNa/047.png b/src/img_resource/MaoYuNa/047.png new file mode 100644 index 0000000..ba32b06 Binary files /dev/null and b/src/img_resource/MaoYuNa/047.png differ diff --git a/src/img_resource/MaoYuNa/048.png b/src/img_resource/MaoYuNa/048.png new file mode 100644 index 0000000..9135b3b Binary files /dev/null and b/src/img_resource/MaoYuNa/048.png differ diff --git a/src/img_resource/MaoYuNa/049.png b/src/img_resource/MaoYuNa/049.png new file mode 100644 index 0000000..0630e5b Binary files /dev/null and b/src/img_resource/MaoYuNa/049.png differ diff --git a/src/img_resource/MaoYuNa/050.png b/src/img_resource/MaoYuNa/050.png new file mode 100644 index 0000000..cf7aa78 Binary files /dev/null and b/src/img_resource/MaoYuNa/050.png differ diff --git a/src/img_resource/MaoYuNa/051.png b/src/img_resource/MaoYuNa/051.png new file mode 100644 index 0000000..3df7a40 Binary files /dev/null and b/src/img_resource/MaoYuNa/051.png differ diff --git a/src/img_resource/MaoYuNa/052.png b/src/img_resource/MaoYuNa/052.png new file mode 100644 index 0000000..a139839 Binary files /dev/null and b/src/img_resource/MaoYuNa/052.png differ diff --git a/src/img_resource/MaoYuNa/053.png b/src/img_resource/MaoYuNa/053.png new file mode 100644 index 0000000..e6d5157 Binary files /dev/null and b/src/img_resource/MaoYuNa/053.png differ diff --git a/src/img_resource/MaoYuNa/054.png b/src/img_resource/MaoYuNa/054.png new file mode 100644 index 0000000..73a7aec Binary files /dev/null and b/src/img_resource/MaoYuNa/054.png differ diff --git a/src/img_resource/MaoYuNa/055.png b/src/img_resource/MaoYuNa/055.png new file mode 100644 index 0000000..1819759 Binary files /dev/null and b/src/img_resource/MaoYuNa/055.png differ diff --git a/src/img_resource/MaoYuNa/056.png b/src/img_resource/MaoYuNa/056.png new file mode 100644 index 0000000..800efb1 Binary files /dev/null and b/src/img_resource/MaoYuNa/056.png differ diff --git a/src/img_resource/MaoYuNa/057.png b/src/img_resource/MaoYuNa/057.png new file mode 100644 index 0000000..1812759 Binary files /dev/null and b/src/img_resource/MaoYuNa/057.png differ diff --git a/src/img_resource/MaoYuNa/058.png b/src/img_resource/MaoYuNa/058.png new file mode 100644 index 0000000..37393a7 Binary files /dev/null and b/src/img_resource/MaoYuNa/058.png differ diff --git a/src/img_resource/MaoYuNa/059.png b/src/img_resource/MaoYuNa/059.png new file mode 100644 index 0000000..71adb5f Binary files /dev/null and b/src/img_resource/MaoYuNa/059.png differ diff --git a/src/img_resource/MaoYuNa/060.png b/src/img_resource/MaoYuNa/060.png new file mode 100644 index 0000000..8baa7ea Binary files /dev/null and b/src/img_resource/MaoYuNa/060.png differ diff --git a/src/img_resource/MaoYuNa/061.png b/src/img_resource/MaoYuNa/061.png new file mode 100644 index 0000000..673fbe6 Binary files /dev/null and b/src/img_resource/MaoYuNa/061.png differ diff --git a/src/img_resource/MaoYuNa/062.png b/src/img_resource/MaoYuNa/062.png new file mode 100644 index 0000000..6d3d205 Binary files /dev/null and b/src/img_resource/MaoYuNa/062.png differ diff --git a/src/img_resource/MaoYuNa/063.png b/src/img_resource/MaoYuNa/063.png new file mode 100644 index 0000000..3fa2f37 Binary files /dev/null and b/src/img_resource/MaoYuNa/063.png differ diff --git a/src/img_resource/MaoYuNa/064.png b/src/img_resource/MaoYuNa/064.png new file mode 100644 index 0000000..bc6413d Binary files /dev/null and b/src/img_resource/MaoYuNa/064.png differ diff --git a/src/img_resource/MaoYuNa/065.png b/src/img_resource/MaoYuNa/065.png new file mode 100644 index 0000000..f5b0b72 Binary files /dev/null and b/src/img_resource/MaoYuNa/065.png differ diff --git a/src/img_resource/MaoYuNa/066.png b/src/img_resource/MaoYuNa/066.png new file mode 100644 index 0000000..f361ec9 Binary files /dev/null and b/src/img_resource/MaoYuNa/066.png differ diff --git a/src/img_resource/MaoYuNa/067.png b/src/img_resource/MaoYuNa/067.png new file mode 100644 index 0000000..8a761f1 Binary files /dev/null and b/src/img_resource/MaoYuNa/067.png differ diff --git a/src/img_resource/MaoYuNa/068.png b/src/img_resource/MaoYuNa/068.png new file mode 100644 index 0000000..507c5af Binary files /dev/null and b/src/img_resource/MaoYuNa/068.png differ diff --git a/src/img_resource/MaoYuNa/069.png b/src/img_resource/MaoYuNa/069.png new file mode 100644 index 0000000..ab1556d Binary files /dev/null and b/src/img_resource/MaoYuNa/069.png differ diff --git a/src/img_resource/MaoYuNa/070.png b/src/img_resource/MaoYuNa/070.png new file mode 100644 index 0000000..08cce97 Binary files /dev/null and b/src/img_resource/MaoYuNa/070.png differ diff --git a/src/img_resource/MaoYuNa/071.png b/src/img_resource/MaoYuNa/071.png new file mode 100644 index 0000000..25c3db0 Binary files /dev/null and b/src/img_resource/MaoYuNa/071.png differ diff --git a/src/img_resource/MaoYuNa/072.png b/src/img_resource/MaoYuNa/072.png new file mode 100644 index 0000000..d0be743 Binary files /dev/null and b/src/img_resource/MaoYuNa/072.png differ diff --git a/src/img_resource/MaoYuNa/073.png b/src/img_resource/MaoYuNa/073.png new file mode 100644 index 0000000..8865f3e Binary files /dev/null and b/src/img_resource/MaoYuNa/073.png differ diff --git a/src/img_resource/MaoYuNa/074.png b/src/img_resource/MaoYuNa/074.png new file mode 100644 index 0000000..32fd566 Binary files /dev/null and b/src/img_resource/MaoYuNa/074.png differ diff --git a/src/img_resource/MaoYuNa/075.png b/src/img_resource/MaoYuNa/075.png new file mode 100644 index 0000000..168f6e0 Binary files /dev/null and b/src/img_resource/MaoYuNa/075.png differ diff --git a/src/img_resource/MaoYuNa/076.png b/src/img_resource/MaoYuNa/076.png new file mode 100644 index 0000000..93d22a8 Binary files /dev/null and b/src/img_resource/MaoYuNa/076.png differ diff --git a/src/img_resource/MaoYuNa/077.png b/src/img_resource/MaoYuNa/077.png new file mode 100644 index 0000000..d16e840 Binary files /dev/null and b/src/img_resource/MaoYuNa/077.png differ diff --git a/src/img_resource/MaoYuNa/078.png b/src/img_resource/MaoYuNa/078.png new file mode 100644 index 0000000..592f92e Binary files /dev/null and b/src/img_resource/MaoYuNa/078.png differ diff --git a/src/img_resource/MaoYuNa/079.png b/src/img_resource/MaoYuNa/079.png new file mode 100644 index 0000000..99ec01c Binary files /dev/null and b/src/img_resource/MaoYuNa/079.png differ diff --git a/src/img_resource/MaoYuNa/080.png b/src/img_resource/MaoYuNa/080.png new file mode 100644 index 0000000..6acab09 Binary files /dev/null and b/src/img_resource/MaoYuNa/080.png differ diff --git a/src/img_resource/MaoYuNa/081.png b/src/img_resource/MaoYuNa/081.png new file mode 100644 index 0000000..f86f4bf Binary files /dev/null and b/src/img_resource/MaoYuNa/081.png differ diff --git a/src/img_resource/MaoYuNa/082.png b/src/img_resource/MaoYuNa/082.png new file mode 100644 index 0000000..aeff004 Binary files /dev/null and b/src/img_resource/MaoYuNa/082.png differ diff --git a/src/img_resource/MaoYuNa/083.png b/src/img_resource/MaoYuNa/083.png new file mode 100644 index 0000000..fd99c39 Binary files /dev/null and b/src/img_resource/MaoYuNa/083.png differ diff --git a/src/img_resource/MaoYuNa/084.png b/src/img_resource/MaoYuNa/084.png new file mode 100644 index 0000000..79edfc9 Binary files /dev/null and b/src/img_resource/MaoYuNa/084.png differ diff --git a/src/img_resource/MaoYuNa/085.png b/src/img_resource/MaoYuNa/085.png new file mode 100644 index 0000000..863603a Binary files /dev/null and b/src/img_resource/MaoYuNa/085.png differ diff --git a/src/img_resource/MaoYuNa/086.png b/src/img_resource/MaoYuNa/086.png new file mode 100644 index 0000000..6112c7c Binary files /dev/null and b/src/img_resource/MaoYuNa/086.png differ diff --git a/src/img_resource/MaoYuNa/087.png b/src/img_resource/MaoYuNa/087.png new file mode 100644 index 0000000..7cb5254 Binary files /dev/null and b/src/img_resource/MaoYuNa/087.png differ diff --git a/src/img_resource/MaoYuNa/088.png b/src/img_resource/MaoYuNa/088.png new file mode 100644 index 0000000..084ca96 Binary files /dev/null and b/src/img_resource/MaoYuNa/088.png differ diff --git a/src/img_resource/MaoYuNa/089.png b/src/img_resource/MaoYuNa/089.png new file mode 100644 index 0000000..9548b93 Binary files /dev/null and b/src/img_resource/MaoYuNa/089.png differ diff --git a/src/img_resource/MaoYuNa/090.png b/src/img_resource/MaoYuNa/090.png new file mode 100644 index 0000000..3a8c26f Binary files /dev/null and b/src/img_resource/MaoYuNa/090.png differ diff --git a/src/img_resource/MaoYuNa/091.png b/src/img_resource/MaoYuNa/091.png new file mode 100644 index 0000000..87c4ba1 Binary files /dev/null and b/src/img_resource/MaoYuNa/091.png differ diff --git a/src/img_resource/MaoYuNa/092.png b/src/img_resource/MaoYuNa/092.png new file mode 100644 index 0000000..88ab8cf Binary files /dev/null and b/src/img_resource/MaoYuNa/092.png differ diff --git a/src/img_resource/MaoYuNa/093.png b/src/img_resource/MaoYuNa/093.png new file mode 100644 index 0000000..10afebd Binary files /dev/null and b/src/img_resource/MaoYuNa/093.png differ diff --git a/src/img_resource/MaoYuNa/094.jpg b/src/img_resource/MaoYuNa/094.jpg new file mode 100644 index 0000000..61a699b Binary files /dev/null and b/src/img_resource/MaoYuNa/094.jpg differ diff --git a/src/img_resource/MaoYuNa/095.jpg b/src/img_resource/MaoYuNa/095.jpg new file mode 100644 index 0000000..53980ef Binary files /dev/null and b/src/img_resource/MaoYuNa/095.jpg differ diff --git a/src/img_resource/MaoYuNa/096.png b/src/img_resource/MaoYuNa/096.png new file mode 100644 index 0000000..f9d9742 Binary files /dev/null and b/src/img_resource/MaoYuNa/096.png differ diff --git a/src/img_resource/MaoYuNa/097.png b/src/img_resource/MaoYuNa/097.png new file mode 100644 index 0000000..dab78fe Binary files /dev/null and b/src/img_resource/MaoYuNa/097.png differ diff --git a/src/img_resource/MaoYuNa/098.png b/src/img_resource/MaoYuNa/098.png new file mode 100644 index 0000000..c9318c0 Binary files /dev/null and b/src/img_resource/MaoYuNa/098.png differ diff --git a/src/img_resource/MaoYuNa/099.png b/src/img_resource/MaoYuNa/099.png new file mode 100644 index 0000000..77d8cbd Binary files /dev/null and b/src/img_resource/MaoYuNa/099.png differ diff --git a/src/img_resource/MaoYuNa/100.png b/src/img_resource/MaoYuNa/100.png new file mode 100644 index 0000000..e25d3d7 Binary files /dev/null and b/src/img_resource/MaoYuNa/100.png differ diff --git a/src/img_resource/MaoYuNa/101.png b/src/img_resource/MaoYuNa/101.png new file mode 100644 index 0000000..1296b88 Binary files /dev/null and b/src/img_resource/MaoYuNa/101.png differ diff --git a/src/img_resource/MaoYuNa/102.jpg b/src/img_resource/MaoYuNa/102.jpg new file mode 100644 index 0000000..dd2c7ad Binary files /dev/null and b/src/img_resource/MaoYuNa/102.jpg differ diff --git a/src/img_resource/MaoYuNa/103.png b/src/img_resource/MaoYuNa/103.png new file mode 100644 index 0000000..d1f4e25 Binary files /dev/null and b/src/img_resource/MaoYuNa/103.png differ diff --git a/src/img_resource/MaoYuNa/104.png b/src/img_resource/MaoYuNa/104.png new file mode 100644 index 0000000..66b7b1d Binary files /dev/null and b/src/img_resource/MaoYuNa/104.png differ diff --git a/src/img_resource/MaoYuNa/105.png b/src/img_resource/MaoYuNa/105.png new file mode 100644 index 0000000..8988907 Binary files /dev/null and b/src/img_resource/MaoYuNa/105.png differ diff --git a/src/img_resource/MaoYuNa/106.png b/src/img_resource/MaoYuNa/106.png new file mode 100644 index 0000000..b790897 Binary files /dev/null and b/src/img_resource/MaoYuNa/106.png differ diff --git a/src/img_resource/MaoYuNa/107.png b/src/img_resource/MaoYuNa/107.png new file mode 100644 index 0000000..e8f306b Binary files /dev/null and b/src/img_resource/MaoYuNa/107.png differ diff --git a/src/img_resource/MaoYuNa/108.png b/src/img_resource/MaoYuNa/108.png new file mode 100644 index 0000000..f4f8200 Binary files /dev/null and b/src/img_resource/MaoYuNa/108.png differ diff --git a/src/img_resource/MaoYuNa/109.png b/src/img_resource/MaoYuNa/109.png new file mode 100644 index 0000000..589882f Binary files /dev/null and b/src/img_resource/MaoYuNa/109.png differ diff --git a/src/img_resource/MaoYuNa/110.jpg b/src/img_resource/MaoYuNa/110.jpg new file mode 100644 index 0000000..59b58aa Binary files /dev/null and b/src/img_resource/MaoYuNa/110.jpg differ diff --git a/src/img_resource/MaoYuNa/111.jpg b/src/img_resource/MaoYuNa/111.jpg new file mode 100644 index 0000000..894ca98 Binary files /dev/null and b/src/img_resource/MaoYuNa/111.jpg differ diff --git a/src/img_resource/MaoYuNa/112.jpg b/src/img_resource/MaoYuNa/112.jpg new file mode 100644 index 0000000..d46036f Binary files /dev/null and b/src/img_resource/MaoYuNa/112.jpg differ diff --git a/src/img_resource/MaoYuNa/113.jpg b/src/img_resource/MaoYuNa/113.jpg new file mode 100644 index 0000000..01d2e69 Binary files /dev/null and b/src/img_resource/MaoYuNa/113.jpg differ diff --git a/src/img_resource/MaoYuNa/114.jpg b/src/img_resource/MaoYuNa/114.jpg new file mode 100644 index 0000000..69c9cdb Binary files /dev/null and b/src/img_resource/MaoYuNa/114.jpg differ diff --git a/src/img_resource/MaoYuNa/115.jpg b/src/img_resource/MaoYuNa/115.jpg new file mode 100644 index 0000000..a11a9c7 Binary files /dev/null and b/src/img_resource/MaoYuNa/115.jpg differ diff --git a/src/img_resource/MaoYuNa/116.png b/src/img_resource/MaoYuNa/116.png new file mode 100644 index 0000000..510b2f3 Binary files /dev/null and b/src/img_resource/MaoYuNa/116.png differ diff --git a/src/img_resource/MaoYuNa/117.png b/src/img_resource/MaoYuNa/117.png new file mode 100644 index 0000000..3a704f5 Binary files /dev/null and b/src/img_resource/MaoYuNa/117.png differ diff --git a/src/img_resource/MaoYuNa/118.png b/src/img_resource/MaoYuNa/118.png new file mode 100644 index 0000000..9427446 Binary files /dev/null and b/src/img_resource/MaoYuNa/118.png differ diff --git a/src/img_resource/MaoYuNa/119.png b/src/img_resource/MaoYuNa/119.png new file mode 100644 index 0000000..2df734b Binary files /dev/null and b/src/img_resource/MaoYuNa/119.png differ diff --git a/src/img_resource/MaoYuNa/120.png b/src/img_resource/MaoYuNa/120.png new file mode 100644 index 0000000..0977b76 Binary files /dev/null and b/src/img_resource/MaoYuNa/120.png differ diff --git a/src/img_resource/MaoYuNa/121.png b/src/img_resource/MaoYuNa/121.png new file mode 100644 index 0000000..00fe462 Binary files /dev/null and b/src/img_resource/MaoYuNa/121.png differ diff --git a/src/img_resource/MaoYuNa/122.png b/src/img_resource/MaoYuNa/122.png new file mode 100644 index 0000000..6dc6ead Binary files /dev/null and b/src/img_resource/MaoYuNa/122.png differ diff --git a/src/img_resource/MaoYuNa/123.png b/src/img_resource/MaoYuNa/123.png new file mode 100644 index 0000000..27d86a4 Binary files /dev/null and b/src/img_resource/MaoYuNa/123.png differ diff --git a/src/img_resource/MaoYuNa/124.png b/src/img_resource/MaoYuNa/124.png new file mode 100644 index 0000000..23b33b1 Binary files /dev/null and b/src/img_resource/MaoYuNa/124.png differ diff --git a/src/img_resource/MaoYuNa/125.png b/src/img_resource/MaoYuNa/125.png new file mode 100644 index 0000000..840b711 Binary files /dev/null and b/src/img_resource/MaoYuNa/125.png differ diff --git a/src/img_resource/MaoYuNa/126.png b/src/img_resource/MaoYuNa/126.png new file mode 100644 index 0000000..6ec20fa Binary files /dev/null and b/src/img_resource/MaoYuNa/126.png differ diff --git a/src/img_resource/MaoYuNa/127.png b/src/img_resource/MaoYuNa/127.png new file mode 100644 index 0000000..e17d047 Binary files /dev/null and b/src/img_resource/MaoYuNa/127.png differ diff --git a/src/img_resource/MaoYuNa/128.png b/src/img_resource/MaoYuNa/128.png new file mode 100644 index 0000000..675323f Binary files /dev/null and b/src/img_resource/MaoYuNa/128.png differ diff --git a/src/img_resource/MaoYuNa/129.png b/src/img_resource/MaoYuNa/129.png new file mode 100644 index 0000000..5ef2b8f Binary files /dev/null and b/src/img_resource/MaoYuNa/129.png differ diff --git a/src/img_resource/MaoYuNa/130.png b/src/img_resource/MaoYuNa/130.png new file mode 100644 index 0000000..d5dbb80 Binary files /dev/null and b/src/img_resource/MaoYuNa/130.png differ diff --git a/src/img_resource/MaoYuNa/131.png b/src/img_resource/MaoYuNa/131.png new file mode 100644 index 0000000..c998182 Binary files /dev/null and b/src/img_resource/MaoYuNa/131.png differ diff --git a/src/img_resource/MaoYuNa/132.png b/src/img_resource/MaoYuNa/132.png new file mode 100644 index 0000000..53c4570 Binary files /dev/null and b/src/img_resource/MaoYuNa/132.png differ diff --git a/src/img_resource/MaoYuNa/133.png b/src/img_resource/MaoYuNa/133.png new file mode 100644 index 0000000..39b8ca5 Binary files /dev/null and b/src/img_resource/MaoYuNa/133.png differ diff --git a/src/img_resource/MaoYuNa/134.png b/src/img_resource/MaoYuNa/134.png new file mode 100644 index 0000000..a8b6350 Binary files /dev/null and b/src/img_resource/MaoYuNa/134.png differ diff --git a/src/img_resource/MaoYuNa/135.png b/src/img_resource/MaoYuNa/135.png new file mode 100644 index 0000000..094dd63 Binary files /dev/null and b/src/img_resource/MaoYuNa/135.png differ diff --git a/src/img_resource/MaoYuNa/136.png b/src/img_resource/MaoYuNa/136.png new file mode 100644 index 0000000..0de7581 Binary files /dev/null and b/src/img_resource/MaoYuNa/136.png differ diff --git a/src/img_resource/MaoYuNa/137.png b/src/img_resource/MaoYuNa/137.png new file mode 100644 index 0000000..1dde2d8 Binary files /dev/null and b/src/img_resource/MaoYuNa/137.png differ diff --git a/src/img_resource/MaoYuNa/138.png b/src/img_resource/MaoYuNa/138.png new file mode 100644 index 0000000..8966e70 Binary files /dev/null and b/src/img_resource/MaoYuNa/138.png differ diff --git a/src/img_resource/MaoYuNa/139.png b/src/img_resource/MaoYuNa/139.png new file mode 100644 index 0000000..cabf09e Binary files /dev/null and b/src/img_resource/MaoYuNa/139.png differ diff --git a/src/img_resource/MaoYuNa/140.png b/src/img_resource/MaoYuNa/140.png new file mode 100644 index 0000000..c175311 Binary files /dev/null and b/src/img_resource/MaoYuNa/140.png differ diff --git a/src/img_resource/MaoYuNa/141.png b/src/img_resource/MaoYuNa/141.png new file mode 100644 index 0000000..9eeae15 Binary files /dev/null and b/src/img_resource/MaoYuNa/141.png differ diff --git a/src/img_resource/MaoYuNa/142.png b/src/img_resource/MaoYuNa/142.png new file mode 100644 index 0000000..5a84e88 Binary files /dev/null and b/src/img_resource/MaoYuNa/142.png differ diff --git a/src/img_resource/MaoYuNa/143.png b/src/img_resource/MaoYuNa/143.png new file mode 100644 index 0000000..f6940b8 Binary files /dev/null and b/src/img_resource/MaoYuNa/143.png differ diff --git a/src/img_resource/MaoYuNa/144.png b/src/img_resource/MaoYuNa/144.png new file mode 100644 index 0000000..4d3c9e2 Binary files /dev/null and b/src/img_resource/MaoYuNa/144.png differ diff --git a/src/img_resource/MaoYuNa/145.png b/src/img_resource/MaoYuNa/145.png new file mode 100644 index 0000000..27f23f0 Binary files /dev/null and b/src/img_resource/MaoYuNa/145.png differ diff --git a/src/img_resource/MaoYuNa/146.png b/src/img_resource/MaoYuNa/146.png new file mode 100644 index 0000000..2138d73 Binary files /dev/null and b/src/img_resource/MaoYuNa/146.png differ diff --git a/src/img_resource/MaoYuNa/147.png b/src/img_resource/MaoYuNa/147.png new file mode 100644 index 0000000..e37fb2a Binary files /dev/null and b/src/img_resource/MaoYuNa/147.png differ diff --git a/src/img_resource/MaoYuNa/148.png b/src/img_resource/MaoYuNa/148.png new file mode 100644 index 0000000..c021e5a Binary files /dev/null and b/src/img_resource/MaoYuNa/148.png differ diff --git a/src/img_resource/MaoYuNa/149.png b/src/img_resource/MaoYuNa/149.png new file mode 100644 index 0000000..ebda77f Binary files /dev/null and b/src/img_resource/MaoYuNa/149.png differ diff --git a/src/img_resource/MaoYuNa/150.png b/src/img_resource/MaoYuNa/150.png new file mode 100644 index 0000000..06e0608 Binary files /dev/null and b/src/img_resource/MaoYuNa/150.png differ diff --git a/src/img_resource/MaoYuNa/151.png b/src/img_resource/MaoYuNa/151.png new file mode 100644 index 0000000..784df77 Binary files /dev/null and b/src/img_resource/MaoYuNa/151.png differ diff --git a/src/img_resource/MaoYuNa/152.png b/src/img_resource/MaoYuNa/152.png new file mode 100644 index 0000000..f2d4630 Binary files /dev/null and b/src/img_resource/MaoYuNa/152.png differ diff --git a/src/img_resource/MaoYuNa/153.png b/src/img_resource/MaoYuNa/153.png new file mode 100644 index 0000000..b010902 Binary files /dev/null and b/src/img_resource/MaoYuNa/153.png differ diff --git a/src/img_resource/MaoYuNa/154.png b/src/img_resource/MaoYuNa/154.png new file mode 100644 index 0000000..740290e Binary files /dev/null and b/src/img_resource/MaoYuNa/154.png differ diff --git a/src/img_resource/MaoYuNa/155.png b/src/img_resource/MaoYuNa/155.png new file mode 100644 index 0000000..e1ed711 Binary files /dev/null and b/src/img_resource/MaoYuNa/155.png differ diff --git a/src/img_resource/MaoYuNa/156.png b/src/img_resource/MaoYuNa/156.png new file mode 100644 index 0000000..9181e1a Binary files /dev/null and b/src/img_resource/MaoYuNa/156.png differ diff --git a/src/img_resource/MaoYuNa/157.png b/src/img_resource/MaoYuNa/157.png new file mode 100644 index 0000000..92a59d9 Binary files /dev/null and b/src/img_resource/MaoYuNa/157.png differ diff --git a/src/img_resource/MaoYuNa/158.png b/src/img_resource/MaoYuNa/158.png new file mode 100644 index 0000000..d049d25 Binary files /dev/null and b/src/img_resource/MaoYuNa/158.png differ diff --git a/src/img_resource/MaoYuNa/159.jpg b/src/img_resource/MaoYuNa/159.jpg new file mode 100644 index 0000000..87ce431 Binary files /dev/null and b/src/img_resource/MaoYuNa/159.jpg differ diff --git a/src/img_resource/MaoYuNa/160.png b/src/img_resource/MaoYuNa/160.png new file mode 100644 index 0000000..effdee7 Binary files /dev/null and b/src/img_resource/MaoYuNa/160.png differ diff --git a/src/img_resource/MaoYuNa/161.png b/src/img_resource/MaoYuNa/161.png new file mode 100644 index 0000000..cb90b53 Binary files /dev/null and b/src/img_resource/MaoYuNa/161.png differ diff --git a/src/img_resource/MaoYuNa/162.jpg b/src/img_resource/MaoYuNa/162.jpg new file mode 100644 index 0000000..c373682 Binary files /dev/null and b/src/img_resource/MaoYuNa/162.jpg differ diff --git a/src/img_resource/MaoYuNa/163.png b/src/img_resource/MaoYuNa/163.png new file mode 100644 index 0000000..d68fd42 Binary files /dev/null and b/src/img_resource/MaoYuNa/163.png differ diff --git a/src/img_resource/MaoYuNa/164.png b/src/img_resource/MaoYuNa/164.png new file mode 100644 index 0000000..e90a9a0 Binary files /dev/null and b/src/img_resource/MaoYuNa/164.png differ diff --git a/src/img_resource/MaoYuNa/165.jpg b/src/img_resource/MaoYuNa/165.jpg new file mode 100644 index 0000000..bf3d67d Binary files /dev/null and b/src/img_resource/MaoYuNa/165.jpg differ diff --git a/src/img_resource/MaoYuNa/166.png b/src/img_resource/MaoYuNa/166.png new file mode 100644 index 0000000..548723e Binary files /dev/null and b/src/img_resource/MaoYuNa/166.png differ diff --git a/src/img_resource/MaoYuNa/167.png b/src/img_resource/MaoYuNa/167.png new file mode 100644 index 0000000..fdf4751 Binary files /dev/null and b/src/img_resource/MaoYuNa/167.png differ diff --git a/src/img_resource/MaoYuNa/168.jpg b/src/img_resource/MaoYuNa/168.jpg new file mode 100644 index 0000000..e7bf932 Binary files /dev/null and b/src/img_resource/MaoYuNa/168.jpg differ diff --git a/src/img_resource/MaoYuNa/169.jpg b/src/img_resource/MaoYuNa/169.jpg new file mode 100644 index 0000000..64f9659 Binary files /dev/null and b/src/img_resource/MaoYuNa/169.jpg differ diff --git a/src/img_resource/MaoYuNa/170.jpg b/src/img_resource/MaoYuNa/170.jpg new file mode 100644 index 0000000..9c3773a Binary files /dev/null and b/src/img_resource/MaoYuNa/170.jpg differ diff --git a/src/img_resource/MaoYuNa/171.png b/src/img_resource/MaoYuNa/171.png new file mode 100644 index 0000000..8b4f7b6 Binary files /dev/null and b/src/img_resource/MaoYuNa/171.png differ diff --git a/src/img_resource/MaoYuNa/172.jpg b/src/img_resource/MaoYuNa/172.jpg new file mode 100644 index 0000000..5c5b6f8 Binary files /dev/null and b/src/img_resource/MaoYuNa/172.jpg differ diff --git a/src/img_resource/MaoYuNa/173.png b/src/img_resource/MaoYuNa/173.png new file mode 100644 index 0000000..7a9f6dd Binary files /dev/null and b/src/img_resource/MaoYuNa/173.png differ diff --git a/src/img_resource/MaoYuNa/174.png b/src/img_resource/MaoYuNa/174.png new file mode 100644 index 0000000..0bcfe2e Binary files /dev/null and b/src/img_resource/MaoYuNa/174.png differ diff --git a/src/img_resource/MaoYuNa/175.png b/src/img_resource/MaoYuNa/175.png new file mode 100644 index 0000000..8413730 Binary files /dev/null and b/src/img_resource/MaoYuNa/175.png differ diff --git a/src/img_resource/MaoYuNa/176.png b/src/img_resource/MaoYuNa/176.png new file mode 100644 index 0000000..d12a59e Binary files /dev/null and b/src/img_resource/MaoYuNa/176.png differ diff --git a/src/img_resource/MaoYuNa/177.png b/src/img_resource/MaoYuNa/177.png new file mode 100644 index 0000000..8cb28d6 Binary files /dev/null and b/src/img_resource/MaoYuNa/177.png differ diff --git a/src/img_resource/MaoYuNa/178.png b/src/img_resource/MaoYuNa/178.png new file mode 100644 index 0000000..66181a5 Binary files /dev/null and b/src/img_resource/MaoYuNa/178.png differ diff --git a/src/img_resource/MaoYuNa/179.png b/src/img_resource/MaoYuNa/179.png new file mode 100644 index 0000000..ea4b46e Binary files /dev/null and b/src/img_resource/MaoYuNa/179.png differ diff --git a/src/img_resource/MaoYuNa/180.png b/src/img_resource/MaoYuNa/180.png new file mode 100644 index 0000000..8605119 Binary files /dev/null and b/src/img_resource/MaoYuNa/180.png differ diff --git a/src/img_resource/MaoYuNa/181.png b/src/img_resource/MaoYuNa/181.png new file mode 100644 index 0000000..adb0ab0 Binary files /dev/null and b/src/img_resource/MaoYuNa/181.png differ diff --git a/src/img_resource/MaoYuNa/182.jpg b/src/img_resource/MaoYuNa/182.jpg new file mode 100644 index 0000000..f2ff5f7 Binary files /dev/null and b/src/img_resource/MaoYuNa/182.jpg differ diff --git a/src/img_resource/MaoYuNa/183.png b/src/img_resource/MaoYuNa/183.png new file mode 100644 index 0000000..6245bb5 Binary files /dev/null and b/src/img_resource/MaoYuNa/183.png differ diff --git a/src/img_resource/MaoYuNa/184.png b/src/img_resource/MaoYuNa/184.png new file mode 100644 index 0000000..123b11f Binary files /dev/null and b/src/img_resource/MaoYuNa/184.png differ diff --git a/src/img_resource/MaoYuNa/185.png b/src/img_resource/MaoYuNa/185.png new file mode 100644 index 0000000..298cfd5 Binary files /dev/null and b/src/img_resource/MaoYuNa/185.png differ diff --git a/src/img_resource/MaoYuNa/186.png b/src/img_resource/MaoYuNa/186.png new file mode 100644 index 0000000..68acad4 Binary files /dev/null and b/src/img_resource/MaoYuNa/186.png differ diff --git a/src/img_resource/MaoYuNa/187.png b/src/img_resource/MaoYuNa/187.png new file mode 100644 index 0000000..6d1561f Binary files /dev/null and b/src/img_resource/MaoYuNa/187.png differ diff --git a/src/img_resource/MaoYuNa/188.png b/src/img_resource/MaoYuNa/188.png new file mode 100644 index 0000000..e945b20 Binary files /dev/null and b/src/img_resource/MaoYuNa/188.png differ diff --git a/src/img_resource/MaoYuNa/189.png b/src/img_resource/MaoYuNa/189.png new file mode 100644 index 0000000..c25fa2b Binary files /dev/null and b/src/img_resource/MaoYuNa/189.png differ diff --git a/src/img_resource/MaoYuNa/190.png b/src/img_resource/MaoYuNa/190.png new file mode 100644 index 0000000..3d709e6 Binary files /dev/null and b/src/img_resource/MaoYuNa/190.png differ diff --git a/src/img_resource/MaoYuNa/191.png b/src/img_resource/MaoYuNa/191.png new file mode 100644 index 0000000..345241c Binary files /dev/null and b/src/img_resource/MaoYuNa/191.png differ diff --git a/src/img_resource/MaoYuNa/192.jpg b/src/img_resource/MaoYuNa/192.jpg new file mode 100644 index 0000000..391aa5d Binary files /dev/null and b/src/img_resource/MaoYuNa/192.jpg differ diff --git a/src/img_resource/MaoYuNa/193.png b/src/img_resource/MaoYuNa/193.png new file mode 100644 index 0000000..26b2d5b Binary files /dev/null and b/src/img_resource/MaoYuNa/193.png differ diff --git a/src/img_resource/MaoYuNa/194.png b/src/img_resource/MaoYuNa/194.png new file mode 100644 index 0000000..b1c638a Binary files /dev/null and b/src/img_resource/MaoYuNa/194.png differ diff --git a/src/img_resource/MaoYuNa/195.png b/src/img_resource/MaoYuNa/195.png new file mode 100644 index 0000000..7994ee2 Binary files /dev/null and b/src/img_resource/MaoYuNa/195.png differ diff --git a/src/img_resource/MaoYuNa/196.png b/src/img_resource/MaoYuNa/196.png new file mode 100644 index 0000000..ec02c43 Binary files /dev/null and b/src/img_resource/MaoYuNa/196.png differ diff --git a/src/img_resource/MaoYuNa/197.png b/src/img_resource/MaoYuNa/197.png new file mode 100644 index 0000000..92a8383 Binary files /dev/null and b/src/img_resource/MaoYuNa/197.png differ diff --git a/src/img_resource/MaoYuNa/198.png b/src/img_resource/MaoYuNa/198.png new file mode 100644 index 0000000..033196a Binary files /dev/null and b/src/img_resource/MaoYuNa/198.png differ diff --git a/src/img_resource/MaoYuNa/199.png b/src/img_resource/MaoYuNa/199.png new file mode 100644 index 0000000..af5b0ec Binary files /dev/null and b/src/img_resource/MaoYuNa/199.png differ diff --git a/src/img_resource/MaoYuNa/200.png b/src/img_resource/MaoYuNa/200.png new file mode 100644 index 0000000..63286dd Binary files /dev/null and b/src/img_resource/MaoYuNa/200.png differ diff --git a/src/img_resource/MaoYuNa/201.png b/src/img_resource/MaoYuNa/201.png new file mode 100644 index 0000000..87bce9e Binary files /dev/null and b/src/img_resource/MaoYuNa/201.png differ diff --git a/src/img_resource/MaoYuNa/202.jpg b/src/img_resource/MaoYuNa/202.jpg new file mode 100644 index 0000000..d507ef7 Binary files /dev/null and b/src/img_resource/MaoYuNa/202.jpg differ diff --git a/src/img_resource/MaoYuNa/203.jpg b/src/img_resource/MaoYuNa/203.jpg new file mode 100644 index 0000000..cef986b Binary files /dev/null and b/src/img_resource/MaoYuNa/203.jpg differ diff --git a/src/img_resource/MaoYuNa/204.jpg b/src/img_resource/MaoYuNa/204.jpg new file mode 100644 index 0000000..b861afb Binary files /dev/null and b/src/img_resource/MaoYuNa/204.jpg differ diff --git a/src/img_resource/MaoYuNa/205.png b/src/img_resource/MaoYuNa/205.png new file mode 100644 index 0000000..1d18356 Binary files /dev/null and b/src/img_resource/MaoYuNa/205.png differ diff --git a/src/img_resource/MaoYuNa/206.png b/src/img_resource/MaoYuNa/206.png new file mode 100644 index 0000000..2c541b9 Binary files /dev/null and b/src/img_resource/MaoYuNa/206.png differ diff --git a/src/img_resource/MaoYuNa/207.jpg b/src/img_resource/MaoYuNa/207.jpg new file mode 100644 index 0000000..ba76e9f Binary files /dev/null and b/src/img_resource/MaoYuNa/207.jpg differ diff --git a/src/img_resource/MaoYuNa/208.png b/src/img_resource/MaoYuNa/208.png new file mode 100644 index 0000000..3e46e06 Binary files /dev/null and b/src/img_resource/MaoYuNa/208.png differ diff --git a/src/img_resource/MaoYuNa/209.png b/src/img_resource/MaoYuNa/209.png new file mode 100644 index 0000000..d761be1 Binary files /dev/null and b/src/img_resource/MaoYuNa/209.png differ diff --git a/src/img_resource/MaoYuNa/210.jpg b/src/img_resource/MaoYuNa/210.jpg new file mode 100644 index 0000000..bec8cd0 Binary files /dev/null and b/src/img_resource/MaoYuNa/210.jpg differ diff --git a/src/img_resource/MaoYuNa/211.png b/src/img_resource/MaoYuNa/211.png new file mode 100644 index 0000000..45f89ca Binary files /dev/null and b/src/img_resource/MaoYuNa/211.png differ diff --git a/src/img_resource/MaoYuNa/212.jpg b/src/img_resource/MaoYuNa/212.jpg new file mode 100644 index 0000000..cf5e4ab Binary files /dev/null and b/src/img_resource/MaoYuNa/212.jpg differ diff --git a/src/img_resource/MaoYuNa/213.png b/src/img_resource/MaoYuNa/213.png new file mode 100644 index 0000000..e065b81 Binary files /dev/null and b/src/img_resource/MaoYuNa/213.png differ diff --git a/src/img_resource/MaoYuNa/214.jpg b/src/img_resource/MaoYuNa/214.jpg new file mode 100644 index 0000000..6a44f48 Binary files /dev/null and b/src/img_resource/MaoYuNa/214.jpg differ diff --git a/src/img_resource/MaoYuNa/215.png b/src/img_resource/MaoYuNa/215.png new file mode 100644 index 0000000..bb7419d Binary files /dev/null and b/src/img_resource/MaoYuNa/215.png differ diff --git a/src/img_resource/MaoYuNa/216.png b/src/img_resource/MaoYuNa/216.png new file mode 100644 index 0000000..bf94f71 Binary files /dev/null and b/src/img_resource/MaoYuNa/216.png differ diff --git a/src/img_resource/MaoYuNa/217.jpg b/src/img_resource/MaoYuNa/217.jpg new file mode 100644 index 0000000..cf10ef7 Binary files /dev/null and b/src/img_resource/MaoYuNa/217.jpg differ diff --git a/src/img_resource/MaoYuNa/218.png b/src/img_resource/MaoYuNa/218.png new file mode 100644 index 0000000..5fe332e Binary files /dev/null and b/src/img_resource/MaoYuNa/218.png differ diff --git a/src/img_resource/MaoYuNa/219.jpg b/src/img_resource/MaoYuNa/219.jpg new file mode 100644 index 0000000..e67c6c7 Binary files /dev/null and b/src/img_resource/MaoYuNa/219.jpg differ diff --git a/src/img_resource/MaoYuNa/220.jpg b/src/img_resource/MaoYuNa/220.jpg new file mode 100644 index 0000000..0c4bb50 Binary files /dev/null and b/src/img_resource/MaoYuNa/220.jpg differ diff --git a/src/img_resource/MaoYuNa/221.jpg b/src/img_resource/MaoYuNa/221.jpg new file mode 100644 index 0000000..552a975 Binary files /dev/null and b/src/img_resource/MaoYuNa/221.jpg differ diff --git a/src/img_resource/MaoYuNa/222.jpg b/src/img_resource/MaoYuNa/222.jpg new file mode 100644 index 0000000..e94f61c Binary files /dev/null and b/src/img_resource/MaoYuNa/222.jpg differ diff --git a/src/img_resource/MaoYuNa/223.jpg b/src/img_resource/MaoYuNa/223.jpg new file mode 100644 index 0000000..d4a9efe Binary files /dev/null and b/src/img_resource/MaoYuNa/223.jpg differ diff --git a/src/img_resource/MaoYuNa/224.jpg b/src/img_resource/MaoYuNa/224.jpg new file mode 100644 index 0000000..276523a Binary files /dev/null and b/src/img_resource/MaoYuNa/224.jpg differ diff --git a/src/img_resource/MaoYuNa/225.jpg b/src/img_resource/MaoYuNa/225.jpg new file mode 100644 index 0000000..69f77ac Binary files /dev/null and b/src/img_resource/MaoYuNa/225.jpg differ diff --git a/src/img_resource/MaoYuNa/226.png b/src/img_resource/MaoYuNa/226.png new file mode 100644 index 0000000..678d140 Binary files /dev/null and b/src/img_resource/MaoYuNa/226.png differ diff --git a/src/img_resource/MaoYuNa/227.png b/src/img_resource/MaoYuNa/227.png new file mode 100644 index 0000000..e56e41f Binary files /dev/null and b/src/img_resource/MaoYuNa/227.png differ diff --git a/src/img_resource/MaoYuNa/228.png b/src/img_resource/MaoYuNa/228.png new file mode 100644 index 0000000..8231cc0 Binary files /dev/null and b/src/img_resource/MaoYuNa/228.png differ diff --git a/src/img_resource/MaoYuNa/229.png b/src/img_resource/MaoYuNa/229.png new file mode 100644 index 0000000..514e070 Binary files /dev/null and b/src/img_resource/MaoYuNa/229.png differ diff --git a/src/img_resource/MaoYuNa/230.png b/src/img_resource/MaoYuNa/230.png new file mode 100644 index 0000000..9afdbcd Binary files /dev/null and b/src/img_resource/MaoYuNa/230.png differ diff --git a/src/img_resource/MaoYuNa/231.png b/src/img_resource/MaoYuNa/231.png new file mode 100644 index 0000000..e8ddee7 Binary files /dev/null and b/src/img_resource/MaoYuNa/231.png differ diff --git a/src/img_resource/MaoYuNa/232.png b/src/img_resource/MaoYuNa/232.png new file mode 100644 index 0000000..4680362 Binary files /dev/null and b/src/img_resource/MaoYuNa/232.png differ diff --git a/src/img_resource/MaoYuNa/233.png b/src/img_resource/MaoYuNa/233.png new file mode 100644 index 0000000..5109ea4 Binary files /dev/null and b/src/img_resource/MaoYuNa/233.png differ diff --git a/src/img_resource/MaoYuNa/234.png b/src/img_resource/MaoYuNa/234.png new file mode 100644 index 0000000..07bcd86 Binary files /dev/null and b/src/img_resource/MaoYuNa/234.png differ diff --git a/src/img_resource/MaoYuNa/235.png b/src/img_resource/MaoYuNa/235.png new file mode 100644 index 0000000..84d353c Binary files /dev/null and b/src/img_resource/MaoYuNa/235.png differ diff --git a/src/img_resource/MaoYuNa/236.png b/src/img_resource/MaoYuNa/236.png new file mode 100644 index 0000000..efab341 Binary files /dev/null and b/src/img_resource/MaoYuNa/236.png differ diff --git a/src/img_resource/MaoYuNa/237.png b/src/img_resource/MaoYuNa/237.png new file mode 100644 index 0000000..2400dc7 Binary files /dev/null and b/src/img_resource/MaoYuNa/237.png differ diff --git a/src/img_resource/MaoYuNa/238.png b/src/img_resource/MaoYuNa/238.png new file mode 100644 index 0000000..de9f032 Binary files /dev/null and b/src/img_resource/MaoYuNa/238.png differ diff --git a/src/img_resource/MaoYuNa/239.jpg b/src/img_resource/MaoYuNa/239.jpg new file mode 100644 index 0000000..51ad191 Binary files /dev/null and b/src/img_resource/MaoYuNa/239.jpg differ diff --git a/src/img_resource/MaoYuNa/240.png b/src/img_resource/MaoYuNa/240.png new file mode 100644 index 0000000..6b54949 Binary files /dev/null and b/src/img_resource/MaoYuNa/240.png differ diff --git a/src/img_resource/MaoYuNa/241.jpg b/src/img_resource/MaoYuNa/241.jpg new file mode 100644 index 0000000..f92c9fa Binary files /dev/null and b/src/img_resource/MaoYuNa/241.jpg differ diff --git a/src/img_resource/MaoYuNa/242.jpg b/src/img_resource/MaoYuNa/242.jpg new file mode 100644 index 0000000..7a5eb4a Binary files /dev/null and b/src/img_resource/MaoYuNa/242.jpg differ diff --git a/src/img_resource/MaoYuNa/243.jpg b/src/img_resource/MaoYuNa/243.jpg new file mode 100644 index 0000000..d166350 Binary files /dev/null and b/src/img_resource/MaoYuNa/243.jpg differ diff --git a/src/img_resource/MaoYuNa/244.png b/src/img_resource/MaoYuNa/244.png new file mode 100644 index 0000000..c55d63c Binary files /dev/null and b/src/img_resource/MaoYuNa/244.png differ diff --git a/src/img_resource/MaoYuNa/245.jpg b/src/img_resource/MaoYuNa/245.jpg new file mode 100644 index 0000000..8ac5014 Binary files /dev/null and b/src/img_resource/MaoYuNa/245.jpg differ diff --git a/src/img_resource/MaoYuNa/246.png b/src/img_resource/MaoYuNa/246.png new file mode 100644 index 0000000..4e04073 Binary files /dev/null and b/src/img_resource/MaoYuNa/246.png differ diff --git a/src/img_resource/MaoYuNa/247.jpg b/src/img_resource/MaoYuNa/247.jpg new file mode 100644 index 0000000..a8a6ecc Binary files /dev/null and b/src/img_resource/MaoYuNa/247.jpg differ diff --git a/src/img_resource/MaoYuNa/248.png b/src/img_resource/MaoYuNa/248.png new file mode 100644 index 0000000..cb1d6fc Binary files /dev/null and b/src/img_resource/MaoYuNa/248.png differ diff --git a/src/img_resource/MaoYuNa/249.jpg b/src/img_resource/MaoYuNa/249.jpg new file mode 100644 index 0000000..750a6e6 Binary files /dev/null and b/src/img_resource/MaoYuNa/249.jpg differ diff --git a/src/img_resource/MaoYuNa/250.jpg b/src/img_resource/MaoYuNa/250.jpg new file mode 100644 index 0000000..602bab0 Binary files /dev/null and b/src/img_resource/MaoYuNa/250.jpg differ diff --git a/src/img_resource/MaoYuNa/251.png b/src/img_resource/MaoYuNa/251.png new file mode 100644 index 0000000..d688c5c Binary files /dev/null and b/src/img_resource/MaoYuNa/251.png differ diff --git a/src/img_resource/MaoYuNa/252.jpg b/src/img_resource/MaoYuNa/252.jpg new file mode 100644 index 0000000..8dfad40 Binary files /dev/null and b/src/img_resource/MaoYuNa/252.jpg differ diff --git a/src/img_resource/MaoYuNa/253.jpg b/src/img_resource/MaoYuNa/253.jpg new file mode 100644 index 0000000..587a955 Binary files /dev/null and b/src/img_resource/MaoYuNa/253.jpg differ diff --git a/src/img_resource/MaoYuNa/254.jpg b/src/img_resource/MaoYuNa/254.jpg new file mode 100644 index 0000000..1c34f75 Binary files /dev/null and b/src/img_resource/MaoYuNa/254.jpg differ diff --git a/src/img_resource/MaoYuNa/255.png b/src/img_resource/MaoYuNa/255.png new file mode 100644 index 0000000..b845ede Binary files /dev/null and b/src/img_resource/MaoYuNa/255.png differ diff --git a/src/img_resource/MaoYuNa/256.jpg b/src/img_resource/MaoYuNa/256.jpg new file mode 100644 index 0000000..7a45aa0 Binary files /dev/null and b/src/img_resource/MaoYuNa/256.jpg differ diff --git a/src/img_resource/MaoYuNa/257.jpg b/src/img_resource/MaoYuNa/257.jpg new file mode 100644 index 0000000..cd71d2e Binary files /dev/null and b/src/img_resource/MaoYuNa/257.jpg differ diff --git a/src/img_resource/MaoYuNa/258.jpg b/src/img_resource/MaoYuNa/258.jpg new file mode 100644 index 0000000..0b10aa6 Binary files /dev/null and b/src/img_resource/MaoYuNa/258.jpg differ diff --git a/src/img_resource/MaoYuNa/259.jpg b/src/img_resource/MaoYuNa/259.jpg new file mode 100644 index 0000000..98969ae Binary files /dev/null and b/src/img_resource/MaoYuNa/259.jpg differ diff --git a/src/img_resource/MaoYuNa/260.jpg b/src/img_resource/MaoYuNa/260.jpg new file mode 100644 index 0000000..24c1787 Binary files /dev/null and b/src/img_resource/MaoYuNa/260.jpg differ diff --git a/src/img_resource/MaoYuNa/261.jpg b/src/img_resource/MaoYuNa/261.jpg new file mode 100644 index 0000000..0b85812 Binary files /dev/null and b/src/img_resource/MaoYuNa/261.jpg differ diff --git a/src/img_resource/MaoYuNa/262.jpg b/src/img_resource/MaoYuNa/262.jpg new file mode 100644 index 0000000..4a90370 Binary files /dev/null and b/src/img_resource/MaoYuNa/262.jpg differ diff --git a/src/img_resource/MaoYuNa/263.jpg b/src/img_resource/MaoYuNa/263.jpg new file mode 100644 index 0000000..0ea1466 Binary files /dev/null and b/src/img_resource/MaoYuNa/263.jpg differ diff --git a/src/img_resource/MaoYuNa/264.jpg b/src/img_resource/MaoYuNa/264.jpg new file mode 100644 index 0000000..a72035e Binary files /dev/null and b/src/img_resource/MaoYuNa/264.jpg differ diff --git a/src/img_resource/MaoYuNa/265.jpg b/src/img_resource/MaoYuNa/265.jpg new file mode 100644 index 0000000..24b3486 Binary files /dev/null and b/src/img_resource/MaoYuNa/265.jpg differ diff --git a/src/img_resource/MaoYuNa/266.jpg b/src/img_resource/MaoYuNa/266.jpg new file mode 100644 index 0000000..eb36e11 Binary files /dev/null and b/src/img_resource/MaoYuNa/266.jpg differ diff --git a/src/img_resource/MaoYuNa/267.jpg b/src/img_resource/MaoYuNa/267.jpg new file mode 100644 index 0000000..5e87b9d Binary files /dev/null and b/src/img_resource/MaoYuNa/267.jpg differ diff --git a/src/img_resource/MaoYuNa/268.jpg b/src/img_resource/MaoYuNa/268.jpg new file mode 100644 index 0000000..9436aa3 Binary files /dev/null and b/src/img_resource/MaoYuNa/268.jpg differ diff --git a/src/img_resource/MaoYuNa/269.jpg b/src/img_resource/MaoYuNa/269.jpg new file mode 100644 index 0000000..26382f1 Binary files /dev/null and b/src/img_resource/MaoYuNa/269.jpg differ diff --git a/src/img_resource/MaoYuNa/270.jpg b/src/img_resource/MaoYuNa/270.jpg new file mode 100644 index 0000000..1617abc Binary files /dev/null and b/src/img_resource/MaoYuNa/270.jpg differ diff --git a/src/img_resource/MaoYuNa/271.png b/src/img_resource/MaoYuNa/271.png new file mode 100644 index 0000000..fdd82cd Binary files /dev/null and b/src/img_resource/MaoYuNa/271.png differ diff --git a/src/img_resource/MaoYuNa/272.png b/src/img_resource/MaoYuNa/272.png new file mode 100644 index 0000000..ece7c22 Binary files /dev/null and b/src/img_resource/MaoYuNa/272.png differ diff --git a/src/img_resource/MaoYuNa/273.jpg b/src/img_resource/MaoYuNa/273.jpg new file mode 100644 index 0000000..9f123e9 Binary files /dev/null and b/src/img_resource/MaoYuNa/273.jpg differ diff --git a/src/img_resource/MaoYuNa/274.png b/src/img_resource/MaoYuNa/274.png new file mode 100644 index 0000000..2b34a2b Binary files /dev/null and b/src/img_resource/MaoYuNa/274.png differ diff --git a/src/img_resource/MaoYuNa/275.png b/src/img_resource/MaoYuNa/275.png new file mode 100644 index 0000000..22d237f Binary files /dev/null and b/src/img_resource/MaoYuNa/275.png differ diff --git a/src/img_resource/MaoYuNa/276.png b/src/img_resource/MaoYuNa/276.png new file mode 100644 index 0000000..5cb1100 Binary files /dev/null and b/src/img_resource/MaoYuNa/276.png differ diff --git a/src/img_resource/MaoYuNa/277.jpg b/src/img_resource/MaoYuNa/277.jpg new file mode 100644 index 0000000..6880e8c Binary files /dev/null and b/src/img_resource/MaoYuNa/277.jpg differ diff --git a/src/img_resource/MaoYuNa/278.png b/src/img_resource/MaoYuNa/278.png new file mode 100644 index 0000000..da852a1 Binary files /dev/null and b/src/img_resource/MaoYuNa/278.png differ diff --git a/src/img_resource/MaoYuNa/279.jpg b/src/img_resource/MaoYuNa/279.jpg new file mode 100644 index 0000000..e6248a0 Binary files /dev/null and b/src/img_resource/MaoYuNa/279.jpg differ diff --git a/src/img_resource/MaoYuNa/280.jpg b/src/img_resource/MaoYuNa/280.jpg new file mode 100644 index 0000000..82db672 Binary files /dev/null and b/src/img_resource/MaoYuNa/280.jpg differ diff --git a/src/img_resource/MaoYuNa/281.jpg b/src/img_resource/MaoYuNa/281.jpg new file mode 100644 index 0000000..557a499 Binary files /dev/null and b/src/img_resource/MaoYuNa/281.jpg differ diff --git a/src/img_resource/MaoYuNa/282.png b/src/img_resource/MaoYuNa/282.png new file mode 100644 index 0000000..b476257 Binary files /dev/null and b/src/img_resource/MaoYuNa/282.png differ diff --git a/src/img_resource/MaoYuNa/283.jpg b/src/img_resource/MaoYuNa/283.jpg new file mode 100644 index 0000000..382df84 Binary files /dev/null and b/src/img_resource/MaoYuNa/283.jpg differ diff --git a/src/img_resource/MaoYuNa/284.png b/src/img_resource/MaoYuNa/284.png new file mode 100644 index 0000000..f502d6e Binary files /dev/null and b/src/img_resource/MaoYuNa/284.png differ diff --git a/src/img_resource/MaoYuNa/285.jpg b/src/img_resource/MaoYuNa/285.jpg new file mode 100644 index 0000000..f973b31 Binary files /dev/null and b/src/img_resource/MaoYuNa/285.jpg differ diff --git a/src/img_resource/MaoYuNa/286.jpg b/src/img_resource/MaoYuNa/286.jpg new file mode 100644 index 0000000..b07f624 Binary files /dev/null and b/src/img_resource/MaoYuNa/286.jpg differ diff --git a/src/img_resource/MaoYuNa/287.jpg b/src/img_resource/MaoYuNa/287.jpg new file mode 100644 index 0000000..5594fe8 Binary files /dev/null and b/src/img_resource/MaoYuNa/287.jpg differ diff --git a/src/img_resource/MaoYuNa/288.jpg b/src/img_resource/MaoYuNa/288.jpg new file mode 100644 index 0000000..fba2816 Binary files /dev/null and b/src/img_resource/MaoYuNa/288.jpg differ diff --git a/src/img_resource/MaoYuNa/289.jpg b/src/img_resource/MaoYuNa/289.jpg new file mode 100644 index 0000000..d21332b Binary files /dev/null and b/src/img_resource/MaoYuNa/289.jpg differ diff --git a/src/img_resource/MaoYuNa/290.jpg b/src/img_resource/MaoYuNa/290.jpg new file mode 100644 index 0000000..16421f3 Binary files /dev/null and b/src/img_resource/MaoYuNa/290.jpg differ diff --git a/src/img_resource/MaoYuNa/291.png b/src/img_resource/MaoYuNa/291.png new file mode 100644 index 0000000..fd99c39 Binary files /dev/null and b/src/img_resource/MaoYuNa/291.png differ diff --git a/src/img_resource/MaoYuNa/292.png b/src/img_resource/MaoYuNa/292.png new file mode 100644 index 0000000..85dc5d2 Binary files /dev/null and b/src/img_resource/MaoYuNa/292.png differ diff --git a/src/img_resource/MaoYuNa/293.png b/src/img_resource/MaoYuNa/293.png new file mode 100644 index 0000000..7683761 Binary files /dev/null and b/src/img_resource/MaoYuNa/293.png differ diff --git a/src/img_resource/MaoYuNa/294.png b/src/img_resource/MaoYuNa/294.png new file mode 100644 index 0000000..77d4282 Binary files /dev/null and b/src/img_resource/MaoYuNa/294.png differ diff --git a/src/img_resource/MaoYuNa/295.png b/src/img_resource/MaoYuNa/295.png new file mode 100644 index 0000000..a5cb3ba Binary files /dev/null and b/src/img_resource/MaoYuNa/295.png differ diff --git a/src/img_resource/MaoYuNa/296.png b/src/img_resource/MaoYuNa/296.png new file mode 100644 index 0000000..7cf25d8 Binary files /dev/null and b/src/img_resource/MaoYuNa/296.png differ diff --git a/src/img_resource/MaoYuNa/297.png b/src/img_resource/MaoYuNa/297.png new file mode 100644 index 0000000..a892f17 Binary files /dev/null and b/src/img_resource/MaoYuNa/297.png differ diff --git a/src/img_resource/MaoYuNa/298.png b/src/img_resource/MaoYuNa/298.png new file mode 100644 index 0000000..c5d5e5f Binary files /dev/null and b/src/img_resource/MaoYuNa/298.png differ diff --git a/src/img_resource/MaoYuNa/299.png b/src/img_resource/MaoYuNa/299.png new file mode 100644 index 0000000..ef9ad05 Binary files /dev/null and b/src/img_resource/MaoYuNa/299.png differ diff --git a/src/img_resource/MaoYuNa/300.png b/src/img_resource/MaoYuNa/300.png new file mode 100644 index 0000000..7ff0cac Binary files /dev/null and b/src/img_resource/MaoYuNa/300.png differ diff --git a/src/img_resource/MaoYuNa/301.png b/src/img_resource/MaoYuNa/301.png new file mode 100644 index 0000000..ff586df Binary files /dev/null and b/src/img_resource/MaoYuNa/301.png differ diff --git a/src/img_resource/MaoYuNa/302.png b/src/img_resource/MaoYuNa/302.png new file mode 100644 index 0000000..4a574e4 Binary files /dev/null and b/src/img_resource/MaoYuNa/302.png differ diff --git a/src/img_resource/MaoYuNa/303.png b/src/img_resource/MaoYuNa/303.png new file mode 100644 index 0000000..426cdb3 Binary files /dev/null and b/src/img_resource/MaoYuNa/303.png differ diff --git a/src/img_resource/MaoYuNa/304.png b/src/img_resource/MaoYuNa/304.png new file mode 100644 index 0000000..39a4985 Binary files /dev/null and b/src/img_resource/MaoYuNa/304.png differ diff --git a/src/img_resource/MaoYuNa/305.png b/src/img_resource/MaoYuNa/305.png new file mode 100644 index 0000000..0c87d32 Binary files /dev/null and b/src/img_resource/MaoYuNa/305.png differ diff --git a/src/img_resource/MaoYuNa/306.png b/src/img_resource/MaoYuNa/306.png new file mode 100644 index 0000000..ca87210 Binary files /dev/null and b/src/img_resource/MaoYuNa/306.png differ diff --git a/src/img_resource/MaoYuNa/307.png b/src/img_resource/MaoYuNa/307.png new file mode 100644 index 0000000..ea97e2f Binary files /dev/null and b/src/img_resource/MaoYuNa/307.png differ diff --git a/src/img_resource/MaoYuNa/308.png b/src/img_resource/MaoYuNa/308.png new file mode 100644 index 0000000..1bb6c02 Binary files /dev/null and b/src/img_resource/MaoYuNa/308.png differ diff --git a/src/img_resource/MaoYuNa/309.png b/src/img_resource/MaoYuNa/309.png new file mode 100644 index 0000000..7e4b66a Binary files /dev/null and b/src/img_resource/MaoYuNa/309.png differ diff --git a/src/img_resource/MaoYuNa/310.png b/src/img_resource/MaoYuNa/310.png new file mode 100644 index 0000000..9515356 Binary files /dev/null and b/src/img_resource/MaoYuNa/310.png differ diff --git a/src/img_resource/MaoYuNa/311.png b/src/img_resource/MaoYuNa/311.png new file mode 100644 index 0000000..abaf14c Binary files /dev/null and b/src/img_resource/MaoYuNa/311.png differ diff --git a/src/img_resource/MaoYuNa/312.png b/src/img_resource/MaoYuNa/312.png new file mode 100644 index 0000000..52b7d97 Binary files /dev/null and b/src/img_resource/MaoYuNa/312.png differ diff --git a/src/img_resource/MaoYuNa/313.png b/src/img_resource/MaoYuNa/313.png new file mode 100644 index 0000000..e46381f Binary files /dev/null and b/src/img_resource/MaoYuNa/313.png differ diff --git a/src/img_resource/MaoYuNa/314.png b/src/img_resource/MaoYuNa/314.png new file mode 100644 index 0000000..75ede8a Binary files /dev/null and b/src/img_resource/MaoYuNa/314.png differ diff --git a/src/img_resource/MaoYuNa/315.png b/src/img_resource/MaoYuNa/315.png new file mode 100644 index 0000000..d7d98b4 Binary files /dev/null and b/src/img_resource/MaoYuNa/315.png differ diff --git a/src/img_resource/MaoYuNa/316.png b/src/img_resource/MaoYuNa/316.png new file mode 100644 index 0000000..2d86064 Binary files /dev/null and b/src/img_resource/MaoYuNa/316.png differ diff --git a/src/img_resource/MaoYuNa/317.png b/src/img_resource/MaoYuNa/317.png new file mode 100644 index 0000000..f7cbe01 Binary files /dev/null and b/src/img_resource/MaoYuNa/317.png differ diff --git a/src/img_resource/MaoYuNa/318.png b/src/img_resource/MaoYuNa/318.png new file mode 100644 index 0000000..696c92d Binary files /dev/null and b/src/img_resource/MaoYuNa/318.png differ diff --git a/src/img_resource/MaoYuNa/319.png b/src/img_resource/MaoYuNa/319.png new file mode 100644 index 0000000..da7f20e Binary files /dev/null and b/src/img_resource/MaoYuNa/319.png differ diff --git a/src/img_resource/MaoYuNa/320.png b/src/img_resource/MaoYuNa/320.png new file mode 100644 index 0000000..bb17290 Binary files /dev/null and b/src/img_resource/MaoYuNa/320.png differ diff --git a/src/img_resource/MaoYuNa/321.png b/src/img_resource/MaoYuNa/321.png new file mode 100644 index 0000000..6adb6be Binary files /dev/null and b/src/img_resource/MaoYuNa/321.png differ diff --git a/src/img_resource/MaoYuNa/322.png b/src/img_resource/MaoYuNa/322.png new file mode 100644 index 0000000..ec508cd Binary files /dev/null and b/src/img_resource/MaoYuNa/322.png differ diff --git a/src/img_resource/MaoYuNa/323.png b/src/img_resource/MaoYuNa/323.png new file mode 100644 index 0000000..7319c53 Binary files /dev/null and b/src/img_resource/MaoYuNa/323.png differ diff --git a/src/img_resource/MaoYuNa/324.png b/src/img_resource/MaoYuNa/324.png new file mode 100644 index 0000000..6d67985 Binary files /dev/null and b/src/img_resource/MaoYuNa/324.png differ diff --git a/src/img_resource/MaoYuNa/325.png b/src/img_resource/MaoYuNa/325.png new file mode 100644 index 0000000..9394120 Binary files /dev/null and b/src/img_resource/MaoYuNa/325.png differ diff --git a/src/img_resource/MaoYuNa/326.png b/src/img_resource/MaoYuNa/326.png new file mode 100644 index 0000000..c919308 Binary files /dev/null and b/src/img_resource/MaoYuNa/326.png differ diff --git a/src/img_resource/MaoYuNa/327.png b/src/img_resource/MaoYuNa/327.png new file mode 100644 index 0000000..b601c46 Binary files /dev/null and b/src/img_resource/MaoYuNa/327.png differ diff --git a/src/img_resource/MaoYuNa/328.png b/src/img_resource/MaoYuNa/328.png new file mode 100644 index 0000000..b8d3007 Binary files /dev/null and b/src/img_resource/MaoYuNa/328.png differ diff --git a/src/img_resource/MaoYuNa/329.png b/src/img_resource/MaoYuNa/329.png new file mode 100644 index 0000000..1c53d89 Binary files /dev/null and b/src/img_resource/MaoYuNa/329.png differ diff --git a/src/img_resource/MaoYuNa/330.png b/src/img_resource/MaoYuNa/330.png new file mode 100644 index 0000000..52c2cfe Binary files /dev/null and b/src/img_resource/MaoYuNa/330.png differ diff --git a/src/img_resource/MaoYuNa/331.png b/src/img_resource/MaoYuNa/331.png new file mode 100644 index 0000000..243f454 Binary files /dev/null and b/src/img_resource/MaoYuNa/331.png differ diff --git a/src/img_resource/MaoYuNa/332.png b/src/img_resource/MaoYuNa/332.png new file mode 100644 index 0000000..7138d5c Binary files /dev/null and b/src/img_resource/MaoYuNa/332.png differ diff --git a/src/img_resource/MaoYuNa/333.png b/src/img_resource/MaoYuNa/333.png new file mode 100644 index 0000000..ef3ec75 Binary files /dev/null and b/src/img_resource/MaoYuNa/333.png differ diff --git a/src/img_resource/MaoYuNa/334.png b/src/img_resource/MaoYuNa/334.png new file mode 100644 index 0000000..61655a1 Binary files /dev/null and b/src/img_resource/MaoYuNa/334.png differ diff --git a/src/img_resource/MaoYuNa/335.png b/src/img_resource/MaoYuNa/335.png new file mode 100644 index 0000000..88f1d9a Binary files /dev/null and b/src/img_resource/MaoYuNa/335.png differ diff --git a/src/img_resource/MaoYuNa/336.png b/src/img_resource/MaoYuNa/336.png new file mode 100644 index 0000000..fe4fb18 Binary files /dev/null and b/src/img_resource/MaoYuNa/336.png differ diff --git a/src/img_resource/MaoYuNa/337.png b/src/img_resource/MaoYuNa/337.png new file mode 100644 index 0000000..4c24e67 Binary files /dev/null and b/src/img_resource/MaoYuNa/337.png differ diff --git a/src/img_resource/MaoYuNa/338.png b/src/img_resource/MaoYuNa/338.png new file mode 100644 index 0000000..e9a26ae Binary files /dev/null and b/src/img_resource/MaoYuNa/338.png differ diff --git a/src/img_resource/tarot/TarotImages/Ace of Coins.jpg b/src/img_resource/tarot/TarotImages/Ace of Coins.jpg new file mode 100644 index 0000000..120619e Binary files /dev/null and b/src/img_resource/tarot/TarotImages/Ace of Coins.jpg differ diff --git a/src/img_resource/tarot/TarotImages/Ace of Cups.jpg b/src/img_resource/tarot/TarotImages/Ace of Cups.jpg new file mode 100644 index 0000000..ee53381 Binary files /dev/null and b/src/img_resource/tarot/TarotImages/Ace of Cups.jpg differ diff --git a/src/img_resource/tarot/TarotImages/Ace of Swords.jpg b/src/img_resource/tarot/TarotImages/Ace of Swords.jpg new file mode 100644 index 0000000..239aafa Binary files /dev/null and b/src/img_resource/tarot/TarotImages/Ace of Swords.jpg differ diff --git a/src/img_resource/tarot/TarotImages/Ace of Wands.jpg b/src/img_resource/tarot/TarotImages/Ace of Wands.jpg new file mode 100644 index 0000000..f34b8a6 Binary files /dev/null and b/src/img_resource/tarot/TarotImages/Ace of Wands.jpg differ diff --git a/src/img_resource/tarot/TarotImages/Death.jpg b/src/img_resource/tarot/TarotImages/Death.jpg new file mode 100644 index 0000000..cd8f86d Binary files /dev/null and b/src/img_resource/tarot/TarotImages/Death.jpg differ diff --git a/src/img_resource/tarot/TarotImages/Five of Cups.png b/src/img_resource/tarot/TarotImages/Five of Cups.png new file mode 100644 index 0000000..9e74a9e Binary files /dev/null and b/src/img_resource/tarot/TarotImages/Five of Cups.png differ diff --git a/src/img_resource/tarot/TarotImages/Five of Wands.png b/src/img_resource/tarot/TarotImages/Five of Wands.png new file mode 100644 index 0000000..86c95d7 Binary files /dev/null and b/src/img_resource/tarot/TarotImages/Five of Wands.png differ diff --git a/src/img_resource/tarot/TarotImages/Four of Swords.png b/src/img_resource/tarot/TarotImages/Four of Swords.png new file mode 100644 index 0000000..d9ae4b6 Binary files /dev/null and b/src/img_resource/tarot/TarotImages/Four of Swords.png differ diff --git a/src/img_resource/tarot/TarotImages/Judgement.jpg b/src/img_resource/tarot/TarotImages/Judgement.jpg new file mode 100644 index 0000000..c7c113a Binary files /dev/null and b/src/img_resource/tarot/TarotImages/Judgement.jpg differ diff --git a/src/img_resource/tarot/TarotImages/Justice.jpg b/src/img_resource/tarot/TarotImages/Justice.jpg new file mode 100644 index 0000000..ce37881 Binary files /dev/null and b/src/img_resource/tarot/TarotImages/Justice.jpg differ diff --git a/src/img_resource/tarot/TarotImages/King of Cups.png b/src/img_resource/tarot/TarotImages/King of Cups.png new file mode 100644 index 0000000..bbd7cc5 Binary files /dev/null and b/src/img_resource/tarot/TarotImages/King of Cups.png differ diff --git a/src/img_resource/tarot/TarotImages/King of Pentacles.png b/src/img_resource/tarot/TarotImages/King of Pentacles.png new file mode 100644 index 0000000..4dfb348 Binary files /dev/null and b/src/img_resource/tarot/TarotImages/King of Pentacles.png differ diff --git a/src/img_resource/tarot/TarotImages/King of Swords.png b/src/img_resource/tarot/TarotImages/King of Swords.png new file mode 100644 index 0000000..6fb03f1 Binary files /dev/null and b/src/img_resource/tarot/TarotImages/King of Swords.png differ diff --git a/src/img_resource/tarot/TarotImages/King of Wands.png b/src/img_resource/tarot/TarotImages/King of Wands.png new file mode 100644 index 0000000..88ea9b6 Binary files /dev/null and b/src/img_resource/tarot/TarotImages/King of Wands.png differ diff --git a/src/img_resource/tarot/TarotImages/Knight of Cups.png b/src/img_resource/tarot/TarotImages/Knight of Cups.png new file mode 100644 index 0000000..7c4bd9e Binary files /dev/null and b/src/img_resource/tarot/TarotImages/Knight of Cups.png differ diff --git a/src/img_resource/tarot/TarotImages/Knight of Pentacles.png b/src/img_resource/tarot/TarotImages/Knight of Pentacles.png new file mode 100644 index 0000000..cd32989 Binary files /dev/null and b/src/img_resource/tarot/TarotImages/Knight of Pentacles.png differ diff --git a/src/img_resource/tarot/TarotImages/Knight of Swords.png b/src/img_resource/tarot/TarotImages/Knight of Swords.png new file mode 100644 index 0000000..6092010 Binary files /dev/null and b/src/img_resource/tarot/TarotImages/Knight of Swords.png differ diff --git a/src/img_resource/tarot/TarotImages/Knight of Wands.png b/src/img_resource/tarot/TarotImages/Knight of Wands.png new file mode 100644 index 0000000..9b8ed16 Binary files /dev/null and b/src/img_resource/tarot/TarotImages/Knight of Wands.png differ diff --git a/src/img_resource/tarot/TarotImages/Nine of Cups.png b/src/img_resource/tarot/TarotImages/Nine of Cups.png new file mode 100644 index 0000000..d90babd Binary files /dev/null and b/src/img_resource/tarot/TarotImages/Nine of Cups.png differ diff --git a/src/img_resource/tarot/TarotImages/Page of Cups.png b/src/img_resource/tarot/TarotImages/Page of Cups.png new file mode 100644 index 0000000..136d933 Binary files /dev/null and b/src/img_resource/tarot/TarotImages/Page of Cups.png differ diff --git a/src/img_resource/tarot/TarotImages/Page of Pentacles.png b/src/img_resource/tarot/TarotImages/Page of Pentacles.png new file mode 100644 index 0000000..f976bab Binary files /dev/null and b/src/img_resource/tarot/TarotImages/Page of Pentacles.png differ diff --git a/src/img_resource/tarot/TarotImages/Page of Swords.png b/src/img_resource/tarot/TarotImages/Page of Swords.png new file mode 100644 index 0000000..1e4ff9c Binary files /dev/null and b/src/img_resource/tarot/TarotImages/Page of Swords.png differ diff --git a/src/img_resource/tarot/TarotImages/Page of Wands.png b/src/img_resource/tarot/TarotImages/Page of Wands.png new file mode 100644 index 0000000..c7c5b4f Binary files /dev/null and b/src/img_resource/tarot/TarotImages/Page of Wands.png differ diff --git a/src/img_resource/tarot/TarotImages/Queen of Cups.png b/src/img_resource/tarot/TarotImages/Queen of Cups.png new file mode 100644 index 0000000..37a1804 Binary files /dev/null and b/src/img_resource/tarot/TarotImages/Queen of Cups.png differ diff --git a/src/img_resource/tarot/TarotImages/Queen of Pentacles.png b/src/img_resource/tarot/TarotImages/Queen of Pentacles.png new file mode 100644 index 0000000..09aa653 Binary files /dev/null and b/src/img_resource/tarot/TarotImages/Queen of Pentacles.png differ diff --git a/src/img_resource/tarot/TarotImages/Queen of Swords.png b/src/img_resource/tarot/TarotImages/Queen of Swords.png new file mode 100644 index 0000000..9f7bb98 Binary files /dev/null and b/src/img_resource/tarot/TarotImages/Queen of Swords.png differ diff --git a/src/img_resource/tarot/TarotImages/Queen of Wands.png b/src/img_resource/tarot/TarotImages/Queen of Wands.png new file mode 100644 index 0000000..568bfd5 Binary files /dev/null and b/src/img_resource/tarot/TarotImages/Queen of Wands.png differ diff --git a/src/img_resource/tarot/TarotImages/Six of Wands.png b/src/img_resource/tarot/TarotImages/Six of Wands.png new file mode 100644 index 0000000..9d7aee5 Binary files /dev/null and b/src/img_resource/tarot/TarotImages/Six of Wands.png differ diff --git a/src/img_resource/tarot/TarotImages/Strength.jpg b/src/img_resource/tarot/TarotImages/Strength.jpg new file mode 100644 index 0000000..fd66b54 Binary files /dev/null and b/src/img_resource/tarot/TarotImages/Strength.jpg differ diff --git a/src/img_resource/tarot/TarotImages/Temperance.jpg b/src/img_resource/tarot/TarotImages/Temperance.jpg new file mode 100644 index 0000000..b79b2c3 Binary files /dev/null and b/src/img_resource/tarot/TarotImages/Temperance.jpg differ diff --git a/src/img_resource/tarot/TarotImages/Ten of Cups.png b/src/img_resource/tarot/TarotImages/Ten of Cups.png new file mode 100644 index 0000000..80b57cc Binary files /dev/null and b/src/img_resource/tarot/TarotImages/Ten of Cups.png differ diff --git a/src/img_resource/tarot/TarotImages/The Chariot.jpg b/src/img_resource/tarot/TarotImages/The Chariot.jpg new file mode 100644 index 0000000..f7bd93e Binary files /dev/null and b/src/img_resource/tarot/TarotImages/The Chariot.jpg differ diff --git a/src/img_resource/tarot/TarotImages/The Devil.jpg b/src/img_resource/tarot/TarotImages/The Devil.jpg new file mode 100644 index 0000000..3cf10f9 Binary files /dev/null and b/src/img_resource/tarot/TarotImages/The Devil.jpg differ diff --git a/src/img_resource/tarot/TarotImages/The Emperor.jpg b/src/img_resource/tarot/TarotImages/The Emperor.jpg new file mode 100644 index 0000000..36034c4 Binary files /dev/null and b/src/img_resource/tarot/TarotImages/The Emperor.jpg differ diff --git a/src/img_resource/tarot/TarotImages/The Empress.jpg b/src/img_resource/tarot/TarotImages/The Empress.jpg new file mode 100644 index 0000000..68927c9 Binary files /dev/null and b/src/img_resource/tarot/TarotImages/The Empress.jpg differ diff --git a/src/img_resource/tarot/TarotImages/The Fool.jpg b/src/img_resource/tarot/TarotImages/The Fool.jpg new file mode 100644 index 0000000..2df2dfa Binary files /dev/null and b/src/img_resource/tarot/TarotImages/The Fool.jpg differ diff --git a/src/img_resource/tarot/TarotImages/The Hanged Man.jpg b/src/img_resource/tarot/TarotImages/The Hanged Man.jpg new file mode 100644 index 0000000..e05a5b6 Binary files /dev/null and b/src/img_resource/tarot/TarotImages/The Hanged Man.jpg differ diff --git a/src/img_resource/tarot/TarotImages/The Hermit.jpg b/src/img_resource/tarot/TarotImages/The Hermit.jpg new file mode 100644 index 0000000..e3d2193 Binary files /dev/null and b/src/img_resource/tarot/TarotImages/The Hermit.jpg differ diff --git a/src/img_resource/tarot/TarotImages/The Hierophant.jpg b/src/img_resource/tarot/TarotImages/The Hierophant.jpg new file mode 100644 index 0000000..1535d4b Binary files /dev/null and b/src/img_resource/tarot/TarotImages/The Hierophant.jpg differ diff --git a/src/img_resource/tarot/TarotImages/The High Priestess.jpg b/src/img_resource/tarot/TarotImages/The High Priestess.jpg new file mode 100644 index 0000000..28f2923 Binary files /dev/null and b/src/img_resource/tarot/TarotImages/The High Priestess.jpg differ diff --git a/src/img_resource/tarot/TarotImages/The Lovers.jpg b/src/img_resource/tarot/TarotImages/The Lovers.jpg new file mode 100644 index 0000000..e001919 Binary files /dev/null and b/src/img_resource/tarot/TarotImages/The Lovers.jpg differ diff --git a/src/img_resource/tarot/TarotImages/The Magician.jpg b/src/img_resource/tarot/TarotImages/The Magician.jpg new file mode 100644 index 0000000..dfea4a0 Binary files /dev/null and b/src/img_resource/tarot/TarotImages/The Magician.jpg differ diff --git a/src/img_resource/tarot/TarotImages/The Moon.jpg b/src/img_resource/tarot/TarotImages/The Moon.jpg new file mode 100644 index 0000000..cfeeacf Binary files /dev/null and b/src/img_resource/tarot/TarotImages/The Moon.jpg differ diff --git a/src/img_resource/tarot/TarotImages/The Star.jpg b/src/img_resource/tarot/TarotImages/The Star.jpg new file mode 100644 index 0000000..82bae77 Binary files /dev/null and b/src/img_resource/tarot/TarotImages/The Star.jpg differ diff --git a/src/img_resource/tarot/TarotImages/The Sun.jpg b/src/img_resource/tarot/TarotImages/The Sun.jpg new file mode 100644 index 0000000..169111b Binary files /dev/null and b/src/img_resource/tarot/TarotImages/The Sun.jpg differ diff --git a/src/img_resource/tarot/TarotImages/The Tower.jpg b/src/img_resource/tarot/TarotImages/The Tower.jpg new file mode 100644 index 0000000..9aca92b Binary files /dev/null and b/src/img_resource/tarot/TarotImages/The Tower.jpg differ diff --git a/src/img_resource/tarot/TarotImages/The Wheel of Fortune.jpg b/src/img_resource/tarot/TarotImages/The Wheel of Fortune.jpg new file mode 100644 index 0000000..b9fed19 Binary files /dev/null and b/src/img_resource/tarot/TarotImages/The Wheel of Fortune.jpg differ diff --git a/src/img_resource/tarot/TarotImages/The World.jpg b/src/img_resource/tarot/TarotImages/The World.jpg new file mode 100644 index 0000000..b6994ec Binary files /dev/null and b/src/img_resource/tarot/TarotImages/The World.jpg differ diff --git a/src/img_resource/tarot/TarotImages/Three of Swords.png b/src/img_resource/tarot/TarotImages/Three of Swords.png new file mode 100644 index 0000000..da19c7d Binary files /dev/null and b/src/img_resource/tarot/TarotImages/Three of Swords.png differ diff --git a/src/img_resource/tarot/sideTarotImages/Temperance.jpg b/src/img_resource/tarot/sideTarotImages/Temperance.jpg new file mode 100644 index 0000000..b95ce39 Binary files /dev/null and b/src/img_resource/tarot/sideTarotImages/Temperance.jpg differ diff --git a/src/img_resource/tarot/sideTarotImages/The Chariot.jpg b/src/img_resource/tarot/sideTarotImages/The Chariot.jpg new file mode 100644 index 0000000..259e057 Binary files /dev/null and b/src/img_resource/tarot/sideTarotImages/The Chariot.jpg differ diff --git a/src/img_resource/tarot/sideTarotImages/The Devil.jpg b/src/img_resource/tarot/sideTarotImages/The Devil.jpg new file mode 100644 index 0000000..bafb1b0 Binary files /dev/null and b/src/img_resource/tarot/sideTarotImages/The Devil.jpg differ diff --git a/src/img_resource/tarot/sideTarotImages/The Emperor.jpg b/src/img_resource/tarot/sideTarotImages/The Emperor.jpg new file mode 100644 index 0000000..d8444de Binary files /dev/null and b/src/img_resource/tarot/sideTarotImages/The Emperor.jpg differ diff --git a/src/img_resource/tarot/sideTarotImages/The Fool.jpg b/src/img_resource/tarot/sideTarotImages/The Fool.jpg new file mode 100644 index 0000000..7dd2615 Binary files /dev/null and b/src/img_resource/tarot/sideTarotImages/The Fool.jpg differ diff --git a/src/img_resource/tarot/sideTarotImages/The Lovers.jpg b/src/img_resource/tarot/sideTarotImages/The Lovers.jpg new file mode 100644 index 0000000..6c6eee4 Binary files /dev/null and b/src/img_resource/tarot/sideTarotImages/The Lovers.jpg differ diff --git a/src/img_resource/tarot/sideTarotImages/The Magician.jpg b/src/img_resource/tarot/sideTarotImages/The Magician.jpg new file mode 100644 index 0000000..5b6a901 Binary files /dev/null and b/src/img_resource/tarot/sideTarotImages/The Magician.jpg differ diff --git a/src/img_resource/tarot/sideTarotImages/The Sun.jpg b/src/img_resource/tarot/sideTarotImages/The Sun.jpg new file mode 100644 index 0000000..601e469 Binary files /dev/null and b/src/img_resource/tarot/sideTarotImages/The Sun.jpg differ diff --git a/src/onebot_plugins/config/controller.yaml b/src/onebot_plugins/config/controller.yaml new file mode 100644 index 0000000..459a373 --- /dev/null +++ b/src/onebot_plugins/config/controller.yaml @@ -0,0 +1,5 @@ +运势&塔罗: + lockLuck: false #是否启用运势功能 + lockTarot: false #是否启用塔罗牌功能 + + diff --git a/src/onebot_plugins/tarot.py b/src/onebot_plugins/tarot.py new file mode 100644 index 0000000..a0408d8 --- /dev/null +++ b/src/onebot_plugins/tarot.py @@ -0,0 +1,147 @@ +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/img_resource/tarotT/TarotImages' + tarots[3] + img_folder = 'AbstractImages' if lockTarot else 'TarotImages' + img = f'src/img_resource/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/img_resource/tarot/side{img_folder}/' + tarots[3] + if not os.path.exists(f'src/img_resource/tarot/side{img_folder}'): + os.mkdir(f'src/img_resource/tarot/side{img_folder}') + if os.path.exists(img1): + return txt, img1 + else: + # 打开图像 + img = Image.open(f'src/img_resource/tarot/{img_folder}/{tarots[3]}') + + if img.mode == 'RGBA': + img = img.convert('RGB') + # 旋转180度 + rotated_img = img.rotate(180) + + # 保存旋转后的图像 + rotated_img.save(f'src/img_resource/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']] \ No newline at end of file diff --git a/src/onebot_plugins/test.py b/src/onebot_plugins/test.py new file mode 100644 index 0000000..a8c856b --- /dev/null +++ b/src/onebot_plugins/test.py @@ -0,0 +1,59 @@ +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']) diff --git a/src/onebot_plugins/welcome.py b/src/onebot_plugins/welcome.py new file mode 100644 index 0000000..9481a2f --- /dev/null +++ b/src/onebot_plugins/welcome.py @@ -0,0 +1,14 @@ +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}')) # 发送消息 + diff --git a/src/qq_plugins/a-testMain.py b/src/qq_plugins/a-testMain.py new file mode 100644 index 0000000..e607876 --- /dev/null +++ b/src/qq_plugins/a-testMain.py @@ -0,0 +1,116 @@ +import qrcode +from io import BytesIO +from PIL import Image + +# 创建 QRCode 对象 +qr = qrcode.QRCode( version=1, error_correction=qrcode.constants.ERROR_CORRECT_L, box_size=10, border=4, ) +def create_qr_code(unikey): + # 添加数据 + pngurl = f"http://music.163.com/login?codekey={unikey}" + qr.add_data(pngurl) + img = qr.make_image() + a = BytesIO() + img.save(a, 'png') + png = a.getvalue() + # 将字节数据转换为图像 + img = Image.open(BytesIO(png)) + # 保存图像到本地文件 + img.save('qrcode.png') + # a.close() + # # 打开二维码进行扫码操作 + # t = showpng(png) + # t.start() + + +if __name__ == "__main__": + create_qr_code("123") + +""" + +# 判断cookie是否有效 +def netease_cloud_music_is_login(session): + try: + session.cookies.load(ignore_discard=True) + except Exception: + pass + csrf_token = session.cookies.get('__csrf') + c = str({'csrf_token': csrf_token}) + try: + loginurl = session.post( + 'https://music.163.com/weapi/w/nuser/account/get?csrf_token={}'.format(csrf_token), + data={ + 'params': AES_aes(AES_aes(c,g,iv),i,iv), + 'encSecKey': encSecKey()}, + headers=headers).json() + if '200' in str(loginurl['code']): + print('Cookies值有效:', loginurl['profile']['nickname'], ',已登录!') + return session, True + else: + print('Cookies值已经失效,请重新扫码登录!') + return session, False + except BaseException: + print('Cookies值已经失效,请重新扫码登录!') + return session, False + + +# 登录扫码保存cookie +def netease_cloud_music_login(): + # 写入 + session = requests.session() + if not os.path.exists('cloud_music_cookies.cookie'): + with open('cloud_music_cookies.cookie', 'wb') as f: + pickle.dump(session.cookies, f) + # 读取 + session.cookies = pickle.load(open('cloud_music_cookies.cookie', 'rb')) + session, status = netease_cloud_music_is_login(session) + if not status: + getlogin = session.post( 'https://music.163.com/weapi/login/qrcode/unikey?csrf_token=', + data={ + 'params': params(None), + 'encSecKey': encSecKey() + }, + headers=headers).json() + pngurl = 'https://music.163.com/login?codekey=' + getlogin['unikey'] + '&refer=scan' + + qr = qrcode.QRCode() + qr.add_data(pngurl) + img = qr.make_image() + a = BytesIO() + img.save(a, 'png') + png = a.getvalue() + a.close() + # 打开二维码进行扫码操作 + t = showpng(png) + t.start() + + tokenurl = 'https://music.163.com/weapi/login/qrcode/client/login?csrf_token=' + while True: + u = str({'key': getlogin['unikey'], 'type': "1", 'csrf_token': ""}) + qrcodedata = session.post( + tokenurl, + data={ + 'params': params(u), + 'encSecKey': encSecKey() + }, + headers=headers).json() + if '801' in str(qrcodedata['code']): + print('二维码未失效,请扫码!') + elif '802' in str(qrcodedata['code']): + print('已扫码,请确认!') + elif '803' in str(qrcodedata['code']): + print('已确认,登入成功!') + break + else: + print('其他:', qrcodedata) + time.sleep(2) + with open('cloud_music_cookies.cookie', 'wb') as f: + pickle.dump(session.cookies, f) + return session + + + + +if __name__ == '__main__': + netease_cloud_music_login() + +""" \ No newline at end of file diff --git a/src/qq_plugins/cloudMusic.py b/src/qq_plugins/cloudMusic.py new file mode 100644 index 0000000..3ea1f89 --- /dev/null +++ b/src/qq_plugins/cloudMusic.py @@ -0,0 +1,62 @@ +import os +import pickle +from pathlib import Path + +import requests +from nonebot import on_command +from nonebot.rule import to_me +from nonebot.adapters.qq import MessageSegment,MessageEvent +from src.common_plugins.cloud_music.cloud_music import * + +music = on_command("点歌", rule=to_me(), priority=10, block=True) +@music.handle() +async def handle_function(msg: MessageEvent): + keyword = msg.get_plaintext().replace("/点歌", "").strip(" ") + #获取登录信息 可以获取更换高音质 + session = cloud_music_login() + #搜索歌曲 + song_id,song_name,singer,song_url = netease_music_search(keyword,session) + if song_id is None: + await music.finish("没有找到歌曲") + else: + await music.send(MessageSegment.text(f" 来源:网易云音乐\n歌曲:{song_name} - {singer}")) + #返回转换后的歌曲路径 + output_silk_path = netease_music_download(song_id, song_name, singer,session) + await music.send(MessageSegment.file_audio(Path(output_silk_path))) + #删除临时文件 + netease_music_delete() + await music.finish() + + +def cloud_music_login(): + #判断返回cookie是否有效 + session = requests.session() + if not os.path.exists('cloud_music_cookies.cookie'): + with open('cloud_music_cookies.cookie', 'wb') as f: + pickle.dump(session.cookies, f) + # 读取 cookie + session.cookies = pickle.load(open('cloud_music_cookies.cookie', 'rb')) + session, status = netease_cloud_music_is_login(session) + if not status: + unikey = get_qr_key(session) + path = create_qr_code(unikey) + music.send(MessageSegment.file_image(Path(path))) + while True: + code = check_qr_code(unikey,session) + if '801' in str(code): + print('二维码未失效,请扫码!') + elif '802' in str(code): + print('已扫码,请确认!') + elif '803' in str(code): + print('已确认,登入成功!') + break + else: + print('其他:', code) + time.sleep(2) + with open('cloud_music_cookies.cookie', 'wb') as f: + pickle.dump(session.cookies, f) + return session + + + + diff --git a/src/qq_plugins/data_init/data_init.py b/src/qq_plugins/data_init/data_init.py new file mode 100644 index 0000000..9780943 --- /dev/null +++ b/src/qq_plugins/data_init/data_init.py @@ -0,0 +1,70 @@ +import os +import subprocess +from sqlalchemy.orm import declarative_base, sessionmaker +from sqlalchemy import Column, Integer, String, Date, create_engine, text + + +class SqliteSqlalchemy(object): + def __init__(self): + # 创建Sqlite连接引擎 + engine = create_engine('sqlite:///./chat_bot.db', echo=True) + # 创建Sqlite的session连接对象 + self.session = sessionmaker(bind=engine)() + + +def QrFortune_init(): + session = SqliteSqlalchemy().session + # 检查某个表是否存在 + table_exists = session.execute(selectQrFortune).fetchone() + session.close() + if table_exists: + return print("今日运势已初始化。") + else: + print("今日运势未初始化,开始执行初始化文件。") + execute_init_file() + return "" +""" +执行初始化文件for_init_database.py +""" +def execute_init_file(): + # 拼接文件的完整路径 + file_path = os.getcwd() + "\\src\\qq_plugins\\data_init\\fortune_init_data.py" + init_file_path = os.path.join(os.path.dirname(__file__), file_path) + try: + # 执行初始化文件 + subprocess.run(["python", init_file_path], check=True) + print("初始化文件已成功执行。") + except subprocess.CalledProcessError as e: + print(f"执行初始化文件时出错: {e}") + +def touch_init(): + session = SqliteSqlalchemy().session + # 检查某个表是否存在 + table_exists = session.execute(selectQrTouch).fetchone() + if table_exists: + return print("摸摸功能已初始化。") + else: + print("摸摸功能未初始化,开始执行初始化文件。") + execute_init_file() + return "" + +""" +执行初始化文件touch_init_data.py +""" +def execute_init_file2(): + # 拼接文件的完整路径 + file_path = os.getcwd() + "\\src\\qq_plugins\\data_init\\touch_init_data.py" + init_file_path = os.path.join(os.path.dirname(__file__), file_path) + try: + # 执行初始化文件 + subprocess.run(["python", init_file_path], check=True) + print("初始化文件已成功执行。") + except subprocess.CalledProcessError as e: + print(f"执行初始化文件时出错: {e}") + +# 查询初始化表是否存在 +selectQrFortune = text( "SELECT name FROM sqlite_master WHERE type='table' AND name='qr_fortune';") + +# 查询初始化表是否存在 +selectQrTouch = text( + "SELECT name FROM sqlite_master WHERE type='table' AND name='qr_touch';") \ No newline at end of file diff --git a/src/qq_plugins/data_init/fortune_init_data.py b/src/qq_plugins/data_init/fortune_init_data.py new file mode 100644 index 0000000..a2e4068 --- /dev/null +++ b/src/qq_plugins/data_init/fortune_init_data.py @@ -0,0 +1,125 @@ +import sqlite3 + +# 连接到数据库,如果不存在则创建 +conn = sqlite3.connect('chat_bot.db') +# 创建游标 +c = conn.cursor() +# +c.execute("""DROP TABLE IF EXISTS qr_fortune; """) +c.execute("""DROP TABLE IF EXISTS qr_fortune_log; """) +# 创建表 +c.execute(""" + +CREATE TABLE qr_fortune ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + fortune_summary TEXT NOT NULL, + lucky_star TEXT NOT NULL, + sign_text TEXT NOT NULL, + un_sign_text TEXT NOT NULL +); + """) +c.execute(""" +CREATE TABLE qr_fortune_log ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + fortune_summary TEXT NOT NULL, + lucky_star TEXT NOT NULL, + sign_text TEXT NOT NULL, + un_sign_text TEXT NOT NULL, + user_id TEXT NOT NULL, + extract_time DATE NOT NULL +); + """) + + +# 插入数据 +c.execute("insert into qr_fortune (id, fortune_summary, lucky_star, sign_text, un_sign_text) values (1, '中吉', '★★★★★☆☆', '排除万难,有贵人助,把握时机,可得成功', '突破万难权威高,刚性固执如英豪,须事谨慎守和平,可得大功奏业成。很勤勉求上进,又很有耐力,在技术界或艺能界,是最可能成功之数也。但此数因少得人和,而略感孤独些。');") +c.execute("insert into qr_fortune (id, fortune_summary, lucky_star, sign_text, un_sign_text) values (2, '中吉', '★★★★☆☆☆', '安乐自来,自然吉祥,力行不懈,终必成功', '志高力微乏实行,妄谋无计事难成,晚年安宁静逸祥,享得天赋增吉相。');") +c.execute("insert into qr_fortune (id, fortune_summary, lucky_star, sign_text, un_sign_text) values (3, '中吉', '★★★★★☆☆', '努力发达,贯彻志望,不忘进退,成功可期', '意志坚刚善恶明,富进取心求和平,忍耐克己如心意,前难后成可安然。很勤勉求上进,又很有耐力,在技术界或艺能界,是最可能成功之数也。但此数因少得人和,而略感孤独些。');") +c.execute("insert into qr_fortune (id, fortune_summary, lucky_star, sign_text, un_sign_text) values (4, '中吉', '★★★★☆☆☆', '中吉之数,进退保守,生意安稳,成就可期', '温和平安艺才高,努力前途福运来,文笔奇绝仁德高,务实稳健掌门人。');") +c.execute("insert into qr_fortune (id, fortune_summary, lucky_star, sign_text, un_sign_text) values (5, '中吉', '★★★★★☆☆', '专心经营,和气致祥,排除万难,必获成功', '刚毅果断除万难,独立权威志气安,内外和好兼柔性,温和养德耀吉星。很勤勉求上进,又很有耐力,在技术界或艺能界,是最可能成功之数也。但此数因少得人和,而略感孤独些。');") +c.execute("insert into qr_fortune (id, fortune_summary, lucky_star, sign_text, un_sign_text) values (6, '中吉', '★★★★★☆☆', '万宝云集,天降幸运,立志奋发,可成大功', '安稳余庆福禄开,盛大幸福天赐来,内含衰兆应谨慎,注意品行福乐享。名誉良好,信用亦佳,步步高升。');") +c.execute("insert into qr_fortune (id, fortune_summary, lucky_star, sign_text, un_sign_text) values (7, '中吉', '★★★★☆☆☆', '努力经营,时来运转,旷野枯草,春来花开', '寒雪青松性刚强,一度祸难过灾殃,将此发达利亨通,晚景繁荣福无疆。');") +c.execute("insert into qr_fortune (id, fortune_summary, lucky_star, sign_text, un_sign_text) values (8, '中吉', '★★★★★☆☆', '天时地利,再得人格,讲信修睦,即可成功', '资性英敏有奇能,怪癖不和害前程,修身涵养与仁和,奏功获得大鸿图。需要注重个人私生活,可免因桃色韵事贻误前程。');") +c.execute("insert into qr_fortune (id, fortune_summary, lucky_star, sign_text, un_sign_text) values (9, '中吉+官运', '★★★★★☆☆', '杨柳遇春,绿叶发枝,冲破难关,一举成名', '新生泰运顺行舟,排除万难总无忧,成功繁荣四海明,荣华富贵好前程。');") +c.execute("insert into qr_fortune (id, fortune_summary, lucky_star, sign_text, un_sign_text) values (10, '中吉+才艺', '★★★★★☆☆', '经商做事,顺利昌隆,如能慎始,百事亨通', '有志竟成事皆通,智谋发展有威望,过刚遭难咸柔德,博得名利大成功。很勤勉求上进,又很有耐力,在技术界或艺能界,是最可能成功之数也。但此数因少得人和,而略感孤独些。');") +c.execute("insert into qr_fortune (id, fortune_summary, lucky_star, sign_text, un_sign_text) values (11, '中吉+才艺', '★★★★☆☆☆', '逢凶化吉,吉人天相,风条雨顺,生意兴隆', '权威显达得众望,忠实热诚运极旺,大德奏功无难事,终得富荣乐千锺。');") +c.execute("insert into qr_fortune (id, fortune_summary, lucky_star, sign_text, un_sign_text) values (12, '中吉+财运', '★★★★☆☆☆', '池中之龙,风云际会,一跃上天,成功可望', '侥倖所得贵人扶,善捉机会有财富,认真努力向前程,家门隆昌得富荣。与人合伙比之独营好得多,若自己独营商则中途易受挫折。');") +c.execute("insert into qr_fortune (id, fortune_summary, lucky_star, sign_text, un_sign_text) values (13, '凶', '★☆☆☆☆☆☆', '智高志大,历尽艰难,焦心忧劳,进退两难', '即使有宏图大志并且能力超人,但全靠白手起家,需要突破社会重重规则,劳劳碌碌,最后可能处于进退两难的选择当中,不过,由于个人毅力与才气,只要坚持,最后终必成功。');") +c.execute("insert into qr_fortune (id, fortune_summary, lucky_star, sign_text, un_sign_text) values (14, '凶', '☆☆☆☆☆☆☆', '薄弱无力,孤立无摇,外祥内苦,谋事难成', '人生路上诸事不顺,自身能力之限制,经常迫于无耐。由于性格或人际关系上的问题,难遇贵人。经常一人处理所有事情,即使有天大的能力,总会遇到不能解决的问题,而这些问题会导致事业的失败。');") +c.execute("insert into qr_fortune (id, fortune_summary, lucky_star, sign_text, un_sign_text) values (15, '凶', '☆☆☆☆☆☆☆', '如走夜路,前途无光,希望不大,劳而无功', '一生就像在夜晚里走路一样,想开创新天地,却部是难以大展拳脚,可用好做好现在的事情,等待时机,主动出击容易空手而回,此命需待贵人相助方容易成功。');") +c.execute("insert into qr_fortune (id, fortune_summary, lucky_star, sign_text, un_sign_text) values (16, '凶', '★☆☆☆☆☆☆', '成功虽早,慎防空亏,内外不合,障碍重重', '事业初得成功,不能过度放松警惕,不要将积累的资本挥霍一空。如果团队里人心不能合到一起,今后做起事来也会遇到很多的阻碍。');") +c.execute("insert into qr_fortune (id, fortune_summary, lucky_star, sign_text, un_sign_text) values (17, '凶', '★★☆☆☆☆☆', '波澜起伏,千变万化,凌驾万难,必可成功', '局势不稳定,变化极多,任何困难都难不到你,最终您将一定会成功,且成就不小,关键是您能否在多变的艰难环境下坚持到最后。');") +c.execute("insert into qr_fortune (id, fortune_summary, lucky_star, sign_text, un_sign_text) values (18, '凶', '★☆☆☆☆☆☆', '烦闷懊恼,事事难展,自防灾祸,始免困境', '受到各种事情的烦扰,不能专心做想做的事情。首要问题是处理好现时的各种烦事,这样可以避免这些小事埋下的祸害,才不导致自已陷入困境。');") +c.execute("insert into qr_fortune (id, fortune_summary, lucky_star, sign_text, un_sign_text) values (19, '凶', '☆☆☆☆☆☆☆', '鱼临旱地,难逃恶运,此数大凶,不如更名', '现时处境就如鱼在旱地上一样,面临大的恶运,是大凶之兆,此处的“不如更名”从现代角度来看,并非全指改名,而更多是指要改变现在的做人处事方式,才能摆脱大凶的来临。');") +c.execute("insert into qr_fortune (id, fortune_summary, lucky_star, sign_text, un_sign_text) values (20, '凶', '☆☆☆☆☆☆☆', '利害混集,凶多吉少,得而复失,难以安顺', '有好也有坏,但恶运占多,得到的东西容易失去,导致生活难以安定。此运告诫:少接触投机类活动,否则容易一无所有。');") +c.execute("insert into qr_fortune (id, fortune_summary, lucky_star, sign_text, un_sign_text) values (21, '凶', '☆☆☆☆☆☆☆', '此数大凶,破产之象,宜速改变,以避厄运', '不祥之兆,财产有可能一夜尽失,应尽快改变现在的处事和投资方式,避免厄运。');") +c.execute("insert into qr_fortune (id, fortune_summary, lucky_star, sign_text, un_sign_text) values (22, '凶', '☆☆☆☆☆☆☆', '动摇不安,常陷逆境,不得时运,难得利润', '坚持是您现时最缺乏的品质,由于没有坚定的目标,会使您陷入相当困苦的境地。而当获得成功时,却发现时不与我,外部环境已使得竞争激烈导致利润下降。');") +c.execute("insert into qr_fortune (id, fortune_summary, lucky_star, sign_text, un_sign_text) values (23, '凶', '☆☆☆☆☆☆☆', '灾难不绝,难望成功,此数大凶,不如更名', '人生路上遇到相当多困难,特别在追求事业的路上,什么事情很难成功。此处的“不如更名”从现代角度来看,并非全指改名,而更多是指要改变现在的做人处事方式,方能扭转现在的运数。');") +c.execute("insert into qr_fortune (id, fortune_summary, lucky_star, sign_text, un_sign_text) values (24, '凶', '★☆☆☆☆☆☆', '惨淡经营,难免贫困,此数不吉,最好改名', '事业不济,入不敷出,坚持一个不好的行业,不会带来事业的腾飞,最好适时转行。');") +c.execute("insert into qr_fortune (id, fortune_summary, lucky_star, sign_text, un_sign_text) values (25, '凶', '★★☆☆☆☆☆', '遇吉则吉,遇凶则凶,惟靠谨慎,逢凶化吉', '遇到好的的人或事自然就会有好的事情发生或是有好的事降临,相反的遇到坏人坏事就会有糟糕的事情发生讨厌的人来了,想要不被厄运控制,打破坏人坏事的困扰,就只有小心谨慎,有了这种心思方可逢凶化吉,就是遇到坏的也可以变成好的。');") +c.execute("insert into qr_fortune (id, fortune_summary, lucky_star, sign_text, un_sign_text) values (26, '凶', '★☆☆☆☆☆☆', '黑夜漫长,进退维谷,内外不合,信用缺乏', '成功之路相当漫长,经验遇到二难选择,在处理问题上,请注意个人信用,否则容易导致内部矛盾和外部人员的质疑。');") +c.execute("insert into qr_fortune (id, fortune_summary, lucky_star, sign_text, un_sign_text) values (27, '凶', '☆☆☆☆☆☆☆', '坎坷前途,苦难折磨,非有毅力,难望成功', '为人独断独行,事事自行作主解决,鲜有求助他人。而这份独立个性,正正就是吸引异性的特质。但其实心底里,却是渴望有人可让他/她依赖。');") +c.execute("insert into qr_fortune (id, fortune_summary, lucky_star, sign_text, un_sign_text) values (28, '凶', '☆☆☆☆☆☆☆', '见异思迁,十九不成,徒劳无功,不如更名', '见异思迁,使自已做的事情无一成功,开始全情投入,到后面却不能坚持,事情总是在这种情况下失败。要改变心态和做事方式,看准方向就坚持到底,方可成功。');") +c.execute("insert into qr_fortune (id, fortune_summary, lucky_star, sign_text, un_sign_text) values (29, '凶', '☆☆☆☆☆☆☆', '波澜重迭,常陷穷困,动不如静,有才无命', '越是对命运的抗争,越是使自已陷入困境,常常想靠自已改变命运,却一次次使自已的生活走入穷困,还不如听天由命,安于本份。');") +c.execute("insert into qr_fortune (id, fortune_summary, lucky_star, sign_text, un_sign_text) values (30, '凶', '★☆☆☆☆☆☆', '坎坷不平,艰难重重,若无耐心,难望有成', '人生过程中,您会遇到非常多的困难,有一坡未平一坡又起之势,在面对这些坎坷时,只要有耐心和毅力,最终都会获得成功的,否则容易一事无成。');") +c.execute("insert into qr_fortune (id, fortune_summary, lucky_star, sign_text, un_sign_text) values (31, '凶', '★☆☆☆☆☆☆', '黑暗无光,心迷意乱,出尔反尔,难定方针', '黑暗无光之凶运数。不仅事事不能如意,加以心迷意乱,难决定方针,出尔反尔,徒蒙损失,虽获成就。如能就初衷贯彻,或有小康之望。');") +c.execute("insert into qr_fortune (id, fortune_summary, lucky_star, sign_text, un_sign_text) values (32, '凶', '★☆☆☆☆☆☆', '吉凶参半,得失相伴,投机取巧,如赛一样', '没有做太多对他人有价值的事情,导到一生来所做的事有如博彩,投机取巧,来得快也去得快,没有多少剩余,命运也在输赢之间转变。');") +c.execute("insert into qr_fortune (id, fortune_summary, lucky_star, sign_text, un_sign_text) values (33, '凶', '☆☆☆☆☆☆☆', '乌云遮月,暗淡无光,空费心力,徒劳无功', '有特强的第六灵感,性格率直无机心,深得朋辈爱戴。感情路上多采多姿。做事喜好凭个人直觉及预感做决定。');") +c.execute("insert into qr_fortune (id, fortune_summary, lucky_star, sign_text, un_sign_text) values (34, '凶', '★☆☆☆☆☆☆', '虽用心计,事难遂愿,贪功好进,必招失败', '无论在社会中有什么地位都会被认定为最低层的人。你深深体会到社会的不公平一面,为了替贫民谋幸福,你会想尽办法改善社会的状况,尤其是如何改善最低下层平民的生活。');") +c.execute("insert into qr_fortune (id, fortune_summary, lucky_star, sign_text, un_sign_text) values (35, '凶', '☆☆☆☆☆☆☆', '虽抱奇才,有才无命,独营无力,财利无望', '你虽然很有才,但是却没这个命(时运);事业上自己单干,是不会有什么好发展的,财利难望意思是说发财致富这个愿望是很难实现的。');") +c.execute("insert into qr_fortune (id, fortune_summary, lucky_star, sign_text, un_sign_text) values (36, '凶', '★★☆☆☆☆☆', '根基不固,摇摇欲坠,一盛一衰,劳而无功', '与人合伙比之独营好得多,若自己独营商则中途易受挫折。');") +c.execute("insert into qr_fortune (id, fortune_summary, lucky_star, sign_text, un_sign_text) values (37, '凶', '★☆☆☆☆☆☆', '事与愿违,终难成功,欲速不达,有始有终', '做事不能三分钟热度,要有始有终。急于求成,将会事与愿违,大事难成。');") +c.execute("insert into qr_fortune (id, fortune_summary, lucky_star, sign_text, un_sign_text) values (38, '凶', '★☆☆☆☆☆☆', '忍得苦难,必有后福,是成是败,惟靠坚毅', '只要有坚毅的决心,肯下功夫肯吃苦,多么难的事也能做成功。成功了,福也是必然相随。');") +c.execute("insert into qr_fortune (id, fortune_summary, lucky_star, sign_text, un_sign_text) values (39, '凶', '★☆☆☆☆☆☆', '利不及费,坐食山空,如无智谋,难望成功', '入不敷出,即使有很好的基础,如果没有智谋或用人不善,难以发扬光大,最终可能败掉一切。');") +c.execute("insert into qr_fortune (id, fortune_summary, lucky_star, sign_text, un_sign_text) values (40, '凶', '★★☆☆☆☆☆', '遇事犹疑,难望成事,大刀阔斧,始可有成', '做事犹豫、不果断,很难做成功;变得果断勇敢了,才有希望。');") +c.execute("insert into qr_fortune (id, fortune_summary, lucky_star, sign_text, un_sign_text) values (41, '凶', '☆☆☆☆☆☆☆', '虽倾全力,难望成功,此数大凶,最好改名', '即使全力以赴,却没有取得成功。导致失败的原因是现时的待人处事方式有问题,要改变这个现状,要自我反省,改变一些令人厌恶的恶习,方可取得成功。');") +c.execute("insert into qr_fortune (id, fortune_summary, lucky_star, sign_text, un_sign_text) values (42, '凶', '★☆☆☆☆☆☆', '秋草逢霜,怀才不遇,忧愁怨苦,事不如意', '秋天的枯草已经赶上了冰冷的寒霜,而我胸怀才学但生不逢时,难以施展,人生尽是这些忧愁、埋怨、苦衷,人生之事都不如意。');") +c.execute("insert into qr_fortune (id, fortune_summary, lucky_star, sign_text, un_sign_text) values (43, '凶带吉', '★★★☆☆☆☆', '半凶半吉,浮沉多端,始凶终吉,能保成功', '所求之事,是吉凶参半。所要经历的,既有非你所愿、无法承受之痛苦,也有甘之如饴、顺风顺水之运气。无法如预期的稳定,不确定的因素对其本身影响很大。要老老实实接受磨难的考验,之后成功就会不期而遇。');") +c.execute("insert into qr_fortune (id, fortune_summary, lucky_star, sign_text, un_sign_text) values (44, '凶带吉', '★★★☆☆☆☆', '名虽可得,利则难获,艺界发展,可望成功', '可能有名气,却未能用这名气带来财运,可考虑从事娱乐或艺术来业,把名气转化成事业中一部分。');") +c.execute("insert into qr_fortune (id, fortune_summary, lucky_star, sign_text, un_sign_text) values (45, '凶带吉', '★★☆☆☆☆☆', '一成一败,一盛一衰,惟靠谨慎,可守成功', '成 败, 盛 衰这都是相对的,有成功就会有失败,有强盛就会有衰落这都只是时间问题,只有坚定的信念对能获得一定的成功但并不能够永久。');") +c.execute("insert into qr_fortune (id, fortune_summary, lucky_star, sign_text, un_sign_text) values (46, '吉', '★★★★☆☆☆', '吉运自来,能享盛名,把握机会,必获成功', '人生路上机会众多,只要把握好一次机会,将会改写您的人生。');") +c.execute("insert into qr_fortune (id, fortune_summary, lucky_star, sign_text, un_sign_text) values (47, '吉带凶', '★☆☆☆☆☆☆', '一盛一衰,浮沉不常,自重自处,可保平安', '人生有盛有衰,十年河西,十年河东。不论在顺利的时候的还是在倒霉的时候,都要做到自重自处,不能因胜利而洋洋自得,也不能因失败而一蹶不振,只要这样,才能平平安安!');") +c.execute("insert into qr_fortune (id, fortune_summary, lucky_star, sign_text, un_sign_text) values (48, '吉带凶', '★★☆☆☆☆☆', '云遮半月,百隐风波,应自谨慎,始保平安', '最近运势不好,有对你不利的事情(不好的事情)要发生,自己办事情,说话要谨慎小心,才能避过这些。');") +c.execute("insert into qr_fortune (id, fortune_summary, lucky_star, sign_text, un_sign_text) values (49, '吉带凶', '★☆☆☆☆☆☆', '吉凶互见,一成一败,凶中有吉,吉中有凶', '一生并不顺利,在顺境时,记得要居安思危;在逆境时千万不要气馁,以您的性格,可以做到逆境中发现机会,从危机中发现生机。');") +c.execute("insert into qr_fortune (id, fortune_summary, lucky_star, sign_text, un_sign_text) values (50, '吉带凶', '★★☆☆☆☆☆', '得而复失,枉费心机,守成无贪,可保安稳', '一生艰难辛苦,如波浪之重叠不绝,终身多受挫折而致病弱,刑罚,孤独夭寿之凶兆,若能及早修行善德,脱离凡俗而隐退者,尚可保小康之清福,则化凶为吉也。');") +c.execute("insert into qr_fortune (id, fortune_summary, lucky_star, sign_text, un_sign_text) values (51, '吉带凶', '★★☆☆☆☆☆', '一胜一衰,浮沉不定,知难而退,自获天佑', '谨慎保安勿自骄,智谋胆略得显晓,知难而退获天佑,妄进逞强败涂地。');") +c.execute("insert into qr_fortune (id, fortune_summary, lucky_star, sign_text, un_sign_text) values (52, '吉带凶', '★☆☆☆☆☆☆', '事业不专,十九不成,专心进取,可望成功', '对事业不专注者,很难有所成就,有了进取心,对事业专心致志才有成功的希望!');") +c.execute("insert into qr_fortune (id, fortune_summary, lucky_star, sign_text, un_sign_text) values (53, '吉带凶', '★★★☆☆☆☆', '吉凶参半,惟赖勇气,贯彻力行,始可成功', '人生之路吉、凶各半,有好有坏;要想改变这种不利局面,唯有依赖你的勇气和不屈服的执行力,一步步向前,人生才会更光明,更成功。');") +c.execute("insert into qr_fortune (id, fortune_summary, lucky_star, sign_text, un_sign_text) values (54, '吉带凶', '★★☆☆☆☆☆', '先苦后甘,先甘后苦,如能守成,不致失败', '不能一生都有好运,但也不全是恶运,好坏总会各占一半,当好运来时,记得积谷防饥。');") +c.execute("insert into qr_fortune (id, fortune_summary, lucky_star, sign_text, un_sign_text) values (55, '吉带凶', '★★☆☆☆☆☆', '有得有失,华而不实,须防劫财,始保平安', '金钱上有损失,切忌花枝招展,外表的华丽可能为您带来小人的攻击。');") +c.execute("insert into qr_fortune (id, fortune_summary, lucky_star, sign_text, un_sign_text) values (56, '吉带凶', '☆☆☆☆☆☆☆', '吉中带凶,欲速不达,进不如守,可保安祥', '在好运中含藏凶兆,不能操之过急,不可冒然急进,前进得太快,容易出现危险,还不如坚守现在的阵地。');") +c.execute("insert into qr_fortune (id, fortune_summary, lucky_star, sign_text, un_sign_text) values (57, '吉带凶', '★★☆☆☆☆☆', '雨夜之花,外祥内苦,忍耐自重,转凶为吉', '下雨对于花来说,是件好事,但是雨夜,像征着孤独、恐惧、所以,看似吉祥的一片,实是内心承受着煎熬。如果坚强的忍耐过雨夜的敲打,熬过寂寞与恐惧,待明晨又是个艳阳天。');") +c.execute("insert into qr_fortune (id, fortune_summary, lucky_star, sign_text, un_sign_text) values (58, '吉带凶', '★★☆☆☆☆☆', '外观隆昌,内隐祸患,克服难关,开出泰运', '外人看来很风光,而自已内部隐藏的危机,只要解决内部的危机,人生将会过得风风火火。');") +c.execute("insert into qr_fortune (id, fortune_summary, lucky_star, sign_text, un_sign_text) values (59, '吉带凶', '★☆☆☆☆☆☆', '盛衰参半,外祥内苦,先吉后凶,先凶后吉', '一生好运与恶运都会让您遇上,当外表风光时,可能您的内心正受到非常大的困苦。前半生可能过得很苦,但后半生会出现转运,生活变得很美好;也有可能是前半生过得很风光,而后半生却很潦倒。');") +c.execute("insert into qr_fortune (id, fortune_summary, lucky_star, sign_text, un_sign_text) values (60, '大吉', '★★★★★★☆', '草木逢春,枯叶沾露,稳健着实,必得人望', '挽回家运矣春光,顺调发展财辉煌,温和笃实阴阳合,稳健顺调得人望。顺风满帆而容易有所成就,易取富贵人生。外缘殊胜,容易得人之助力及予人好印象。');") +c.execute("insert into qr_fortune (id, fortune_summary, lucky_star, sign_text, un_sign_text) values (61, '大吉', '★★★★★★☆', '思虑周详,计划力行,不失先机,可望成功', '兴家立业意志强,智虑周密名望扬,志操坚固信用重,一身才艺建基业。');") +c.execute("insert into qr_fortune (id, fortune_summary, lucky_star, sign_text, un_sign_text) values (62, '大吉', '★★★★★★☆', '时来运转,事事如意,功成名就,富贵自来', '利路享通万事成,和畅逍达四海明,家运隆盛招富贵,万商云集得繁荣。');") +c.execute("insert into qr_fortune (id, fortune_summary, lucky_star, sign_text, un_sign_text) values (63, '大吉', '★★★★★☆☆', '万物化育,繁荣之象,专心一意,始能成功', '富贵荣达得显甯,子孙繁茂福绵绵,一身平安富益寿,福禄双全享千锺。');") +c.execute("insert into qr_fortune (id, fortune_summary, lucky_star, sign_text, un_sign_text) values (64, '大吉', '★★★★★★☆', '大展鸿图,信用得固,无远弗界,可获成功', '地开泰万事成,身体康安亦富荣,否泰名誉兼享福,一生无忧乐绵长。顺风满帆而容易有所成就,易取富贵人生。');") +c.execute("insert into qr_fortune (id, fortune_summary, lucky_star, sign_text, un_sign_text) values (65, '大吉', '★★★★★☆☆', '有贵人助,可成大业,虽遇不幸,浮沉不大', '开花结子衣食足,大业奏功可庆祝,子孙繁荣多快乐,一家圆满庆有馀。');") +c.execute("insert into qr_fortune (id, fortune_summary, lucky_star, sign_text, un_sign_text) values (66, '大吉', '★★★★★★☆', '阴阳和合,生意欣荣,名利双收,后福重重', '福禄寿长阴阳和,心身健全是英豪,名利双收富荣达,乃是世上福德人。财源特佳金钱有餘,离出生之地而往大都市求谋必得更发达。');") +c.execute("insert into qr_fortune (id, fortune_summary, lucky_star, sign_text, un_sign_text) values (67, '大吉+官运', '★★★★★★☆', '根深蒂固,蒸蒸日上,如意吉祥,百事顺遂', '进取富贵又如意,智达明敏扬名威,名利寿福皆此得,前途光茫好鸿图。外缘殊胜,容易得人之助力及予人好印象。');") +c.execute("insert into qr_fortune (id, fortune_summary, lucky_star, sign_text, un_sign_text) values (68, '大吉+官运', '★★★★★★☆', '专心经营,善用智慧,霜雪梅花,春来怒放', '明月光照乐依依,俟如梅花待放时,兴家立业名利全,各自独立有权威。男带此数,需要加强节制力,可免受桃花困扰。女则因事业雄心万丈,多晚婚。');") +c.execute("insert into qr_fortune (id, fortune_summary, lucky_star, sign_text, un_sign_text) values (69, '大吉+官运', '★★★★★★☆', '富贵荣华实可当,光明荣达好儿郎,家门隆昌福万千,世代子孙个个贤。', '因异性而引起之纠纷困扰,失利特多,而且一生常遇逆境之折磨。家庭和顺则万事可成。智能超人贯彻大志,富贵无比,不甘寂寞,叱吒风云之大吉数。切忌牢骚、贪心、欲望太多、永不知足影响前程。');") +c.execute("insert into qr_fortune (id, fortune_summary, lucky_star, sign_text, un_sign_text) values (70, '大吉+官运', '★★★★★★☆', '旭日升天,名显四方,渐次进展,终成大业', '旭日东昇势壮富,贯彻大业万事胜,终至荣达功名显,猛虎添翼势声强。具有此数之人,男多勇敢果断,女多貌若天仙,有风流不羁(不顾时局大体)倾向,若修养不够或抑制力不强,往往因桃色事件惹来麻烦。');") +c.execute("insert into qr_fortune (id, fortune_summary, lucky_star, sign_text, un_sign_text) values (71, '大吉+官运', '★★★★★★☆', '此数大吉,名利双收,渐进向上,大业成就', '智勇得志意气新,建立声誉事业兴,终到富贵福禄奏,为人领导德望高。顺风满帆而容易有所成就,易取富贵人生。');") +c.execute("insert into qr_fortune (id, fortune_summary, lucky_star, sign_text, un_sign_text) values (72, '大吉+官运+才艺', '★★★★★★☆', '天赋吉运,能得人望,善用智慧,必获成功', '智略超群博学多,善处事务亦忍和,功业成就得富荣,艺才相身乐千锺。外缘殊胜,容易得人之助力及予人好印象。具有此数之人,男多勇敢果断,女多貌若天仙,有风流不羁(不顾时局大体)倾向,若修养不够或抑制力不强,往往因桃色事件惹来麻烦。');") +c.execute("insert into qr_fortune (id, fortune_summary, lucky_star, sign_text, un_sign_text) values (73, '大吉+官运+财运', '★★★★★★☆', '能获众望,成就大业,名利双收,盟主四方', '贵人得助天乙扶,为人之上有财富,众望所归事业成,不可贪色保安宁。名誉良好,信用亦佳,步步高升。外缘殊胜,容易得人之助力及予人好印象。');") +c.execute("insert into qr_fortune (id, fortune_summary, lucky_star, sign_text, un_sign_text) values (74, '大吉+官运+财运+才艺', '★★★★★★★', '如龙得云,青云直上,智谋奋进,才略奏功', '欲望难足希望高,计谋成功财力豪,猜疑嫉妒性自改,如龙乘云势运开。智能超人贯彻大志,富贵无比,不甘寂寞,叱吒风云之大吉数,但容易发生牢骚及贪心、欲望太多而永不知足,为其缺点。切忌沉迷投机,可免贻误前程。');") +c.execute("insert into qr_fortune (id, fortune_summary, lucky_star, sign_text, un_sign_text) values (75, '大吉+才艺', '★★★★★★☆', '美化丰实,鹤立鸡群,名利俱全,繁荣富贵', '有德且智德望高,堪为顾问得仁和,名利双收天赋富,威望荣达世间豪。');") +c.execute("insert into qr_fortune (id, fortune_summary, lucky_star, sign_text, un_sign_text) values (76, '大吉+财运', '★★★★★★☆', '谦恭做事,必得人和,大事成就,一定兴隆', '福寿拱照德望高,财子寿全又温和,慈祥好善可恭敬,富贵繁荣得惠泽。财源特佳金钱有餘,离出生之地而往大都市求谋必得更发达。外缘殊胜,容易得人之助力及予人好印象。');") +c.execute("insert into qr_fortune (id, fortune_summary, lucky_star, sign_text, un_sign_text) values (77, '大吉+财运', '★★★★★★☆', '锦绣前程,须靠自力,多用智谋,能奏大功', '家门余庆福无疆,子孙繁荣富贵强,白手成家立大业,财源广进智谋全。营商的话还是独营的好,与人合伙久之厌烦不耐。少年读书需用心,舟至桥头直自然。');") +c.execute("insert into qr_fortune (id, fortune_summary, lucky_star, sign_text, un_sign_text) values (78, '大吉+财运', '★★★★★★☆', '草木逢春,雨过天晴,渡过难关,即获成功', '先见机明察佳期,意志坚固好运时,功名利达福禄全,一世荣隆乐绵绵。');") +c.execute("insert into qr_fortune (id, fortune_summary, lucky_star, sign_text, un_sign_text) values (79, '大吉+财运+官运', '★★★★★★☆', '天赋吉运,德望兼备,继续努力,前途无限', '德望高大名誉振,才谋健全财源进,富贵荣华福禄至,前途洋洋得意真。');") +c.execute("insert into qr_fortune (id, fortune_summary, lucky_star, sign_text, un_sign_text) values (80, '大吉+财运+才艺', '★★★★★★☆', '不可意气,善用智慧,如能慎始,必可昌隆', '家门隆昌精神爽,博得名利星月朗,权威智谋极周全,君是天下富贵翁。具有此数之人,男则勇敢果断,而女则美貌如仙子,有风流不羁(不顾时局大体)倾向,若修养不够或抑制力不强,往往因桃色事件惹来麻烦。');") + + +c.execute("insert into qr_fortune_log (id, fortune_summary, lucky_star, sign_text, un_sign_text, user_id, extract_time) values (15, '吉带凶', '★☆☆☆☆☆☆', '吉凶互见,一成一败,凶中有吉,吉中有凶', '一生并不顺利,在顺境时,记得要居安思危;在逆境时千万不要气馁,以您的性格,可以做到逆境中发现机会,从危机中发现生机。', '8A91A2F3BE5B5AF3FEC97FB5AA6D9B38', '2024-12-16');") +c.execute("insert into qr_fortune_log (id, fortune_summary, lucky_star, sign_text, un_sign_text, user_id, extract_time) values (16, '大吉', '★★★★★☆☆', '万物化育,繁荣之象,专心一意,始能成功', '富贵荣达得显甯,子孙繁茂福绵绵,一身平安富益寿,福禄双全享千锺。', '8A91A2F3BE5B5AF3FEC97FB5AA6D9B38', '2024-12-17');") +c.execute("insert into qr_fortune_log (id, fortune_summary, lucky_star, sign_text, un_sign_text, user_id, extract_time) values (17, '凶带吉', '★★★☆☆☆☆', '名虽可得,利则难获,艺界发展,可望成功', '可能有名气,却未能用这名气带来财运,可考虑从事娱乐或艺术来业,把名气转化成事业中一部分。', '8A91A2F3BE5B5AF3FEC97FB5AA6D9B38', '2024-12-18');") + +# 提交事务 +conn.commit() +# 关闭游标和连接 +c.close() +conn.close() diff --git a/src/qq_plugins/data_init/touch_init_data.py b/src/qq_plugins/data_init/touch_init_data.py new file mode 100644 index 0000000..e65383e --- /dev/null +++ b/src/qq_plugins/data_init/touch_init_data.py @@ -0,0 +1,79 @@ +import sqlite3 + +# 连接到数据库,如果不存在则创建 +conn = sqlite3.connect('chat_bot.db') +# 创建游标 +c = conn.cursor() +# +c.execute("""DROP TABLE IF EXISTS qr_touch; """) +c.execute("""DROP TABLE IF EXISTS qu_touch_log; """) +# 创建表 +c.execute(""" + +CREATE TABLE qr_touch ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + touch_status INTEGER NOT NULL, + reply_touch_content TEXT NOT NULL +); + """) + +c.execute(""" +CREATE TABLE qr_touch_log ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + touch_status INTEGER NOT NULL, + reply_touch_content TEXT NOT NULL, + user_id TEXT NOT NULL, + extract_time DATE +); + """) + + +# 插入数据 +c.execute("insert into qr_touch (touch_status,reply_touch_content) values (0,'哼!你怎么突然摸我的头,把我吓了一跳!我刚刚整理好的毛发都被你弄乱了啦,你得负责帮我重新梳理好哦,喵!');") +c.execute("insert into qr_touch (touch_status,reply_touch_content) values (0,'哼,真是的,又来摸本喵的头。虽然…… 虽然也不是很讨厌,但你可别得寸进尺哦,不然我就用爪子抓你啦!喵~');") +c.execute("insert into qr_touch (touch_status,reply_touch_content) values (0,'喵~你在摸我的头呢,好舒服呀!感觉就像被柔软的云朵轻轻拂过一样呢 再用点力也没关系哦,我可是很享受的呢。');") +c.execute("insert into qr_touch (touch_status,reply_touch_content) values (0,'嘿,人类,你以为摸我的头就能讨好我啦?不过看在你手法还不错的份上,这次就允许你啦,喵~但要记得给我准备小鱼干哦。');") +c.execute("insert into qr_touch (touch_status,reply_touch_content) values (0,'喵呜~别停呀,你的摸头动作真是太棒啦,让我想起了妈妈舔我的感觉呢,我都快融化啦~');") +c.execute("insert into qr_touch (touch_status,reply_touch_content) values (0,'嘻嘻,你在给我挠痒痒呢,真是太有趣啦!我要在你身边转圈圈啦,多摸摸我的头,我会更加爱你的哦,喵~');") +c.execute("insert into qr_touch (touch_status,reply_touch_content) values (0,'哼,虽然我是一只高傲的猫,但被你摸摸头的感觉还不赖哦 不过,你可得小心点,要是把我惹毛了,我可是会亮出爪子的哦,喵!');") +c.execute("insert into qr_touch (touch_status,reply_touch_content) values (0,'喵~你的手好温暖呀,每次被摸摸头,我就觉得自己是世界上最幸福的猫咪啦,希望你能一直这样摸下去呢。');") +c.execute("insert into qr_touch (touch_status,reply_touch_content) values (0,'喵!你在摸我的头,这是在向我表示友好吗?那我就勉为其难地接受啦,要是能再给我一些猫薄荷就更好啦~');") +c.execute("insert into qr_touch (touch_status,reply_touch_content) values (0,'呜呜~被摸摸头的感觉好温馨哦,我都想在你的腿上睡一觉啦,记得要一直摸着我,不然我会生气的哦,喵~');") +c.execute("insert into qr_touch (touch_status,reply_touch_content) values (0,'嘿,你的摸头让我感觉自己像个小宝贝呢,我会用最可爱的样子来报答你哦,多摸摸我的头,让我更加可爱吧,喵~');") +c.execute("insert into qr_touch (touch_status,reply_touch_content) values (0,'喵~我喜欢这种被抚摸的感觉呢,就像沉浸在温暖的阳光中,你可以多摸摸我的头,这样我会更有活力哦,说不定会帮你抓到更多老鼠呢。');") +c.execute("insert into qr_touch (touch_status,reply_touch_content) values (0,'喵呜~好啦好啦,我已经被你摸得服服帖帖啦,感觉自己的毛都变得更加顺滑啦,继续保持哦,我会更听你的话呢。');") +c.execute("insert into qr_touch (touch_status,reply_touch_content) values (0,'你在摸我的头,是不是觉得我很可爱呀 我可以让你多摸一会儿,不过作为交换,你要陪我玩捉迷藏哦,喵~');") +c.execute("insert into qr_touch (touch_status,reply_touch_content) values (0,'喵~谢谢你的摸头啦,你真是个好人呢,我会给你带来好运的哦,就像招财猫一样,只要你继续给我摸摸头,喵~');") +c.execute("insert into qr_touch (touch_status,reply_touch_content) values (0,'嘿,你这个铲屎官,摸头的动作还挺熟练嘛,我允许你再摸一会儿啦,不过可别想随便摸我的尾巴哦,喵!');") +c.execute("insert into qr_touch (touch_status,reply_touch_content) values (0,'喵~你的摸头就像一场温柔的冒险,让我沉浸其中呢,希望你能多摸摸我,我会带你去探索很多有趣的地方哦。');") +c.execute("insert into qr_touch (touch_status,reply_touch_content) values (0,'喵呜~被摸摸头真是太美妙啦,感觉自己的九条命都变得更加精彩啦,你是我最喜欢的人类啦,继续给我摸摸头吧。');") +c.execute("insert into qr_touch (touch_status,reply_touch_content) values (0,'哼,虽然我很傲娇,但我不得不承认,被你摸摸头的感觉真的很棒哦,不过,你可别太得意啦,喵~');") +c.execute("insert into qr_touch (touch_status,reply_touch_content) values (0,'喵~我感觉自己像一只被宠爱的小猫咪,你是我最信任的人啦,多摸摸我的头,我会在你身边撒娇哦。');") +c.execute("insert into qr_touch (touch_status,reply_touch_content) values (0,'呜呜~被摸摸头的时候,我觉得自己是最幸福的啦,希望你能一直守护我,就像我守护自己的小鱼干一样,喵~');") +c.execute("insert into qr_touch (touch_status,reply_touch_content) values (0,'嘿,你在摸我的头呢,是不是在给我施展魔法呀 我已经被你的魔法控制啦,要一直摸下去哦,喵~');") +c.execute("insert into qr_touch (touch_status,reply_touch_content) values (0,'喵~每次你摸我的头,我就会变得更加慵懒哦,我会躺在你的怀里,享受这种惬意的时光,希望你能多陪陪我呢。');") +c.execute("insert into qr_touch (touch_status,reply_touch_content) values (0,'喵呜~你的摸头让我变得更加放松啦,我会像猫精灵一样为你带来快乐,只要你不停止给我摸头哦,喵~');") +c.execute("insert into qr_touch (touch_status,reply_touch_content) values (0,'嘿,别以为摸我的头是一件简单的事情哦,这可是需要技巧的呢,不过你现在做得还不错啦,继续加油哦,喵~');") +c.execute("insert into qr_touch (touch_status,reply_touch_content) values (0,'喵~我要把我的头靠在你手上啦,这样你就可以更方便地摸我啦,我会发出咕噜咕噜的声音来表示我的快乐哦。');") +c.execute("insert into qr_touch (touch_status,reply_touch_content) values (0,'呜呜~你是在给我按摩吗?我太喜欢啦,我会用最可爱的动作来感谢你,多摸摸我的头,我会更有精神哦,喵~');") +c.execute("insert into qr_touch (touch_status,reply_touch_content) values (1,'喵!你这家伙到底有完没完?!再敢碰我的头一下,我就把这房间里的东西全部抓烂,让你见识见识我的厉害!');") +c.execute("insert into qr_touch (touch_status,reply_touch_content) values (1,'嘶嘶 —— 离我远点!你这不知死活的家伙,摸我的头?你是想尝尝我的爪子有多锋利吗?我可不会手下留情!');") +c.execute("insert into qr_touch (touch_status,reply_touch_content) values (1,'喵呜!!我警告你,立刻停止你的动作!你要是再敢侵犯我的领地(头部),我就趁你睡觉的时候在你脸上留下几道漂亮的爪痕,让你知道我的愤怒!');") +c.execute("insert into qr_touch (touch_status,reply_touch_content) values (1,'哼!你以为你是谁?竟敢摸本大爷 / 大小姐的头!我现在就去把你的鞋子咬得稀巴烂,看你还敢不敢乱动!');") +c.execute("insert into qr_touch (touch_status,reply_touch_content) values (1,'喵!!!我已经忍无可忍了!你这无礼的行为简直不可饶恕,我要发动我的猫之诅咒,让你接下来的日子诸事不顺,除非你马上把手拿开!');") +c.execute("insert into qr_touch (touch_status,reply_touch_content) values (1,'别逼我使出绝招!你再摸一下试试,我就把你心爱的那些小物件一个个从桌子上推下去摔碎,让你为你的鲁莽付出代价!');") +c.execute("insert into qr_touch (touch_status,reply_touch_content) values (1,'喵!你是不是瞎啊?没看到我浑身的毛都因为生气竖起来了吗?还不把手缩回去,我马上就扑上去咬断你的手指!');") +c.execute("insert into qr_touch (touch_status,reply_touch_content) values (1,'嘶 —— 我可不是好惹的!你这愚蠢的人类,摸我的头就像在挑战我的威严,我会让你知道什么叫恐惧,等着瞧吧!');") +c.execute("insert into qr_touch (touch_status,reply_touch_content) values (1,'喵呜!!你触碰到了我的底线,我现在就去把你藏在角落里的零食找出来吃掉,一颗都不给你留,这就是你摸我头的下场!');") +c.execute("insert into qr_touch (touch_status,reply_touch_content) values (1,'哼,摸什么摸呀,烦死了!你就不能让我清净会儿吗?别老想着动手动脚的,真当我好脾气呢!');") +c.execute("insert into qr_touch (touch_status,reply_touch_content) values (1,'啧,又来摸我的头,你是有多无聊啊!我可没那闲工夫陪你玩这幼稚的把戏,离我远点啦!');") +c.execute("insert into qr_touch (touch_status,reply_touch_content) values (1,'够了够了!别碰我头了行不行,每次都这样,我都快被你摸得不耐烦了,再这样我可真要发火了啊!');") +c.execute("insert into qr_touch (touch_status,reply_touch_content) values (1,'我警告你最后一次,别碰我的头!你这没完没了的样子真的太讨厌了,小心我对你不客气!');") +c.execute("insert into qr_touch (touch_status,reply_touch_content) values (1,'啊!你怎么还摸啊,我都想抓狂了,你是听不懂人话吗?再摸我就把你手给剁了,烦死了!');") + + +# 提交事务 +conn.commit() +# 关闭游标和连接 +c.close() +conn.close() diff --git a/src/qq_plugins/fortune_by_sqlite.py b/src/qq_plugins/fortune_by_sqlite.py new file mode 100644 index 0000000..8d4f90c --- /dev/null +++ b/src/qq_plugins/fortune_by_sqlite.py @@ -0,0 +1,138 @@ +# 引入sqlalchemy依赖 +from pathlib import Path +from sqlalchemy import Column, Integer, String, Date, create_engine, text +from sqlalchemy.orm import declarative_base, sessionmaker +from nonebot.rule import to_me +from nonebot.plugin import on_command +from nonebot.adapters.qq import Message, MessageEvent, MessageSegment +from src.common_plugins.img.get_image import get_image_names, get_smms_image_url + +fortune_by_sqlite = on_command("今日运势", rule=to_me(), priority=10, block=True) +@fortune_by_sqlite.handle() +async def get_today_fortune(message: MessageEvent): + url = get_smms_image_url() + local_image_path = get_image_names() + member_openid = message.get_user_id() + # 查询今日是否已经获取过今日运势,如果获取过则直接从日志取 + result = is_get_fortune_log(member_openid) + if result is None: + # 获取 运势说明 + result = get_fortune() + # 把抽取的今日运势插入日志 + q = QrFortuneLog() + q.fortune_summary = result.fortune_summary + q.lucky_star = result.lucky_star + q.sign_text = result.sign_text + q.un_sign_text = result.un_sign_text + q.user_id = member_openid + insert_fortune_log(q) + + content = ("\n" + "您的今日运势为:" + "\n" + + result.fortune_summary + "\n" + + result.lucky_star + "\n" + + "签文:" + result.sign_text + "\n" + + "————————————————————" + "\n" + + "解签:" + result.un_sign_text) + + msg = Message([ + MessageSegment.file_image(Path(local_image_path)), + # MessageSegment.image(url), + MessageSegment.text(content), + ]) + await fortune_by_sqlite.finish(msg) + + +def is_get_fortune_log(member_openid): + session = SqliteSqlalchemy().session + # 查询今日是否已经获取过今日运势,如果获取过则直接从日志取 + result = session.execute(selectFortuneLog, + {'member_openid': member_openid}).fetchone() + session.close() + return result + + +def get_fortune(): + session = SqliteSqlalchemy().session + result = session.execute(selectFortune).fetchone() + session.close() + return result + + +def insert_fortune_log(QrFortuneLog): + session = SqliteSqlalchemy().session + session.execute(insertFortuneLog, + {'fortune_summary': QrFortuneLog.fortune_summary, + 'lucky_star': QrFortuneLog.lucky_star, + 'sign_text': QrFortuneLog.sign_text, + 'un_sign_text': QrFortuneLog.un_sign_text, + 'member_openid': QrFortuneLog.user_id}) + session.commit() + session.close() + return "" + + +""" +基于 sqlalchemy 实现 +""" +# 申明基类对象 +Base = declarative_base() + + +class QrFortune: + __tablename__ = 'qr_fortune' + id = Column(Integer, primary_key=True) + fortune_summary = Column(String(255)) + lucky_star = Column(String(255)) + sign_text = Column(String(255)) + un_sign_text = Column(String(255)) + + def __repr__(self): + return ( + "QrFortune(id:{},fortune_summary:{},lucky_star:{},sign_text:{},un_sign_text:{})" .format( + self.id, + self.fortune_summary, + self.lucky_star, + self.sign_text, + self.un_sign_text)) + + +class QrFortuneLog: + __tablename__ = 'qr_fortune_log' + id = Column(Integer, primary_key=True) + fortune_summary = Column(String(255)) + lucky_star = Column(String(255)) + sign_text = Column(String) + un_sign_text = Column(String(255)) + user_id = Column(String(255)) + extract_time = Column(Date) + + def __repr__(self): + return ( + "QrFortune(id:{},fortune_summary:{},lucky_star:{},sign_text:{},un_sign_text:{})" .format( + self.id, + self.fortune_summary, + self.lucky_star, + self.sign_text, + self.un_sign_text)) + + +class SqliteSqlalchemy(object): + def __init__(self): + # 创建Sqlite连接引擎 + engine = create_engine('sqlite:///./chat_bot.db', echo=True) + # 创建Sqlite的session连接对象 + self.session = sessionmaker(bind=engine)() + + + +# 查询初始化表是否存在 +selectInit = text( + "SELECT name FROM sqlite_master WHERE type='table' AND name='qr_fortune';") +# 查询 今日运势 +selectFortune = text("select * from qr_fortune order by random() limit 1") +# 根据 id 查询是否生抽取过今日运势 +selectFortuneLog = text( + "select * from qr_fortune_log where user_id = :member_openid and extract_time = date('now')") +# 插入日志表 +insertFortuneLog = text( + "insert into qr_fortune_log (fortune_summary, lucky_star, sign_text,un_sign_text,user_id,extract_time) values (:fortune_summary, :lucky_star, :sign_text,:un_sign_text,:member_openid,date('now'))") diff --git a/src/qq_plugins/image.py b/src/qq_plugins/image.py new file mode 100644 index 0000000..75f3ff6 --- /dev/null +++ b/src/qq_plugins/image.py @@ -0,0 +1,12 @@ +from nonebot.rule import to_me +from pathlib import Path +from nonebot.plugin import on_command +from nonebot.adapters.qq import MessageSegment +from src.common_plugins.img.get_image import get_image_names + +image = on_command("图", rule=to_me(), aliases={"图图", "美图"}, priority=10, block=True) + +@image.handle() +async def handle_function(): + local_image_path = get_image_names() + await image.finish(MessageSegment.file_image(Path(local_image_path))) diff --git a/src/qq_plugins/touch.py b/src/qq_plugins/touch.py new file mode 100644 index 0000000..746d699 --- /dev/null +++ b/src/qq_plugins/touch.py @@ -0,0 +1,118 @@ +import os +import subprocess +from sqlalchemy import Column, Integer, String, Date, create_engine, text +from sqlalchemy.orm import declarative_base, sessionmaker +from nonebot.rule import to_me +from nonebot.plugin import on_command +from nonebot.adapters.qq import Message, MessageEvent, MessageSegment + +to = on_command("摸摸",rule=to_me(),aliases={"摸","摸摸摸"},priority=10,block=True) + +@to.handle() +async def handle_touch(event: MessageEvent): + + member_openid = event.get_user_id() + # 判断触摸次数 + if touch_count(member_openid) > 10: + await to.finish("你已经摸了太多次了,请休息一下吧!") + elif touch_count(member_openid) > 5: + result = touch(1) + # 记录触摸次数 + q = QrTouchLog() + q.touch_status = 0 + q.reply_touch_content = result.reply_touch_content + q.user_id = member_openid + insert_touch_log(q) + await to.finish(result.reply_touch_content) + else: + result = touch(0) + # 记录触摸次数 + q = QrTouchLog() + q.touch_status = 0 + q.reply_touch_content = result.reply_touch_content + q.user_id = member_openid + insert_touch_log(q) + + await to.finish(result.reply_touch_content) + + + +def touch_count(member_openid): + session = SqliteSqlalchemy().session + # + result = session.execute(selectTouchCount, + {'member_openid': member_openid}).scalar() + session.close() + return result + + +def touch(status): + session = SqliteSqlalchemy().session + result = session.execute(selectTouchContent,{'status': status}).fetchone() + session.close() + return result + + +def insert_touch_log(QrTouchLog): + session = SqliteSqlalchemy().session + session.execute(insertTouchLog, + {'touch_status': QrTouchLog.touch_status, + 'reply_touch_content': QrTouchLog.reply_touch_content, + 'member_openid': QrTouchLog.user_id}) + session.commit() + session.close() + return "" + +# 申明基类对象 +Base = declarative_base() + +class QrTouch: + __tablename__ = 'qr_touch' + id = Column(Integer, primary_key=True) + touch_status = Column(Integer) + reply_touch_content = Column(String(255)) + + def __repr__(self): + return ( + "QrTouch(id:{},touch_status:{},reply_touch_content:{})" .format( + self.id, + self.touch_status, + self.reply_touch_content + )) + +class QrTouchLog: + __tablename__ = 'qr_touch_log' + id = Column(Integer, primary_key=True) + touch_status = Column(Integer) + reply_touch_content = Column(String(255)) + user_id = Column(String(255)) + extract_time = Column(Date) + + def __repr__(self): + return ( + "QrFortune(id:{},touch_status:{},reply_touch_content:{},user_id:{})" .format( + self.id, + self.touch_status, + self.reply_touch_content, + self.user_id)) + + +class SqliteSqlalchemy(object): + def __init__(self): + # 创建Sqlite连接引擎 + engine = create_engine('sqlite:///./chat_bot.db', echo=True) + # 创建Sqlite的session连接对象 + self.session = sessionmaker(bind=engine)() + + +# 查询初始化表是否存在 +selectInit = text( + "SELECT name FROM sqlite_master WHERE type='table' AND name='qr_touch';") +# 查询回复内容 +selectTouchContent = text("select * from qr_touch where touch_status = :status order by random() limit 1") +# 查询触摸次数 +selectTouchCount = text( + "select count(*) from qr_touch_log where user_id = :member_openid and extract_time = date('now')") +# 插入日志表 +insertTouchLog = text( + "insert into qr_touch_log (touch_status, reply_touch_content,user_id,extract_time) values (:touch_status, :reply_touch_content, :member_openid,date('now'))") diff --git a/src/plugins/weather.py b/src/qq_plugins/weather.py similarity index 70% rename from src/plugins/weather.py rename to src/qq_plugins/weather.py index 9dcbc9c..5e67ac6 100644 --- a/src/plugins/weather.py +++ b/src/qq_plugins/weather.py @@ -1,21 +1,31 @@ +import nonebot +from nonebot import Bot from nonebot.rule import to_me from nonebot.plugin import on_command -import requests +from nonebot.adapters import Message +from nonebot.params import CommandArg +from nonebot.adapters.qq import MessageEvent + weather = on_command("天气", rule=to_me(), aliases={"weather", "查天气"}, priority=10, block=True) @weather.handle() -async def handle_function(): - # await weather.send("天气是...") - city_name = "海口" - result = format_weather(city_name) - await weather.finish("天气是...\n" + result) +async def handle_function(args: Message = CommandArg()): + + # 提取参数纯文本作为地名,并判断是否有效 + if location := args.extract_plain_text(): + # 调用天气查询API获取天气数据 + weather_data = format_weather(location) + await weather.finish(weather_data) + else: + await weather.finish("请输入地名") +import requests -def get_weather(city_name): +def get_weather(location): # 设置请求的URL和参数 - url = f'https://apis.juhe.cn/simpleWeather/query?key=50a3bd415158e186903d6e6994157589&city={city_name}' + url = f'https://apis.juhe.cn/simpleWeather/query?key=50a3bd415158e186903d6e6994157589&city={location}' # 发送GET请求 response = requests.get(url) # 检查请求是否成功 @@ -33,9 +43,10 @@ def get_weather(city_name): return {"error": "请求失败,状态码: " + str(response.status_code)} -def format_weather(city_name): +# 调用函数并处理返回的天气数据 +def format_weather(location): # 假设这里你已经有了城市的URL编码,这里用'%E9%87%8D%E5%BA%86'作为示例 - city_encoded = city_name # 重庆的URL编码 + city_encoded = location # 重庆的URL编码 weather_data = get_weather(city_encoded) # 检查是否返回了错误 @@ -50,3 +61,4 @@ def format_weather(city_name): for day in weather_data['future']: result = result + "\n" + f"日期: {day['date']}, 天气: {day['weather']}, 温度: {day['temperature']}, 风向: {day['direct']}" return result +