mirror of
https://gitee.com/sui-feng-cb/AzurLaneAutoScript1
synced 2026-03-25 00:09:03 +08:00
Fix: Wait DroidCast server startup
This commit is contained in:
@@ -6,11 +6,11 @@ import numpy as np
|
|||||||
import requests
|
import requests
|
||||||
from adbutils.errors import AdbError
|
from adbutils.errors import AdbError
|
||||||
|
|
||||||
from module.base.decorator import Config, cached_property, del_cached_property
|
from module.base.decorator import cached_property, del_cached_property
|
||||||
from module.base.timer import Timer
|
from module.base.timer import Timer
|
||||||
from module.device.method.uiautomator_2 import Uiautomator2, ProcessInfo
|
from module.device.method.uiautomator_2 import ProcessInfo, Uiautomator2
|
||||||
from module.device.method.utils import (retry_sleep, RETRY_TRIES, handle_adb_error,
|
from module.device.method.utils import (
|
||||||
ImageTruncated, PackageNotInstalled)
|
ImageTruncated, PackageNotInstalled, RETRY_TRIES, handle_adb_error, retry_sleep)
|
||||||
from module.exception import RequestHumanTakeover
|
from module.exception import RequestHumanTakeover
|
||||||
from module.logger import logger
|
from module.logger import logger
|
||||||
|
|
||||||
@@ -141,24 +141,22 @@ class DroidCast(Uiautomator2):
|
|||||||
del_cached_property(self, 'droidcast_session')
|
del_cached_property(self, 'droidcast_session')
|
||||||
_ = self.droidcast_session
|
_ = self.droidcast_session
|
||||||
|
|
||||||
@Config.when(DROIDCAST_VERSION='DroidCast')
|
if self.config.DROIDCAST_VERSION == 'DroidCast':
|
||||||
def droidcast_start(self):
|
logger.attr('DroidCast', self.droidcast_url())
|
||||||
self.droidcast_init()
|
self.droidcast_wait_startup()
|
||||||
|
elif self.config.DROIDCAST_VERSION == 'DroidCast_raw':
|
||||||
logger.attr('DroidCast', self.droidcast_url())
|
logger.attr('DroidCast_raw', self.droidcast_raw_url())
|
||||||
self.droidcast_wait_startup()
|
self.droidcast_wait_startup()
|
||||||
|
else:
|
||||||
@Config.when(DROIDCAST_VERSION='DroidCast_raw')
|
logger.error(f'Unknown DROIDCAST_VERSION: {self.config.DROIDCAST_VERSION}')
|
||||||
def droidcast_raw_start(self):
|
|
||||||
self.droidcast_init()
|
|
||||||
|
|
||||||
logger.attr('DroidCast_raw', self.droidcast_raw_url())
|
|
||||||
self.droidcast_wait_startup()
|
|
||||||
|
|
||||||
@retry
|
@retry
|
||||||
def screenshot_droidcast(self):
|
def screenshot_droidcast(self):
|
||||||
self.config.DROIDCAST_VERSION = 'DroidCast'
|
self.config.DROIDCAST_VERSION = 'DroidCast'
|
||||||
image = self.droidcast_session.get(self.droidcast_url(), timeout=3).content
|
resp = self.droidcast_session.get(self.droidcast_url(), timeout=3)
|
||||||
|
if resp.status_code == 404:
|
||||||
|
raise DroidCastVersionIncompatible('DroidCast server does not have /preview')
|
||||||
|
image = resp.content
|
||||||
image = np.frombuffer(image, np.uint8)
|
image = np.frombuffer(image, np.uint8)
|
||||||
if image is None:
|
if image is None:
|
||||||
raise ImageTruncated('Empty image after reading from buffer')
|
raise ImageTruncated('Empty image after reading from buffer')
|
||||||
|
|||||||
Reference in New Issue
Block a user