summaryrefslogtreecommitdiff
path: root/libs/music/player.d/cgi-bin
diff options
context:
space:
mode:
Diffstat (limited to 'libs/music/player.d/cgi-bin')
-rw-r--r--libs/music/player.d/cgi-bin/.htaccess3
-rwxr-xr-xlibs/music/player.d/cgi-bin/m3u8.cgi25
2 files changed, 28 insertions, 0 deletions
diff --git a/libs/music/player.d/cgi-bin/.htaccess b/libs/music/player.d/cgi-bin/.htaccess
new file mode 100644
index 0000000..e861984
--- /dev/null
+++ b/libs/music/player.d/cgi-bin/.htaccess
@@ -0,0 +1,3 @@
+Options +ExecCGI
+AddHandler cgi-script cgi
+
diff --git a/libs/music/player.d/cgi-bin/m3u8.cgi b/libs/music/player.d/cgi-bin/m3u8.cgi
new file mode 100755
index 0000000..c90871c
--- /dev/null
+++ b/libs/music/player.d/cgi-bin/m3u8.cgi
@@ -0,0 +1,25 @@
+#!/usr/bin/python3
+import cgi
+import urllib.parse
+d=cgi.parse()
+try:
+ plist=d['plist'][0]
+ f=open(f'/var/www/html/libs/music/player.d/playlists/{plist}.playlist','r',encoding='UTF-8')
+except (OSError,KeyError) as e:
+ print('Status: 400 Bad Request',end='\r\n')
+ print('Content-type: text/plain',end='\r\n')
+ print(end='\r\n')
+ print('400. Shit.')
+ print(e)
+ exit()
+print('Status: 200 OK',end='\r\n')
+print('Content-type: audio/mpegurl',end='\r\n')
+print(end='\r\n')
+f.readline()
+try:
+ fmt=d['type'][0] if d['type'][0] in ['ogg','wav','flac'] else 'ogg'
+except KeyError:
+ fmt='ogg'
+for line in f:
+ print(f'https://filestorage.chrisoft.org/music/{fmt}/{urllib.parse.quote(line.strip())}.{fmt}')
+f.close()