Minor upload improvements
authorClinton Ebadi <clinton@unknownlamer.org>
Sat, 10 Oct 2020 16:37:52 +0000 (12:37 -0400)
committerClinton Ebadi <clinton@unknownlamer.org>
Sat, 10 Oct 2020 16:37:52 +0000 (12:37 -0400)
Better filenames and return dictionary directly to make things a bit
more generic (might be used in future to queue URIs).

party-upload/partyparty.py
party-upload/youtube.html

index 21886c0..a9ef395 100644 (file)
@@ -208,13 +208,13 @@ class Upload:
         fout.write (self.fileitem.value)
         fout.close()
         self.attempt_rpgain ()
-        return self.filename
+        return { 'file': self.filename }
 
 class Youtube:
     upload_dir = '/srv/archive/incoming/youtube-moosic'
     ydl_opts = {
         'format': 'bestaudio/best',
-        'outtmpl': upload_dir + '/%(id)s.%(ext)s',
+        'outtmpl': upload_dir + '/%(title)s-%(id)s.%(ext)s',
         'quiet': True,
         'postprocessors': [
             {
@@ -233,9 +233,9 @@ class Youtube:
 
     def save (self):
         info = self.ydl.extract_info (self.url, download=True)
-        filename = '{}/{}.ogg'.format (self.upload_dir, info['display_id'])
+        filename = re.sub ('\..{3,4}$', '.ogg', self.ydl.prepare_filename (info))
         subprocess.call (["/usr/bin/vorbisgain", "-q", filename])
-        return filename
+        return { 'file': filename }
 
 
 def css ():
@@ -361,12 +361,12 @@ class PartyManager:
             print (doc.getvalue ())
         elif 'uploadgo' in form:
             upload = Upload (form, 'song')
-            filename = upload.save ()
-            self.randomqueue ({"file": filename}, 1 if 'asap' not in form else 3)
+            item = upload.save ()
+            self.randomqueue (item, 1 if 'asap' not in form else 3)
         elif 'youtubego' in form:
             youtube = Youtube (form, 'youtubeurl')
-            filename = youtube.save ()
-            self.randomqueue ({"file": filename}, 1 if 'asap' not in form else 3)
+            item = youtube.save ()
+            self.randomqueue (item, 1 if 'asap' not in form else 3)
         elif 'partyon' in form:
             if 'error' in xbmc.Player.SetPartymode (partymode=True, playerid=0):
                 xbmc.Player.Open (item={"partymode": "music"})
index c915c60..af167bf 100644 (file)
@@ -3,23 +3,34 @@
   <head>
     <style>
       body { font-family: sans-serif; }
-      input[type=url] { height: 2em; width:
-      100%; font-size: 200%; }
-      button { font-size: 400%; background-color: slategray; border: 0px
-      solid black; border-radius: 10px; width: 95%; display: block;
-      margin: 2rem auto; }
-
+      label[for=youtubeurl],input[type=url]
+      {
+         width: 100%;
+         font-size: 400%;
+         display: block;
+      }
+      button
+      {
+         font-size: 400%;
+         background-color: slategray;
+         border: 0px solid black;
+         border-radius: 10px;
+         width: 95%;
+         display: block;
+         margin: 2rem auto;
+      }
       label[for=asap] { font-size: 350%; }
-      input[type=checkbox] { transform: scale(2.5); margin-right: 2em; }
+      input[type=checkbox] { transform: scale(2.5); margin: 2rem; }
     </style>
   </head>
   <body>
     <form action="normals.cgi" method="post" enctype="multipart/form-data">
       <p>
        <label for="youtubeurl">YouTube URL</label>
-       <input name="youtubeurl" type="text" required="required" />
-       <!-- <input type="submit" value="Party On!" /> -->
+       <input name="youtubeurl" type="url" required="required" />
+
        <button name="youtubego" type="submit">Party On!</button>
+
        <input type="checkbox" value="faster" name="asap"  />
        <label for="asap">nnooowww</label>
       </p>