Mercurial > libervia-web
view libervia/web/pages/photos/new/page_meta.py @ 1553:83c2a6faa2ae
browser (calls): screen sharing implementation:
- the new screen sharing button toggle screen sharing state
- the button reflect the screen sharing state (green crossed when not sharing, red
uncrossed otherwise)
- the screen sharing stream replaces the camera one, and vice versa. No re-negociation is
needed.
- stopping the sharing through browser's dialog is supported
- the screen sharing button is only visibile if supported by the platform
rel 432
author | Goffi <goffi@goffi.org> |
---|---|
date | Mon, 14 Aug 2023 16:49:02 +0200 |
parents | eb00d593801d |
children |
line wrap: on
line source
#!/usr/bin/env python3 from libervia.web.server.constants import Const as C from twisted.internet import defer from libervia.backend.core.log import getLogger from libervia.backend.core.i18n import D_ from libervia.backend.core import exceptions from libervia.frontends.bridge.bridge_frontend import BridgeException """creation of new events""" name = "photos_new" access = C.PAGES_ACCESS_PROFILE template = "photo/create.html" log = getLogger(__name__) async def on_data_post(self, request): request_data = self.get_r_data(request) profile = self.get_profile(request) name = self.get_posted_data(request, "name").replace('/', '_') albums_path = "/albums" album_path = f"{albums_path}/{name}" if profile is None: self.page_error(request, C.HTTP_BAD_REQUEST) fis_ns = self.host.ns_map["fis"] http_upload_ns = self.host.ns_map["http_upload"] entities_services, __, __ = await self.host.bridge_call( "disco_find_by_features", [fis_ns, http_upload_ns], [], False, True, False, False, False, profile ) try: fis_service = next(iter(entities_services)) except StopIteration: raise exceptions.DataError(D_( "You server has no service to create a photo album, please ask your server " "administrator to add one")) try: await self.host.bridge_call( "fis_create_dir", fis_service, "", albums_path, {"access_model": "open"}, profile ) except BridgeException as e: if e.condition == 'conflict': pass else: log.error(f"Can't create {albums_path} path: {e}") raise e try: await self.host.bridge_call( "fis_create_dir", fis_service, "", album_path, {"access_model": "whitelist"}, profile ) except BridgeException as e: if e.condition == 'conflict': pass else: log.error(f"Can't create {album_path} path: {e}") raise e await self.host.bridge_call( "interests_file_sharing_register", fis_service, "photos", "", album_path, name, "", profile ) log.info(f"album {name} created") request_data["post_redirect_page"] = self.get_page_by_name("photos") defer.returnValue(C.POST_NO_CONFIRM)