diff --git a/local-fs/.pyscript.com/manifest.json b/local-fs/.pyscript.com/manifest.json new file mode 100644 index 0000000..e061814 --- /dev/null +++ b/local-fs/.pyscript.com/manifest.json @@ -0,0 +1,5 @@ +{ + "project_id": "8b39db48-f8ba-487e-bc77-15b94bc56a1c", + "user_id": "7589ccb7-f838-4034-abea-5550f0e8d949", + "url": "https://fpliger.pyscriptapps.com/local-fs/latest/" +} \ No newline at end of file diff --git a/local-fs/files.py b/local-fs/files.py new file mode 100644 index 0000000..9b752cd --- /dev/null +++ b/local-fs/files.py @@ -0,0 +1,22 @@ +from pyscript import window + +class Files: + def __init__(self): + self.folder = None + + async def select_folder(self, event=None): + self.folder = await window.showDirectoryPicker() + + async def get_file_contents(self, file_name): + file = await self.folder.getFileHandle(file_name) + file_data = await file.getFile() + return await file_data.text() + + async def create_new_file(self, contents): + file = await window.showSaveFilePicker() + await self.write_file(file, contents) + + async def write_file(self, file, contents): + writeable = await file.createWritable() + await writeable.write(contents) + await writeable.close() \ No newline at end of file diff --git a/local-fs/index.html b/local-fs/index.html new file mode 100644 index 0000000..0d4f01b --- /dev/null +++ b/local-fs/index.html @@ -0,0 +1,33 @@ + + + + Crimson Scene + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + \ No newline at end of file diff --git a/local-fs/main.py b/local-fs/main.py new file mode 100644 index 0000000..aa1cc4a --- /dev/null +++ b/local-fs/main.py @@ -0,0 +1,11 @@ +from files import * +from pyscript import window, display +import media + +my_files = Files() + +async def get_file(event): + data = await my_files.get_file_contents("test.txt") + display(data) + +await media.list_media_devices() \ No newline at end of file diff --git a/local-fs/media.py b/local-fs/media.py new file mode 100644 index 0000000..ac527fc --- /dev/null +++ b/local-fs/media.py @@ -0,0 +1,31 @@ +from pyodide.ffi import create_proxy +from pyscript import display, document, when, window +from pyweb import media, pydom + +devicesSelect = pydom["#devices"][0] +video = pydom["video"][0] +devices = {} + + +async def list_media_devices(event=None): + """List the available media devices.""" + global devices + for i, device in enumerate(await media.list_devices()): + devices[device.id] = device + label = f"{i} - ({device.kind}) {device.label} [{device.id}]" + devicesSelect.options.add(value=device.id, html=label) + + +@when("click", "#pick-device") +async def connect_to_device(e): + """Connect to the selected device.""" + device = devices[devicesSelect.value] + video._js.srcObject = await device.get_stream() + + +@when("click", "#snap") +async def camera_click(e): + """Take a picture and download it.""" + video.snap().download() + video.snap() + diff --git a/local-fs/pyscript.toml b/local-fs/pyscript.toml new file mode 100644 index 0000000..060765e --- /dev/null +++ b/local-fs/pyscript.toml @@ -0,0 +1,4 @@ +name = "local_fs Copy" +[[fetch]] +files = [ "files.py", "media.py"] +