Skip to content

Commit 0d3b84e

Browse files
committed
Merge remote-tracking branch 'upstream/master'
2 parents 65549cf + 8318c42 commit 0d3b84e

10 files changed

Lines changed: 56 additions & 32 deletions

File tree

assets/shop/os/METARedBookT1_2.png

16.4 KB
Loading
18.7 KB
Loading
20 KB
Loading
19.8 KB
Loading
16.4 KB
Loading

campaign/event_20220915_cn/campaign_base.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
from module.base.utils import get_color, red_overlay_transparency
22
from module.campaign.campaign_base import CampaignBase as CampaignBase_
33
from module.handler.assets import MAP_ENEMY_SEARCHING
4-
from module.map.assets import SWITCH_OVER
4+
from module.ui.page import page_event
55

66

77
class CampaignBase(CampaignBase_):
@@ -12,3 +12,9 @@ def enemy_searching_appear(self):
1212
return red_overlay_transparency(
1313
MAP_ENEMY_SEARCHING.color, get_color(self.device.image, MAP_ENEMY_SEARCHING.area)
1414
) > self.MAP_ENEMY_SEARCHING_OVERLAY_TRANSPARENCY_THRESHOLD
15+
16+
def handle_exp_info(self):
17+
# Random background hits EXP_INFO_B
18+
if self.ui_page_appear(page_event):
19+
return False
20+
return super().handle_exp_info()

campaign/war_archives_20220915_cn/campaign_base.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
from module.base.utils import get_color, red_overlay_transparency
2-
from ..campaign_war_archives.campaign_base import CampaignBase as CampaignBase_
32
from module.handler.assets import MAP_ENEMY_SEARCHING
4-
from module.map.assets import SWITCH_OVER
3+
from module.ui.page import page_event
4+
from ..campaign_war_archives.campaign_base import CampaignBase as CampaignBase_
55

66

77
class CampaignBase(CampaignBase_):
@@ -12,3 +12,9 @@ def enemy_searching_appear(self):
1212
return red_overlay_transparency(
1313
MAP_ENEMY_SEARCHING.color, get_color(self.device.image, MAP_ENEMY_SEARCHING.area)
1414
) > self.MAP_ENEMY_SEARCHING_OVERLAY_TRANSPARENCY_THRESHOLD
15+
16+
def handle_exp_info(self):
17+
# Random background hits EXP_INFO_B
18+
if self.ui_page_appear(page_event):
19+
return False
20+
return super().handle_exp_info()

deploy/git.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,10 @@ def git_repository_init(
7171
@property
7272
def goc_client(self):
7373
client = GitOverCdnClient(
74-
url='https://vip.123pan.cn/1818706573/pack/LmeSzinc_AzurLaneAutoScript_master',
74+
url=[
75+
'https://vip.123pan.cn/1818706573/pack/LmeSzinc_AzurLaneAutoScript_master',
76+
'https://1818706573.v.123yx.com/1818706573/pack/LmeSzinc_AzurLaneAutoScript_master',
77+
],
7578
folder=self.root_filepath,
7679
source='origin',
7780
branch='master',
@@ -102,4 +105,4 @@ def git_install(self):
102105

103106
if __name__ == '__main__':
104107
self = GitManager()
105-
self.goc_client.get_status()
108+
self.goc_client.get_status()

deploy/git_over_cdn/client.py

Lines changed: 28 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -52,10 +52,14 @@ class GitOverCdnClient:
5252
def __init__(self, url, folder, source='origin', branch='master', git='git'):
5353
"""
5454
Args:
55-
url: http://127.0.0.1:22251/pack/LmeSzinc_AzurLaneAutoScript_master/
55+
url (str | list[str]): http://127.0.0.1:22251/pack/LmeSzinc_AzurLaneAutoScript_master/
5656
folder: D:/AzurLaneAutoScript
5757
"""
58-
self.url = url.strip('/')
58+
if isinstance(url, str):
59+
self.urls = [url.strip('/')]
60+
else:
61+
self.urls = [u.strip('/') for u in url]
62+
self.url = self.urls[0]
5963
self.folder = folder.replace('\\', '/')
6064
self.source = source
6165
self.branch = branch
@@ -100,29 +104,31 @@ def session(self):
100104

101105
@cached_property
102106
def latest_commit(self) -> str:
103-
try:
107+
for url_base in self.urls:
108+
self.url = url_base
104109
url = self.urlpath('/latest.json')
105110
self.logger.info(f'Fetch url: {url}')
106-
resp = self.session.get(url, timeout=3)
107-
except Exception as e:
108-
self.logger.error(f'Failed to get remote commit: {e}')
109-
return ''
110-
111-
if resp.status_code == 200:
112111
try:
113-
info = json.loads(resp.text)
114-
commit = info['commit']
115-
self.logger.attr('LatestCommit', commit)
116-
return commit
117-
except json.JSONDecodeError:
118-
self.logger.error(f'Failed to get remote commit, response is not a json: {resp.text}')
119-
return ''
120-
except KeyError:
121-
self.logger.error(f'Failed to get remote commit, key "commit" is not found: {resp.text}')
122-
return ''
123-
else:
124-
self.logger.error(f'Failed to get remote commit, status={resp.status_code}, text={resp.text}')
125-
return ''
112+
resp = self.session.get(url, timeout=3)
113+
except Exception as e:
114+
self.logger.error(f'Failed to get remote commit: {e}')
115+
continue
116+
117+
if resp.status_code == 200:
118+
try:
119+
info = json.loads(resp.text)
120+
commit = info['commit']
121+
self.logger.attr('LatestCommit', commit)
122+
return commit
123+
except json.JSONDecodeError:
124+
self.logger.error(f'Failed to get remote commit, response is not a json: {resp.text}')
125+
except KeyError:
126+
self.logger.error(f'Failed to get remote commit, key "commit" is not found: {resp.text}')
127+
else:
128+
self.logger.error(f'Failed to get remote commit, status={resp.status_code}, text={resp.text}')
129+
130+
self.url = self.urls[0]
131+
return ''
126132

127133
def download_pack(self):
128134
try:

module/os_shop/port_shop.py

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,15 @@
11
from typing import List
2+
23
from module.base.button import ButtonGrid
34
from module.base.decorator import cached_property
45
from module.base.template import Template
56
from module.logger import logger
67
from module.map_detection.utils import Points
78
from module.os_handler.map_event import MapEventHandler
89
from module.os_handler.os_status import OSStatus
10+
from module.os_shop.item import OSShopItem as Item, OSShopItemGrid as ItemGrid
911
from module.os_shop.selector import Selector
1012
from module.os_shop.ui import OSShopUI, OS_SHOP_SCROLL
11-
from module.os_shop.item import OSShopItem as Item, OSShopItemGrid as ItemGrid
1213
from module.statistics.utils import load_folder
1314

1415

@@ -133,19 +134,21 @@ def scan_all(self) -> List[Item]:
133134

134135
while True:
135136
pre_pos = self.pre_scroll(pre_pos, cur_pos)
136-
_items = self.os_shop_get_items(i, cur_pos)
137137

138-
for _ in range(2):
138+
_items = []
139+
for _ in range(3):
140+
_items = self.os_shop_get_items(i, cur_pos)
139141
if not len(_items) or any(not item.is_known_item() for item in _items):
140142
logger.warning('Empty OS shop or empty items, confirming')
141143
self.device.sleep((0.3, 0.5))
142144
self.device.screenshot()
143-
_items = self.os_shop_get_items(i, cur_pos)
144145
continue
145146
else:
146-
items += _items
147147
logger.info(f'Found {len(_items)} items in shop {i + 1} at pos {cur_pos:.2f}')
148148
break
149+
# always add items, even if last item list contains unknown items
150+
# so any known items can be scanned
151+
items += _items
149152

150153
if OS_SHOP_SCROLL.at_bottom(main=self):
151154
logger.info('OS shop reach bottom, stop')

0 commit comments

Comments
 (0)