__filename__ = "webapp_media.py" __author__ = "Bob Mottram" __license__ = "AGPL3+" __version__ = "1.1.0" __maintainer__ = "Bob Mottram" __email__ = "bob@freedombone.net" __status__ = "Production" def addEmbeddedVideoFromSites(translate: {}, content: str, width=400, height=300) -> str: """Adds embedded videos """ if '>vimeo.com/' in content: url = content.split('>vimeo.com/')[1] if '<' in url: url = url.split('<')[0] content = \ content + "
\n\n
\n" return content videoSite = 'https://www.youtube.com' if '"' + videoSite in content: url = content.split('"' + videoSite)[1] if '"' in url: url = url.split('"')[0].replace('/watch?v=', '/embed/') if '&' in url: url = url.split('&')[0] content = \ content + "
\n\n
\n" return content invidiousSites = ('https://invidio.us', 'https://invidious.snopyta.org', 'http://c7hqkpkpemu6e7emz5b4vy' + 'z7idjgdvgaaa3dyimmeojqbgpea3xqjoid.onion', 'http://axqzx4s6s54s32yentfqojs3x5i7faxza6xo3ehd4' + 'bzzsg2ii4fv2iid.onion') for videoSite in invidiousSites: if '"' + videoSite in content: url = content.split('"' + videoSite)[1] if '"' in url: url = url.split('"')[0].replace('/watch?v=', '/embed/') if '&' in url: url = url.split('&')[0] content = \ content + "
\n\n
\n" return content videoSite = 'https://media.ccc.de' if '"' + videoSite in content: url = content.split('"' + videoSite)[1] if '"' in url: url = url.split('"')[0] if not url.endswith('/oembed'): url = url + '/oembed' content = \ content + "
\n\n
\n" return content if '"https://' in content: # A selection of the current larger peertube sites, mostly # French and German language # These have been chosen based on reported numbers of users # and the content of each has not been reviewed, so mileage could vary peerTubeSites = ('peertube.mastodon.host', 'open.tube', 'share.tube', 'tube.tr4sk.me', 'videos.elbinario.net', 'hkvideo.live', 'peertube.snargol.com', 'tube.22decembre.eu', 'tube.fabrigli.fr', 'libretube.net', 'libre.video', 'peertube.linuxrocks.online', 'spacepub.space', 'video.ploud.jp', 'video.omniatv.com', 'peertube.servebeer.com', 'tube.tchncs.de', 'tubee.fr', 'video.alternanet.fr', 'devtube.dev-wiki.de', 'video.samedi.pm', 'video.irem.univ-paris-diderot.fr', 'peertube.openstreetmap.fr', 'video.antopie.org', 'scitech.video', 'tube.4aem.com', 'video.ploud.fr', 'peervideo.net', 'video.valme.io', 'videos.pair2jeux.tube', 'vault.mle.party', 'hostyour.tv', 'diode.zone', 'visionon.tv', 'artitube.artifaille.fr', 'peertube.fr', 'peertube.live', 'kolektiva.media', 'tube.ac-lyon.fr', 'www.yiny.org', 'betamax.video', 'tube.piweb.be', 'pe.ertu.be', 'peertube.social', 'videos.lescommuns.org', 'peertube.nogafa.org', 'skeptikon.fr', 'video.tedomum.net', 'tube.p2p.legal', 'tilvids.com', 'sikke.fi', 'exode.me', 'peertube.video') for site in peerTubeSites: if '"https://' + site in content: url = content.split('"https://' + site)[1] if '"' in url: url = url.split('"')[0].replace('/watch/', '/embed/') content = \ content + "
\n\n
\n" return content return content def addEmbeddedAudio(translate: {}, content: str) -> str: """Adds embedded audio for mp3/ogg """ if not ('.mp3' in content or '.ogg' in content): return content if '