diff --git a/plugins/__init__.py b/plugins/__init__.py
new file mode 100644
index 00000000..e69de29b
diff --git a/plugins/draw_card/__init__.py b/plugins/draw_card/__init__.py
index 4d8d95c7..52fa2299 100644
--- a/plugins/draw_card/__init__.py
+++ b/plugins/draw_card/__init__.py
@@ -2,26 +2,45 @@ from nonebot import on_regex, on_keyword
from nonebot.adapters.cqhttp import Bot, MessageEvent
from nonebot.permission import SUPERUSER
from nonebot.typing import T_State
+from services.log import logger
+from util.utils import scheduler
+import re
from .genshin_handle import genshin_draw, update_genshin_info, reset_count
from .prts_handle import update_prts_info, prts_draw, reload_pool
from .pretty_handle import update_pretty_info, pretty_draw
+from .guardian_handle import update_guardian_info, guardian_draw
+from .pcr_handle import update_pcr_info, pcr_draw
from .update_game_info import update_info
-from util.utils import is_number, scheduler
-from services.log import logger
-import re
+from .util import check_num
+from .rule import is_switch
+from .config import PRTS_FLAG, PRETTY_FLAG, GUARDIAN_FLAG, GENSHIN_FLAG, PCR_FLAG
-prts = on_regex(r'.*?方舟[1-9|一][0-9]{0,2}[抽|井]', priority=5, block=True)
+
+prts = on_regex(r'.*?方舟[1-9|一][0-9]{0,2}[抽|井]', rule=is_switch('prts'), priority=5, block=True)
prts_update = on_keyword({'更新方舟信息', '更新明日方舟信息'}, permission=SUPERUSER, priority=1, block=True)
prts_reload = on_keyword({'重载方舟卡池'}, priority=1, block=True)
-genshin = on_regex('.*?原神[1-9|一][0-9]{0,2}[抽|井]', priority=5, block=True)
+genshin = on_regex('.*?原神[1-9|一][0-9]{0,2}[抽|井]', rule=is_switch('genshin'), priority=5, block=True)
genshin_reset = on_keyword({'重置原神抽卡'}, priority=1, block=True)
genshin_update = on_keyword({'更新原神信息'}, permission=SUPERUSER, priority=1, block=True)
-pretty = on_regex('.*?马娘卡?[1-9|一][0-9]{0,2}[抽|井]', priority=5, block=True)
+pretty = on_regex('.*?马娘卡?[1-9|一][0-9]{0,2}[抽|井]', rule=is_switch('pretty'), priority=5, block=True)
pretty_update = on_keyword({'更新马娘信息', '更新赛马娘信息'}, permission=SUPERUSER, priority=1, block=True)
+guardian = on_regex('.*?坎公骑冠剑武?器?[1-9|一][0-9]{0,2}[抽|井]', rule=is_switch('guardian'), priority=5, block=True)
+guardian_update = on_keyword({'更新坎公骑冠剑信息'}, permission=SUPERUSER, priority=1, block=True)
+
+pcr = on_regex('.*?(pcr|公主连结|公主连接|公主链接)[1-9|一][0-9]{0,2}[抽|井]', rule=is_switch('pcr'), priority=5, block=True)
+pcr_update = on_keyword({'更新pcr信息', '更新公主连结信息'}, permission=SUPERUSER, priority=1, block=True)
+
+test = on_keyword({'test'}, permission=SUPERUSER, priority=1, block=True)
+
+
+@test.handle()
+async def _(bot: Bot, event: MessageEvent, state: T_State):
+ await update_pcr_info()
+
@prts.handle()
async def _(bot: Bot, event: MessageEvent, state: T_State):
@@ -30,22 +49,13 @@ async def _(bot: Bot, event: MessageEvent, state: T_State):
num = 300
else:
rmsg = re.search(r'.*?方舟(.*)抽', msg)
- if rmsg and is_number(rmsg.group(1)):
- try:
- num = int(rmsg.group(1))
- except ValueError:
- await prts.finish('必!须!是!数!字!', at_sender=True)
- if num > 300:
- await prts.finish('一井都满不足不了你嘛!快爬开!', at_sender=True)
- if num < 1:
- await prts.finish('虚空抽卡???', at_sender=True)
+ if rmsg:
+ num, flag = check_num(rmsg.group(1), 300)
+ if not flag:
+ await prts.finish(num, at_sender=True)
else:
return
- # print(num)
- await prts.send(await prts_draw(num), at_sender=True)
- logger.info(
- f"(USER {event.user_id}, GROUP {event.group_id if event.message_type != 'private' else 'private'})"
- f" 方舟{num}抽")
+ await prts.send(await prts_draw(int(num)), at_sender=True)
@prts_reload.handle()
@@ -61,21 +71,13 @@ async def _(bot: Bot, event: MessageEvent, state: T_State):
num = 180
else:
rmsg = re.search(r'.*?原神(.*)抽', msg)
- if rmsg and is_number(rmsg.group(1)):
- try:
- num = int(rmsg.group(1))
- except ValueError:
- await genshin.finish('必!须!是!数!字!', at_sender=True)
- if num > 300:
- await genshin.finish('一井都满不足不了你嘛!快爬开!', at_sender=True)
- if num < 1:
- await genshin.finish('虚空抽卡???', at_sender=True)
+ if rmsg:
+ num, flag = check_num(rmsg.group(1), 180)
+ if not flag:
+ await genshin.finish(num, at_sender=True)
else:
return
- await genshin.send(await genshin_draw(event.user_id, num), at_sender=True)
- logger.info(
- f"(USER {event.user_id}, GROUP {event.group_id if event.message_type != 'private' else 'private'})"
- f" 原神{num}抽")
+ await genshin.send(await genshin_draw(event.user_id, int(num)), at_sender=True)
@genshin_reset.handle()
@@ -87,7 +89,7 @@ async def _(bot: Bot, event: MessageEvent, state: T_State):
@pretty.handle()
async def _(bot: Bot, event: MessageEvent, state: T_State):
msg = str(event.get_message()).strip()
- if msg in ['赛马娘一井', '赛马娘1井', '马娘一井', '马娘1井', '赛马娘卡一井', '赛马娘卡1井', '马娘卡一井', '马娘卡1井']:
+ if msg.find('1井') != -1 or msg.find('一井') != -1:
num = 200
if msg.find("卡") == -1:
pool_name = 'horse'
@@ -102,21 +104,51 @@ async def _(bot: Bot, event: MessageEvent, state: T_State):
pool_name = 'card'
else:
pool_name = 'horse'
- if is_number(num):
- try:
- num = int(num)
- except ValueError:
- await genshin.finish('必!须!是!数!字!', at_sender=True)
- if num > 200:
- await genshin.finish('一井都满不足不了你嘛!快爬开!', at_sender=True)
- if num < 1:
- await genshin.finish('虚空抽卡???', at_sender=True)
- else:
- return
- await pretty.send(await pretty_draw(num, pool_name), at_sender=True)
- logger.info(
- f"(USER {event.user_id}, GROUP {event.group_id if event.message_type != 'private' else 'private'})"
- f" 赛马娘{num}抽")
+ num, flag = check_num(num, 200)
+ if not flag:
+ await pretty.finish(num, at_sender=True)
+ else:
+ return
+ await pretty.send(await pretty_draw(int(num), pool_name), at_sender=True)
+
+
+@guardian.handle()
+async def _(bot: Bot, event: MessageEvent, state: T_State):
+ msg = str(event.get_message()).strip()
+ pool_name = 'char'
+ if msg.find('1井') != -1 or msg.find('一井') != -1:
+ num = 300
+ if msg.find('武器') != -1:
+ pool_name = 'arms'
+ else:
+ rmsg = re.search(r'.*?坎公骑冠剑(.*)抽', msg)
+ if rmsg:
+ num = rmsg.group(1)
+ if num.find('武器') != -1:
+ pool_name = 'arms'
+ num = num.replace('武器', '')
+ num, flag = check_num(num, 300)
+ if not flag:
+ await guardian.finish(num, at_sender=True)
+ else:
+ return
+ await guardian.send(await guardian_draw(int(num), pool_name), at_sender=True)
+
+
+@pcr.handle()
+async def _(bot: Bot, event: MessageEvent, state: T_State):
+ msg = str(event.get_message()).strip()
+ if msg.find('1井') != -1 or msg.find('一井') != -1:
+ num = 300
+ else:
+ rmsg = re.search(r'.*?(pcr|公主连结)(.*)[抽|井]', msg)
+ if rmsg:
+ num, flag = check_num(rmsg.group(2), 300)
+ if not flag:
+ await pcr.finish(num, at_sender=True)
+ else:
+ return
+ await pcr.send(await pcr_draw(int(num)), at_sender=True)
@prts_update.handle()
@@ -138,6 +170,18 @@ async def _(bot: Bot, event: MessageEvent, state: T_State):
await genshin_update.finish('更新完成!')
+@guardian_update.handle()
+async def _(bot: Bot, event: MessageEvent, state: T_State):
+ await update_guardian_info()
+ await genshin_update.finish('更新完成!')
+
+
+@pcr_update.handle()
+async def _(bot: Bot, event: MessageEvent, state: T_State):
+ await update_pcr_info()
+ await genshin_update.finish('更新完成!')
+
+
# 更新资源
@scheduler.scheduled_job(
'cron',
@@ -146,20 +190,30 @@ async def _(bot: Bot, event: MessageEvent, state: T_State):
)
async def _():
try:
- await update_prts_info()
- logger.info('自动更新明日方舟信息')
+ if PRTS_FLAG:
+ await update_prts_info()
except Exception as e:
- logger.error(f'自动更新明日方舟信息出错 e:{e}')
+ logger.error(f'draw_card: 更新 明日方舟 失败 e:{e}')
try:
- await update_genshin_info()
- logger.info('自动更新原神信息')
+ if GENSHIN_FLAG:
+ await update_genshin_info()
except Exception as e:
- logger.error(f'自动更新原神信息出错 e:{e}')
+ logger.error(f'draw_card: 更新 原神 失败 e:{e}')
try:
- await update_pretty_info()
- logger.info('自动更新赛马娘信息')
+ if PRETTY_FLAG:
+ await update_pretty_info()
except Exception as e:
- logger.error(f'自动更新赛马娘信息出错 e:{e}')
+ logger.error(f'draw_card: 更新 赛马娘 失败 e:{e}')
+ try:
+ if GUARDIAN_FLAG:
+ await update_guardian_info()
+ except Exception as e:
+ logger.error(f'draw_card: 更新 坎公骑冠剑 失败 e:{e}')
+ try:
+ if PCR_FLAG:
+ await update_pcr_info()
+ except Exception as e:
+ logger.error(f'draw_card: 更新 公主连结 失败 e:{e}')
# 每天四点重载up卡池
@@ -169,6 +223,6 @@ async def _():
minute=1,
)
async def _():
- await reload_pool()
-
-
+ if PRTS_FLAG:
+ await reload_pool()
+ logger.info(f'draw_card: 04: 01 重载方舟卡池')
diff --git a/plugins/draw_card/announcement.py b/plugins/draw_card/announcement.py
index 734a58a9..41ab5082 100644
--- a/plugins/draw_card/announcement.py
+++ b/plugins/draw_card/announcement.py
@@ -2,16 +2,17 @@ import aiohttp
from bs4 import BeautifulSoup
import re
from datetime import datetime
+from .config import DRAW_PATH
+from util.utils import get_local_proxy
from pathlib import Path
-from configs.path_config import DRAW_PATH
-from util.user_agent import get_user_agent
-
try:
import ujson as json
except ModuleNotFoundError:
import json
-up_char_file = Path(DRAW_PATH) / "draw_card_up" / "prts_up_char.json"
+headers = {'User-Agent': '"Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; TencentTraveler 4.0)"'}
+
+up_char_file = Path(DRAW_PATH + "/draw_card_up/prts_up_char.json")
prts_url = "https://wiki.biligame.com/arknights/%E6%96%B0%E9%97%BB%E5%85%AC%E5%91%8A"
@@ -29,7 +30,7 @@ class PrtsAnnouncement:
@staticmethod
async def get_announcement_text():
- async with aiohttp.ClientSession(headers=get_user_agent()) as session:
+ async with aiohttp.ClientSession(headers=headers) as session:
async with session.get(prts_url, timeout=7) as res:
soup = BeautifulSoup(await res.text(), 'lxml')
trs = soup.find('table').find('tbody').find_all('tr')
@@ -38,7 +39,7 @@ class PrtsAnnouncement:
if a.text.find('寻访') != -1:
url = a.get('href')
break
- async with session.get(f'https://wiki.biligame.com/{url}', timeout=7) as res:
+ async with session.get(f'https://wiki.biligame.com/{url}', proxy=get_local_proxy(), timeout=7) as res:
return await res.text(), a.text[:-4]
@staticmethod
diff --git a/plugins/draw_card/config.py b/plugins/draw_card/config.py
index 63fe0a85..619248e5 100644
--- a/plugins/draw_card/config.py
+++ b/plugins/draw_card/config.py
@@ -1,10 +1,23 @@
import nonebot
from pathlib import Path
+from configs.path_config import DRAW_PATH
try:
import ujson as json
except ModuleNotFoundError:
import json
+DRAW_PATH = DRAW_PATH
+
+_draw_config = Path(rf"{DRAW_PATH}/draw_card_config/draw_card_config.json")
+
+
+# 开关
+PRTS_FLAG = False if str(nonebot.get_driver().config.prts_flag).lower() == 'false' else True
+GENSHIN_FLAG = False if str(nonebot.get_driver().config.genshin_flag).lower() == 'false' else True
+PRETTY_FLAG = False if str(nonebot.get_driver().config.pretty_flag).lower() == 'false' else True
+GUARDIAN_FLAG = False if str(nonebot.get_driver().config.guardian_flag).lower() == 'false' else True
+PCR_FLAG = False if str(nonebot.get_driver().config.PCR_flag).lower() == 'false' else True
+
# 方舟概率
PRTS_SIX_P = 0.02
PRTS_FIVE_P = 0.08
@@ -15,88 +28,206 @@ PRTS_THREE_P = 0.42
GENSHIN_FIVE_P = 0.006
GENSHIN_FOUR_P = 0.051
GENSHIN_THREE_P = 0.43
-GENSHIN_G_FOUR_P = 0.13
+# 保底概率
GENSHIN_G_FIVE_P = 0.016
+GENSHIN_G_FOUR_P = 0.13
+# 72抽后增加的概率
I72_ADD = 0.0585
# 赛马娘概率
-PRETTY_THREE = 0.03
-PRETTY_TWO = 0.18
-PRETTY_ONE = 0.79
+PRETTY_THREE_P = 0.03
+PRETTY_TWO_P = 0.18
+PRETTY_ONE_P = 0.79
+
+# 坎公骑冠剑
+# 角色概率
+GUARDIAN_THREE_CHAR_P = 0.0275
+GUARDIAN_TWO_CHAR_P = 0.19
+GUARDIAN_ONE_CHAR_P = 0.7825
+# UP角色
+GUARDIAN_THREE_CHAR_UP_P = 0.01375
+GUARDIAN_THREE_CHAR_OTHER_P = 0.01375
+# 武器概率
+GUARDIAN_EXCLUSIVE_ARMS_P = 0.03
+GUARDIAN_FIVE_ARMS_P = 0.03
+GUARDIAN_FOUR_ARMS_P = 0.09
+GUARDIAN_THREE_ARMS_P = 0.27
+GUARDIAN_TWO_ARMS_P = 0.58
+# UP武器
+GUARDIAN_EXCLUSIVE_ARMS_UP_P = 0.01
+GUARDIAN_EXCLUSIVE_ARMS_OTHER_P = 0.02
+
+# PCR
+PCR_THREE_P = 0.025
+PCR_TWO_P = 0.18
+PCR_ONE_P = 0.795
+# 保底
+PCR_G_THREE_P = 0.025
+PCR_G_TWO_P = 0.975
path_dict = {
'genshin': '原神',
'prts': '明日方舟',
'pretty': '赛马娘',
+ 'guardian': '坎公骑冠剑',
+ 'pcr': '公主连结',
}
-
-_draw_config = Path() / "data" / "draw_card" / "draw_card_config" / "draw_card_config.json"
-
-
driver: nonebot.Driver = nonebot.get_driver()
+config_default_data = {
+
+ 'path_dict': {
+ 'genshin': '原神',
+ 'prts': '明日方舟',
+ 'pretty': '赛马娘',
+ 'guardian': '坎公骑冠剑',
+ 'PCR': '公主连结',
+ },
+
+ 'prts': {
+ 'PRTS_SIX_P': 0.02,
+ 'PRTS_FIVE_P': 0.08,
+ 'PRTS_FOUR_P': 0.48,
+ 'PRTS_THREE_P': 0.42,
+ },
+
+ 'genshin': {
+ 'GENSHIN_FIVE_P': 0.006,
+ 'GENSHIN_FOUR_P': 0.051,
+ 'GENSHIN_THREE_P': 0.43,
+ 'GENSHIN_G_FIVE_P': 0.13,
+ 'GENSHIN_G_FOUR_P': 0.016,
+ 'I72_ADD': 0.0585,
+ },
+
+ 'pretty': {
+ 'PRETTY_THREE_P': 0.03,
+ 'PRETTY_TWO_P': 0.18,
+ 'PRETTY_ONE_P': 0.79,
+ },
+
+ 'guardian': {
+ 'GUARDIAN_THREE_CHAR_P': 0.0275,
+ 'GUARDIAN_TWO_CHAR_P': 0.19,
+ 'GUARDIAN_ONE_CHAR_P': 0.7825,
+
+ 'GUARDIAN_THREE_CHAR_UP_P': 0.01375,
+ 'GUARDIAN_THREE_CHAR_OTHER_P': 0.01375,
+
+ 'GUARDIAN_EXCLUSIVE_ARMS_P': 0.03,
+ 'GUARDIAN_FIVE_ARMS_P': 0.03,
+ 'GUARDIAN_FOUR_ARMS_P': 0.09,
+ 'GUARDIAN_THREE_ARMS_P': 0.27,
+ 'GUARDIAN_TWO_ARMS_P': 0.58,
+
+ 'GUARDIAN_EXCLUSIVE_ARMS_UP_P': 0.01,
+ 'GUARDIAN_EXCLUSIVE_ARMS_OTHER_P': 0.02,
+ },
+
+ 'pcr': {
+ 'PCR_THREE_P': 0.025,
+ 'PCR_TWO_P': 0.18,
+ 'PCR_ONE_P': 0.795,
+ },
+}
+
@driver.on_startup
def check_config():
- global PRTS_SIX_P, PRTS_FOUR_P, PRTS_FIVE_P, PRTS_THREE_P, GENSHIN_G_FIVE_P, \
- GENSHIN_G_FOUR_P, GENSHIN_FOUR_P, GENSHIN_FIVE_P, I72_ADD, path_dict, PRETTY_THREE, \
- PRETTY_ONE, PRETTY_TWO, GENSHIN_THREE_P
- if _draw_config.exists():
+ global PRTS_SIX_P, PRTS_FOUR_P, PRTS_FIVE_P, PRTS_THREE_P, GENSHIN_G_FIVE_P, config_default_data, \
+ GENSHIN_G_FOUR_P, GENSHIN_FOUR_P, GENSHIN_FIVE_P, I72_ADD, path_dict, PRETTY_THREE_P, \
+ PRETTY_ONE_P, PRETTY_TWO_P, GENSHIN_THREE_P, GUARDIAN_THREE_CHAR_P, GUARDIAN_TWO_CHAR_P, GUARDIAN_ONE_CHAR_P, \
+ GUARDIAN_THREE_CHAR_UP_P, GUARDIAN_THREE_CHAR_OTHER_P, GUARDIAN_EXCLUSIVE_ARMS_P, GUARDIAN_FIVE_ARMS_P, \
+ GUARDIAN_FOUR_ARMS_P, GUARDIAN_THREE_ARMS_P, GUARDIAN_TWO_ARMS_P, GENSHIN_FLAG, PRTS_FLAG, \
+ PRETTY_FLAG, GUARDIAN_FLAG, GUARDIAN_EXCLUSIVE_ARMS_UP_P, GUARDIAN_EXCLUSIVE_ARMS_OTHER_P, DRAW_PATH, \
+ PCR_THREE_P, PCR_TWO_P, PCR_ONE_P
+ _draw_config.parent.mkdir(parents=True, exist_ok=True)
+ try:
data = json.load(open(_draw_config, 'r', encoding='utf8'))
- PRTS_SIX_P = float(data['prts']['six'])
- PRTS_FIVE_P = float(data['prts']['five'])
- PRTS_FOUR_P = float(data['prts']['four'])
- PRTS_THREE_P = float(data['prts']['three'])
-
- GENSHIN_FIVE_P = float(data['genshin']['five_char'])
- GENSHIN_FOUR_P = float(data['genshin']['four_char'])
- GENSHIN_THREE_P = float(data['genshin']['three_char'])
- GENSHIN_G_FIVE_P = float(data['genshin']['five_weapon'])
- GENSHIN_G_FOUR_P = float(data['genshin']['four_weapon'])
- I72_ADD = float(data['genshin']['72_add'])
-
- PRETTY_THREE = float(data['pretty']['three'])
- PRETTY_TWO = float(data['pretty']['two'])
- PRETTY_ONE = float(data['pretty']['one'])
-
- path_dict = data['path_dict']
- else:
+ except (FileNotFoundError, ValueError):
_draw_config.parent.mkdir(parents=True, exist_ok=True)
- config_dict = {
- 'path_dict': {
- 'genshin': '原神',
- 'prts': '明日方舟',
- 'pretty': '赛马娘',
- },
-
- 'prts': {
- 'six': 0.02,
- 'five': 0.08,
- 'four': 0.48,
- 'three': 0.42,
- },
-
- 'genshin': {
- 'five_char': 0.006,
- 'four_char': 0.051,
- 'three_char': 0.43,
- 'five_weapon': 0.13,
- 'four_weapon': 0.016,
- '72_add': 0.0585,
- },
-
- 'pretty': {
- 'three': 0.03,
- 'two': 0.18,
- 'one': 0.79,
- }
- }
- json.dump(config_dict, open(_draw_config, 'w', encoding='utf8'), indent=4, ensure_ascii=False)
-
+ json.dump(config_default_data, open(_draw_config, 'w', encoding='utf8'), indent=4, ensure_ascii=False)
+ print('draw_card:配置文件不存在或格式错误,已重新生成配置文件.....')
+ else:
+ try:
+ PRTS_SIX_P = float(data['prts']['PRTS_SIX_P'])
+ PRTS_FIVE_P = float(data['prts']['PRTS_FIVE_P'])
+ PRTS_FOUR_P = float(data['prts']['PRTS_FOUR_P'])
+ PRTS_THREE_P = float(data['prts']['PRTS_THREE_P'])
+ except KeyError:
+ data['prts'] = {}
+ data['prts']['PRTS_SIX_P'] = config_default_data['prts']['PRTS_SIX_P']
+ data['prts']['PRTS_FIVE_P'] = config_default_data['prts']['PRTS_FIVE_P']
+ data['prts']['PRTS_FOUR_P'] = config_default_data['prts']['PRTS_FOUR_P']
+ data['prts']['PRTS_THREE_P'] = config_default_data['prts']['PRTS_THREE_P']
+ try:
+ GENSHIN_FIVE_P = float(data['genshin']['GENSHIN_FIVE_P'])
+ GENSHIN_FOUR_P = float(data['genshin']['GENSHIN_FOUR_P'])
+ GENSHIN_THREE_P = float(data['genshin']['GENSHIN_THREE_P'])
+ GENSHIN_G_FIVE_P = float(data['genshin']['GENSHIN_G_FIVE_P'])
+ GENSHIN_G_FOUR_P = float(data['genshin']['GENSHIN_G_FOUR_P'])
+ I72_ADD = float(data['genshin']['I72_ADD'])
+ except KeyError:
+ data['genshin'] = {}
+ data['genshin']['GENSHIN_FIVE_P'] = config_default_data['genshin']['GENSHIN_FIVE_P']
+ data['genshin']['GENSHIN_FOUR_P'] = config_default_data['genshin']['GENSHIN_FOUR_P']
+ data['genshin']['GENSHIN_THREE_P'] = config_default_data['genshin']['GENSHIN_THREE_P']
+ data['genshin']['GENSHIN_G_FIVE_P'] = config_default_data['genshin']['GENSHIN_G_FIVE_P']
+ data['genshin']['GENSHIN_G_FOUR_P'] = config_default_data['genshin']['GENSHIN_G_FOUR_P']
+ data['genshin']['I72_ADD'] = config_default_data['genshin']['I72_ADD']
+ try:
+ PRETTY_THREE_P = float(data['pretty']['PRETTY_THREE_P'])
+ PRETTY_TWO_P = float(data['pretty']['PRETTY_TWO_P'])
+ PRETTY_ONE_P = float(data['pretty']['PRETTY_ONE_P'])
+ except KeyError:
+ data['pretty'] = {}
+ data['pretty']['PRETTY_THREE_P'] = config_default_data['pretty']['PRETTY_THREE_P']
+ data['pretty']['PRETTY_TWO_P'] = config_default_data['pretty']['PRETTY_TWO_P']
+ data['pretty']['PRETTY_ONE_P'] = config_default_data['pretty']['PRETTY_ONE_P']
+
+ try:
+ GUARDIAN_THREE_CHAR_P = float(data['guardian']['GUARDIAN_THREE_CHAR_P'])
+ GUARDIAN_TWO_CHAR_P = float(data['guardian']['GUARDIAN_TWO_CHAR_P'])
+ GUARDIAN_ONE_CHAR_P = float(data['guardian']['GUARDIAN_ONE_CHAR_P'])
+ GUARDIAN_THREE_CHAR_UP_P = float(data['guardian']['GUARDIAN_THREE_CHAR_UP_P'])
+ GUARDIAN_THREE_CHAR_OTHER_P = float(data['guardian']['GUARDIAN_THREE_CHAR_OTHER_P'])
+ GUARDIAN_EXCLUSIVE_ARMS_P = float(data['guardian']['GUARDIAN_EXCLUSIVE_ARMS_P'])
+ GUARDIAN_FIVE_ARMS_P = float(data['guardian']['GUARDIAN_FIVE_ARMS_P'])
+ GUARDIAN_FOUR_ARMS_P = float(data['guardian']['GUARDIAN_FOUR_ARMS_P'])
+ GUARDIAN_THREE_ARMS_P = float(data['guardian']['GUARDIAN_THREE_ARMS_P'])
+ GUARDIAN_TWO_ARMS_P = float(data['guardian']['GUARDIAN_TWO_ARMS_P'])
+ GUARDIAN_EXCLUSIVE_ARMS_UP_P = float(data['guardian']['GUARDIAN_EXCLUSIVE_ARMS_UP_P'])
+ GUARDIAN_EXCLUSIVE_ARMS_OTHER_P = float(data['guardian']['GUARDIAN_EXCLUSIVE_ARMS_OTHER_P'])
+ except KeyError:
+ data['guardian'] = {}
+ data['guardian']['GUARDIAN_THREE_CHAR_P'] = config_default_data['guardian']['GUARDIAN_THREE_CHAR_P']
+ data['guardian']['GUARDIAN_TWO_CHAR_P'] = config_default_data['guardian']['GUARDIAN_TWO_CHAR_P']
+ data['guardian']['GUARDIAN_ONE_CHAR_P'] = config_default_data['guardian']['GUARDIAN_ONE_CHAR_P']
+ data['guardian']['GUARDIAN_THREE_CHAR_UP_P'] = config_default_data['guardian']['GUARDIAN_THREE_CHAR_UP_P']
+ data['guardian']['GUARDIAN_THREE_CHAR_OTHER_P'] = config_default_data['guardian']['GUARDIAN_THREE_CHAR_OTHER_P']
+ data['guardian']['GUARDIAN_EXCLUSIVE_ARMS_P'] = config_default_data['guardian']['GUARDIAN_EXCLUSIVE_ARMS_P']
+ data['guardian']['GUARDIAN_FIVE_ARMS_P'] = config_default_data['guardian']['GUARDIAN_FIVE_ARMS_P']
+ data['guardian']['GUARDIAN_FOUR_ARMS_P'] = config_default_data['guardian']['GUARDIAN_FOUR_ARMS_P']
+ data['guardian']['GUARDIAN_THREE_ARMS_P'] = config_default_data['guardian']['GUARDIAN_THREE_ARMS_P']
+ data['guardian']['GUARDIAN_TWO_ARMS_P'] = config_default_data['guardian']['GUARDIAN_TWO_ARMS_P']
+ data['guardian']['GUARDIAN_EXCLUSIVE_ARMS_UP_P'] = config_default_data['guardian']['GUARDIAN_EXCLUSIVE_ARMS_UP_P']
+ data['guardian']['GUARDIAN_EXCLUSIVE_ARMS_OTHER_P'] = config_default_data['guardian']['GUARDIAN_EXCLUSIVE_ARMS_OTHER_P']
+
+ try:
+ PCR_THREE_P = float(data['pcr']['PCR_THREE_P'])
+ PCR_TWO_P = float(data['pcr']['PCR_TWO_P'])
+ PCR_ONE_P = float(data['pcr']['PCR_ONE_P'])
+ except KeyError:
+ data['pcr'] = {}
+ data['pcr']['PCR_THREE_P'] = config_default_data['pcr']['PCR_THREE_P']
+ data['pcr']['PCR_TWO_P'] = config_default_data['pcr']['PCR_TWO_P']
+ data['pcr']['PCR_ONE_P'] = config_default_data['pcr']['PCR_ONE_P']
+
+ json.dump(data, open(_draw_config, 'w', encoding='utf8'), indent=4, ensure_ascii=False)
diff --git a/plugins/draw_card/genshin_handle.py b/plugins/draw_card/genshin_handle.py
index 07954ad9..fe6b8735 100644
--- a/plugins/draw_card/genshin_handle.py
+++ b/plugins/draw_card/genshin_handle.py
@@ -1,14 +1,14 @@
import os
+from util.init_result import image
import nonebot
import random
from .update_game_info import update_info
-from .util import generate_img, init_star_rst, BaseData, set_list
-from .config import GENSHIN_FIVE_P, GENSHIN_FOUR_P, GENSHIN_G_FIVE_P, GENSHIN_THREE_P, I72_ADD
+from .util import generate_img, init_star_rst, BaseData, set_list, get_star
+from .config import GENSHIN_FIVE_P, GENSHIN_FOUR_P, GENSHIN_G_FIVE_P, GENSHIN_G_FOUR_P, GENSHIN_THREE_P, I72_ADD, \
+ DRAW_PATH, GENSHIN_FLAG
from dataclasses import dataclass
from .init_card_pool import init_game_pool
-from configs.path_config import DRAW_PATH
-from util.init_result import image
try:
import ujson as json
except ModuleNotFoundError:
@@ -21,7 +21,7 @@ genshin_count = {}
genshin_pl_count = {}
ALL_CHAR = []
-ALL_ARM = []
+ALL_ARMS = []
@dataclass
@@ -32,28 +32,28 @@ class GenshinChar(BaseData):
async def genshin_draw(user_id: int, count: int):
# 0 1 2
cnlist = ['★★★★★', '★★★★', '★★★']
- genshin_list, five_list, five_olist, five_dict, star_list = _format_card_information(count, user_id)
- rst = init_star_rst(star_list, cnlist, five_list, five_olist)
- print(five_list)
+ char_list, five_list, five_index_list, char_dict, star_list = _format_card_information(count, user_id)
+ rst = init_star_rst(star_list, cnlist, five_list, five_index_list)
temp = ''
if count > 90:
- genshin_list = set_list(genshin_list)
- return image(b64=await generate_img(genshin_list, 'genshin', star_list)) + '\n' + rst[:-1] + \
+ char_list = set_list(char_list)
+ return image(b64=await generate_img(char_list, 'genshin', star_list)) + '\n' + rst[:-1] + \
temp[:-1] + f'\n距离保底发还剩 {90 - genshin_count[user_id] if genshin_count.get(user_id) else "^"} 抽' \
+ "\n【五星:0.6%,四星:5.1%\n第72抽开始五星概率每抽加0.585%】"
async def update_genshin_info():
- global ALL_CHAR, ALL_ARM
+ global ALL_CHAR, ALL_ARMS
url = 'https://wiki.biligame.com/ys/角色筛选'
data, code = await update_info(url, 'genshin')
if code == 200:
ALL_CHAR = init_game_pool('genshin', data, GenshinChar)
url = 'https://wiki.biligame.com/ys/武器图鉴'
- data, code = await update_info(url, 'genshin_arm', ['头像', '名称', '类型', '稀有度.alt', '初始基础属性1',
- '初始基础属性2', '攻击力(MAX)', '副属性(MAX)', '技能'])
+ data, code = await update_info(url, 'genshin_arms', ['头像', '名称', '类型', '稀有度.alt',
+ '获取途径', '初始基础属性1', '初始基础属性2',
+ '攻击力(MAX)', '副属性(MAX)', '技能'])
if code == 200:
- ALL_ARM = init_game_pool('genshin', data, GenshinChar)
+ ALL_ARMS = init_game_pool('genshin', data, GenshinChar)
# asyncio.get_event_loop().run_until_complete(update_genshin_info())
@@ -61,39 +61,34 @@ async def update_genshin_info():
@driver.on_startup
async def init_data():
- global ALL_CHAR, ALL_ARM
- if not os.path.exists(DRAW_PATH + '/draw_card_config/genshin.json') or \
- not os.path.exists(DRAW_PATH + '/draw_card_config/genshin_arm.json'):
- await update_genshin_info()
- else:
- with open(DRAW_PATH + '/draw_card_config/genshin.json', 'r', encoding='utf8') as f:
- genshin_dict = json.load(f)
- with open(DRAW_PATH + '/draw_card_config/genshin_arm.json', 'r', encoding='utf8') as f:
- genshin_arm_dict = json.load(f)
- ALL_CHAR = init_game_pool('genshin', genshin_dict, GenshinChar)
- ALL_ARM = init_game_pool('genshin', genshin_arm_dict, GenshinChar)
+ global ALL_CHAR, ALL_ARMS
+ if GENSHIN_FLAG:
+ if not os.path.exists(DRAW_PATH + 'genshin.json') or not os.path.exists(DRAW_PATH + 'genshin_arms.json'):
+ await update_genshin_info()
+ else:
+ with open(DRAW_PATH + 'genshin.json', 'r', encoding='utf8') as f:
+ genshin_dict = json.load(f)
+ with open(DRAW_PATH + 'genshin_arms.json', 'r', encoding='utf8') as f:
+ genshin_ARMS_dict = json.load(f)
+ ALL_CHAR = init_game_pool('genshin', genshin_dict, GenshinChar)
+ ALL_ARMS = init_game_pool('genshin', genshin_ARMS_dict, GenshinChar)
# 抽取卡池
def _get_genshin_card(mode: int = 1, add: float = 0.0):
- global ALL_ARM, ALL_CHAR
+ global ALL_ARMS, ALL_CHAR
if mode == 1:
- star = random.sample([5, 4, 3],
- counts=[int(GENSHIN_FIVE_P * 1000) + int(add * 1000), int(GENSHIN_FOUR_P * 1000),
- int(GENSHIN_THREE_P * 1000)],
- k=1)[0]
+ star = get_star([5, 4, 3], [GENSHIN_FIVE_P + add, GENSHIN_FOUR_P, GENSHIN_THREE_P])
elif mode == 2:
- star = random.sample([5, 4],
- counts=[int(GENSHIN_G_FIVE_P * 1000) + int(add * 1000), int(GENSHIN_FOUR_P * 1000)],
- k=1)[0]
+ star = get_star([5, 4], [GENSHIN_G_FIVE_P + add, GENSHIN_G_FOUR_P])
else:
star = 5
- chars = [x for x in (ALL_ARM if random.random() < 0.5 or star == 3 else ALL_CHAR) if x.star == star]
+ chars = [x for x in (ALL_ARMS if random.random() < 0.5 or star == 3 else ALL_CHAR) if x.star == star]
return random.choice(chars), abs(star - 5)
def _format_card_information(_count: int, user_id):
- genshin_list = []
+ char_list = []
star_list = [0, 0, 0]
five_index_list = []
five_list = []
@@ -137,11 +132,11 @@ def _format_card_information(_count: int, user_id):
five_dict[char.name] += 1
except KeyError:
five_dict[char.name] = 1
- genshin_list.append(char)
+ char_list.append(char)
if _count <= 90:
genshin_count[user_id] = f_count
genshin_pl_count[user_id] = count
- return genshin_list, five_list, five_index_list, five_dict, star_list
+ return char_list, five_list, five_index_list, five_dict, star_list
def reset_count(user_id: int):
diff --git a/plugins/draw_card/guardian_handle.py b/plugins/draw_card/guardian_handle.py
new file mode 100644
index 00000000..8838f059
--- /dev/null
+++ b/plugins/draw_card/guardian_handle.py
@@ -0,0 +1,118 @@
+
+import os
+import nonebot
+from nonebot.adapters.cqhttp import MessageSegment
+from util.init_result import image
+from .update_game_info import update_info
+from .util import init_star_rst, generate_img, max_card, BaseData,\
+ set_list, get_star, format_card_information
+import random
+from .config import DRAW_PATH, GUARDIAN_ONE_CHAR_P, GUARDIAN_TWO_CHAR_P, GUARDIAN_THREE_CHAR_P, \
+ GUARDIAN_THREE_CHAR_UP_P, GUARDIAN_TWO_ARMS_P, GUARDIAN_FIVE_ARMS_P, GUARDIAN_THREE_CHAR_OTHER_P, \
+ GUARDIAN_FOUR_ARMS_P, GUARDIAN_THREE_ARMS_P, GUARDIAN_EXCLUSIVE_ARMS_P, GUARDIAN_EXCLUSIVE_ARMS_UP_P, \
+ GUARDIAN_EXCLUSIVE_ARMS_OTHER_P, GUARDIAN_FLAG
+from dataclasses import dataclass
+from .init_card_pool import init_game_pool
+try:
+ import ujson as json
+except ModuleNotFoundError:
+ import json
+
+driver: nonebot.Driver = nonebot.get_driver()
+
+ALL_CHAR = []
+ALL_ARMS = []
+
+
+@dataclass
+class GuardianChar(BaseData):
+ pass
+
+
+@dataclass
+class GuardianArms(BaseData):
+ pass
+
+
+async def guardian_draw(count: int, pool_name):
+ if pool_name == 'arms':
+ cnlist = ['★★★★★', '★★★★', '★★★', '★★']
+ star_list = [0, 0, 0, 0]
+ else:
+ cnlist = ['★★★', '★★', '★']
+ star_list = [0, 0, 0]
+ obj_list, obj_dict, max_list, star_list, max_index_list = format_card_information(count, star_list,
+ _get_guardian_card, pool_name)
+ rst = init_star_rst(star_list, cnlist, max_list, max_index_list)
+ if count > 90:
+ obj_list = set_list(obj_list)
+ return image(b64=await generate_img(obj_list, 'guardian', star_list)) \
+ + '\n' + rst[:-1] + '\n' + max_card(obj_dict)
+
+
+async def update_guardian_info():
+ global ALL_CHAR, ALL_ARMS
+ url = 'https://wiki.biligame.com/gt/英雄筛选表'
+ data, code = await update_info(url, 'guardian')
+ if code == 200:
+ ALL_CHAR = init_game_pool('guardian', data, GuardianChar)
+ url = 'https://wiki.biligame.com/gt/武器'
+ tmp, code_1 = await update_info(url, 'guardian_arms')
+ url = 'https://wiki.biligame.com/gt/盾牌'
+ data, code_2 = await update_info(url, 'guardian_arms')
+ if code_1 == 200 and code_2 == 200:
+ data.update(tmp)
+ ALL_ARMS = init_game_pool('guardian_arms', data, GuardianArms)
+
+
+@driver.on_startup
+async def init_data():
+ global ALL_CHAR, ALL_ARMS
+ if GUARDIAN_FLAG:
+ if not os.path.exists(DRAW_PATH + 'guardian.json') or not os.path.exists(DRAW_PATH + 'guardian_arms.json'):
+ await update_guardian_info()
+ else:
+ with open(DRAW_PATH + 'guardian.json', 'r', encoding='utf8') as f:
+ guardian_char_dict = json.load(f)
+ with open(DRAW_PATH + 'guardian_arms.json', 'r', encoding='utf8') as f:
+ guardian_arms_dict = json.load(f)
+ ALL_CHAR = init_game_pool('guardian', guardian_char_dict, GuardianChar)
+ ALL_ARMS = init_game_pool('guardian_arms', guardian_arms_dict, GuardianArms)
+
+
+# 抽取卡池
+def _get_guardian_card(itype):
+ global ALL_CHAR, ALL_ARMS
+ if itype != 'arms':
+ star = get_star([3, 2, 1], [GUARDIAN_THREE_CHAR_P, GUARDIAN_TWO_CHAR_P, GUARDIAN_ONE_CHAR_P])
+ chars = [x for x in ALL_CHAR if x.star == star]
+ return random.choice(chars), abs(star - 3)
+ else:
+ star = get_star([5, 4, 3, 2], [GUARDIAN_FIVE_ARMS_P, GUARDIAN_FOUR_ARMS_P,
+ GUARDIAN_THREE_ARMS_P, GUARDIAN_TWO_ARMS_P])
+ arms = [x for x in ALL_ARMS if x.star == star]
+ return random.choice(arms), abs(star - 5)
+
+
+# 整理数据
+def _format_card_information(count: int, pool_name: str):
+ max_star_lst = []
+ max_index_lst = []
+ obj_list = []
+ obj_dict = {}
+ if pool_name == 'arms':
+ star_list = [0, 0, 0, 0]
+ else:
+ star_list = [0, 0, 0]
+ for i in range(count):
+ obj, code = _get_guardian_card(pool_name)
+ star_list[code] += 1
+ if code == 0:
+ max_star_lst.append(obj.name)
+ max_index_lst.append(i)
+ try:
+ obj_dict[obj.name] += 1
+ except KeyError:
+ obj_dict[obj.name] = 1
+ obj_list.append(obj)
+ return obj_list, obj_dict, max_star_lst, star_list, max_index_lst
diff --git a/plugins/draw_card/init_card_pool.py b/plugins/draw_card/init_card_pool.py
index ff2df043..36cbe146 100644
--- a/plugins/draw_card/init_card_pool.py
+++ b/plugins/draw_card/init_card_pool.py
@@ -14,6 +14,8 @@ def init_game_pool(game: str, data: dict, Operator: Any):
recruit_only = True
if '活动获取' in data[key]['获取途径']:
event_only = True
+ if len(data[key]['获取途径']) == 1 and '凭证交易所' == data[key]['获取途径'][0]:
+ limited = True
if key.find('阿米娅') != -1:
continue
tmp_lst.append(Operator(name=key, star=int(data[key]['星级']),
@@ -29,5 +31,14 @@ def init_game_pool(game: str, data: dict, Operator: Any):
if game == 'pretty_card':
for key in data.keys():
tmp_lst.append(Operator(name=data[key]['中文名'], star=len(data[key]['稀有度']), limited=False))
+ if game in ['guardian', 'guardian_arms']:
+ for key in data.keys():
+ tmp_lst.append(Operator(name=data[key]['名称'], star=int(data[key]['星级']), limited=False))
+ if game == 'pcr':
+ for key in data.keys():
+ limited = False
+ if key.find('(') != -1:
+ limited = True
+ tmp_lst.append(Operator(name=data[key]['名称'], star=int(data[key]['星级']), limited=limited))
return tmp_lst
diff --git a/plugins/draw_card/pcr_handle.py b/plugins/draw_card/pcr_handle.py
new file mode 100644
index 00000000..2cd4e387
--- /dev/null
+++ b/plugins/draw_card/pcr_handle.py
@@ -0,0 +1,91 @@
+import ujson as json
+import os
+from util.init_result import image
+import nonebot
+import random
+from .update_game_info import update_info
+from .util import generate_img, init_star_rst, BaseData, set_list, get_star, max_card
+from .config import PCR_TWO_P, PCR_THREE_P, PCR_ONE_P, DRAW_PATH, PCR_FLAG, PCR_G_TWO_P, PCR_G_THREE_P
+from dataclasses import dataclass
+from .init_card_pool import init_game_pool
+
+driver: nonebot.Driver = nonebot.get_driver()
+
+ALL_CHAR = []
+
+
+@dataclass
+class PcrChar(BaseData):
+ pass
+
+
+async def pcr_draw(count: int):
+ # 0 1 2
+ cnlist = ['★★★', '★★', '★']
+ char_list, three_list, three_index_list, char_dict, star_list = _format_card_information(count)
+ rst = init_star_rst(star_list, cnlist, three_list, three_index_list)
+ if count > 90:
+ char_list = set_list(char_list)
+ return image(b64=await generate_img(char_list, 'pcr', star_list)) \
+ + '\n' + rst[:-1] + '\n' + max_card(char_dict)
+
+
+async def update_pcr_info():
+ global ALL_CHAR
+ url = 'https://wiki.biligame.com/pcr/角色筛选表'
+ data, code = await update_info(url, 'pcr')
+ if code == 200:
+ ALL_CHAR = init_game_pool('pcr', data, PcrChar)
+
+
+@driver.on_startup
+async def init_data():
+ global ALL_CHAR
+ if PCR_FLAG:
+ if not os.path.exists(DRAW_PATH + 'pcr.json'):
+ await update_pcr_info()
+ else:
+ with open(DRAW_PATH + 'pcr.json', 'r', encoding='utf8') as f:
+ pcr_dict = json.load(f)
+ ALL_CHAR = init_game_pool('pcr', pcr_dict, PcrChar)
+
+
+# 抽取卡池
+def _get_pcr_card(mode: int = 1):
+ global ALL_CHAR
+ if mode == 2:
+ star = get_star([3, 2], [PCR_G_THREE_P, PCR_G_TWO_P])
+ else:
+ star = get_star([3, 2, 1], [PCR_THREE_P, PCR_TWO_P, PCR_ONE_P])
+ chars = [x for x in ALL_CHAR if x.star == star and not x.limited]
+ return random.choice(chars), abs(star - 3)
+
+
+def _format_card_information(_count: int):
+ char_list = []
+ star_list = [0, 0, 0]
+ three_index_list = []
+ three_list = []
+ char_dict = {}
+ # 保底计算
+ count = 0
+ for i in range(_count):
+ count += 1
+ # 十连保底
+ if count == 10:
+ char, code = _get_pcr_card(2)
+ count = 0
+ else:
+ char, code = _get_pcr_card()
+ if code == 1:
+ count = 0
+ star_list[code] += 1
+ if code == 0:
+ three_list.append(char.name)
+ three_index_list.append(i)
+ try:
+ char_dict[char.name] += 1
+ except KeyError:
+ char_dict[char.name] = 1
+ char_list.append(char)
+ return char_list, three_list, three_index_list, char_dict, star_list
diff --git a/plugins/draw_card/pretty_handle.py b/plugins/draw_card/pretty_handle.py
index afdec8d7..97331585 100644
--- a/plugins/draw_card/pretty_handle.py
+++ b/plugins/draw_card/pretty_handle.py
@@ -2,11 +2,11 @@
import os
import nonebot
from util.init_result import image
-from configs.path_config import DRAW_PATH
from .update_game_info import update_info
-from .util import download_img, init_star_rst, generate_img, max_card, BaseData, set_list
+from .util import download_img, init_star_rst, generate_img, max_card, BaseData, \
+ set_list, get_star, format_card_information
import random
-from .config import PRETTY_THREE, PRETTY_TWO, PRETTY_ONE
+from .config import PRETTY_THREE_P, PRETTY_TWO_P, DRAW_PATH, PRETTY_ONE_P, PRETTY_FLAG
from dataclasses import dataclass
from .init_card_pool import init_game_pool
try:
@@ -30,7 +30,9 @@ async def pretty_draw(count: int, pool_name):
cnlist = ['SSR', 'SR', 'R']
else:
cnlist = ['★★★', '★★', '★']
- obj_list, obj_dict, three_list, star_list, three_olist = _format_card_information(count, pool_name)
+ star_list = [0, 0, 0]
+ obj_list, obj_dict, three_list, star_list, three_olist = format_card_information(count, star_list,
+ _get_pretty_card, pool_name)
rst = init_star_rst(star_list, cnlist, three_list, three_olist)
if count > 90:
obj_list = set_list(obj_list)
@@ -53,53 +55,30 @@ async def update_pretty_info():
@driver.on_startup
async def init_data():
global ALL_CHAR, ALL_CARD
- if not os.path.exists(DRAW_PATH + '/draw_card_config/pretty.json') or\
- not os.path.exists(DRAW_PATH + '/draw_card_config/pretty_card.json'):
- await update_pretty_info()
- for icon_url in [
- 'https://patchwiki.biligame.com/images/umamusume/thumb/0/06/q23szwkbtd7pfkqrk3wcjlxxt9z595o.png'
- '/40px-SSR.png',
- 'https://patchwiki.biligame.com/images/umamusume/thumb/3/3b/d1jmpwrsk4irkes1gdvoos4ic6rmuht.png'
- '/40px-SR.png',
- 'https://patchwiki.biligame.com/images/umamusume/thumb/f/f7/afqs7h4snmvovsrlifq5ib8vlpu2wvk.png'
- '/40px-R.png']:
- await download_img(icon_url, 'pretty', icon_url.split('-')[-1][:-4])
- else:
- with open(DRAW_PATH + '/draw_card_config/pretty.json', 'r', encoding='utf8') as f:
- pretty_char_dict = json.load(f)
- with open(DRAW_PATH + '/draw_card_config/pretty_card.json', 'r', encoding='utf8') as f:
- pretty_card_dict = json.load(f)
- ALL_CHAR = init_game_pool('pretty', pretty_char_dict, PrettyChar)
- ALL_CARD = init_game_pool('pretty_card', pretty_card_dict, PrettyChar)
+ if PRETTY_FLAG:
+ if not os.path.exists(DRAW_PATH + 'pretty.json') or not os.path.exists(DRAW_PATH + 'pretty_card.json'):
+ await update_pretty_info()
+ for icon_url in [
+ 'https://patchwiki.biligame.com/images/umamusume/thumb/0/06/q23szwkbtd7pfkqrk3wcjlxxt9z595o.png'
+ '/40px-SSR.png',
+ 'https://patchwiki.biligame.com/images/umamusume/thumb/3/3b/d1jmpwrsk4irkes1gdvoos4ic6rmuht.png'
+ '/40px-SR.png',
+ 'https://patchwiki.biligame.com/images/umamusume/thumb/f/f7/afqs7h4snmvovsrlifq5ib8vlpu2wvk.png'
+ '/40px-R.png']:
+ await download_img(icon_url, 'pretty', icon_url.split('-')[-1][:-4])
+ else:
+ with open(DRAW_PATH + 'pretty.json', 'r', encoding='utf8') as f:
+ pretty_char_dict = json.load(f)
+ with open(DRAW_PATH + 'pretty_card.json', 'r', encoding='utf8') as f:
+ pretty_card_dict = json.load(f)
+ ALL_CHAR = init_game_pool('pretty', pretty_char_dict, PrettyChar)
+ ALL_CARD = init_game_pool('pretty_card', pretty_card_dict, PrettyChar)
# 抽取卡池
def _get_pretty_card(itype):
global ALL_CHAR, ALL_CARD
- star = random.sample([3, 2, 1],
- counts=[int(PRETTY_THREE * 100), int(PRETTY_TWO * 100),
- int(PRETTY_ONE * 100)],
- k=1)[0]
+ star = get_star([3, 2, 1], [PRETTY_THREE_P, PRETTY_TWO_P, PRETTY_ONE_P])
chars = [x for x in (ALL_CARD if itype == 'card' else ALL_CHAR) if x.star == star]
return random.choice(chars), abs(star - 3)
-
-# 整理数据
-def _format_card_information(count: int, pool_name: str):
- three_list = []
- three_olist = []
- obj_list = []
- obj_dict = {}
- star_list = [0, 0, 0]
- for i in range(count):
- obj, code = _get_pretty_card(pool_name)
- star_list[code] += 1
- if code == 0:
- three_list.append(obj.name)
- three_olist.append(i)
- try:
- obj_dict[obj.name] += 1
- except KeyError:
- obj_dict[obj.name] = 1
- obj_list.append(obj)
- return obj_list, obj_dict, three_list, star_list, three_olist
diff --git a/plugins/draw_card/prts_handle.py b/plugins/draw_card/prts_handle.py
index f1e841eb..8f90d683 100644
--- a/plugins/draw_card/prts_handle.py
+++ b/plugins/draw_card/prts_handle.py
@@ -1,17 +1,15 @@
import os
+from util.init_result import image
import nonebot
import random
-from .config import PRTS_FIVE_P, PRTS_FOUR_P, PRTS_SIX_P, PRTS_THREE_P
+from .config import PRTS_FIVE_P, PRTS_FOUR_P, PRTS_SIX_P, PRTS_THREE_P, DRAW_PATH, PRTS_FLAG
from .update_game_info import update_info
-from .util import generate_img, init_star_rst, max_card, BaseData, UpEvent, set_list
+from .util import generate_img, init_star_rst, max_card, BaseData, UpEvent, set_list, get_star, format_card_information
from .init_card_pool import init_game_pool
from pathlib import Path
from .announcement import PrtsAnnouncement
from dataclasses import dataclass
-from util.init_result import image
-from configs.path_config import DRAW_PATH
-from services.log import logger
try:
import ujson as json
except ModuleNotFoundError:
@@ -36,13 +34,15 @@ class Operator(BaseData):
async def prts_draw(count: int = 300):
cnlist = ['★★★★★★', '★★★★★', '★★★★', '★★★']
- operator_list, operator_dict, six_list, star_list, six_olist = _format_card_information(count)
+ star_list = [0, 0, 0, 0]
+ operator_list, operator_dict, six_list, star_list, six_index_list = format_card_information(count, star_list,
+ _get_operator_card)
up_list = []
if _CURRENT_POOL_TITLE:
for x in UP_OPERATOR:
for operator in x.operators:
up_list.append(operator)
- rst = init_star_rst(star_list, cnlist, six_list, six_olist, up_list)
+ rst = init_star_rst(star_list, cnlist, six_list, six_index_list, up_list)
if count > 90:
operator_list = set_list(operator_list)
pool_info = "当前up池: " if _CURRENT_POOL_TITLE else ""
@@ -63,22 +63,19 @@ async def update_prts_info():
@driver.on_startup
async def init_data():
global prts_dict, ALL_OPERATOR
- if not os.path.exists(DRAW_PATH + '/draw_card_config/prts.json'):
- await update_prts_info()
- else:
- with open(DRAW_PATH + '/draw_card_config/prts.json', 'r', encoding='utf8') as f:
- prts_dict = json.load(f)
- ALL_OPERATOR = init_game_pool('prts', prts_dict, Operator)
- await _init_up_char()
- # print([x.operators for x in UP_OPERATOR if x.star == 5 and x.zoom > 1])
+ if PRTS_FLAG:
+ if not os.path.exists(DRAW_PATH + 'prts.json'):
+ await update_prts_info()
+ else:
+ with open(DRAW_PATH + 'prts.json', 'r', encoding='utf8') as f:
+ prts_dict = json.load(f)
+ ALL_OPERATOR = init_game_pool('prts', prts_dict, Operator)
+ await _init_up_char()
# 抽取干员
def _get_operator_card():
- star = random.sample([6, 5, 4, 3],
- counts=[int(PRTS_SIX_P * 100), int(PRTS_FIVE_P * 100),
- int(PRTS_FOUR_P * 100), int(PRTS_THREE_P * 100)],
- k=1)[0]
+ star = get_star([6, 5, 4, 3], [PRTS_SIX_P, PRTS_FIVE_P, PRTS_FOUR_P, PRTS_THREE_P])
if _CURRENT_POOL_TITLE:
zooms = [x.zoom for x in UP_OPERATOR if x.star == star]
zoom = 0
@@ -108,39 +105,16 @@ def _get_operator_card():
else:
acquire_operator = random.choice([x for x in ALL_OPERATOR if x.star == star
and not any([x.limited, x.event_only, x.recruit_only])])
- # print(f'{acquire_operator}: {star}')
return acquire_operator, abs(star - 6)
-# 整理抽卡数据
-def _format_card_information(count: int):
- operator_list = [] # 抽取的干员列表
- operator_dict = {} # 抽取各干员次数
- star_list = [0, 0, 0, 0] # 各个星级次数
- six_list = [] # 六星干员列表
- six_index_list = [] # 六星干员获取位置
- for i in range(count):
- operator, code = _get_operator_card()
- star_list[code] += 1
- if code == 0:
- six_list.append(operator.name)
- six_index_list.append(i)
- try:
- operator_dict[operator.name] += 1
- except KeyError:
- operator_dict[operator.name] = 1
- operator_list.append(operator)
- return operator_list, operator_dict, six_list, star_list, six_index_list
-
-
# 获取up干员和概率
async def _init_up_char():
- global up_char_dict, _CURRENT_POOL_TITLE
+ global _CURRENT_POOL_TITLE
up_char_dict = await PrtsAnnouncement.update_up_char()
- # print(up_char_dict)
_CURRENT_POOL_TITLE = up_char_dict['title']
up_char_dict = up_char_dict['up_char']
- logger.info(f'成功获取明日方舟当前up信息...当前up池: {_CURRENT_POOL_TITLE}')
+ print(f'成功获取明日方舟当前up信息...当前up池: {_CURRENT_POOL_TITLE}')
average_dict = {'6': {}, '5': {}, '4': {}}
for star in up_char_dict.keys():
for key in up_char_dict[star].keys():
@@ -148,7 +122,6 @@ async def _init_up_char():
average_dict[star][up_char_dict[star][key]].append(key)
else:
average_dict[star][up_char_dict[star][key]] = [key]
- up_char_dict = {'6': {}, '5': {}, '4': {}}
for star in average_dict.keys():
for str_zoom in average_dict[star].keys():
if str_zoom[0] == '权':
diff --git a/plugins/draw_card/rule.py b/plugins/draw_card/rule.py
new file mode 100644
index 00000000..f13b3729
--- /dev/null
+++ b/plugins/draw_card/rule.py
@@ -0,0 +1,36 @@
+from nonebot.rule import Rule
+from nonebot.adapters.cqhttp import Bot, MessageEvent
+from nonebot.typing import T_State
+from .config import GENSHIN_FLAG, PRTS_FLAG, PRETTY_FLAG, GUARDIAN_FLAG, PCR_FLAG
+
+
+def is_switch(game_name: str) -> Rule:
+
+ async def _is_switch(bot: Bot, event: MessageEvent, state: T_State) -> bool:
+ if game_name == 'prts':
+ return PRTS_FLAG
+ if game_name == 'genshin':
+ return GENSHIN_FLAG
+ if game_name == 'pretty':
+ return PRETTY_FLAG
+ if game_name == 'guardian':
+ return GUARDIAN_FLAG
+ if game_name == 'pcr':
+ return PCR_FLAG
+ else:
+ return False
+
+ return Rule(_is_switch)
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/plugins/draw_card/update_game_info.py b/plugins/draw_card/update_game_info.py
index 7f9034a0..5acf086c 100644
--- a/plugins/draw_card/update_game_info.py
+++ b/plugins/draw_card/update_game_info.py
@@ -1,40 +1,38 @@
#coding:utf-8
import aiohttp
-from configs.path_config import DRAW_PATH
+from .config import DRAW_PATH
from asyncio.exceptions import TimeoutError
-from services.log import logger
from bs4 import BeautifulSoup
from .util import download_img
from urllib.parse import unquote
import bs4
-from util.user_agent import get_user_agent
import re
+from util.utils import get_local_proxy
try:
import ujson as json
except ModuleNotFoundError:
import json
+headers = {'User-Agent': '"Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; TencentTraveler 4.0)"'}
+
+
async def update_info(url: str, game_name: str, info_list: list = None) -> 'dict, int':
try:
- with open(DRAW_PATH + f'/draw_card_config/{game_name}.json', 'r', encoding='utf8') as f:
+ with open(DRAW_PATH + f'{game_name}.json', 'r', encoding='utf8') as f:
data = json.load(f)
except (ValueError, FileNotFoundError):
data = {}
try:
- async with aiohttp.ClientSession(headers=get_user_agent()) as session:
- async with session.get(url, timeout=7) as response:
+ async with aiohttp.ClientSession(headers=headers) as session:
+ async with session.get(url, proxy=get_local_proxy(), timeout=7) as response:
soup = BeautifulSoup(await response.text(), 'lxml')
- max_count = 0
- _tbody = None
- for tbody in soup.find_all('tbody'):
- if len(tbody.find_all('tr')) > max_count:
- _tbody = tbody
- max_count = len(tbody.find_all('tr'))
+ _tbody = get_tbody(soup, game_name, url)
trs = _tbody.find_all('tr')
- att_dict = {'头像': 0, '名称': 1}
- index = 2
- for th in trs[0].find_all('th')[2:]:
+ att_dict, start_index, index = init_attr(game_name)
+ if game_name == 'guardian':
+ start_index = 1
+ for th in trs[0].find_all('th')[start_index:]:
text = th.text
if text[-1] == '\n':
text = text[:-1]
@@ -42,44 +40,30 @@ async def update_info(url: str, game_name: str, info_list: list = None) -> 'dict
index += 1
for tr in trs[1:]:
member_dict = {}
- k_name = ''
tds = tr.find_all('td')
if not info_list:
info_list = att_dict.keys()
for key in info_list:
- attr = ''
- if key.find('.') != -1:
- key = key.split('.')
- attr = key[-1]
- key = key[0]
+ key, attr = parse_key(key, game_name)
td = tds[att_dict[key]]
- last_tag = unquote(_find_last_tag(td, attr), 'utf-8')
- if game_name.find('pretty') == -1 and last_tag.find('http') == -1:
- last_tag = last_tag.split('.')[0]
- if key == '名称':
- k_name = last_tag
+ last_tag = unquote(_find_last_tag(td, attr, game_name), 'utf-8')
member_dict[key] = last_tag
- if game_name == 'pretty' and key == '初始星级':
- member_dict['初始星级'] = len(td.find_all('img'))
+ member_dict = intermediate_check(member_dict, key, game_name, td)
avatar_img = await _modify_avatar_url(session, game_name, member_dict["名称"])
- if avatar_img:
- member_dict['头像'] = avatar_img
- name = member_dict['名称']
- if game_name == 'pretty_card':
- name = member_dict['中文名']
+ member_dict['头像'] = avatar_img if avatar_img else member_dict['头像']
+ name = replace_name(member_dict, game_name)
await download_img(member_dict['头像'], game_name, name)
- if k_name:
- data[k_name] = member_dict
- logger.info(f'{k_name} is update...')
+ data[name] = member_dict
+ print(f'{name} is update...')
data = await _last_check(data, game_name, session)
except TimeoutError:
return {}, 999
- with open(DRAW_PATH + f'/draw_card_config/{game_name}.json', 'w', encoding='utf8') as wf:
+ with open(DRAW_PATH + f'{game_name}.json', 'w', encoding='utf8') as wf:
wf.write(json.dumps(data, ensure_ascii=False, indent=4))
return data, 200
-def _find_last_tag(element: bs4.element.Tag, attr: str) -> str:
+def _find_last_tag(element: bs4.element.Tag, attr: str, game_name: str) -> str:
last_tag = []
for des in element.descendants:
last_tag.append(des)
@@ -100,13 +84,17 @@ def _find_last_tag(element: bs4.element.Tag, attr: str) -> str:
last_tag = str(last_tag)
if str(last_tag) and str(last_tag)[-1] == '\n':
last_tag = str(last_tag)[:-1]
+
+ if game_name not in ['pretty', 'pretty_card', 'guardian'] and last_tag.find('http') == -1:
+ last_tag = last_tag.split('.')[0]
+
return last_tag
# 获取大图(小图快爬)
async def _modify_avatar_url(session: aiohttp.ClientSession, game_name: str, char_name: str):
if game_name == 'prts':
- async with session.get(f'https://wiki.biligame.com/arknights/{char_name}', timeout=7) as res:
+ async with session.get(f'https://wiki.biligame.com/arknights/{char_name}', proxy=get_local_proxy(), timeout=7) as res:
soup = BeautifulSoup(await res.text(), 'lxml')
try:
img_url = str(soup.find('img', {'class': 'img-bg'})['srcset']).split(' ')[-2]
@@ -116,17 +104,31 @@ async def _modify_avatar_url(session: aiohttp.ClientSession, game_name: str, cha
if game_name == 'genshin':
return None
if game_name == 'pretty_card':
- async with session.get(f'https://wiki.biligame.com/umamusume/{char_name}', timeout=7) as res:
+ async with session.get(f'https://wiki.biligame.com/umamusume/{char_name}', proxy=get_local_proxy(), timeout=7) as res:
soup = BeautifulSoup(await res.text(), 'lxml')
img_url = soup.find('div', {'class': 'support_card-left'}).find('div').find('img').get('src')
return img_url
+ if game_name == 'guardian':
+ # 未上传图片太多,换成像素图
+ # async with session.get(f'https://wiki.biligame.com/gt/{char_name}', timeout=7) as res:
+ # soup = BeautifulSoup(await res.text(), 'lxml')
+ # soup = soup.find('table', {'class': 'wikitable'}).find('tbody').find('tr')
+ # try:
+ # img_url = str(soup.find('img', {'class': 'img-kk'})['srcset']).split(' ')[-2]
+ # except KeyError:
+ # img_url = str(soup.find('img', {'class': 'img-kk'})['src'])
+ # except TypeError:
+ # print(f'{char_name} 图片还未上传,跳过...')
+ # img_url = ''
+ # return img_url
+ return None
-# 数据最后处理(是否需要额外数据)
+# 数据最后处理(是否需要额外数据或处理数据)
async def _last_check(data: dict, game_name: str, session: aiohttp.ClientSession):
if game_name == 'prts':
for key in data.keys():
- async with session.get(f'https://wiki.biligame.com/arknights/{key}', timeout=7) as res:
+ async with session.get(f'https://wiki.biligame.com/arknights/{key}', proxy=get_local_proxy(), timeout=7) as res:
soup = BeautifulSoup(await res.text(), 'lxml')
obtain = str(soup.find('table', {'class': 'wikitable'}).find('tbody').find_all('td')[-1])
obtain = re.search(r'
([\s\S]*)')
elif obtain.find('
'):
obtain = obtain.split('
')
+ for i in range(len(obtain)):
+ if obtain[i].find(''):
+ r = re.search('>(.*)', msg)
+ if r:
+ text += r.group(1) + ' '
+ obtain[i] = obtain[i].split('')[-1]
+ print(f'明日方舟获取额外信息....{obtain}')
data[key]['获取途径'] = obtain
- logger.info(f'明日方舟获取额外信息....{obtain}')
# if game_name == 'genshin':
# for key in data.keys():
# async with session.get(f'https://wiki.biligame.com/ys/{key}', timeout=7) as res:
@@ -149,16 +159,78 @@ async def _last_check(data: dict, game_name: str, session: aiohttp.ClientSession
if game_name == 'pretty':
for keys in data.keys():
for key in data[keys].keys():
- # print(f'key --> {data[keys][key]}')
r = re.search(r'.*?40px-(.*)图标.png', str(data[keys][key]))
if r:
data[keys][key] = r.group(1)
- logger.info(f'赛马娘额外修改数据....{keys}[{key}]=> {r.group(1)}')
+ print(f'赛马娘额外修改数据....{keys}[{key}]=> {r.group(1)}')
+ if game_name == 'guardian':
+ for keys in data.keys():
+ for key in data[keys].keys():
+ r = re.search(r'.*?-star_(.*).png', str(data[keys][key]))
+ if r:
+ data[keys][key] = r.group(1)
+ print(f'坎公骑士剑额外修改数据...{keys}[{key}] => {r.group(1)}')
return data
+# 对抓取每行数据是否需要额外处理?
+def intermediate_check(member_dict: dict, key: str, game_name: str, td: bs4.element.Tag):
+ if game_name == 'pretty':
+ if key == '初始星级':
+ member_dict['初始星级'] = len(td.find_all('img'))
+ if game_name == 'guardian':
+ if key == '头像':
+ member_dict['星级'] = str(td.find('span').find('img')['alt'])[-5]
+ try:
+ member_dict['头像'] = str(td.find('img')['srcset']).split(' ')[0]
+ except KeyError:
+ member_dict['头像'] = str(td.find('img')['src'])
+ return member_dict
-# ul = soup.find('div', {'class': 'savelist_bot'}).find('ul')
+def init_attr(game_name: str):
+ att_dict = {'头像': 0, '名称': 1}
+ start_index = 2
+ index = 2
+ if game_name == 'guardian':
+ att_dict = {'头像': 0, '名称': 0}
+ start_index = 1
+ index = 1
+ return att_dict, start_index, index
+def parse_key(key: str, game_name):
+ attr = ''
+ if game_name == 'genshin_arms':
+ if key.find('.') != -1:
+ key = key.split('.')
+ attr = key[-1]
+ key = key[0]
+ return key, attr
+
+
+def replace_name(member_dict: dict, game_name: str):
+ name = member_dict['名称']
+ if game_name == 'pretty_card':
+ name = member_dict['中文名']
+ return name
+
+
+# 拿到tbody,不同游戏tbody可能不同
+def get_tbody(soup: bs4.BeautifulSoup, game_name: str, url: str):
+ max_count = 0
+ _tbody = None
+ if game_name == 'guardian_arms':
+ if url[-2:] == '盾牌':
+ div = soup.find('div', {'class': 'resp-tabs-container'}).find_all('div', {'class': 'resp-tab-content'})[1]
+ _tbody = div.find('tbody')
+ else:
+ div = soup.find('div', {'class': 'resp-tabs-container'}).find_all('div', {'class': 'resp-tab-content'})[0]
+ _tbody = div.find('table', {'id': 'CardSelectTr'}).find('tbody')
+ else:
+ for tbody in soup.find_all('tbody'):
+ if len(tbody.find_all('tr')) > max_count:
+ _tbody = tbody
+ max_count = len(tbody.find_all('tr'))
+ return _tbody
+
diff --git a/plugins/draw_card/util.py b/plugins/draw_card/util.py
index 77a83467..ff568338 100644
--- a/plugins/draw_card/util.py
+++ b/plugins/draw_card/util.py
@@ -6,12 +6,12 @@ from aiohttp.client_exceptions import InvalidURL
from typing import List, Union, Set
import asyncio
from pathlib import Path
-from .config import path_dict
+from .config import path_dict, DRAW_PATH
import nonebot
-from util.utils import cn2py
+import pypinyin
from util.img_utils import CreateImg
-from util.user_agent import get_user_agent
from configs.path_config import IMAGE_PATH
+import random
from dataclasses import dataclass
from services.log import logger
try:
@@ -23,6 +23,9 @@ except ModuleNotFoundError:
driver: nonebot.Driver = nonebot.get_driver()
+headers = {'User-Agent': '"Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; TencentTraveler 4.0)"'}
+
+
@dataclass
class BaseData:
name: str
@@ -40,21 +43,20 @@ class UpEvent:
async def download_img(url: str, path: str, name: str) -> bool:
path = path.split('_')[0]
codename = cn2py(name)
- # if not _p.exists():
- # _p.mkdir(parents=True, exist_ok=True)
+ Path(IMAGE_PATH + f'/draw_card/{path}').mkdir(exist_ok=True, parents=True)
if not os.path.exists(IMAGE_PATH + f'/draw_card/{path}/{codename}.png'):
try:
- async with aiohttp.ClientSession(headers=get_user_agent()) as session:
+ async with aiohttp.ClientSession(headers=headers) as session:
async with session.get(url, timeout=7) as response:
async with aiofiles.open(IMAGE_PATH + f'/draw_card/{path}/{codename}.png', 'wb') as f:
await f.write(await response.read())
logger.info(f'下载 {path_dict[path]} 图片成功,名称:{name},url:{url}')
return True
except TimeoutError:
- logger.info(f'下载 {path_dict[path]} 图片超时,名称:{name},url:{url}')
+ logger.warning(f'下载 {path_dict[path]} 图片超时,名称:{name},url:{url}')
return False
except InvalidURL:
- logger.info(f'下载 {path_dict[path]} 链接错误,名称:{name},url:{url}')
+ logger.warning(f'下载 {path_dict[path]} 链接错误,名称:{name},url:{url}')
return False
else:
# logger.info(f'{path_dict[path]} 图片 {name} 已存在')
@@ -64,7 +66,7 @@ async def download_img(url: str, path: str, name: str) -> bool:
@driver.on_startup
def _check_dir():
for dir_name in path_dict.keys():
- _p = Path(IMAGE_PATH + f'/draw_card/' + dir_name)
+ _p = Path(DRAW_PATH + f'/draw_card/' + dir_name)
if not _p.exists():
_p.mkdir(parents=True, exist_ok=True)
@@ -117,13 +119,13 @@ def _pst(h: int, img_list: list, game_name: str, color_list: list):
else:
b = CreateImg(100, 100, background=img)
except FileNotFoundError:
- print(f'{img} not exists')
+ logger.warning(f'{img} not exists')
b = CreateImg(100, 100, color='black')
card_img.paste(b)
return card_img
-def init_star_rst(star_list: list, cnlist: list, max_star_list: list, max_star_olist: list, up_list: list = None) -> str:
+def init_star_rst(star_list: list, cnlist: list, max_star_list: list, max_star_index_list: list, up_list: list = None) -> str:
if not up_list:
up_list = []
rst = ''
@@ -133,9 +135,9 @@ def init_star_rst(star_list: list, cnlist: list, max_star_list: list, max_star_o
rst += '\n'
for i in range(len(max_star_list)):
if max_star_list[i] in up_list:
- rst += f'第 {max_star_olist[i]+1} 抽获取UP {max_star_list[i]}\n'
+ rst += f'第 {max_star_index_list[i]+1} 抽获取UP {max_star_list[i]}\n'
else:
- rst += f'第 {max_star_olist[i]+1} 抽获取 {max_star_list[i]}\n'
+ rst += f'第 {max_star_index_list[i]+1} 抽获取 {max_star_list[i]}\n'
return rst
@@ -150,6 +152,28 @@ def max_card(_dict: dict):
# return rst[:-1]
+def is_number(s) -> bool:
+ try:
+ float(s)
+ return True
+ except ValueError:
+ pass
+ try:
+ import unicodedata
+ unicodedata.numeric(s)
+ return True
+ except (TypeError, ValueError):
+ pass
+ return False
+
+
+def cn2py(word) -> str:
+ temp = ""
+ for i in pypinyin.pinyin(word, style=pypinyin.NORMAL):
+ temp += ''.join(i)
+ return temp
+
+
def set_list(lst: List[BaseData]) -> list:
tmp = []
name_lst = []
@@ -159,3 +183,54 @@ def set_list(lst: List[BaseData]) -> list:
name_lst.append(x.name)
return tmp
+
+def get_star(star_lst: List[int], probability_lst: List[float]) -> int:
+ rand = random.random()
+ add = 0
+ tmp_lst = [(0, probability_lst[0])]
+ for i in range(1, len(probability_lst) - 1):
+ add += probability_lst[i - 1]
+ tmp_lst.append((tmp_lst[i - 1][1], probability_lst[i] + add))
+ tmp_lst.append((tmp_lst[-1][1], 1))
+ for i in range(len(tmp_lst)):
+ if tmp_lst[i][0] <= rand <= tmp_lst[i][1]:
+ return star_lst[i]
+
+
+# 整理数据
+def format_card_information(count: int, star_list: List[int], func, pool_name: str = ''):
+ max_star_lst = [] # 获取的最高星级角色列表
+ max_index_lst = [] # 获取最高星级角色的次数
+ obj_list = [] # 获取所有角色
+ obj_dict = {} # 获取角色次数字典
+ for i in range(count):
+ if pool_name:
+ obj, code = func(pool_name)
+ else:
+ obj, code = func()
+ star_list[code] += 1
+ if code == 0:
+ max_star_lst.append(obj.name)
+ max_index_lst.append(i)
+ try:
+ obj_dict[obj.name] += 1
+ except KeyError:
+ obj_dict[obj.name] = 1
+ obj_list.append(obj)
+ return obj_list, obj_dict, max_star_lst, star_list, max_index_lst
+
+
+# 检测次数是否合法
+def check_num(num: str, max_num: int) -> 'str, bool':
+ if is_number(num):
+ try:
+ num = int(num)
+ except ValueError:
+ return '必!须!是!数!字!', False
+ if num > max_num:
+ return '一井都满不足不了你嘛!快爬开!', False
+ if num < 1:
+ return '虚空抽卡???', False
+ else:
+ return str(num), True
+
diff --git a/plugins/genshin/query_resource_points/icon/111.png b/plugins/genshin/query_resource_points/icon/111.png
index f4d2cbf0..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/111.png and b/plugins/genshin/query_resource_points/icon/111.png differ
diff --git a/plugins/genshin/query_resource_points/icon/112.png b/plugins/genshin/query_resource_points/icon/112.png
index 9e65d4d1..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/112.png and b/plugins/genshin/query_resource_points/icon/112.png differ
diff --git a/plugins/genshin/query_resource_points/icon/114.png b/plugins/genshin/query_resource_points/icon/114.png
index d40c7408..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/114.png and b/plugins/genshin/query_resource_points/icon/114.png differ
diff --git a/plugins/genshin/query_resource_points/icon/115.png b/plugins/genshin/query_resource_points/icon/115.png
index 170c7cbe..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/115.png and b/plugins/genshin/query_resource_points/icon/115.png differ
diff --git a/plugins/genshin/query_resource_points/icon/116.png b/plugins/genshin/query_resource_points/icon/116.png
index c4ef99d3..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/116.png and b/plugins/genshin/query_resource_points/icon/116.png differ
diff --git a/plugins/genshin/query_resource_points/icon/121.png b/plugins/genshin/query_resource_points/icon/121.png
index 0688557d..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/121.png and b/plugins/genshin/query_resource_points/icon/121.png differ
diff --git a/plugins/genshin/query_resource_points/icon/122.png b/plugins/genshin/query_resource_points/icon/122.png
index 50daa97b..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/122.png and b/plugins/genshin/query_resource_points/icon/122.png differ
diff --git a/plugins/genshin/query_resource_points/icon/123.png b/plugins/genshin/query_resource_points/icon/123.png
index a5292464..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/123.png and b/plugins/genshin/query_resource_points/icon/123.png differ
diff --git a/plugins/genshin/query_resource_points/icon/124.png b/plugins/genshin/query_resource_points/icon/124.png
index 5a2e1080..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/124.png and b/plugins/genshin/query_resource_points/icon/124.png differ
diff --git a/plugins/genshin/query_resource_points/icon/125.png b/plugins/genshin/query_resource_points/icon/125.png
index 8b2a2f3b..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/125.png and b/plugins/genshin/query_resource_points/icon/125.png differ
diff --git a/plugins/genshin/query_resource_points/icon/126.png b/plugins/genshin/query_resource_points/icon/126.png
index 69fb0e25..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/126.png and b/plugins/genshin/query_resource_points/icon/126.png differ
diff --git a/plugins/genshin/query_resource_points/icon/127.png b/plugins/genshin/query_resource_points/icon/127.png
index 96deca99..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/127.png and b/plugins/genshin/query_resource_points/icon/127.png differ
diff --git a/plugins/genshin/query_resource_points/icon/128.png b/plugins/genshin/query_resource_points/icon/128.png
index 2a9d7fe4..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/128.png and b/plugins/genshin/query_resource_points/icon/128.png differ
diff --git a/plugins/genshin/query_resource_points/icon/129.png b/plugins/genshin/query_resource_points/icon/129.png
index 18dbf5da..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/129.png and b/plugins/genshin/query_resource_points/icon/129.png differ
diff --git a/plugins/genshin/query_resource_points/icon/130.png b/plugins/genshin/query_resource_points/icon/130.png
index 819cfa94..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/130.png and b/plugins/genshin/query_resource_points/icon/130.png differ
diff --git a/plugins/genshin/query_resource_points/icon/132.png b/plugins/genshin/query_resource_points/icon/132.png
index c5f6ccdc..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/132.png and b/plugins/genshin/query_resource_points/icon/132.png differ
diff --git a/plugins/genshin/query_resource_points/icon/133.png b/plugins/genshin/query_resource_points/icon/133.png
index 4580c898..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/133.png and b/plugins/genshin/query_resource_points/icon/133.png differ
diff --git a/plugins/genshin/query_resource_points/icon/134.png b/plugins/genshin/query_resource_points/icon/134.png
index 8fea3209..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/134.png and b/plugins/genshin/query_resource_points/icon/134.png differ
diff --git a/plugins/genshin/query_resource_points/icon/135.png b/plugins/genshin/query_resource_points/icon/135.png
index 03dafbce..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/135.png and b/plugins/genshin/query_resource_points/icon/135.png differ
diff --git a/plugins/genshin/query_resource_points/icon/136.png b/plugins/genshin/query_resource_points/icon/136.png
index 0b66d22e..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/136.png and b/plugins/genshin/query_resource_points/icon/136.png differ
diff --git a/plugins/genshin/query_resource_points/icon/137.png b/plugins/genshin/query_resource_points/icon/137.png
index 1d2d1aeb..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/137.png and b/plugins/genshin/query_resource_points/icon/137.png differ
diff --git a/plugins/genshin/query_resource_points/icon/138.png b/plugins/genshin/query_resource_points/icon/138.png
index 46c1aa8e..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/138.png and b/plugins/genshin/query_resource_points/icon/138.png differ
diff --git a/plugins/genshin/query_resource_points/icon/139.png b/plugins/genshin/query_resource_points/icon/139.png
index 77faf73a..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/139.png and b/plugins/genshin/query_resource_points/icon/139.png differ
diff --git a/plugins/genshin/query_resource_points/icon/140.png b/plugins/genshin/query_resource_points/icon/140.png
index 0f8c18d4..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/140.png and b/plugins/genshin/query_resource_points/icon/140.png differ
diff --git a/plugins/genshin/query_resource_points/icon/142.png b/plugins/genshin/query_resource_points/icon/142.png
index 3e9fed51..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/142.png and b/plugins/genshin/query_resource_points/icon/142.png differ
diff --git a/plugins/genshin/query_resource_points/icon/144.png b/plugins/genshin/query_resource_points/icon/144.png
index a2bd5345..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/144.png and b/plugins/genshin/query_resource_points/icon/144.png differ
diff --git a/plugins/genshin/query_resource_points/icon/146.png b/plugins/genshin/query_resource_points/icon/146.png
index 3e3eb1a7..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/146.png and b/plugins/genshin/query_resource_points/icon/146.png differ
diff --git a/plugins/genshin/query_resource_points/icon/147.png b/plugins/genshin/query_resource_points/icon/147.png
index 0b1f1d6d..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/147.png and b/plugins/genshin/query_resource_points/icon/147.png differ
diff --git a/plugins/genshin/query_resource_points/icon/148.png b/plugins/genshin/query_resource_points/icon/148.png
index 5af3c4d3..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/148.png and b/plugins/genshin/query_resource_points/icon/148.png differ
diff --git a/plugins/genshin/query_resource_points/icon/149.png b/plugins/genshin/query_resource_points/icon/149.png
index 15c7b527..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/149.png and b/plugins/genshin/query_resource_points/icon/149.png differ
diff --git a/plugins/genshin/query_resource_points/icon/15.png b/plugins/genshin/query_resource_points/icon/15.png
index ff293295..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/15.png and b/plugins/genshin/query_resource_points/icon/15.png differ
diff --git a/plugins/genshin/query_resource_points/icon/150.png b/plugins/genshin/query_resource_points/icon/150.png
index 6505b52b..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/150.png and b/plugins/genshin/query_resource_points/icon/150.png differ
diff --git a/plugins/genshin/query_resource_points/icon/151.png b/plugins/genshin/query_resource_points/icon/151.png
index 7e5f375a..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/151.png and b/plugins/genshin/query_resource_points/icon/151.png differ
diff --git a/plugins/genshin/query_resource_points/icon/152.png b/plugins/genshin/query_resource_points/icon/152.png
index 13fa2bb2..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/152.png and b/plugins/genshin/query_resource_points/icon/152.png differ
diff --git a/plugins/genshin/query_resource_points/icon/153.png b/plugins/genshin/query_resource_points/icon/153.png
index 0f0cd81a..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/153.png and b/plugins/genshin/query_resource_points/icon/153.png differ
diff --git a/plugins/genshin/query_resource_points/icon/154.png b/plugins/genshin/query_resource_points/icon/154.png
index c64dc1a6..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/154.png and b/plugins/genshin/query_resource_points/icon/154.png differ
diff --git a/plugins/genshin/query_resource_points/icon/155.png b/plugins/genshin/query_resource_points/icon/155.png
index c727d9bd..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/155.png and b/plugins/genshin/query_resource_points/icon/155.png differ
diff --git a/plugins/genshin/query_resource_points/icon/156.png b/plugins/genshin/query_resource_points/icon/156.png
index 4bae16d4..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/156.png and b/plugins/genshin/query_resource_points/icon/156.png differ
diff --git a/plugins/genshin/query_resource_points/icon/157.png b/plugins/genshin/query_resource_points/icon/157.png
index a2240d86..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/157.png and b/plugins/genshin/query_resource_points/icon/157.png differ
diff --git a/plugins/genshin/query_resource_points/icon/158.png b/plugins/genshin/query_resource_points/icon/158.png
index 5557590a..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/158.png and b/plugins/genshin/query_resource_points/icon/158.png differ
diff --git a/plugins/genshin/query_resource_points/icon/159.png b/plugins/genshin/query_resource_points/icon/159.png
index 65e7847d..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/159.png and b/plugins/genshin/query_resource_points/icon/159.png differ
diff --git a/plugins/genshin/query_resource_points/icon/16.png b/plugins/genshin/query_resource_points/icon/16.png
index 335c5620..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/16.png and b/plugins/genshin/query_resource_points/icon/16.png differ
diff --git a/plugins/genshin/query_resource_points/icon/160.png b/plugins/genshin/query_resource_points/icon/160.png
index ce63151f..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/160.png and b/plugins/genshin/query_resource_points/icon/160.png differ
diff --git a/plugins/genshin/query_resource_points/icon/161.png b/plugins/genshin/query_resource_points/icon/161.png
index 529fb1ef..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/161.png and b/plugins/genshin/query_resource_points/icon/161.png differ
diff --git a/plugins/genshin/query_resource_points/icon/162.png b/plugins/genshin/query_resource_points/icon/162.png
index 584445bd..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/162.png and b/plugins/genshin/query_resource_points/icon/162.png differ
diff --git a/plugins/genshin/query_resource_points/icon/163.png b/plugins/genshin/query_resource_points/icon/163.png
index fff75557..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/163.png and b/plugins/genshin/query_resource_points/icon/163.png differ
diff --git a/plugins/genshin/query_resource_points/icon/164.png b/plugins/genshin/query_resource_points/icon/164.png
index ecb3bf75..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/164.png and b/plugins/genshin/query_resource_points/icon/164.png differ
diff --git a/plugins/genshin/query_resource_points/icon/165.png b/plugins/genshin/query_resource_points/icon/165.png
index 7d3f2cb2..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/165.png and b/plugins/genshin/query_resource_points/icon/165.png differ
diff --git a/plugins/genshin/query_resource_points/icon/166.png b/plugins/genshin/query_resource_points/icon/166.png
index 3f79f9fb..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/166.png and b/plugins/genshin/query_resource_points/icon/166.png differ
diff --git a/plugins/genshin/query_resource_points/icon/167.png b/plugins/genshin/query_resource_points/icon/167.png
index 2e4ee1b8..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/167.png and b/plugins/genshin/query_resource_points/icon/167.png differ
diff --git a/plugins/genshin/query_resource_points/icon/168.png b/plugins/genshin/query_resource_points/icon/168.png
index 9f0dfc7a..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/168.png and b/plugins/genshin/query_resource_points/icon/168.png differ
diff --git a/plugins/genshin/query_resource_points/icon/169.png b/plugins/genshin/query_resource_points/icon/169.png
index 78f77636..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/169.png and b/plugins/genshin/query_resource_points/icon/169.png differ
diff --git a/plugins/genshin/query_resource_points/icon/17.png b/plugins/genshin/query_resource_points/icon/17.png
index 40b32bc6..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/17.png and b/plugins/genshin/query_resource_points/icon/17.png differ
diff --git a/plugins/genshin/query_resource_points/icon/171.png b/plugins/genshin/query_resource_points/icon/171.png
index 589dc69c..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/171.png and b/plugins/genshin/query_resource_points/icon/171.png differ
diff --git a/plugins/genshin/query_resource_points/icon/172.png b/plugins/genshin/query_resource_points/icon/172.png
index 7bb0c770..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/172.png and b/plugins/genshin/query_resource_points/icon/172.png differ
diff --git a/plugins/genshin/query_resource_points/icon/174.png b/plugins/genshin/query_resource_points/icon/174.png
index 8b98f1f4..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/174.png and b/plugins/genshin/query_resource_points/icon/174.png differ
diff --git a/plugins/genshin/query_resource_points/icon/175.png b/plugins/genshin/query_resource_points/icon/175.png
index f7b230b8..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/175.png and b/plugins/genshin/query_resource_points/icon/175.png differ
diff --git a/plugins/genshin/query_resource_points/icon/176.png b/plugins/genshin/query_resource_points/icon/176.png
index 8ed71d50..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/176.png and b/plugins/genshin/query_resource_points/icon/176.png differ
diff --git a/plugins/genshin/query_resource_points/icon/177.png b/plugins/genshin/query_resource_points/icon/177.png
index 6bba6626..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/177.png and b/plugins/genshin/query_resource_points/icon/177.png differ
diff --git a/plugins/genshin/query_resource_points/icon/178.png b/plugins/genshin/query_resource_points/icon/178.png
index 7068d7fe..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/178.png and b/plugins/genshin/query_resource_points/icon/178.png differ
diff --git a/plugins/genshin/query_resource_points/icon/179.png b/plugins/genshin/query_resource_points/icon/179.png
index 93ad62d1..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/179.png and b/plugins/genshin/query_resource_points/icon/179.png differ
diff --git a/plugins/genshin/query_resource_points/icon/18.png b/plugins/genshin/query_resource_points/icon/18.png
index 834a9892..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/18.png and b/plugins/genshin/query_resource_points/icon/18.png differ
diff --git a/plugins/genshin/query_resource_points/icon/180.png b/plugins/genshin/query_resource_points/icon/180.png
index a4f2cd33..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/180.png and b/plugins/genshin/query_resource_points/icon/180.png differ
diff --git a/plugins/genshin/query_resource_points/icon/181.png b/plugins/genshin/query_resource_points/icon/181.png
index 35d88703..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/181.png and b/plugins/genshin/query_resource_points/icon/181.png differ
diff --git a/plugins/genshin/query_resource_points/icon/19.png b/plugins/genshin/query_resource_points/icon/19.png
index 15c7b527..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/19.png and b/plugins/genshin/query_resource_points/icon/19.png differ
diff --git a/plugins/genshin/query_resource_points/icon/2.png b/plugins/genshin/query_resource_points/icon/2.png
index 750b70ab..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/2.png and b/plugins/genshin/query_resource_points/icon/2.png differ
diff --git a/plugins/genshin/query_resource_points/icon/20.png b/plugins/genshin/query_resource_points/icon/20.png
index 15c7b527..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/20.png and b/plugins/genshin/query_resource_points/icon/20.png differ
diff --git a/plugins/genshin/query_resource_points/icon/21.png b/plugins/genshin/query_resource_points/icon/21.png
index 15c7b527..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/21.png and b/plugins/genshin/query_resource_points/icon/21.png differ
diff --git a/plugins/genshin/query_resource_points/icon/22.png b/plugins/genshin/query_resource_points/icon/22.png
index 6d3903c2..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/22.png and b/plugins/genshin/query_resource_points/icon/22.png differ
diff --git a/plugins/genshin/query_resource_points/icon/23.png b/plugins/genshin/query_resource_points/icon/23.png
index c741955a..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/23.png and b/plugins/genshin/query_resource_points/icon/23.png differ
diff --git a/plugins/genshin/query_resource_points/icon/24.png b/plugins/genshin/query_resource_points/icon/24.png
index 552c8e0c..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/24.png and b/plugins/genshin/query_resource_points/icon/24.png differ
diff --git a/plugins/genshin/query_resource_points/icon/25.png b/plugins/genshin/query_resource_points/icon/25.png
index f965ee0f..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/25.png and b/plugins/genshin/query_resource_points/icon/25.png differ
diff --git a/plugins/genshin/query_resource_points/icon/26.png b/plugins/genshin/query_resource_points/icon/26.png
index d83e5d94..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/26.png and b/plugins/genshin/query_resource_points/icon/26.png differ
diff --git a/plugins/genshin/query_resource_points/icon/27.png b/plugins/genshin/query_resource_points/icon/27.png
index 6505b52b..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/27.png and b/plugins/genshin/query_resource_points/icon/27.png differ
diff --git a/plugins/genshin/query_resource_points/icon/28.png b/plugins/genshin/query_resource_points/icon/28.png
index 4a55f481..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/28.png and b/plugins/genshin/query_resource_points/icon/28.png differ
diff --git a/plugins/genshin/query_resource_points/icon/29.png b/plugins/genshin/query_resource_points/icon/29.png
index ad5640d2..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/29.png and b/plugins/genshin/query_resource_points/icon/29.png differ
diff --git a/plugins/genshin/query_resource_points/icon/3.png b/plugins/genshin/query_resource_points/icon/3.png
index e7acb4d1..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/3.png and b/plugins/genshin/query_resource_points/icon/3.png differ
diff --git a/plugins/genshin/query_resource_points/icon/30.png b/plugins/genshin/query_resource_points/icon/30.png
index aee459ae..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/30.png and b/plugins/genshin/query_resource_points/icon/30.png differ
diff --git a/plugins/genshin/query_resource_points/icon/31.png b/plugins/genshin/query_resource_points/icon/31.png
index e2011791..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/31.png and b/plugins/genshin/query_resource_points/icon/31.png differ
diff --git a/plugins/genshin/query_resource_points/icon/32.png b/plugins/genshin/query_resource_points/icon/32.png
index 6920a7a0..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/32.png and b/plugins/genshin/query_resource_points/icon/32.png differ
diff --git a/plugins/genshin/query_resource_points/icon/33.png b/plugins/genshin/query_resource_points/icon/33.png
index 29c9d4c7..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/33.png and b/plugins/genshin/query_resource_points/icon/33.png differ
diff --git a/plugins/genshin/query_resource_points/icon/34.png b/plugins/genshin/query_resource_points/icon/34.png
index a95826fa..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/34.png and b/plugins/genshin/query_resource_points/icon/34.png differ
diff --git a/plugins/genshin/query_resource_points/icon/35.png b/plugins/genshin/query_resource_points/icon/35.png
index 2b4490d4..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/35.png and b/plugins/genshin/query_resource_points/icon/35.png differ
diff --git a/plugins/genshin/query_resource_points/icon/36.png b/plugins/genshin/query_resource_points/icon/36.png
index 16122c1c..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/36.png and b/plugins/genshin/query_resource_points/icon/36.png differ
diff --git a/plugins/genshin/query_resource_points/icon/37.png b/plugins/genshin/query_resource_points/icon/37.png
index b7ee5e4b..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/37.png and b/plugins/genshin/query_resource_points/icon/37.png differ
diff --git a/plugins/genshin/query_resource_points/icon/38.png b/plugins/genshin/query_resource_points/icon/38.png
index e2edc76e..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/38.png and b/plugins/genshin/query_resource_points/icon/38.png differ
diff --git a/plugins/genshin/query_resource_points/icon/39.png b/plugins/genshin/query_resource_points/icon/39.png
index 084a54b2..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/39.png and b/plugins/genshin/query_resource_points/icon/39.png differ
diff --git a/plugins/genshin/query_resource_points/icon/40.png b/plugins/genshin/query_resource_points/icon/40.png
index 7d19ceae..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/40.png and b/plugins/genshin/query_resource_points/icon/40.png differ
diff --git a/plugins/genshin/query_resource_points/icon/41.png b/plugins/genshin/query_resource_points/icon/41.png
index 3e3eb753..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/41.png and b/plugins/genshin/query_resource_points/icon/41.png differ
diff --git a/plugins/genshin/query_resource_points/icon/42.png b/plugins/genshin/query_resource_points/icon/42.png
index 65ffab67..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/42.png and b/plugins/genshin/query_resource_points/icon/42.png differ
diff --git a/plugins/genshin/query_resource_points/icon/43.png b/plugins/genshin/query_resource_points/icon/43.png
index 14f37021..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/43.png and b/plugins/genshin/query_resource_points/icon/43.png differ
diff --git a/plugins/genshin/query_resource_points/icon/44.png b/plugins/genshin/query_resource_points/icon/44.png
index f6e3abbc..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/44.png and b/plugins/genshin/query_resource_points/icon/44.png differ
diff --git a/plugins/genshin/query_resource_points/icon/45.png b/plugins/genshin/query_resource_points/icon/45.png
index 09e54d44..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/45.png and b/plugins/genshin/query_resource_points/icon/45.png differ
diff --git a/plugins/genshin/query_resource_points/icon/46.png b/plugins/genshin/query_resource_points/icon/46.png
index f3c0091d..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/46.png and b/plugins/genshin/query_resource_points/icon/46.png differ
diff --git a/plugins/genshin/query_resource_points/icon/47.png b/plugins/genshin/query_resource_points/icon/47.png
index 588addf8..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/47.png and b/plugins/genshin/query_resource_points/icon/47.png differ
diff --git a/plugins/genshin/query_resource_points/icon/48.png b/plugins/genshin/query_resource_points/icon/48.png
index e3588f05..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/48.png and b/plugins/genshin/query_resource_points/icon/48.png differ
diff --git a/plugins/genshin/query_resource_points/icon/49.png b/plugins/genshin/query_resource_points/icon/49.png
index 9a8084d2..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/49.png and b/plugins/genshin/query_resource_points/icon/49.png differ
diff --git a/plugins/genshin/query_resource_points/icon/5.png b/plugins/genshin/query_resource_points/icon/5.png
index 9f34678a..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/5.png and b/plugins/genshin/query_resource_points/icon/5.png differ
diff --git a/plugins/genshin/query_resource_points/icon/52.png b/plugins/genshin/query_resource_points/icon/52.png
index d7a86d29..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/52.png and b/plugins/genshin/query_resource_points/icon/52.png differ
diff --git a/plugins/genshin/query_resource_points/icon/53.png b/plugins/genshin/query_resource_points/icon/53.png
index edc32b6c..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/53.png and b/plugins/genshin/query_resource_points/icon/53.png differ
diff --git a/plugins/genshin/query_resource_points/icon/54.png b/plugins/genshin/query_resource_points/icon/54.png
index 079fcd3a..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/54.png and b/plugins/genshin/query_resource_points/icon/54.png differ
diff --git a/plugins/genshin/query_resource_points/icon/55.png b/plugins/genshin/query_resource_points/icon/55.png
index 0ad0c375..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/55.png and b/plugins/genshin/query_resource_points/icon/55.png differ
diff --git a/plugins/genshin/query_resource_points/icon/56.png b/plugins/genshin/query_resource_points/icon/56.png
index 675b4b51..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/56.png and b/plugins/genshin/query_resource_points/icon/56.png differ
diff --git a/plugins/genshin/query_resource_points/icon/57.png b/plugins/genshin/query_resource_points/icon/57.png
index 42059d7d..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/57.png and b/plugins/genshin/query_resource_points/icon/57.png differ
diff --git a/plugins/genshin/query_resource_points/icon/58.png b/plugins/genshin/query_resource_points/icon/58.png
index 6d974f15..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/58.png and b/plugins/genshin/query_resource_points/icon/58.png differ
diff --git a/plugins/genshin/query_resource_points/icon/59.png b/plugins/genshin/query_resource_points/icon/59.png
index ea647506..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/59.png and b/plugins/genshin/query_resource_points/icon/59.png differ
diff --git a/plugins/genshin/query_resource_points/icon/6.png b/plugins/genshin/query_resource_points/icon/6.png
index 46dd6248..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/6.png and b/plugins/genshin/query_resource_points/icon/6.png differ
diff --git a/plugins/genshin/query_resource_points/icon/61.png b/plugins/genshin/query_resource_points/icon/61.png
index bdb41098..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/61.png and b/plugins/genshin/query_resource_points/icon/61.png differ
diff --git a/plugins/genshin/query_resource_points/icon/62.png b/plugins/genshin/query_resource_points/icon/62.png
index e2756288..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/62.png and b/plugins/genshin/query_resource_points/icon/62.png differ
diff --git a/plugins/genshin/query_resource_points/icon/63.png b/plugins/genshin/query_resource_points/icon/63.png
index 8ab37ba9..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/63.png and b/plugins/genshin/query_resource_points/icon/63.png differ
diff --git a/plugins/genshin/query_resource_points/icon/64.png b/plugins/genshin/query_resource_points/icon/64.png
index a071a2d2..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/64.png and b/plugins/genshin/query_resource_points/icon/64.png differ
diff --git a/plugins/genshin/query_resource_points/icon/65.png b/plugins/genshin/query_resource_points/icon/65.png
index f0ad7543..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/65.png and b/plugins/genshin/query_resource_points/icon/65.png differ
diff --git a/plugins/genshin/query_resource_points/icon/66.png b/plugins/genshin/query_resource_points/icon/66.png
index fba56f23..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/66.png and b/plugins/genshin/query_resource_points/icon/66.png differ
diff --git a/plugins/genshin/query_resource_points/icon/67.png b/plugins/genshin/query_resource_points/icon/67.png
index 6a7718bb..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/67.png and b/plugins/genshin/query_resource_points/icon/67.png differ
diff --git a/plugins/genshin/query_resource_points/icon/68.png b/plugins/genshin/query_resource_points/icon/68.png
index 2e1c8b45..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/68.png and b/plugins/genshin/query_resource_points/icon/68.png differ
diff --git a/plugins/genshin/query_resource_points/icon/69.png b/plugins/genshin/query_resource_points/icon/69.png
index 40b32bc6..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/69.png and b/plugins/genshin/query_resource_points/icon/69.png differ
diff --git a/plugins/genshin/query_resource_points/icon/70.png b/plugins/genshin/query_resource_points/icon/70.png
index 185edcbb..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/70.png and b/plugins/genshin/query_resource_points/icon/70.png differ
diff --git a/plugins/genshin/query_resource_points/icon/71.png b/plugins/genshin/query_resource_points/icon/71.png
index 338673ca..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/71.png and b/plugins/genshin/query_resource_points/icon/71.png differ
diff --git a/plugins/genshin/query_resource_points/icon/72.png b/plugins/genshin/query_resource_points/icon/72.png
index bc594d88..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/72.png and b/plugins/genshin/query_resource_points/icon/72.png differ
diff --git a/plugins/genshin/query_resource_points/icon/73.png b/plugins/genshin/query_resource_points/icon/73.png
index 91bbb218..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/73.png and b/plugins/genshin/query_resource_points/icon/73.png differ
diff --git a/plugins/genshin/query_resource_points/icon/74.png b/plugins/genshin/query_resource_points/icon/74.png
index 52ba1db2..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/74.png and b/plugins/genshin/query_resource_points/icon/74.png differ
diff --git a/plugins/genshin/query_resource_points/icon/75.png b/plugins/genshin/query_resource_points/icon/75.png
index 8a1bcf7c..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/75.png and b/plugins/genshin/query_resource_points/icon/75.png differ
diff --git a/plugins/genshin/query_resource_points/icon/76.png b/plugins/genshin/query_resource_points/icon/76.png
index 0db7ac5f..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/76.png and b/plugins/genshin/query_resource_points/icon/76.png differ
diff --git a/plugins/genshin/query_resource_points/icon/77.png b/plugins/genshin/query_resource_points/icon/77.png
index a18d10d4..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/77.png and b/plugins/genshin/query_resource_points/icon/77.png differ
diff --git a/plugins/genshin/query_resource_points/icon/78.png b/plugins/genshin/query_resource_points/icon/78.png
index 123bbab2..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/78.png and b/plugins/genshin/query_resource_points/icon/78.png differ
diff --git a/plugins/genshin/query_resource_points/icon/79.png b/plugins/genshin/query_resource_points/icon/79.png
index 0ad0c375..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/79.png and b/plugins/genshin/query_resource_points/icon/79.png differ
diff --git a/plugins/genshin/query_resource_points/icon/8.png b/plugins/genshin/query_resource_points/icon/8.png
index e41899b9..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/8.png and b/plugins/genshin/query_resource_points/icon/8.png differ
diff --git a/plugins/genshin/query_resource_points/icon/80.png b/plugins/genshin/query_resource_points/icon/80.png
index 59b29e15..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/80.png and b/plugins/genshin/query_resource_points/icon/80.png differ
diff --git a/plugins/genshin/query_resource_points/icon/81.png b/plugins/genshin/query_resource_points/icon/81.png
index 63e1103c..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/81.png and b/plugins/genshin/query_resource_points/icon/81.png differ
diff --git a/plugins/genshin/query_resource_points/icon/82.png b/plugins/genshin/query_resource_points/icon/82.png
index c4b08c12..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/82.png and b/plugins/genshin/query_resource_points/icon/82.png differ
diff --git a/plugins/genshin/query_resource_points/icon/83.png b/plugins/genshin/query_resource_points/icon/83.png
index 52ba1db2..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/83.png and b/plugins/genshin/query_resource_points/icon/83.png differ
diff --git a/plugins/genshin/query_resource_points/icon/85.png b/plugins/genshin/query_resource_points/icon/85.png
index ba15fa7c..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/85.png and b/plugins/genshin/query_resource_points/icon/85.png differ
diff --git a/plugins/genshin/query_resource_points/icon/87.png b/plugins/genshin/query_resource_points/icon/87.png
index 42978116..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/87.png and b/plugins/genshin/query_resource_points/icon/87.png differ
diff --git a/plugins/genshin/query_resource_points/icon/9.png b/plugins/genshin/query_resource_points/icon/9.png
index 4765b4e0..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/9.png and b/plugins/genshin/query_resource_points/icon/9.png differ
diff --git a/plugins/genshin/query_resource_points/icon/90.png b/plugins/genshin/query_resource_points/icon/90.png
index 05f6f4c0..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/90.png and b/plugins/genshin/query_resource_points/icon/90.png differ
diff --git a/plugins/genshin/query_resource_points/icon/91.png b/plugins/genshin/query_resource_points/icon/91.png
index cb391933..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/91.png and b/plugins/genshin/query_resource_points/icon/91.png differ
diff --git a/plugins/genshin/query_resource_points/icon/92.png b/plugins/genshin/query_resource_points/icon/92.png
index 9119776b..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/92.png and b/plugins/genshin/query_resource_points/icon/92.png differ
diff --git a/plugins/genshin/query_resource_points/icon/93.png b/plugins/genshin/query_resource_points/icon/93.png
index bf8164cd..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/93.png and b/plugins/genshin/query_resource_points/icon/93.png differ
diff --git a/plugins/genshin/query_resource_points/icon/94.png b/plugins/genshin/query_resource_points/icon/94.png
index 8b51144b..e69de29b 100644
Binary files a/plugins/genshin/query_resource_points/icon/94.png and b/plugins/genshin/query_resource_points/icon/94.png differ
diff --git a/plugins/help/config.py b/plugins/help/config.py
index 27d8e36f..1e98b0fa 100644
--- a/plugins/help/config.py
+++ b/plugins/help/config.py
@@ -30,9 +30,11 @@ entertainment_help = {
'luxun': '鲁迅说过 --> 指令:鲁迅说',
'fake_msg': '构造一个假消息 --> 指令:假消息',
'shop': '商店系统(初始送100金币) --> 指令:商店/我的金币/购买道具/使用道具',
- 'draw_card_p': '换个地方当非酋TvT... --> 指令:方舟一井/方舟N抽(0 指令:原神一井/原神N抽(0 指令:赛马娘一井/赛马娘N抽/赛马娘卡一井/赛马娘卡N抽(0 指令:方舟一井/方舟N抽(0 指令:原神一井/原神N抽(0 指令:赛马娘一井/赛马娘N抽/赛马娘卡一井/赛马娘卡N抽(0 指令:坎公骑冠剑一井/坎公骑冠剑武器一井/坎公骑冠剑N抽/坎公骑冠剑武器N抽(0 指令:pcr一井/pcrN抽(0 直接查看 骰子娘帮助!',
'one_friend': '我有一个朋友想问问... --> 指令:我有一个朋友想问问xxx(内容)',
'nickname': '区区昵称! --> 指令:以后叫我xx(昵称)/我是谁/取消昵称',
diff --git a/plugins/help/data_source.py b/plugins/help/data_source.py
index d95d719d..94e357c4 100644
--- a/plugins/help/data_source.py
+++ b/plugins/help/data_source.py
@@ -113,15 +113,10 @@ def create_group_help_img(group_id: int):
def parse_cmd(cmd, group_id, plugin_list):
flag = '√'
dfg = None
- if cmd == 'draw_card_p':
- cmd = 'draw_card'
- dfg = 'p'
- elif cmd == 'draw_card_g':
- cmd = 'draw_card'
- dfg = 'g'
- elif cmd == 'draw_card_h':
- cmd = 'draw_card'
- dfg = 'h'
+ if cmd.find('draw_card') != -1:
+ lst = cmd.split('_')
+ cmd = lst[0] + '_' + lst[1]
+ dfg = lst[-1]
elif cmd == 'pixiv_r':
cmd = 'pixiv'
dfg = 'r'
@@ -137,12 +132,8 @@ def parse_cmd(cmd, group_id, plugin_list):
def rcmd(dfg):
- if dfg == 'p':
- return 'draw_card_p'
- if dfg == 'g':
- return 'draw_card_g'
- if dfg == 'h':
- return 'draw_card_h'
+ if dfg in ['prts', 'genshin', 'pretty', 'guardian', 'pcr']:
+ return 'draw_card_' + dfg
if dfg == 'r':
return 'pixiv_r'
if dfg == 's':
diff --git a/plugins/open_cases/utils.py b/plugins/open_cases/utils.py
index 464431cc..e7bc6645 100644
--- a/plugins/open_cases/utils.py
+++ b/plugins/open_cases/utils.py
@@ -17,6 +17,7 @@ from nonebot.adapters.cqhttp.exception import ActionFailed
from configs.config import buff_proxy
url = "https://buff.163.com/api/market/goods"
+# proxies = 'http://49.75.59.242:3128'
async def util_get_buff_price(case_name: str = "狂牙大行动") -> str:
@@ -261,7 +262,7 @@ async def update_count_daily():
for user in users:
await user.update(
today_open_total=0,
- ).apply()
+ ).apply()
bot = get_bot()
gl = await bot.get_group_list(self_id=bot.self_id)
gl = [g['group_id'] for g in gl]
diff --git a/plugins/quotations.py b/plugins/quotations.py
index 43e4b853..759ce6c1 100644
--- a/plugins/quotations.py
+++ b/plugins/quotations.py
@@ -1,29 +1,30 @@
from nonebot import on_command
-import random
-from util.utils import get_lines
-from configs.path_config import TXT_PATH
from services.log import logger
from nonebot.adapters.cqhttp import Bot, MessageEvent
from nonebot.typing import T_State
+import aiohttp
+from util.utils import get_local_proxy
__plugin_name__ = '语录'
__plugin_usage__ = '用法: 二次元语录给你力量'
-lines = get_lines(TXT_PATH + "yulu.txt")
-
-
quotations = on_command("语录", aliases={'二次元', '二次元语录'}, priority=5, block=True)
+url = 'https://international.v1.hitokoto.cn/?c=a'
+
@quotations.handle()
async def _(bot: Bot, event: MessageEvent, state: T_State):
if str(event.get_message()) in ['帮助']:
await quotations.finish(__plugin_usage__)
- result = random.choice(lines)
+ async with aiohttp.ClientSession() as session:
+ async with session.get(url, proxy=get_local_proxy(), timeout=5) as response:
+ data = await response.json()
+ result = f'{data["hitokoto"]}\t————{data["from"]}'
+ await quotations.send(result)
logger.info(
f"(USER {event.user_id}, GROUP {event.group_id if event.message_type != 'private' else 'private'}) 发送语录:"
- + result[:-1])
- await quotations.finish(result[:-1])
+ + result)
diff --git a/plugins/send_setu/data_source.py b/plugins/send_setu/data_source.py
index ac8e8d19..ec95f059 100644
--- a/plugins/send_setu/data_source.py
+++ b/plugins/send_setu/data_source.py
@@ -38,7 +38,7 @@ async def get_setu_urls(keyword: str, num: int = 1, r18: int = 0):
'keyword': keyword, # 若指定关键字,将会返回从插画标题、作者、标签中模糊搜索的结果
'num': num, # 一次返回的结果数量,范围为1到10,不提供 APIKEY 时固定为1
'size1200': 1, # 是否使用 master_1200 缩略图,以节省流量或提升加载速度
- }
+ }
urls = []
text_list = []
for count in range(3):
diff --git a/plugins/server_ip.py b/plugins/server_ip.py
index a6d7699c..b330a494 100644
--- a/plugins/server_ip.py
+++ b/plugins/server_ip.py
@@ -13,22 +13,22 @@ server_ip = on_command("服务器", aliases={'ip'}, rule=to_me(), priority=5, bl
@server_ip.handle()
async def _(bot: Bot, event: PrivateMessageEvent, state: T_State):
await server_ip.finish("|* 请不要发给其他人! *|\n"
- "\t***********\n"
+ "\t121.40.195.22\n"
"|* 请不要发给其他人! *|\n"
- "csgo ~号键控制台输入 connect ip 进入服务器\n"
+ "csgo ~号键控制台输入 connect 121.40.195.22 进入服务器\n"
"然后再公屏输入 !diy 来使用皮肤(英文感叹号,注意)\n"
"【说不定可以凑到内战噢,欢迎~{娱乐为主,别骂人球球了}】", at_sender=True)
-# @server_ip.handle()
-# async def _(bot: Bot, event: GroupMessageEvent, state: T_State):
-# if event.group_id == ***********:
-# await server_ip.finish("嗨呀!当前服务器地址是:"
-# "\ncsgo:***********")
-# elif event.group_id == ***********:
-# await server_ip.finish("嗨呀!当前服务器地址是:*********** !diy")
-# else:
-# await server_ip.finish("不好意思呀,小真寻不能为你使用此功能,因为服务器IP是真寻的小秘密呀!", at_sender=True)
+@server_ip.handle()
+async def _(bot: Bot, event: GroupMessageEvent, state: T_State):
+ if event.group_id == 698279647:
+ await server_ip.finish("嗨呀!当前服务器地址是:"
+ "\ncsgo:\n\tay: 121.40.195.22\n\twzt: 101.200.199.143\n我的世界:\n\t47.111.1.220:25565")
+ elif event.group_id == 1046451860:
+ await server_ip.finish("嗨呀!当前服务器地址是:\n121.40.195.22\n !diy")
+ else:
+ await server_ip.finish("不好意思呀,小真寻不能为你使用此功能,因为服务器IP是真寻的小秘密呀!", at_sender=True)
diff --git a/plugins/shop/__init__.py b/plugins/shop/__init__.py
index 8b137891..e69de29b 100644
--- a/plugins/shop/__init__.py
+++ b/plugins/shop/__init__.py
@@ -1 +0,0 @@
-
diff --git a/plugins/test.py b/plugins/test.py
new file mode 100644
index 00000000..4fa87c0c
--- /dev/null
+++ b/plugins/test.py
@@ -0,0 +1,36 @@
+from nonebot.rule import to_me
+from nonebot.typing import T_State
+from nonebot.adapters.cqhttp import Bot, GroupMessageEvent, MessageEvent
+from nonebot import on_command, on_keyword
+from nonebot.plugin import MatcherGroup
+from nonebot.adapters.cqhttp.event import GroupRequestEvent
+import nonebot
+from models.open_cases_user import OpenCasesUser
+from tzlocal import get_localzone
+from datetime import datetime, timezone, timedelta
+from util.utils import get_bot, get_message_imgs, get_local_proxy
+from util.init_result import *
+from nonebot.adapters.cqhttp.message import MessageSegment
+import requests
+import aiohttp
+from models.bag_user import UserBag
+from nonebot.adapters.cqhttp.message import Message
+import asyncio
+from models.group_member_info import GroupInfoUser
+
+# erm = on_command('异世相遇,尽享美味', aliases={'异世相遇 尽享美味', '异世相遇,尽享美味'}, priority=5, block=True)
+
+matcher = on_keyword({"test"})
+
+
+@matcher.handle()
+async def _(bot: Bot, event: MessageEvent, state: T_State):
+ for i in range(1001, len(os.listdir(IMAGE_PATH + 'setu/'))):
+ await matcher.send(f"id:{i}" + image(f'{i}.jpg', 'setu'))
+ await asyncio.sleep(0.5)
+
+
+# @erm.handle()
+# async def first_receive(bot: Bot, event: Event, state: T_State):
+# print(record('erm'))
+# await matcher.send(record('erm'))
diff --git a/resources/txt/yulu.txt b/resources/txt/yulu.txt
deleted file mode 100644
index 81b4973c..00000000
--- a/resources/txt/yulu.txt
+++ /dev/null
@@ -1,563 +0,0 @@
-人生就是一列开往坟墓的列车,路途上会有很多站,很难有人可以至始至终陪着走完。
- 我也很没用,但是两个人一起的话,就会变得很坚强。
- 你给不了我想要的东西,活在自己的世界里的付出没意义。
- 我喜欢雨,因为它带来天空的味道。
- 如果你是魔女,我只要化身为魔王就可以了。
- 或许前路永夜,即便如此我也要前进,因为星光即使微弱也会为我照亮前途。
- 曾经发生过的事情不可能忘记,只不过是想不起而已。
- 永远也不要忘记能够笑的坚强 =)
- 看吧,星星只有在夜里才璀璨夺目啊。
- 错的不是我 错的是这个世界。
- 虽然迷茫与痛苦过,但也曾天真的笑过。
- 无法舍弃两个方中的任何一方,那不是温柔,那不过是软弱罢了。
- 被大家所依赖的人,在自己受伤的时候往往只能独自面对痛苦。
- 这个世界从来不曾对任何人温柔,与其诅咒黑暗,不如燃起蜡烛。
- 我不知道离别的滋味是这样凄凉,我不知道说声再见要这么坚强。
- 痛苦,是保持清醒的最好方式。
- 我只能送你到这里了,剩下的路你要自己走,不要回头。
- 自己来选择,不会后悔的路,——利威尔。
- 人老的唯一好处就是,少了的东西越来越少了。
- 能原谅女人谎言的才是真正的男人。
- 你原本打算吃掉我,所以就算被我吃掉,也没资格抱怨吧。
- 远的不是距离,而是次元啊。
- 我回来了,从轮回的尽头。
- 没有期待就没有失望,没有羁绊就不会受伤。
- 失败的人只有一种,就是在抵达成功之前放弃的人。
- 你说你会爱我一辈子,我真傻,居然忘了问“是这辈子还是下辈子”
- 木叶飞舞之处,火亦生生不息。
- 对不起,我对活一千年没有兴趣,我只要今天能活着就好。
- 时间不会冲淡痛苦,时间只会让人习惯痛苦。
- 我们仰望着同一片天空却看着不同的地方。
- “转瞬即逝的相逢与离别,每一个瞬间,我都想要珍惜,
- 世上所有的不公平 都是因为当事者的能力不足造成的。
- 一如既往,孤独相伴,万千纷扰,与我何干。
- 曾经发生过的事不可能忘记,只是想不起来了。
- 很奇怪,我忘记了我自己的名字,但是千寻的名字我却一直都记得。
- 我很好奇,阎王爷的生死簿上可有他自己的名字!
- 立誓今生尊你为王,用我热血为你封疆。
- 我情愿在你的记忆里淡忘,也不愿你为我受伤。
- 没有第二把刀的人,是没有资格成为杀手的。
- 王来承认,王来允许,王来背负整个世界。
- 比起不做而后悔,不如做了再后悔。
- 你的愿望,我确实听到了,一岐日和, 汝为有缘人。
- 弱者,连死的方式都无从选择。
- -烦恼着迷惑着痛苦着,而最后得到的答案却简单到让我不禁想笑出来。
- 即便再悲伤也要勇敢活下去,这是人类的诅咒,但一定,也是一种祝福。
- 天若无能制裁邪恶,我等将会于黑暗之中给予消逝-----
- 没必要的事就不做,必要的事就尽快做。
- 与其伤害别人,我宁愿被伤害。
- 如果结果不如你所愿 就在尘埃落定前奋力一搏。
- 做不到的事情就不要轻易答应人。
- 我不是天生的王者 但我骨子里流动着不让我低头的血液。
- 人正是因为度过了一段阴暗岁月,才会更渴求黎明的曙光。
- 自己来选择,不会后悔的道路。
- 你没听过这句伟大的名言么?“肚子饿了就要吃!。
- 只要有你想要保护的东西,那就拔剑好了。
- 事情总是突然的,而理由总是事后面加上去的。
- 不知所措,才是人生。
- 一举一动,都是承诺,会被另一个人看在眼里,记在心上的。
- 一悲一喜一枉然,一草一木一红颜。
- Yes,my lord.
- 干燥的空气,尘埃的味道,我在其中…踏上旅途。
- 迷茫时,坚定地对自己说,当时的梦想,我还记得。
- 只要有你在,我就无所不能。
- 我是一个经常笑的人,可我不是经常开心的人。
- 不相信自己的人 连努力的价值都没有。
- 一点都不可怕的对手其实才是最恐怖的敌人。
- 回忆这东西毫无意义,我不是已经证明了吗。
- 就算是对我抱有敌意的人,也是被某个人深爱着而降生在这个世界上的。
- 无常索命,厉鬼勾魂。
- 我再也不要看见她哭的样子了,就算我从此从她心目中消失。
- 生命可以随心所欲,但不能随波逐流。
- 他喜欢她,无关爱情,她幸福了,于是他也幸福了。
- 温柔正确的人总是难以生存,因为这世界既不温柔,也不正确。
- 奇迹不是免费的,如果你祈求了希望,也会散播出同等的绝望。
- 时间能冲淡痛苦,但是,我并不想用时间来治愈一切。
- 你驻足于春色中,于那独一无二的春色之中。
- 那些口口声声为了别人的家伙,基本上其实都是为了自己。
- 每次我最痛苦的时候你总是能看透我的心,虽然很不甘心,但是我好高兴。
- 世上并没有绝对的善与恶,差别只在于强者和无法分清事实的弱者。
- 这世上所有的不利状况,都是当事者能力不足导致的。
- 解开它,试试的话也许能行,但是,不尝试的话就绝对办不到。
-“如果下雨了,你愿意留下吗?”,“即使不下雨,我也在这里啊,
- 孤独的人不会伤害别人,只会不断地伤害自己罢了。
- 没有光明是不幸的吗?需要光明才是真正的不幸。
- 我的愿望是,将一位少女拥入怀中,而拯救世界,只不过是顺带罢了。
- 没有被杀的觉悟,就没有杀戮的资格。
- 世界这么大,人生这么长,总会有这么一个人,让你想要温柔的对待。
- 人永远不知道,谁哪次不经意的跟你说了再见之后,就真的不会再见了。
- 这个世界里没有什么规则,就算有,那也是由我创造的。
- 其实美丽的故事都是没有结局的,只因为它没有结局所以才会美丽。
- 喜欢你,因为我喜欢你,比世界上的任何一个人都喜欢你。
- 一旦拒绝了信仰,就不能再踏入神的大门。
- 在我感到艰辛痛苦的时候,给予我支持的,是大量的虚构故事。
- 我们仰望著同一片天空却看著不同的地方。
- 不胜,则亡,但,不战,就不会胜利。
- I do not know go where,but I have been on the road.,我不知道将去何方,但我已在路上。
- 无论你期望或者不期望,清晨依旧来临。
- 我是什么人没必要告诉你,正如我从来没问过你是什么人。
- 有些烦恼,丢掉了,才有云淡风轻的机会。
- 要让一群人团结起来,需要的不是英明的领导,而是共同的敌人。
-有些事,记得不如忘了好。《白蛇·缘起》
-大声的笑出来,就不害怕了。《龙猫》
-荣耀之路,是没有止境的。《全职高手》
-红姬啼鸣孰解意,蛇尾惊风虎吼疾。《死神》
-喝他喝过的酒,受他受给伤。《魔道祖师》
-别人的梦想,你少给我插手!《银河奥特曼》
-常如风起,人生不可弃。《起风了》
-光再美,怎如初见。《未闻花名》
-要代表月亮,消灭你们!《美少女战士》
-崇拜,是距离理解最远的感情。《死神》
-我们的征途是星辰大海。《银河英雄传说》
-能收拾那个女孩的,只有我!《银魂》
-艾伦,有你,我什么都能。《进击的巨人》
-你特别好,我喜欢你。《魔道祖师》
-美丽,然而却令人有些不安。《择天记》
-我绝不会让你再死一次了。《镇魂街》
-什么都没有了,连病都没有了。《择天记》
-熊大熊二,光头强又来砍树了。《熊出没》
-繁叶散尽,重融泥土,生生不息。《K》
-大家都是奇怪而普通的。《意外的幸运签》
-想要确定,想要相连,其实很害怕吧。《K》
-手握神杖的不是神明,是教宗。《择天记》
-光头强,我的木头呢。《熊出没》
-别太逞强,别忘了你还有我。《足球小将》
-清醒地活着,或者清醒地死去。《择天记》
-若合我意,一切皆好。《文豪野犬》
-我只是在练习,跟你说再见。《死神》
-燃烧吧,小宇宙!《圣斗士星矢》
-会努力就是最棒的才能啊!《元气囝仔》
-我马上就去,跑着去。《穿越时空的少女》
-转世重生,今生定不负你!《妖神记》
-鱼。你看,又闪了一下。《龙猫》
-是非在己,毁誉由人。《魔道祖师》
-心在哭泣,眼睛却流不出泪水。《寄生兽》
-这次我绝不逃避,直面一切给你瞧瞧。《K》
-呔,好你个妖精。《葫芦娃》
-不知所措,才是人生。《海贼王》
-树木和人类曾经是很好的朋友。《龙猫》
-尊的赤,是最美丽的,赤。《K》
-我早就忘了,该如何开心的笑了。《黑执事》
-这个世界上,没有什么是理所当然的!《K》
-不可能,爱就是责任。《镇魂街》
-起风了,唯有努力生存。《起风了》
-谢谢你来过我的世界。《萤火之森》
-我不要变成你的包袱!《侧耳倾听》
-看的开一点,伤得就会少一点。《龙猫》
-那些言语中的,复杂思考。《死神》
-接受别人的爱,有时确实很沉重。《银魂》
-吾王礼司,剑统万宗。《K》
-有情若无情,相见不如不见。《择天记》
-到了最后,只有相信自己。《网球王子》
-勿因未候日光暖,擅自轻言世间寒。《K》
-爱上他,不如先习惯他!《红猪》
-邪魔,现形吧!《十二生肖守护神》
-未待旭日,不可语寒。《K》
-爱不是一句话,只是一个动作。《千与千寻》
-现实是给那些缺乏想象力的人的。《龙猫》
-安啦,安啦,船到桥头自然直。《K》
-生不由己,不如不生。《镇魂街》
-你将来愿意嫁给我吗?《侧耳倾听》
-远行之路,有朋相伴,便无畏惧。《K》
-千言万语,不当一默。《择天记》
-我在未来等你,且行且珍惜。《千与千寻》
-心存善意,定能途遇天使。《龙猫》
-系君千里行,心系君之名。《你的名字》
-起风了,我们还要努力活下去。《起风了》
-以剑制剑,我等大义无霾。《K》
-我变强了,也秃了。《一拳超人》
-小学生真是太棒了!《萝球社》
-错的不是我,是这个世界!《反叛的鲁鲁修》
-金属易断,人心亦然。《文豪野犬》
-凡是战斗的人,才能取得胜利。《武庚纪》
-宁欺千金裘,莫惹下三流。《少年歌行》
-喜欢,但是无限接近于爱。《橙路》
-我,很努力的在这边活过了。《刀剑神域》
-有目标,才能向着目标前进。《择天记》
-生命是黑暗中闪烁的光。娜乌西卡《风之谷》
-我果然是个天才!《灌篮高手》
-人各有命,上天注定。《镇魂街》
-来到这世上真是太好了。《悬崖上的金鱼姬》
-努力是不会背叛自己的,虽然梦想会背叛。
-努力不一定能实现梦想,但是曾经努力过的事实却足以安慰自己。
-现实中,有人幸福,就必定有人被抛弃,有人光鲜,就必须有人满身泥泞。
-“努力”是这个世界上最虚伪的东西之一,是成功者的借口,是失败者的安慰。然而不幸的是,努力却又是必须的,是即使明知会血本无归也不得不付出的投资。
-所谓孤零零指的不是周围的人口密度,而是指个人的精神层面了。就算别人离你再近,要是不能感觉和自己是同一种生物,那么干涸的心也得不到满足。
-要变得坚强。如果很软弱的话,终有一日会连悲鸣都无法发出,活得像行尸走肉一般。
-当对自己抱有信心的时候,不该轻易说出期待,期待是放弃后才能说的话,只得如此,别无他法,如果没有这种无奈只显得矫情。
-有才能的人如果对自己的才能毫无自觉的话,那么会让没有才能的人觉得无比讽刺。
-对自己有自信时,不能对人说「期待」。所谓的「期待」是放弃时的托词,因为别无选择。若缺少这种无奈感,说这个词就太虚伪了。
-有一天,你到了人类的世界,不要去爱上一个人, 因为,爱上一个人, 会让你真正变成孤单一人。
-送走人间种种别离,送走世间种种变迁,逝者如斯,时光永远不会止步,所以,我们会再度与人萍水相逢,相识相知,一同织下我们的人生。
-只要在这里,你就不是孤身一人。昔日织会记下,那些漠然被岁月消磨的记忆,那些不得不别过的人儿,也会在昔日织里,与你执手相看泪眼。
-是你教会了我:悲痛的事,温柔以对; 难过的事,坚强以对。
-从失败中吸取教训就是这样的,但是大多数人只把它挂在嘴边,根本就不学,以此为借口忘掉失败。
-无论栖于清流,还是栖于浊流,只要向前游终究可以成为美丽的鱼。
-眼泪,有时候是一种无法言说的幸福。微笑,有时候是一种没有说出口的伤痛。 总会有一次流泪,让我们瞬间长大。
-“喜欢就像是风吹过大海的声音.”
-“如果你愿意听,每一句都是我爱你.”
- “想要循环你的心跳,也想回放你的傻笑.”
-“记得她在信纸上为我写的每个字,却再也没有见过她一次.”
-生命可以随心所欲,但不能随波逐流。——森田宏幸《猫的报恩》
-我不知将去何方,但我已经在路上。——宫崎骏《千与千寻》
-我们仰望同一片天空,却看着不同的地方。——新海诚《秒速五厘米》
-时间带着明显的恶意,在我身上缓缓流逝。——新海诚《秒速五厘米》
-有思念你的人在的地方,就是你的归处。——《火影忍者》
-不要停止奔跑,不要回顾来路,来路无可眷恋,值得期待的只有前方。——《马男波杰克》
-如果结果并非所愿,那就在尘埃落定前奋力一搏。(夏目贵志《夏目友人帐》)
-我们终会相知,在那悠远的苍穹。
-马上,春天就要来了,与你相遇的春天,一个没有你的春天。——《四月是你的谎言》
-我觉得你很幸运,因为你可以选择爱我或不爱我,而我只能选择爱你或更爱你。——《日在校园》
-如果能在六十亿分之一的概率下与你相遇,即使你那时候你还是身体无法动弹,我也会和你结婚。 —— 《Angel Beats》
-早苗阿姨说过,能哭的地方只有厕所和爸爸的怀里。——《CLANNAD》
-秒速五厘米,那是樱花飘落的速度,那么怎样的速度才能走完我与你之间的距离?——《秒速五厘米》
-愿你有一天能和你最重要的人再次相遇!——《可塑性记忆》
-我愿为你带上罪恶之冠,即使背负.上所有的罪恶和孤独,也绝不让你受伤。——《罪恶王冠》
- 明明想要杀死某种生物,自己却没有做好被杀死的准备,你不觉得这种想法很奇怪么?——时崎狂三《约会大作战》
- 我们每天度过的称之为日常的生活,其实是一个个奇迹的连续也说不定。《日常》
- 与其有闲琢磨如何漂亮死去,还不如漂亮的活到最后一刻。《银魂》
- 我是要成为海贼王的男人啊ヽ(`Д´)ノ~路飞《海贼王》
-拥有被杀的觉悟,才有开枪的权利。」——鲁鲁修《反叛的鲁鲁修》
-朱雀,你要成为英雄,从世界的敌人皇帝鲁路修·V·不列颠尼亚手中拯救世界的救世主,成为 Zero。这也是对你的惩罚,你必须作为正义的使者戴着面具活下去,不用在作为枢木朱雀,也必须为世界牺牲承认该有的幸福,永远-----《叛逆的鲁鲁修》
-这是你若不能理解的,人类感情的极致,比希望更热烈,比绝望更深邃的——爱啊!——晓美焰《魔法少女小圆—叛逆的物语》
-我们只是活着就已经竭尽全力了。《银魂》
- 我们终会相知,在那悠远的苍穹。by《缘之空》
- 零食就是正义!——紫原敦《黑子的篮球》
- 来吧!颤抖吧!惊叹吧!绝望吧!放声大哭吧!我的艺术就是——————爆炸!———《火影忍者》迪达拉
- 我觉得你很幸运,因为你可以选择爱我或不爱我,而我只能选择爱你或更爱你。——桂言叶《日在校园》
- 我终于明白了,你并不是因为命令或者身为 Servant 来保护我,而是出于自身意志,保护了我啊———伊莉亚《Fate stay night》
- 把已经失去的东西重新变得有意义的职业只有两个,作家和侦探。只有作家才能在梦想中将其复活,只有侦探才能将其从坟墓中挖掘出来还原成信息。---爱丽丝《神的记事本》
-「不抵抗就不会死,为什么你就是不明白!」——卡缪·维丹《机动战士 Z 高达》
-「没有什么大不了」这句话,只有当事者才有资格说——《悠久之翼》
-「我——撒了一个谎,宫园薰,喜欢渡亮太的,这样的一个谎。这个谎把你——有马公生君,命运般地带到了我的面前。」马上,春天就要来了,与你相遇的春天,一个没有你的春天.《四月是你的谎言》
- 如果这是你的希望的话, 我就随你到天涯海角吧. 即使王座崩坏, 金光闪闪的王冠腐朽, 数之不尽的尸体堆积如山, 我会留在静静横卧的, 小小的王的身边, 直到将军的声音响起, 之时.《黑执事》
-"谢谢你们! 比谢谢更加的谢谢!"--真白《樱花庄的宠物女孩》
-"悲伤也是会有的, 倒不如说尽是这样的事, 可正是如此我们才更需要前进, 令人唾弃的事由我们来做, 剩下的就去改变世界吧! 塔兹米! 用你炽热的灵魂呐喊吧!"--布兰德《斩赤红之瞳》
- 能哭的地方,只有厕所,和爸爸的怀里。—《clannad》
- 谁都无法相信未来,谁都无法接受未来。——晓美焰《魔法少女小圆》
- 隐约雷鸣,阴霾天空,但盼风雨来,能留你在此。《言叶之庭》
- 要得到幸福的话,就需要与之相应的努力,也就是代价。不是经常说人生是正负和零么!有好事也有痛苦的事,有痛苦的事也有好事。不过这是错的。为了变得幸福,作为代价,必须背负与其同等的不幸。也就是说为了好事情,必须要忍受坏事情。所谓有痛苦的事就有好事什么的,并不是含有乐观意味的话。反过来说,在高的地位上的话,对工作就有相应的高要求对吧。要是不能满足这种高要求就是不诚实的人。再进一步反过来说,要把自己置于不幸中的话,自己就必须放弃一定程度的努力。——壹原侑子《xxxHolic》
- 这样被诅咒的人生,怎么能接受呢。ー仲村由理《angelbeats》
- 人类这种生物,有时候是连短短的十分钟也等不起的!———仲村由理《Angel Beats!》
- 惟愿, 你与你所处的这个世界, 今后也如此幸福。——黑桐干也《空之境界》
- 你要是没有胜算的话,就由我来创造胜算,尝试一切可能的方法。---Saber《Fate stay night》
- 面麻最喜欢仁太了…对仁太的喜欢…是想成为仁太新娘的那种喜欢~《未闻花名》
-有树叶飞舞的地方,就会有火在燃烧,火的意志照耀着村子,就会有更多的树叶发芽,他们会承载着火的意志,把信念带向远方。——《火影忍者》
-雪,只要落下便已是此生的尽头,唯有融化消失,然而,即使飞舞着上升,最后仍不忘落下的那颗种子。虽然有些虚幻,却比什么都坚强。我啊-----虽然 绝对算不上什么优秀,但至少,希望能像雪一般,变得坚强起来。----《至少像雪那样》
-所谓的觉悟、就是在黑暗的荒野中开辟前行的道路—乔鲁诺乔班纳《JOJO 的奇妙冒险》
-即使这份感情是虚假的,这也是我唯一的真实。楪祈《罪恶王冠》
-因为我是天才嘛!——樱木花道《灌篮高手》
-教练,我想打篮球。三井寿《灌篮高手》
-没有痛苦相伴的教训是毫无意义的,因为、人倘若不牺牲些什么,就什么也不可能得到。但是,当直面这些痛苦、克服它们的时候,人将获得不输给任何事物的坚韧的心。没错,钢铁一般的心。——爱德华《钢之炼金术师》
- 雪为什么是白色的?因为它们忘记了自己本身的颜色……C.C《反叛的鲁路修》
- 你的所言所行,全都闪烁着光芒,太过刺目,于是我闭上双眼,但内心还是无法停止对你的憧憬。——《四月是你的谎言》
-「何等失态,罪该万死」———提耶利亚《高达 OO》
- 那个……其实啊,我想说的是,就算我死了,你也要努力活下去。活下去,看着这个世界直到最后,请帮我找出创造这个世界的意义,像我这样的胆小鬼来到这个世界的意义,还有我跟你相遇所代表的意义。——幸《刀剑神域》
- 一个人才会混乱的吧,即使是在黑暗中,只要有个人和自己一起走的话,就会安心很多,也一定会找到答案的。——《TrueTears》
- 我错了,善良没有任何意义 渣滓必须受到歧视 我... 要成为王——樱满集《罪恶王冠》
- 如果每个人都能为自己所爱的事情付诸努力,那崭新的地方定是梦想的终点---《LOVE LIVE》
--莫扎特曾经说过大胆地踏上旅途吧,我不知道路途的前方究竟有什么,但是,我们还是迈出了步伐,我们仍在旅途之中。——有马公生《四月是你的谎言》
- 我可是货真价实的萝莉控,我对女性的好球带是 7 岁到 12 岁 也就是说。。。我只把小学女生当成异性 虽然有时年龄会往下修正,可是绝对不会往上调整 真是的,小学生真是太棒了!---安藤寿来《日常系的异能战斗》
- 萝莉控不是病,是人生态度啊!安藤寿来《日常系的异能战斗》
- 我不能喝酒,请给我一杯橙汁。户愚吕弟《幽游白书》
- 所谓的王者,就是要活的比任何人都要耀眼,成为万民敬仰的存在。伊斯坎达尔《Fate Zero》
- 如果能在六十亿分之一的概率下次与你相遇,即使你那时候你还是身体无法动弹,我也会和你结婚。」——日向秀树《AngelBeats!》
- 我想知道,为何世界如此扭曲,这份扭曲又从何产生。为何人类要支配被支配,又是为何人类要如此悲哀的活着.《高达》
- 瞬间的犹豫可是会丧命的,所以我决不会犹豫。——夏尔《黑执事》
- 1000 减 7 等于多少?---金木研《东京喰种》
- 总有一天我会让这里座无虚席!——高坂穗乃果《LoveLive!》
- 大家的背后,由我来守护!--西谷夕《排球少年》
- 我讨厌温柔的女孩子。温柔的女孩子其实对所有人都温柔,我却会误以为只对我温柔,然后就沾沾自喜得意忘形,最后闹得不欢而散,双方都受到伤害。——所以我才讨厌温柔的女孩子。《我的青春恋爱物语果然有问题》
- 我们总是在意错过了多少,却不注意自己拥有多少。——《未闻花名》
- 没有未来的未来不是我想要的未来!----神原秋人《境界的彼方》
- 人没有牺牲就没有获得, 如果要获得什么就必须付出同等的代价, 那就是炼金术的等价交换的原则。《钢之炼金术师》
- 男人变态有什么错!---前原圭一《寒蝉鸣啼之时》
- 苦难算什么,我本来就喜欢走在修罗之路上--索隆《海贼王》
- 只要是活着的,就是神也杀给你看––两仪式《空之境界》
- 你不是一个人,我们是共犯。如果你是魔女的话,我只要成为魔王就可以了吧。《叛逆的鲁鲁修》
- 大家回答我 为什么要低头,重复一遍 为什么要低头,我们是弱者!现在如此 过去也如此!是的 不是什么都没有改变吗!强者模仿弱者夺来的武器 是无法发挥出其真正的力量的,要说为什么的话 我们的武器本质在于,那弱小到悲屈的软弱啊!我在此强调,我们是弱者!我们宣誓作为弱者活下去,像弱者一样战斗然后已弱者的方式消灭强者!就像过去一样 今后也会贯彻到底!承认吧 我们是最弱的种族!正因为我们天生什么都没有,所以才能驾驭一切的,最弱的种族!----空《no game no life》
-"是我太愚蠢了,虽然只有一瞬间,我竟然想和你厮守一生。"---桔梗《犬夜叉》
- 不能逃避,不能逃避,不能逃避。—碇真嗣《EVA》
- 人类最强的武器就是刀和叉-《美食的俘虏》
- 初见幽灵现真身,始知其为枯芒草。《冰菓》
- 你不是牺牲了自己的一切,养育我到今天了吗?为了我这样没出息的儿子,耗费了自己的一生。已经足够了!---冈崎朋也《CLANNAD》
- 关于自己的生活,我和你都不是读者,而是作者。至少结局,还是能自己说了算的。――银桑《银魂》
- 即使交不到 100 个朋友也没有关系,只要交到一个比 100 个朋友更重要的朋友。——《我的朋友很少》
- 无论发生了什么,也不要后悔与我相遇。《CLANNAD AFTER STORY》
-前路永夜,即便如此我也要前进,因为星光即使微弱也会为我照亮前途。《四月是你的谎言》
- 能原谅女人谎话的————才是男人!香吉士《海贼王》
- 有个器官比我的心脏还重要,虽然我看不见它,但是它确实在我的体内,因为有它我才能站的直,就算步履蹒跚也能笔直往前走。如果我不去的话,它可是会拦腰折断的,我的灵魂它会拦腰折断的。比起心脏停止跳动,我更重视它。坂田银时《银魂》
- 群聚的都是弱者。弱小的草食动物才喜欢群聚。《家庭教师》
- 遥远的不是距离,而是次元啊!---安艺伦也《路人女主的养成方法》
- 亚丝娜,我的命是你的——桐谷和人《刀剑神域》
-「即使是走过无数次的路,也能走到从未踏足过的地方,正因为是走过无数次的路,景色才会变幻万千,光是这样还不足够吗?因为只是这样,所以才不足够吗?」——函南优一《空中杀手》
- 错的不是我,而是这个世界。《東京喰种》
- 时间可以冲淡一切,但,我並不想用时间来磨平伤口。《黑执事》
- 爱德:「等价交换,我的人生给你一半,所以你的人生也给我一半。」温迪:「哈.. 你是笨蛋啊?」爱德:「你说什么?」温迪:「别说一半,全部都给你呀!」——《钢之炼金术师 FA》
- 不要哀求,学会争取若是如此,终有所获。——阿德洛克•萨斯顿《交响诗篇》
- 秒速 5 厘米,那是樱花飘落的速度,那么怎样的速度,才能走完我与你之间的距离?——《秒速五厘米》
- 一切都是 Steins Gate 的选择!《命运石之门》
- 可能会有迷茫的時候,也可能会有因为不如意而觉得烦躁的时候。无论是谁都会遇到低谷,但只有跨越低谷的人才能得到大家的认可。《花开物语》
- 剑本凶器,剑术是杀人术,这是无法用语言掩饰的。为了断这之间的宿命,正是这把逆刃剑的使命——不杀之誓《浪客剑心》
- 明明感觉距离很近 但伸手却又抓不到 即使这样 即使望尘莫及 亦有留在心中的东西 曾身处同一时间层 曾仰望过同一样东西 只要记着这些 就算相互远离 也依然可以相信我们还是同在 现在要不停蹦跑 只要目标远大 总有一天 会赶上那目标《fate/stay night》
- 把绫波,还给我! 我变成怎么样无所谓,世界变成怎样也无所谓,但是绫波,至少她一个人,我一定要救出来!——碇真嗣《eva:破》
- 没必要的事不做,必要的事尽快做。---折木奉太郎《冰菓》
- 招待不周——《食戟之灵》
- 就算悲伤难抑,遍体鳞伤的处于谷底,也不能停下演奏,只有这样我们才是真正活着的。-你真的可以忘记么?-----《四月是你的谎言》
- 这个世界上没有偶然,有的只是必然」——壹原侑子《xxxholic》
- 苦恼着,歇斯底里着,痛苦着,不断挣扎的数月时间,这一切会在未来的某一瞬间得到回报。我们或许就是被那个瞬间迷住的,一种无可救药的生物吧。——《四月是你的谎言》
- 艾伦,只要有你在,我就无所不能。——三笠《进击的巨人》
- 把手伸向不属于人类领域的愚者啊……天上天下只有一人有资格欣赏你的破灭,除了我吉尔伽美什别无他人。耀眼而虚幻的人啊,投入我的怀抱吧。这就是我的决定。——吉尔伽美什《fate stay night》
- 人类的赞歌就是勇气的赞歌!——《jojo 的奇妙冒险》
- 藏好了吗?----《未闻花名》
- 我喜欢你。对君之爱,胜于世上万千,思君之意,亙古如斯,唯有这份心意不输给任何人。纵使此身魂去魄散,消失离散于世间,若有来生,我心依旧。---五更琉璃《我的妹妹不可能那么可爱》
-什么也无法舍弃的人,就什么也无法改变。埃尔文斯密斯《进击的巨人》
-恐惧不是犯罪,它能让人感觉到自己的弱小,认识到弱小之后,人才能变得温柔和坚强。——《妖精的尾巴》
-宫园薰:“你会忘记吗?和你一起在学校探险的女孩,和你一起帮助迷路小孩的女孩,从医院跑出来,等在那里的女孩,你会忘记吗?”——《四月是你的谎言》
-黎明前的天是最黑暗的,不过千万别闭眼,因为不敢直视黑暗的人,也看不到明天的第一缕光明。——《银魂》
-这世界上所有的失败都是由于当事者能力不足造成的。——《东京食尸鬼》
-就算颠覆整个宇宙,我也要把你找回来。——《凉宫春日的消失》
-有在了解了自己的无能以后,才能踏上成为高手的道路。——《灌篮高手》
-己喜欢的人未必喜欢自己,人的感情并不是相对的,这才是有趣之处。——《你的名字》
-有人会嘲笑竭尽全力的人。——《家庭教师》
-相信自己的人,连努力的价值都没有。——《火影忍者》
-我一直在想,没有结果的恋爱是否有意义,消逝了的事物和从没有存在过的事物是否相同。现在我明白了,是有意义的,确实有啊,能喜欢上你,真的太好了。——《蜂蜜与四叶草》
-温柔正确的人总是难以生存,因为这个世界既不温柔也不正确。——《我的青春恋爱物语果然有问题》
-虽然不知道是不是适合,但我觉得现在就好,即使发生了很多讨厌的事情,但活在当下就好。——《意外的幸运签》
-人永远不知道,谁哪次不经意的跟你说了再见之后,就真的不会再见了。——《千与千寻》
-正义是用来维持善与恶平衡的东西,若是朝向恶的一方就应该止步并寻找善的道路,这种寻找的行为才是正义,正因如此,神才把智慧赋予了人类。——《龙珠》
-即使再怎么勉强,再怎么不自量力,再怎么厚颜无耻,也要用自己的双手,保护最珍惜的东西。——《魔法禁书录》
-那些来者不拒,去者不追的人,该是有多孤独啊。——《人渣的本愿》
-生活在战斗中的人只有两条路可以选,不是变强就是死亡,当他选择苟延残喘度过余生这条道路的时候,他就已经死了。——《幽游白书》
-起风了,唯有努力生存。——《起风了》
-解救自己软弱的,一定不是眼泪,而是打破现实的决心。——《网球王子》
-反正担心和不担心结果都是一样的,既然这样,光担心的话不是很吃亏吗?——《樱桃小丸子》
-人的眼睛之所以要长在前面,是为了要向前看。——《哆啦A梦》
-不论是我或是其他任何人,都不是为了死亡而存在,而是为了活下去而活着。——《刀剑神域》
-坚强不是面对悲伤不流一滴泪,而是擦干眼泪后微笑着面对以后的生活。——《风之谷》
-这世界上也许有人喜欢孤独,但没有人可以承受孤独。——《妖精的尾巴》
-所谓的朋友就是,不管是误入歧途还是犯了罪过都要一起走下去一起背负,这才是真正的朋友啊!——《男子高中生的日常》
-除去不可能的因素,留下的不管多么的不合情理,那也一定就是事实的真相。——《名侦探柯南》
-命运的红线一旦断了,就再也接不上了。——《犬夜叉》
-只要你的心是善良的,对错都是别人的事。——《大鱼海棠》
-为什么重要的东西总是在察觉到的时候就已经失去了。——《无头骑士异闻录》
-努力只是完成结果的过程,如果以结果本身为荣的话,就本末倒置了。——《笨蛋测试召唤兽》
-当你无法在拥有的时候,你唯一能做的就是不要忘记。——《龙猫》
-真正重要的东西,总是没有的人比拥有的人更清楚。——《银魂》
-什么都无法舍弃的人,就什么都改变不了。——《进击的巨人》
-真正痛苦的事不是不能向人求助,而是没有一个可以求助的人吧。——《寒蝉鸣泣之时》
-除了死亡,所有的离开都是背叛。——《黑执事》
-只要有想见的人,就不再是孤身一人了。——《夏目友人帐》
-其实美丽的故事都是没有结局的,但因为它没有结局才会美丽。——《萤火之森》
-或许存在本身,就毫无意义可言。——《死亡笔记》
-一个人的死,对于这个世界来说不过是多了一座坟墓,但对于相依为命的人来说,却是整个世界都被坟墓掩埋。——《海贼王》
-要么变强改变世界,要么一直做被伤害的人。——《东京食尸鬼》
-看清一个人何必去揭穿,讨厌一个人又何必翻脸,活着,总有看不惯的人,就如别人看不惯我们。——《NANA》
-人类之所以会失败,是因为有“羞耻”之心。——《JOJO奇妙冒险》
- 为了爱,人类能够非常温柔,也能非常坚强!不杀一只小虫,不折一枝花,这样度过一生的人实在没有。人不是神,所以不管是那么善良的人也会无意间做点坏事。这就是生活。为了生活只能这么做。——《圣斗士星矢》
-世界上没有所谓永恒的东西。——《数码宝贝》
-思念的人所在的地方,就是你的归宿。——《火影忍者》
-隐约雷鸣,阴霾天空,即使天无雨,我亦留此地。——《言叶之庭》
-大部分人不想长大,只是没办法继续当一个小孩子。——《小林家的龙女仆》
- 虚伪的眼泪会伤害别人,虚伪的笑会伤害自己。——《叛逆的鲁路修》
-有时候你不吃点苦头,就永远看不***相。——《恶童》
-万物有界,爱恨无由。——《狐妖小红娘》
-真相如果是残酷的话,那么谎言,一定就是温柔的了,所以那份温柔,便是谎言 ——大老师 我的青春恋爱物语果然有问题
-也许我没有什么天赋,唯有斗志,我绝不会输给任何人。 ——艾伦·耶格尔 进击的巨人
-自己来选择,不会后悔的道路。 ——利威尔·阿克曼 进击的巨人
-你死后的星空依旧耀眼, 可我却觉得黯淡无光。 ——斩·赤红之瞳
-无限接近于零,却又不等于零的可能性。 ——游戏人生
-正因为生来什么都没有,因此我们能拥有一切。 ——游戏人生
-究竟要怎样 ,才能将这份爱意铭刻在你心上? ——DEAREST DROP 末日时在做什么?有没有空?可以来拯救吗?
-只要那一抹笑容尚存,我便心无旁骛。 ——声之形
-以声之色,塑以花之形 。 ——声之形
-想看看大海, 想爱上一个人, 即使是怪兽, 也有心啊。 ——声之形
-我从小就有疑问,为什么我会是我而不是别人呢? ——乙坂有宇 charlotte
-这个世界上,有很多事是可以靠时间冲淡的,虽然也有一些连时间也无可奈何。——麻枝准 charlotte
-谁都无法制裁一件没有发生过的事。 ——绫小路清隆 欢迎来到实力至上主义的教室
-如果全世界都否定你的话,那么我就要超过他们更加的肯定你! ——五河士道 约会大作战
-会站起来的,为了你的话,即使千百次也会站起来。 ——时崎狂三 约会大作战
-不要让我们共度的美好时光成为我独自一人的回忆。 ——Re:从零开始的异世界生活
-我记得他的样子,我不知道他的名字。 ——椿 大鱼·海棠
-美丽的并非这个世界,而是接受了这个世界的你的眼睛。 ——吸血鬼骑士
-请和我一起去寻找那看不见的东西吧。 ——声之形
-或许前路永夜,即便如此我也要前进,因为星光即使微弱也会为我照亮前路。 ——宫园薰 四月是你的谎言
-你驻足于春色中,于那独一无二的春色之中 ——有马公生 四月是你的谎言
-这世上所有的不公平都是因为当事人能力的不足。 ——石田スイ 东京食尸鬼
-如果我闭上了双眼,看到的是黑暗的话,那么当我睁开眼睛去看这个世界的时候,是否会是一片光明? ——金木研 东京食尸鬼
-命运就像一条长河,而我们众生皆是水里的鱼。也许强大的人可以轻易改变一条鱼,乃至一群鱼的命运,但你记住,无论是谁,都改变不了这条河的流向。 ——wlop 鬼刀
-黑白圣堂血天使,天剑鬼刀阿修罗 ——wlop 鬼刀
-这个世界也许充满丑恶,贪婪,愚昧,自私,但也请坚信,无论在你多落寞的时候,也总会有一个天使,在你身后! ——wlop 鬼刀
-描线一笔接着一笔,白色的素描本上渐渐萌生黑意,即便如此,还是无法照准记忆中的风景。 ——你的名字
-一只狮子率领的羊群,可以打败一只羊率领的狮群。 ——游戏人生
-即使走投无路,没有任何希望,只要还能嘶声力竭地呐喊,就可以不靠别的,只凭纯粹的信念走下去,那么,这不就是所谓的“梦想”吗? ——我的青春恋爱物语果然有问题
- 灯光一点点亮起来,为我照亮前行的方向,若是能照亮我未来的方向就好了,不是现在的这个自己,而是指引我找到更优秀的自己。 ———花开伊吕波
-即使在再怎么勉强,再怎么不自量力,再怎么厚颜无耻,也要用自己的双手,保护最珍惜的东西。 ——魔法禁书目录
-仿佛快要像消殒般孱弱,却拼命发着光,咚咚,咚咚,如同心跳一般,这是,生命之光。 ――――四月是你的谎言
-谁都不可能和谁在一起一辈子,人就是这样,必须去习惯失去。――――秒速五厘米
-聚拢,成形,捻转回绕,时而返回,暂歇,再联接,这就是组纽,这就是时间,这就是结。 ――――你的名字
-什么都无法舍弃的人,什么都无法改变。 ――――进击的巨人
-温柔、正确的人总是难以生存,因为这世界既不温柔也不正确。 ――――我的青春恋爱物语果然有问题
-真正的危机不是机器人像人一样思考,而是人想机器一样思考。 ――――凉宫春日的忧郁
-你觉得被圈养的鸟儿为什么无法自由地翱翔天际?是因为鸟笼不是属于它的东西。 ――――东京喰种
-人之所以会照顾其他生物,是因为人类会感到空虚,之所以会想保护环境,是因为人类不想被环境毁灭。 ――――寄生兽
-没有未来的未来不是我想要的未来。《境界的彼方》
-如果真爱有颜色,那么一定是蓝色。《RE:从零开始的异世界生活》
-你指尖跃动的电光,是我此生不灭的信仰。《某科学的超电磁炮》
-愿你有一天能和重要的人重逢。《可塑性记忆》
-为王的诞生献上礼炮。《罪恶王冠》
-以声之名,塑花之形,将你之名,刻于我心。《声之形》
-立于浮华之世,奏响天籁之音。《Angel Beats!》
-万剑穿心终不悔,相视一笑轻王权。《狐妖小红娘》
-或许前路永夜,即便如此我也要前进,因为星光即使微弱也会为我照亮前路/此生无悔入四月,来世愿做友人A。《四月是你的谎言》
-这一切都是命运石之门的选择。《命运石之门》
-末将于禁,愿为曹家世代赴汤蹈火!《镇魂街》
-今天的风儿有些喧嚣啊。《男子高中生的日常》
-我大德意志的科学技术世界第一。《JOJO》
-错的不是我,错的是世界。《反叛的鲁鲁修》
-都是时臣的错。《Fate/Zero》
-一本正经地胡说八道。《约会大作战》
-我不需要什么伙伴,玩游戏的是我本人,有棋子的话就够了。——夏尔(黑执事)
-真相永远只有一个!——江户川柯南\工藤新一 (名侦探柯南)
-错的不是我 错的是这个世界。——金木研 (东京喰种)
-世界上有些事,还是让它永远成为谜比较好。——黑羽快斗 (名侦探柯南)
-梦想是否无聊并不是别人来决定的,不管是什么样的梦想,自己拼命努力去追寻才是最重要的!——日奈森亚梦 (守护甜心)
-如果说我比别人看得更远些,那是因为我站在了巨人的肩膀上。——利威尔 (进击的巨人)
-就算是对我抱有敌意的人,也是被某个人深爱着而降生在这个世界上的。——樱满集 (罪恶王冠)
-希望和失望总是牵着手来到你面前,如果你害怕,失望就会变得巨大,最后吞噬了希望,如果你勇赶面对, 就能改变困境。每个人的内心都有一颗星星,无论什么时侯都要让内心的星星放出光芒。 ——月野兔 (美少女战士)
-幻觉,有幻觉。幻觉中潜伏着有幻觉,有幻觉中孕育而生的幻觉。真实中包含着谎言,谎言中潜藏着真实,这就是雾。——六道骸 (家庭教师)
-我不是英雄,我只做我想做的事,保护我想要保护的人而已。——路飞 (海贼王)
-将过去和羁绊全部丢弃,不要吝惜那为了梦想流下的泪水。——路飞 (海贼王)
-只要有你在,我就无所不能。——三笠·阿克曼 (进击的巨人)
-天才的字典里,没有不可能这三个字。——樱木花道 (灌篮高手)
-我不管你是谁,只要打扰我睡觉,绝不原谅! ——流川枫 (灌篮高手)
-命运的红线一旦断了,就再也接不上了。——桔梗 (犬夜叉)
-我永远也不会忘记那个忘记我的存在的人。——桔梗 (犬夜叉)
-你的命是我的,我绝对不会把你的命交给别人的。 ——桔梗 (犬夜叉)
-总躲在自己的角落里 是什么都改变不了的。——《火影忍者》
-痛苦的时候要是不能在一起,那还能叫伙伴吗!——乌索普《海贼王》
-人的梦想是永远不会结束的!——黑胡子《海贼王》
-此时此刻,我竟不知究竟是悲伤,还是快乐。——端木蓉《秦时明月》
-虚弱的笑声是康复的标志。——樱桃小丸子《樱桃小丸子》
-不要害怕遭到欺骗,因为这世界就建筑在欺骗之上。——日番谷冬狮郎《死神》
-“连接遥远的过去与未来,我们为此而存在……”——进藤光《棋魂》
-痛苦可以成为两人间的某种牵绊。——草灯《LOVELESS》
-不幸的人总是在创造比自己更不幸的人。——露西·哈特菲利亚《妖精的尾巴》
-人的怨恨是无止尽的。——阎魔爱《地狱少女》
-对别人抱有期待,只能让自己受伤。——松前绪花《花开伊吕波》
-不能了解到彼此的痛楚,就无法亲身感受。——塞巴斯蒂安·米卡利斯《黑执事》
-能原谅女人的谎话的,才是男人。——山治《海贼王》
-要是喜欢一个人,就要连那个人脏的地方一起喜欢。——坂田银时《银魂》
-如果爱,请深爱,千万不要松手;若不爱,请放开,千万不要回头。——市丸银《死神》
-一定要保护自己的梦想,即使牺牲一切。——大崎娜娜《NANA》
-不相信自己的人,连努力的价值都没有。——凯《火影忍者》
-要想成为强者,就不要回避心里的恐惧!——葛聂《秦时明月》
-追逐梦想的人比抓住梦想的人更能发挥实力啊!——冲田总悟《银魂》
-我一直都想证明:努力是能够超越天才的!——李洛克《火影忍者》
-活下去的意志是最强的力量!——绯村剑心《浪客剑心》
-想哭的时候能哭出来,也是一种坚强。——法伊·D·佛罗莱特《翼·年代记》
-我可是不到最后不轻言放弃的男人。——三井寿《灌篮高手》
-我,不能再次同样的失败了……——C.C.《反叛的鲁路修》
-不管夜晚多么黑暗,黎明总是会到来。——夏莉·菲内特《反叛的鲁路修》
-我不管这个世上的人怎么说我,我只想依照我的信念做事,绝不后悔,不管现在将来都一样!——罗罗亚·索隆《海贼王》
-梦想是否无聊并不是别人来决定的,不管是什么样的梦想,自己拼命努力去追寻才是最重要的!——日奈森亚梦—《守护甜心》
-这个宇宙整体的真理就是无常,没有所谓的完全的正义与完全的邪恶。——沙加《圣斗士星矢》
-因为失去,所以明白。——旗木卡卡西《火影忍者》
-世界上有些事,还是让它永远成为谜比较好。——黑羽快斗《名侦探柯南》
-在这个世界里(地狱),只要灵魂不灭,就不会死。所以,只要心不认输,就不会输。——麻仓叶《通灵王》
-什么都无所谓只想在你身边,什么都无所谓只想和你说话,什么都无所谓所以请你不要逃避。——风早翔太《好想告诉你》
-如果爱,请深爱,千万不要松手; 若不爱,请放开,千万不要回头。——市丸银《死神》
-因为有亲情的牵绊,一旦失去就会痛。——佐助《火影忍者》
-人在了解了什么是爱的时候,也就同时背负上了憎恨。——佐助《火影忍者》
-人,都是依靠自己的感知和认知来认识这个世界,但也被之束缚的生活着的,那就叫做现实,可是感知和认知是暧昧不清的东西,现实也许也只是镜花水月,人都是活在自己的自我意识中的,你不这么认为吗?——鼬《火影忍者》
-时间能冲淡痛苦,但我并不指望时间的慰疗。——夏尔(黑执事)
-在这个世界,能受到诅咒的种族,就只有人类了。——科穆伊《驱魔少年》
-如果抛弃了怨恨的话,那天之后的我就不存在了。——夏尔(黑执事)
-是努力还是放弃,只有一种选择,人类能选择的,无论何时都只有这两条路,只有诚实地说出自己的心情,接下来就要看对方的决定了,是努力还是放弃,这时就轮到他们选择了。——花本修司《蜂蜜与四叶草》
-自己的伤自己承受,只要依然活着,伤总有一天还是会好的。——李娜莉《驱魔少年》
-一旦失去的东西,就再也拿不回来了。——夏尔(黑执事)
-生命只有一个,也是只有一次的东西,你不觉得因此,生命才是无法动摇,闪耀而尊贵的东西吗? ——天秤座童虎《圣斗士星矢》
-当你想做一件事,却无能为力的时候,是最痛苦的。——基拉·大和《高达SEED》
-能哭的地方除了厕所还有爸爸的怀里。——冈崎汐《CLANNAD》
-身不动,能否退去黑暗,花与水。——冲田总司《新撰组异闻录》
-谁都…无法成为谁的替代。所以心痛,总是伴随着离别的人。——玖兰枢《吸血鬼骑士》
-不要害怕遭到欺骗,因为这世界就建筑在欺骗之上。——日番谷冬狮郎《死神》
-有些事情,可以理解但无法接受!——阿斯兰·萨拉《机动战士高达Seed》
-人像花这样的娇弱而不坚强,即使可以保持着外表躲避风雨,但仍然恋着阳光,暴风雨来临时,无论多么华丽的外表都无法遮挡。——灰原哀
-无论身边围着多少人,我永远都是那么孤独。——鸣海步《推理之绊》
-闭上眼睛想象世界,我能看到什么?——亚连·沃克《驱魔少年》
-迷茫不仅会害了自己,甚至会害了自己想要守护的人。——”相泽虹一《隐之王》
-我觉得你比我幸福,因为你可以选择爱我或不爱我,而我只能选择爱你或更爱你。——《schooldays》
-女孩也好男孩也好外貌也好,人类最重要的不是内在吗?——藤冈春绯《樱兰高校男公关部》
-要是眼睁睁的看着重要的同伴死去,就算是死,我也不能瞑目。——泽田纲吉《家庭教师HitmanReborn》
-人究竟什么时候会死,是心脏被枪打中的时候?不对。得到不治之症吗?也不对。喝了剧毒蘑菇汤之后吗?当然不是。而是被世人遗忘的时候。就算我消失了,我的梦想还是会实现的,那个梦想一定能拯救这个国家人们的心病。——希鲁鲁克《海贼王》
-哪里有你的地方,哪里就是我的家。——克罗诺《圣枪修女》
-人是不能阻止时间流逝的,如果硬是要逆天而行的话,就会收到惩罚。——灰原哀
-我早就闭上了双眼,我的目的只在于黑暗之中。——宇智波佐助《火影忍者》
-我,不能再次同样的失败了……——C.C.《反叛的鲁路修》
-即使是坠入绝望的深渊,只要有能往上爬的蜘蛛丝就不会放弃紧紧抓住,人类拥有这份坚强。——夏尔(黑执事)
-我想成为一个温柔的人,因为曾被温柔的人那样对待,深深了解那种被温柔相待的感觉。——绿川幸《夏目友人帐》
-“转瞬即逝的相逢与离别,每一个瞬间,我都想要珍惜。”——夏目贵志《夏目友人帐》
-可是只要一旦被谁爱上了的话,或者一度爱过谁的话,就再也忘不了了啊。——露神《夏目友人帐》
-彼方为谁,无我有问
-九月露湿,待君之前
-——新海诚《你的名字》
-假如我们相遇,肯定一眼就能认出彼此。——宫水三叶《你的名字》
-或许前路永夜,即便如此我也要前进,因为星光即使微弱也会为我照亮前路。——宫园薰《四月是你的谎言》
-你驻足于春色中,于那独一无二的春色之中。——有马公生《四月是你的谎言》
-知识不能替代友谊,比起失去你,我宁愿做个白痴 。——派大星《海绵宝宝》
-只要我还能再看到你一次,我就能跟你说我有多爱你。——海绵宝宝《海绵宝宝》
-如果时光可以倒流 我还是会选择认识你 虽然会伤痕累累 但是心中的温暖记忆是谁都无法给与的 谢谢你来过我的世界。——绿川幸《萤火之森》
-一定,有段时间,无法再盼望夏天了,心若刀绞,泪水夺眶而出。
-然而,留在手中的温暖与夏日的回忆,都将永远伴随我。——萤《萤火之森》
-梦想是一个天真的词,实现梦想是一个残酷的词。——藤子·F·不二雄《哆啦A梦》
-“我想一直在你身边,直到你不需要我的时候。”——《哆啦A梦》
-他的眼里有星辰大海,是骑士触不可及的光芒。——安迷修《凹凸世界》
-你说大海是世界上最美丽的蓝,那是你没有见过他的眼睛。——《凹凸世界》
-人就是这样 越是没有实力越爱说大话 世界上只有没有实力的人 才整天希望别人赞赏。—— 卡卡西《火影忍者》
-“活着本来没有什么意义 但是只要活着 就可以找到 有趣的事情。就像你发现了花 我又发现了你一样”。——大蛇丸《火影忍者》
-人因为有难忘的记忆而变得坚强,这就是所谓的成长吧。——纲手《火影忍者》
-为了爱,人类能够非常温柔,也能非常坚强!不杀一只小虫,不折一枝花,这样度过一生的人实在没有。人不是神,所以不管是那么善良的人也会无意间做点坏事。这就是生活。为了生活只能这么做。——雅典娜《圣斗士星矢》
-伤痕,是男子汉的勋章。——车田正美《圣斗士星矢》
-护吾之人,显其名。——夏目贵志《夏目友人帐》
-我们的孤独就像天空中漂浮的城市,仿佛是一个秘密,却无从述说。——宫崎骏《天空之城》
-越是试着忘记,越是记得深刻。——宫崎骏《天空之城》
-如谷之歌,扎根土里。与风共存,与种子越冬,与鸟歌颂。——宫崎骏《天空之城》
-很多事情都是命中注定的,就好像你会遇到什么样的人,经历什么样的伤痛,最终如何离开这个世界,没什么能改变命运。——宫崎骏《天空之城》
-有时候,坚持了你最不想干的事情之后,便可得到你最想要的东西。——宫崎骏《天空之城》
-我爱你是因为你比我更像我自己。——宫崎骏《天空之城》
-我忽然有些恍惚,恍惚到自己也忘却了和她在一起发生过什么,似乎那些已经被时光所淹没的过去,只不过是一场打了麻药的手术,虽然有一丝丝痛楚,却并不那么真实。——宫崎骏《天空之城》
-我的孤独就像天空中飘浮的城市 仿佛是一个秘密 却无从述说。——宫崎骏《天空之城》
-不管前方的路有多苦,只要走的方向正确,不管多么崎岖不平,都比站在原地更接近幸福。——宫崎骏《千与千寻》
-我不知道离别的滋味是这样凄凉,我不知道说声再见要这么坚强。——宫崎骏 《千与千寻》
-人永远不知道,谁哪次不经意的跟你说了再见之后,就真的不会再见了。——宫崎骏《千与千寻》
-曾经发生过的事情不可能忘记,只不过是想不起而已。——宫崎骏《千与千寻》
-已经走到尽头的东西,重生也不过是再一次的消亡。就像所有的开始,其实都只是一个写好了的结局。——宫崎骏《千与千寻》
-人们常常会欺骗你,是为了让你明白,有时候,你唯一应该相信的人就是你自己。——宫崎骏《千与千寻》
-一条路不能回头,就是一生要走许多路,有成长之路。很多事情不能自己掌控,即使再孤单再寂寞,仍要继续走下去,不许停也不能回头。——宫崎骏《千与千寻》
-这个世界真的很现实,每个人都在为着同一个目的,不惜一切代价努力着,心甘情愿的成为金钱的奴隶,死心蹋地的付出。——宫崎骏《千与千寻》
-你不会遇到第二个我、友情也好、爱情也罢。——宫崎骏《千与千寻》
-不要吃太胖噢,会被杀掉的!——宫崎骏《千与千寻》
-我只能送你到这儿了,剩下的路你要自己走,不要回头。——宫崎骏《千与千寻》
-生活坏到一定程度就会好起来,因为它无法更坏。努力过后,才知道许多事情,坚持坚持,就过来了。——宫崎骏《龙猫》
-有些烦恼,丢掉了,才有云淡风轻的机会。——宫崎骏《龙猫》
-什么时候我们开始无法像孩子一样肆意地大呼小叫了?心里的小情绪堆积得像山一样高,直到溢出来。 与其如此,不如永远像孩子一样。——宫崎骏《龙猫》
-如果把童年再放映一遍,我们一定会先大笑,然后放声痛哭,最后挂着泪,微笑着睡去。——宫崎骏《龙猫》
-有时我沉默,不是不快乐,只是想把心净空。有时候你需要退开一点,清醒一下,然后提醒自己,我是谁,要去哪里。——宫崎骏《龙猫》
-当一个胖纸没有什么不好,最起码可以温暖其他的人。——宫崎骏《龙猫》
-人生的某些障碍,你是逃不掉的。与其费尽周折绕过去,不如勇敢的地攀越,或许这会铸就你人生的高点。——宫崎骏《龙猫》
-不要害怕孤独。因为这个世界上,肯定有一个人,正努力的走向你。——宫崎骏《龙猫》
-当你无法在拥有的时候,你唯一能做的就是不要忘记。——宫崎骏《龙猫》
-也许生存在世间的人们都只是在等待一种偶遇,一种适时的相遇,时间对了,你们便会遇上。——宫崎骏《龙猫》
-不管你曾经被伤害得有多深,总会有一个人的出现,让你原谅之前生活对你所有的刁难。——宫崎骏《幽灵公主》
-到不了的地方都叫做远方,回不去的世界都叫做家乡,我一直向往的却是比远方更远的地方。——宫崎骏《幽灵公主》
-命运是任何人也无法改变的,但他可以决定是等死还是面对。——宫崎骏《幽灵公主》
-你说你会爱我一辈子,我真傻,居然忘记了问是这辈子还是下辈子。——宫崎骏《幽灵公主》
-我们的生命太短,来不及见证那些遥远到令人恍惚的词语,比如,天长地久。——宫崎骏《幽灵公主》
-世界这么大,人生这么长,总会有这么一个人,让你想要温柔地对待。——宫崎骏《哈尔的移动城堡》
-对不起,你一直在等我,但是我却现在才来。——宫崎骏《哈尔的移动城堡》
-在茫茫人海中相遇相知相守无论谁都不会一帆风顺,只有一颗舍得付出懂得感恩的心才能拥有一生的爱和幸福。——宫崎骏《哈尔的移动城堡》
-爱,不是寻找一个完美的人,而是学会用完美的眼光,欣赏那个并不完美的人。
-因为爱你,只要你一个肯定,我就足够勇敢。——宫崎骏《哈尔的移动城堡》
-以后我给你造个移动的房子好不好?上面挂满气球,可以飞到天涯海角。房子可以很小,但足够住下你和我。——宫崎骏《哈尔的移动城堡》
-由比滨结衣是个温柔的女孩,我如此擅自地贴上了标签。 —— 大老师
diff --git a/util/utils.py b/util/utils.py
index 491762f3..40c0bd14 100644
--- a/util/utils.py
+++ b/util/utils.py
@@ -137,19 +137,6 @@ def is_number(s) -> bool:
return False
-def get_lines(path: str, start: int = 0, end: int = 0) -> list:
- l = []
- with open(path, 'r', errors='ignore', encoding="UTF-8") as f:
- lines = f.readlines()
- for line in lines:
- if line != "\n" and line != "":
- if end == 0:
- l.append(line[start:])
- else:
- l.append(line[start: end])
- return l
-
-
# 获取bot
def get_bot():
return list(nonebot.get_bots().values())[0]