22 lines
858 B
Python
22 lines
858 B
Python
from textual.widgets import Tree, DirectoryTree
|
|
from textual.widgets.directory_tree import DirEntry
|
|
from textual import work
|
|
|
|
import requests
|
|
|
|
|
|
class RepoDirectoryTree(DirectoryTree):
|
|
ICON_NODE_EXPANDED = "\uf07c "
|
|
ICON_NODE = "\ue5ff "
|
|
ICON_FILE = "\uf15b "
|
|
|
|
def __init__(self, repo_owner: str, repo_name: str, path: str, name: str | None = None, id: str | None = None, classes: str | None = None, disabled: bool = False):
|
|
super().__init__(path=path, name=name, id=id, classes=classes, disabled=disabled)
|
|
|
|
self.repo_owner = repo_owner
|
|
self.repo_name = repo_name
|
|
|
|
def _directory_content(self, location: Path, worker: Worker) -> Iterator[Path]:
|
|
contents = requests.get(
|
|
self.app.GITEA_HOST + f"api/v1/repos/{self.repo_owner}/{self.repo_name}/contents/{location}"
|
|
).json() |