Spaces:
Sleeping
Sleeping
| import mimetypes | |
| def get_extension_from_content_type(content_type: str) -> str: | |
| """Return file extension (without dot) from a given content-type.""" | |
| ext = mimetypes.guess_extension(content_type) | |
| if ext is None: | |
| # fallback for types mimetypes may miss | |
| mapping = { | |
| "image/webp": "webp", | |
| "image/jpeg": "jpg", | |
| "image/png": "png", | |
| "image/gif": "gif", | |
| "video/mp4": "mp4", | |
| "video/webm": "webm", | |
| "application/pdf": "pdf", | |
| } | |
| return mapping.get(content_type, "") | |
| return ext.lstrip(".") # remove leading dot | |
| def pick_team(uid: str, user_to_teams: dict, team_map: dict) -> str: | |
| """Return the best team ID for a user — preferring non-personal teams.""" | |
| candidates = user_to_teams.get(uid, []) | |
| non_personal = [ | |
| t for t in candidates | |
| if not team_map.get(t, {}).get("is_personal_team", False) | |
| ] | |
| return non_personal[0] if non_personal else (candidates[0] if candidates else "") | |