Well, it works. In Python, at least.

This commit is contained in:
Ada Werefox 2026-06-02 00:21:51 -07:00
parent 66f4752409
commit 0b7ac9e0a4
2 changed files with 13 additions and 26 deletions

View file

@ -28,7 +28,6 @@ from PyQt6.QtWidgets import (
) )
from PyQt6.QtCore import Qt, QThread, pyqtSignal from PyQt6.QtCore import Qt, QThread, pyqtSignal
from PyQt6.QtGui import QFont from PyQt6.QtGui import QFont
from pprint import pprint
class WebDAVBrowser(QDialog): class WebDAVBrowser(QDialog):
@ -95,29 +94,15 @@ class WebDAVBrowser(QDialog):
self.current_path = path self.current_path = path
self.path_label.setText(path) self.path_label.setText(path)
response = self.nc.list_folders(path=path) # type: ignore response = self.nc.get_folder(path=path) # type: ignore
pprint(response.json_data)
# Try to extract data from webDavResponse # Try to extract data from webDavResponse
file_list = [] file_list = response.list()
if hasattr(response, "__iter__") and not isinstance(response, (str, bytes)):
try:
file_list = list(response)
except TypeError:
# If direct iteration fails, try accessing as dict keys
if isinstance(response, dict):
file_list = list(response.keys())
elif hasattr(response, "data"):
file_list = (
response.data
if isinstance(response.data, list)
else list(response.data)
)
for item in sorted(file_list): for item in sorted(file_list, key=lambda x: x.basename()):
name = str(item).rstrip("/") name = str(item.basename()).rstrip("/")
if name: if name:
is_dir = str(item).endswith("/") is_dir = item.isdir()
display_name = f"[DIR] {name}" if is_dir else name display_name = f"[DIR] {name}" if is_dir else name
list_item = QListWidgetItem(display_name) list_item = QListWidgetItem(display_name)
list_item.setData(Qt.ItemDataRole.UserRole, (name, is_dir)) list_item.setData(Qt.ItemDataRole.UserRole, (name, is_dir))
@ -174,6 +159,7 @@ class RestoreWorker(QThread):
cwd=os.path.dirname(os.path.abspath(__file__)), cwd=os.path.dirname(os.path.abspath(__file__)),
) )
if process.stdout:
for line in process.stdout: for line in process.stdout:
self.output_signal.emit(line.rstrip()) self.output_signal.emit(line.rstrip())
@ -423,8 +409,9 @@ class RestoreUI(QMainWindow):
def append_output(self, text): def append_output(self, text):
self.output_text.append(text) self.output_text.append(text)
self.output_text.verticalScrollBar().setValue( if self.output_text.verticalScrollBar():
self.output_text.verticalScrollBar().maximum() self.output_text.verticalScrollBar().setValue( # type: ignore
self.output_text.verticalScrollBar().maximum() # type: ignore
) )
def restore_finished(self, success, message): def restore_finished(self, success, message):

View file

@ -3,7 +3,7 @@
block_cipher = None block_cipher = None
a = Analysis( a = Analysis(
['restore_ui.py'], ['restore_ui.py', 'restore_backup.py'],
pathex=[], pathex=[],
binaries=[], binaries=[],
datas=[('.env', '.')], # Include .env file datas=[('.env', '.')], # Include .env file