diff --git a/.gitignore b/.gitignore index a652f0b..cbebfa3 100644 --- a/.gitignore +++ b/.gitignore @@ -414,11 +414,11 @@ FodyWeavers.xsd # VS Code files for those working on multiple tools **/.vscode/* .vscode/* -!.vscode/settings.json +# !.vscode/settings.json # !.vscode/tasks.json # !.vscode/launch.json # !.vscode/extensions.json -*.code-workspace +# *.code-workspace # Local History for Visual Studio Code .history/ @@ -446,3 +446,4 @@ install # Tools tools/ImageCropper/**/*.png +.nicegui/ diff --git a/.nicegui/storage-general.json b/.nicegui/storage-general.json deleted file mode 100644 index 2dc5434..0000000 --- a/.nicegui/storage-general.json +++ /dev/null @@ -1 +0,0 @@ -{"controller_type":"Adb","adb_path":"C:\\Program Files\\BlueStacks_nxt_cn\\HD-Adb.exe","adb_address":"127.0.0.1:5555","hwnd":"","window_name":"","resource_dir":"D:\\Github\\MaaHatsuboshiTA\\assets\\resource\\base","task_entry":"Clear_Data"} \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json deleted file mode 100644 index beea32e..0000000 --- a/.vscode/settings.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "json.schemas": [ - { - "fileMatch": [ - "/assets/resource/**/*.json", - "/install/resource/**/*.json" - ], - "url": "/deps/tools/pipeline.schema.json" - } - ], - "[json]": { - "editor.formatOnSave": true, - "editor.insertSpaces": true, - "editor.tabSize": 4, - "editor.indentSize": "tabSize" - }, - "[python]": { - "editor.defaultFormatter": "ms-python.black-formatter" - } -} \ No newline at end of file diff --git a/assets/interface.json b/assets/interface.json index a43ac6e..8087d93 100644 --- a/assets/interface.json +++ b/assets/interface.json @@ -30,6 +30,10 @@ "option": [ "打几号位 | Which Target" ] + }, + { + "name": "自动日常", + "entry": "Daily_Begin" } ], "recognizer": {}, diff --git a/assets/resource/base/pipeline/daily.json b/assets/resource/base/pipeline/daily.json new file mode 100644 index 0000000..1cc7fe1 --- /dev/null +++ b/assets/resource/base/pipeline/daily.json @@ -0,0 +1,513 @@ +{ + "Daily_Begin": { + "next": "活動費_Collect", + "_doc": "自动清日常" + }, + "活動費_Collect": { + "action": "Click", + "target": [70, 560, 1, 1], + "next": "活動費_Close" + }, + "活動費_Close": { + "recognition": "OCR", + "expected": "閉じる", + "action": "Click", + "next": "活動費_Closed_Wait" + }, + "活動費_Closed_Wait": { + "recognition": "OCR", + "roi": [25, 600, 88, 35], + "expected": "活動費", + "next": [ + "お仕事_Open", + "寄付_Open_Main_Menu" + ] + }, + "お仕事_Open": { + "recognition": "ColorMatch", + "roi": [80, 650, 25, 25], + "lower": [254, 17, 72], + "upper": [255, 19, 74], + "action": "Click", + "target": [70, 680, 1, 1], + "next": [ + "お仕事_Done_FLAG", + "お仕事_Finish_Previous", + "お仕事_Choose" + ] + }, + "お仕事_Finish_Previous": { + "is_sub": true, + "recognition": "OCR", + "expected": "完了", + "index": 1, + "action": "Click" + }, + "お仕事_Choose": { + "is_sub": true, + "recognition": "OCR", + "expected": "お仕事を選択", + "pre_wait_freezes": 500, + "action": "Click", + "next": "お仕事_Wait_Idol" + }, + "お仕事_Wait_Idol": { + "recognition": "OCR", + "expected": "選択する", + "next": [ + "お仕事_Choose_Done_FLAG", + "お仕事_Choose_Idol" + ] + }, + "お仕事_Choose_Done_FLAG": { + "recognition": "OCR", + "expected": "12時間", + "next": "お仕事_Choose_Time" + }, + "お仕事_Choose_Idol": { + "is_sub": true, + "next": [ + "お仕事_Idol_Available_FLAG_00", + "お仕事_Idol_Available_FLAG_01" + ], + "_doc": "依次检查每个偶像是否在工作、是否好调。若遇到空闲的好调偶像则直接选择并返回上一级;若未找到则则右划4格并返回;若已经右划到底,则选中默认偶像并返回" + }, + "お仕事_Idol_Available_FLAG_00": { + "recognition": "OCR", + "roi": [9, 705, 160, 160], + "expected": "お仕事中", + "inverse": true, + "next": [ + "お仕事_Choose_Idol_00", + "お仕事_Idol_Available_FLAG_01", + "お仕事_Idol_Available_FLAG_02" + ] + }, + "お仕事_Idol_Available_FLAG_01": { + "recognition": "OCR", + "roi": [161, 705, 160, 160], + "expected": "お仕事中", + "inverse": true, + "next": [ + "お仕事_Choose_Idol_01", + "お仕事_Idol_Available_FLAG_02", + "お仕事_Idol_Available_FLAG_03" + ] + }, + "お仕事_Idol_Available_FLAG_02": { + "recognition": "OCR", + "roi": [313, 705, 160, 160], + "expected": "お仕事中", + "inverse": true, + "next": [ + "お仕事_Choose_Idol_02", + "お仕事_Idol_Available_FLAG_03", + "お仕事_Idol_Available_FLAG_10" + ] + }, + "お仕事_Idol_Available_FLAG_03": { + "recognition": "OCR", + "roi": [465, 705, 160, 160], + "expected": "お仕事中", + "inverse": true, + "next": [ + "お仕事_Choose_Idol_03", + "お仕事_Idol_Available_FLAG_10", + "お仕事_Idol_Available_FLAG_11" + ] + }, + "お仕事_Idol_Available_FLAG_10": { + "recognition": "OCR", + "roi": [9, 857, 160, 160], + "expected": "お仕事中", + "inverse": true, + "next": [ + "お仕事_Choose_Idol_10", + "お仕事_Idol_Available_FLAG_11", + "お仕事_Idol_Available_FLAG_12" + ] + }, + "お仕事_Idol_Available_FLAG_11": { + "recognition": "OCR", + "roi": [161, 857, 160, 160], + "expected": "お仕事中", + "inverse": true, + "next": [ + "お仕事_Choose_Idol_11", + "お仕事_Idol_Available_FLAG_12", + "お仕事_Idol_Available_FLAG_13" + ] + }, + "お仕事_Idol_Available_FLAG_12": { + "recognition": "OCR", + "roi": [313, 857, 160, 160], + "expected": "お仕事中", + "inverse": true, + "next": [ + "お仕事_Choose_Idol_12", + "お仕事_Idol_Available_FLAG_13" + ] + }, + "お仕事_Idol_Available_FLAG_13": { + "recognition": "OCR", + "roi": [465, 857, 160, 160], + "expected": "お仕事中", + "inverse": true, + "next": [ + "お仕事_Choose_Idol_13", + "お仕事_Swipe" + ] + }, + "お仕事_Idol_Available_FLAG_0N": { + "recognition": "OCR", + "roi": [550, 705, 160, 160], + "expected": "お仕事中", + "inverse": true, + "next": [ + "お仕事_Choose_Idol_0N", + "お仕事_Idol_Available_FLAG_1N" + ] + }, + "お仕事_Idol_Available_FLAG_1N": { + "recognition": "OCR", + "roi": [550, 857, 160, 160], + "expected": "お仕事中", + "inverse": true, + "next": [ + "お仕事_Choose_Idol_1N", + "お仕事_Choose_Idol_Confirm" + ] + }, + "お仕事_Choose_Idol_00": { + "recognition": "ColorMatch", + "roi": [9, 705, 160, 160], + "lower": [14, 180, 254], + "upper": [16, 182, 255], + "count": 500, + "action": "Click", + "next": "お仕事_Choose_Idol_Confirm" + }, + "お仕事_Choose_Idol_01": { + "recognition": "ColorMatch", + "roi": [161, 705, 160, 160], + "lower": [14, 180, 254], + "upper": [16, 182, 255], + "count": 500, + "action": "Click", + "next": "お仕事_Choose_Idol_Confirm" + }, + "お仕事_Choose_Idol_02": { + "recognition": "ColorMatch", + "roi": [313, 705, 160, 160], + "lower": [14, 180, 254], + "upper": [16, 182, 255], + "count": 500, + "action": "Click", + "next": "お仕事_Choose_Idol_Confirm" + }, + "お仕事_Choose_Idol_03": { + "recognition": "ColorMatch", + "roi": [465, 705, 160, 160], + "lower": [14, 180, 254], + "upper": [16, 182, 255], + "count": 500, + "action": "Click", + "next": "お仕事_Choose_Idol_Confirm" + }, + "お仕事_Choose_Idol_10": { + "recognition": "ColorMatch", + "roi": [9, 857, 160, 160], + "lower": [14, 180, 254], + "upper": [16, 182, 255], + "count": 500, + "action": "Click", + "next": "お仕事_Choose_Idol_Confirm" + }, + "お仕事_Choose_Idol_11": { + "recognition": "ColorMatch", + "roi": [161, 857, 160, 160], + "lower": [14, 180, 254], + "upper": [16, 182, 255], + "count": 500, + "action": "Click", + "next": "お仕事_Choose_Idol_Confirm" + }, + "お仕事_Choose_Idol_12": { + "recognition": "ColorMatch", + "roi": [313, 857, 160, 160], + "lower": [14, 180, 254], + "upper": [16, 182, 255], + "count": 500, + "action": "Click", + "next": "お仕事_Choose_Idol_Confirm" + }, + "お仕事_Choose_Idol_13": { + "recognition": "ColorMatch", + "roi": [465, 857, 160, 160], + "lower": [14, 180, 254], + "upper": [16, 182, 255], + "count": 500, + "action": "Click", + "next": "お仕事_Choose_Idol_Confirm" + }, + "お仕事_Choose_Idol_0N": { + "recognition": "ColorMatch", + "roi": [550, 705, 160, 160], + "lower": [14, 180, 254], + "upper": [16, 182, 255], + "count": 500, + "action": "Click", + "next": "お仕事_Choose_Idol_Confirm" + }, + "お仕事_Choose_Idol_1N": { + "recognition": "ColorMatch", + "roi": [550, 857, 160, 160], + "lower": [14, 180, 254], + "upper": [16, 182, 255], + "count": 500, + "action": "Click", + "next": "お仕事_Choose_Idol_Confirm" + }, + "お仕事_Swipe": { + "action": "Swipe", + "begin": [708, 800, 1, 1 ], + "end": [100, 800, 1, 1 ], + "next": "お仕事_Swipe_End_FLAG" + }, + "お仕事_Swipe_End_FLAG": { + "recognition": "ColorMatch", + "roi": [14, 779, 10, 10], + "lower": [207, 241, 248], + "upper": [217, 251, 255], + "count": 80, + "inverse": true, + "next": [ + "お仕事_Idol_Available_FLAG_0N", + "お仕事_Idol_Available_FLAG_1N" + ], + "_doc": "识别第一个头像左边位置是否蓝色背景色。若否,说明这个位置被某个头像覆盖,已经划到尽头。未划到尽头则返回お仕事_Choose_Idol,从头检查一次;划到尽头之后检查0N和1N(两行最右边的)" + }, + "お仕事_Choose_Idol_Confirm": { + "recognition": "OCR", + "expected": "選択する", + "action": "Click" + }, + "お仕事_Choose_Time": { + "recognition": "OCR", + "expected": "12時間", + "action": "Click", + "next": "お仕事_Confirm_Time" + }, + "お仕事_Confirm_Time": { + "recognition": "OCR", + "expected": "決定する", + "action": "Click", + "next": "お仕事_Begin" + }, + "お仕事_Begin": { + "recognition": "OCR", + "expected": "開始する", + "action": "Click" + }, + "お仕事_Done_FLAG": { + "recognition": "OCR", + "roi": [90, 1000, 540, 80 ], + "expected": "短縮", + "index": 1, + "next": "お仕事_Close" + }, + "お仕事_Close": { + "action": "Click", + "target": [85, 1215, 1, 1], + "next": "寄付_Open_Main_Menu" + }, + "寄付_Open_Main_Menu": { + "recognition": "TemplateMatch", + "template": "icon_menu.png", + "action": "Click", + "next": "寄付_Open_Circle_Menu" + }, + "寄付_Open_Circle_Menu": { + "recognition": "OCR", + "expected": "サークル", + "action": "Click", + "next": "寄付_Wait_Circle_Menu" + }, + "寄付_Wait_Circle_Menu": { + "recognition": "OCR", + "expected": [ + "リクエスト", + "受け取り" + ], + "next": [ + "寄付_Request_Finish_FLAG", + "寄付_Request_Routine" + ] + }, + "寄付_Request_Routine": { + "is_sub": true, + "next": [ + "寄付_Close_Previous_Request", + "寄付_Publish_Request" + ] + }, + "寄付_Close_Previous_Request": { + "recognition": "OCR", + "expected": "閉じる", + "action": "Click" + }, + "寄付_Publish_Request": { + "recognition": "OCR", + "expected": "リクエスト", + "action": "Click", + "next": "寄付_Confirm_Request_0" + }, + "寄付_Confirm_Request_0": { + "recognition": "OCR", + "expected": "決定", + "action": "Click", + "next": "寄付_Confirm_Request_1" + }, + "寄付_Confirm_Request_1": { + "recognition": "OCR", + "expected": "決定", + "action": "Click", + "next": "寄付_Request_Wait" + }, + "寄付_Request_Wait": { + "recognition": "OCR", + "expected": "Slow down, bro", + "inverse": true + }, + "寄付_Request_Finish_FLAG": { + "recognition": "OCR", + "expected": "リクエスト中", + "next": "寄付_Open_Request_List" + }, + "寄付_Open_Request_List": { + "recognition": "OCR", + "expected": "募集リスト", + "action": "Click", + "next": "寄付_Wait_Request_List" + }, + "寄付_Wait_Request_List": { + "recognition": "OCR", + "roi": [370, 200, 220, 32], + "expected": "本日残り", + "next": "寄付_Donate" + }, + "寄付_Donate": { + "next": [ + "寄付_Donate_Finish_FLAG", + "寄付_Donate_Item", + "寄付_Scroll_Bottom_FLAG", + "寄付_Scroll" + ] + }, + "寄付_Donate_Finish_FLAG": { + "recognition": "OCR", + "roi": [640, 200, 55, 32], + "expected": "0", + "next": "寄付_Close", + "_doc": "残り寄付可能回数 = 0" + }, + "寄付_Donate_Item": { + "is_sub": true, + "recognition": "OCR", + "expected": "寄付する", + "action": "Click", + "next": "寄付_Donate_Confirm" + }, + "寄付_Donate_Confirm": { + "recognition": "OCR", + "expected": "決定", + "action": "Click", + "next": "寄付_Donate_Wait" + }, + "寄付_Donate_Wait": { + "recognition": "OCR", + "expected": "Slow down, bro", + "inverse": true + }, + "寄付_Scroll_Bottom_FLAG": { + "recognition": "ColorMatch", + "roi": [700, 1120, 12, 10], + "lower": [133, 142, 145], + "upper": [135, 144, 147], + "next": "寄付_Close" + }, + "寄付_Scroll": { + "is_sub": true, + "action": "Swipe", + "begin": [340, 1040, 1, 1], + "end": [340, 365, 1, 1] + }, + "寄付_Close": { + "next": "コインガシャ_Open_Main_Menu" + }, + "コインガシャ_Open_Main_Menu": { + "recognition": "TemplateMatch", + "template": "icon_menu.png", + "action": "Click", + "next": "コインガシャ_Open_Shop_Menu" + }, + "コインガシャ_Open_Shop_Menu": { + "recognition": "OCR", + "expected": "ショップ", + "action": "Click", + "next": "コインガシャ_Open_Gasha_Menu" + }, + "コインガシャ_Open_Gasha_Menu": { + "recognition": "OCR", + "expected": "コインガシャ", + "action": "Click", + "next": "コインガシャ_Gasha" + }, + "コインガシャ_Gasha": { + "recognition": "OCR", + "expected": "引く", + "action": "Click", + "next": "コインガシャ_Gasha_Confirm" + }, + "コインガシャ_Gasha_Confirm": { + "recognition": "OCR", + "expected": "決定", + "action": "Click", + "next": "コインガシャ_Close" + }, + "コインガシャ_Close": { + "recognition": "OCR", + "expected": "閉じる", + "action": "Click", + "next": "交換所_Open_Main_Menu" + }, + "交換所_Open_Main_Menu": { + "recognition": "TemplateMatch", + "template": "icon_menu.png", + "action": "Click", + "next": "交換所_Open_Shop_Menu" + }, + "交換所_Open_Shop_Menu": { + "recognition": "OCR", + "expected": "ショップ", + "action": "Click", + "next": "交換所_Open_Exchange_Menu" + }, + "交換所_Open_Exchange_Menu": { + "recognition": "OCR", + "expected": "デイリー交換所", + "action": "Click", + "next": "交換所_Choose_Item" + }, + "交換所_Choose_Item": { + "recognition": "OCR", + "expected": "おすすめ", + "action": "Click", + "next": "交換所_Confirm_Purchase" + }, + "交換所_Confirm_Purchase": { + "recognition": "OCR", + "expected": "決定", + "action": "Click" + } +} \ No newline at end of file diff --git a/install.py b/install.py index 3c609b9..daecb8f 100644 --- a/install.py +++ b/install.py @@ -4,8 +4,6 @@ import sys import json -from configure import configure_ocr_model - working_dir = Path(__file__).parent install_path = working_dir / Path("install") @@ -33,8 +31,6 @@ def install_deps(): def install_resource(): - configure_ocr_model() - shutil.copytree( working_dir / "assets" / "resource", install_path / "resource",