1
0
mirror of https://gitee.com/sui-feng-cb/AzurLaneAutoScript1 synced 2026-04-23 05:11:35 +08:00
This commit is contained in:
GH Action - Upstream Sync
2026-04-21 16:17:18 +00:00
10 changed files with 56 additions and 32 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

View File

@@ -1,7 +1,7 @@
from module.base.utils import get_color, red_overlay_transparency from module.base.utils import get_color, red_overlay_transparency
from module.campaign.campaign_base import CampaignBase as CampaignBase_ from module.campaign.campaign_base import CampaignBase as CampaignBase_
from module.handler.assets import MAP_ENEMY_SEARCHING from module.handler.assets import MAP_ENEMY_SEARCHING
from module.map.assets import SWITCH_OVER from module.ui.page import page_event
class CampaignBase(CampaignBase_): class CampaignBase(CampaignBase_):
@@ -12,3 +12,9 @@ class CampaignBase(CampaignBase_):
return red_overlay_transparency( return red_overlay_transparency(
MAP_ENEMY_SEARCHING.color, get_color(self.device.image, MAP_ENEMY_SEARCHING.area) MAP_ENEMY_SEARCHING.color, get_color(self.device.image, MAP_ENEMY_SEARCHING.area)
) > self.MAP_ENEMY_SEARCHING_OVERLAY_TRANSPARENCY_THRESHOLD ) > self.MAP_ENEMY_SEARCHING_OVERLAY_TRANSPARENCY_THRESHOLD
def handle_exp_info(self):
# Random background hits EXP_INFO_B
if self.ui_page_appear(page_event):
return False
return super().handle_exp_info()

View File

@@ -1,7 +1,7 @@
from module.base.utils import get_color, red_overlay_transparency from module.base.utils import get_color, red_overlay_transparency
from ..campaign_war_archives.campaign_base import CampaignBase as CampaignBase_
from module.handler.assets import MAP_ENEMY_SEARCHING from module.handler.assets import MAP_ENEMY_SEARCHING
from module.map.assets import SWITCH_OVER from module.ui.page import page_event
from ..campaign_war_archives.campaign_base import CampaignBase as CampaignBase_
class CampaignBase(CampaignBase_): class CampaignBase(CampaignBase_):
@@ -12,3 +12,9 @@ class CampaignBase(CampaignBase_):
return red_overlay_transparency( return red_overlay_transparency(
MAP_ENEMY_SEARCHING.color, get_color(self.device.image, MAP_ENEMY_SEARCHING.area) MAP_ENEMY_SEARCHING.color, get_color(self.device.image, MAP_ENEMY_SEARCHING.area)
) > self.MAP_ENEMY_SEARCHING_OVERLAY_TRANSPARENCY_THRESHOLD ) > self.MAP_ENEMY_SEARCHING_OVERLAY_TRANSPARENCY_THRESHOLD
def handle_exp_info(self):
# Random background hits EXP_INFO_B
if self.ui_page_appear(page_event):
return False
return super().handle_exp_info()

View File

@@ -71,7 +71,10 @@ class GitManager(DeployConfig):
@property @property
def goc_client(self): def goc_client(self):
client = GitOverCdnClient( client = GitOverCdnClient(
url='https://vip.123pan.cn/1818706573/pack/LmeSzinc_AzurLaneAutoScript_master', url=[
'https://vip.123pan.cn/1818706573/pack/LmeSzinc_AzurLaneAutoScript_master',
'https://1818706573.v.123yx.com/1818706573/pack/LmeSzinc_AzurLaneAutoScript_master',
],
folder=self.root_filepath, folder=self.root_filepath,
source='origin', source='origin',
branch='master', branch='master',

View File

@@ -52,10 +52,14 @@ class GitOverCdnClient:
def __init__(self, url, folder, source='origin', branch='master', git='git'): def __init__(self, url, folder, source='origin', branch='master', git='git'):
""" """
Args: Args:
url: http://127.0.0.1:22251/pack/LmeSzinc_AzurLaneAutoScript_master/ url (str | list[str]): http://127.0.0.1:22251/pack/LmeSzinc_AzurLaneAutoScript_master/
folder: D:/AzurLaneAutoScript folder: D:/AzurLaneAutoScript
""" """
self.url = url.strip('/') if isinstance(url, str):
self.urls = [url.strip('/')]
else:
self.urls = [u.strip('/') for u in url]
self.url = self.urls[0]
self.folder = folder.replace('\\', '/') self.folder = folder.replace('\\', '/')
self.source = source self.source = source
self.branch = branch self.branch = branch
@@ -100,29 +104,31 @@ class GitOverCdnClient:
@cached_property @cached_property
def latest_commit(self) -> str: def latest_commit(self) -> str:
try: for url_base in self.urls:
self.url = url_base
url = self.urlpath('/latest.json') url = self.urlpath('/latest.json')
self.logger.info(f'Fetch url: {url}') self.logger.info(f'Fetch url: {url}')
resp = self.session.get(url, timeout=3)
except Exception as e:
self.logger.error(f'Failed to get remote commit: {e}')
return ''
if resp.status_code == 200:
try: try:
info = json.loads(resp.text) resp = self.session.get(url, timeout=3)
commit = info['commit'] except Exception as e:
self.logger.attr('LatestCommit', commit) self.logger.error(f'Failed to get remote commit: {e}')
return commit continue
except json.JSONDecodeError:
self.logger.error(f'Failed to get remote commit, response is not a json: {resp.text}') if resp.status_code == 200:
return '' try:
except KeyError: info = json.loads(resp.text)
self.logger.error(f'Failed to get remote commit, key "commit" is not found: {resp.text}') commit = info['commit']
return '' self.logger.attr('LatestCommit', commit)
else: return commit
self.logger.error(f'Failed to get remote commit, status={resp.status_code}, text={resp.text}') except json.JSONDecodeError:
return '' self.logger.error(f'Failed to get remote commit, response is not a json: {resp.text}')
except KeyError:
self.logger.error(f'Failed to get remote commit, key "commit" is not found: {resp.text}')
else:
self.logger.error(f'Failed to get remote commit, status={resp.status_code}, text={resp.text}')
self.url = self.urls[0]
return ''
def download_pack(self): def download_pack(self):
try: try:

View File

@@ -1,4 +1,5 @@
from typing import List from typing import List
from module.base.button import ButtonGrid from module.base.button import ButtonGrid
from module.base.decorator import cached_property from module.base.decorator import cached_property
from module.base.template import Template from module.base.template import Template
@@ -6,9 +7,9 @@ from module.logger import logger
from module.map_detection.utils import Points from module.map_detection.utils import Points
from module.os_handler.map_event import MapEventHandler from module.os_handler.map_event import MapEventHandler
from module.os_handler.os_status import OSStatus from module.os_handler.os_status import OSStatus
from module.os_shop.item import OSShopItem as Item, OSShopItemGrid as ItemGrid
from module.os_shop.selector import Selector from module.os_shop.selector import Selector
from module.os_shop.ui import OSShopUI, OS_SHOP_SCROLL from module.os_shop.ui import OSShopUI, OS_SHOP_SCROLL
from module.os_shop.item import OSShopItem as Item, OSShopItemGrid as ItemGrid
from module.statistics.utils import load_folder from module.statistics.utils import load_folder
@@ -133,19 +134,21 @@ class PortShop(OSStatus, OSShopUI, Selector, MapEventHandler):
while True: while True:
pre_pos = self.pre_scroll(pre_pos, cur_pos) pre_pos = self.pre_scroll(pre_pos, cur_pos)
_items = self.os_shop_get_items(i, cur_pos)
for _ in range(2): _items = []
for _ in range(3):
_items = self.os_shop_get_items(i, cur_pos)
if not len(_items) or any(not item.is_known_item() for item in _items): if not len(_items) or any(not item.is_known_item() for item in _items):
logger.warning('Empty OS shop or empty items, confirming') logger.warning('Empty OS shop or empty items, confirming')
self.device.sleep((0.3, 0.5)) self.device.sleep((0.3, 0.5))
self.device.screenshot() self.device.screenshot()
_items = self.os_shop_get_items(i, cur_pos)
continue continue
else: else:
items += _items
logger.info(f'Found {len(_items)} items in shop {i + 1} at pos {cur_pos:.2f}') logger.info(f'Found {len(_items)} items in shop {i + 1} at pos {cur_pos:.2f}')
break break
# always add items, even if last item list contains unknown items
# so any known items can be scanned
items += _items
if OS_SHOP_SCROLL.at_bottom(main=self): if OS_SHOP_SCROLL.at_bottom(main=self):
logger.info('OS shop reach bottom, stop') logger.info('OS shop reach bottom, stop')