Mercurial > libervia-web
comparison browser_side/radiocol.py @ 394:ee61b0765d6c
browser_side: radiocol supports MP3
author | souliane <souliane@mailoo.org> |
---|---|
date | Thu, 06 Mar 2014 01:06:19 +0100 |
parents | 30d03d9f07e4 |
children | 6148e9063069 |
comparison
equal
deleted
inserted
replaced
393:a3d58514a4d0 | 394:ee61b0765d6c |
---|---|
34 from __pyjamas__ import JS | 34 from __pyjamas__ import JS |
35 | 35 |
36 from html_tools import html_sanitize | 36 from html_tools import html_sanitize |
37 from file_tools import FilterFileUpload | 37 from file_tools import FilterFileUpload |
38 from sat_frontends.tools.misc import DEFAULT_MUC | 38 from sat_frontends.tools.misc import DEFAULT_MUC |
39 from sat.core.i18n import _ | |
39 | 40 |
40 | 41 |
41 class MetadataPanel(FlexTable): | 42 class MetadataPanel(FlexTable): |
42 | 43 |
43 def __init__(self): | 44 def __init__(self): |
84 self._parent = parent | 85 self._parent = parent |
85 vPanel = VerticalPanel() | 86 vPanel = VerticalPanel() |
86 | 87 |
87 types = [('audio/ogg', '*.ogg', 'Ogg Vorbis Audio'), | 88 types = [('audio/ogg', '*.ogg', 'Ogg Vorbis Audio'), |
88 ('video/ogg', '*.ogv', 'Ogg Vorbis Video'), | 89 ('video/ogg', '*.ogv', 'Ogg Vorbis Video'), |
89 ('application/ogg', '*.ogx', 'Ogg Vorbis Multiplex')] | 90 ('application/ogg', '*.ogx', 'Ogg Vorbis Multiplex'), |
91 ('audio/mpeg', '*.mp3', 'MPEG-Layer 3')] | |
90 self.file_upload = FilterFileUpload("song", 10, types) | 92 self.file_upload = FilterFileUpload("song", 10, types) |
91 vPanel.add(self.file_upload) | 93 vPanel.add(self.file_upload) |
92 | 94 |
93 hPanel = HorizontalPanel() | 95 hPanel = HorizontalPanel() |
94 self.upload_btn = Button("Upload song", getattr(self, "onBtnClick")) | 96 self.upload_btn = Button("Upload song", getattr(self, "onBtnClick")) |
95 hPanel.add(self.upload_btn) | 97 hPanel.add(self.upload_btn) |
96 self.status = Label() | 98 self.status = Label() |
97 self.updateStatus() | 99 self.updateStatus() |
98 hPanel.add(self.status) | 100 hPanel.add(self.status) |
99 #We need to know the referee | 101 #We need to know the filename and the referee |
102 self.filename_field = Hidden('filename', '') | |
103 hPanel.add(self.filename_field) | |
100 referee_field = Hidden('referee', self._parent.referee) | 104 referee_field = Hidden('referee', self._parent.referee) |
105 hPanel.add(self.filename_field) | |
101 hPanel.add(referee_field) | 106 hPanel.add(referee_field) |
102 vPanel.add(hPanel) | 107 vPanel.add(hPanel) |
103 | 108 |
104 self.add(vPanel) | 109 self.add(vPanel) |
105 self.addFormHandler(self) | 110 self.addFormHandler(self) |
120 self.status.setText("[The queue is currently full]") | 125 self.status.setText("[The queue is currently full]") |
121 self.status.setStyleName('radiocol_status') | 126 self.status.setStyleName('radiocol_status') |
122 | 127 |
123 def onBtnClick(self): | 128 def onBtnClick(self): |
124 if self.file_upload.check(): | 129 if self.file_upload.check(): |
130 self.status.setText('[Submitting, please wait...]') | |
131 self.filename_field.setValue(self.file_upload.getFilename()) | |
132 if self.file_upload.getFilename().lower().endswith('.mp3'): | |
133 self._parent._parent.host.showWarning('STATUS', 'For a better support, it is recommended to submit Ogg Vorbis file instead of MP3. You can convert your files easily, ask for help if needed!', 5000) | |
125 self.submit() | 134 self.submit() |
126 self.file_upload.setFilename("") | 135 self.file_upload.setFilename("") |
127 self.status.setText('[Submitting, please wait...]') | |
128 | 136 |
129 def onSubmit(self, event): | 137 def onSubmit(self, event): |
130 pass | 138 pass |
131 | 139 |
132 def blockUpload(self): | 140 def blockUpload(self): |
153 if result == "OK": | 161 if result == "OK": |
154 # the song can still be rejected (not readable, full queue...) | 162 # the song can still be rejected (not readable, full queue...) |
155 self.setTemporaryStatus('[Your song has been submitted to the radio]', "ok") | 163 self.setTemporaryStatus('[Your song has been submitted to the radio]', "ok") |
156 elif result == "KO": | 164 elif result == "KO": |
157 self.setTemporaryStatus('[Something went wrong during your song upload]', "ko") | 165 self.setTemporaryStatus('[Something went wrong during your song upload]', "ko") |
158 self._parent.radiocolSongRejected("Uploaded file is not Ogg Vorbis song, only Ogg Vorbis songs are acceptable") | 166 self._parent.radiocolSongRejected(_("The uploaded file has been rejected, only Ogg Vorbis and MP3 songs are accepted.")) |
159 # TODO: would be great to re-use the original Exception class and message | 167 # TODO: would be great to re-use the original Exception class and message |
160 # but it is lost in the middle of the traceback and encapsulated within | 168 # but it is lost in the middle of the traceback and encapsulated within |
161 # a DBusException instance --> extract the data from the traceback? | 169 # a DBusException instance --> extract the data from the traceback? |
162 else: | 170 else: |
163 Window.alert('Submit error: %s' % result) | 171 Window.alert('Submit error: %s' % result) |
230 self.current_player = None | 238 self.current_player = None |
231 for player in self.players: | 239 for player in self.players: |
232 self.add(player) | 240 self.add(player) |
233 self.addClickListener(self) | 241 self.addClickListener(self) |
234 | 242 |
235 help_msg = HTML("""- This radio plays Ogg Vorbis files.<br /> | 243 help_msg = HTML("""Accepted file formats: Ogg Vorbis (recommended), MP3.<br /> |
236 - What's that? I only know MP3!<br /> | 244 Please do not submit files that are protected by copyright.<br /> |
237 - Click <a style="color: red;">here</a> if you need some support :) | 245 Click <a style="color: red;">here</a> if you need some support :) |
238 """) | 246 """) |
239 help_msg.setStyleName('chatTextInfo-link') | 247 help_msg.setStyleName('chatTextInfo-link') |
240 help_msg.addClickListener(lambda: self._parent.host.bridge.call('joinMUC', None, DEFAULT_MUC, self._parent.nick)) | 248 help_msg.addClickListener(lambda: self._parent.host.bridge.call('joinMUC', None, DEFAULT_MUC, self._parent.nick)) |
241 self._parent.content.add(help_msg) | 249 self._parent.content.add(help_msg) |
242 | 250 |