Fix file info fetching
This commit is contained in:
parent
4faa240b06
commit
19cac21db6
@ -128,16 +128,16 @@ class BambuVirtualPrinter:
|
||||
|
||||
def update_print_job_info(self):
|
||||
print_job_info = self.bambu_client.get_device().print_job
|
||||
filename: str = print_job_info.subtask_name
|
||||
task_name: str = print_job_info.subtask_name
|
||||
project_file_info = self.file_system.get_data_by_suffix(
|
||||
filename, [".3mf", ".gcode.3mf"]
|
||||
task_name, [".3mf", ".gcode.3mf"]
|
||||
)
|
||||
if project_file_info is None:
|
||||
self._log.debug(f"No 3mf file found for {print_job_info}")
|
||||
self._current_print_job = None
|
||||
return
|
||||
|
||||
if self.file_system.select_file(filename):
|
||||
if self.file_system.select_file(project_file_info.file_name):
|
||||
self.sendOk()
|
||||
|
||||
# fuzzy math here to get print percentage to match BambuStudio
|
||||
@ -307,6 +307,7 @@ class BambuVirtualPrinter:
|
||||
@gcode_executor.register("M23")
|
||||
def _select_sd_file(self, data: str) -> bool:
|
||||
filename = data.split(maxsplit=1)[1].strip()
|
||||
self._list_sd()
|
||||
return self.file_system.select_file(filename)
|
||||
|
||||
@gcode_executor.register("M26")
|
||||
@ -340,6 +341,7 @@ class BambuVirtualPrinter:
|
||||
@gcode_executor.register("M30")
|
||||
def _delete_sd_file(self, data: str) -> bool:
|
||||
filename = data.split(None, 1)[1].strip()
|
||||
self._list_sd()
|
||||
self.file_system.delete_file(filename)
|
||||
return True
|
||||
|
||||
|
@ -22,10 +22,10 @@ class FileInfo:
|
||||
|
||||
@property
|
||||
def file_name(self):
|
||||
return self.path.name.lower()
|
||||
return self.path.name
|
||||
|
||||
def get_log_info(self):
|
||||
return f'{self.dosname} {self.size} {self.timestamp} "{self.path.as_posix()}"'
|
||||
return f'{self.dosname} {self.size} {self.timestamp} "{self.file_name}"'
|
||||
|
||||
def to_dict(self):
|
||||
return asdict(self)
|
||||
@ -103,7 +103,7 @@ class RemoteSDCardFileList:
|
||||
self._logger.debug(f"get data for path: {file_name}")
|
||||
|
||||
# replace if name is an alias
|
||||
file_name = Path(file_name).name.lower()
|
||||
file_name = Path(file_name).name
|
||||
file_name = self._file_alias_cache.get(file_name, file_name)
|
||||
|
||||
data = self._file_data_cache.get(file_name, None)
|
||||
@ -122,15 +122,20 @@ class RemoteSDCardFileList:
|
||||
}
|
||||
self._file_data_cache = {info.file_name: info for info in file_info_list}
|
||||
|
||||
def get_data_by_suffix(self, file_name: str, allowed_suffixes: list[str]):
|
||||
file_data = self._get_cached_file_data(file_name)
|
||||
if file_data is None:
|
||||
return None
|
||||
file_path = file_data.path
|
||||
if any(s in allowed_suffixes for s in file_path.suffixes):
|
||||
def _get_cached_data_by_suffix(self, file_stem: str, allowed_suffixes: list[str]):
|
||||
for suffix in allowed_suffixes:
|
||||
file_data = self._get_cached_file_data(f"{file_stem}{suffix}")
|
||||
if file_data is not None:
|
||||
return file_data
|
||||
return None
|
||||
|
||||
def get_data_by_suffix(self, file_stem: str, allowed_suffixes: list[str]):
|
||||
file_data = self._get_cached_data_by_suffix(file_stem, allowed_suffixes)
|
||||
if file_data is None:
|
||||
self._update_existing_files_info()
|
||||
file_data = self._get_cached_data_by_suffix(file_stem, allowed_suffixes)
|
||||
return file_data
|
||||
|
||||
def select_file(self, file_path: str, check_already_open: bool = False) -> bool:
|
||||
self._logger.debug(
|
||||
f"_selectSdFile: {file_path}, check_already_open={check_already_open}"
|
||||
|
Loading…
x
Reference in New Issue
Block a user