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]