Added audio uploading support in posts. Needs improvements to detect its ID3 tags

This commit is contained in:
Manuel Cortez 2018-12-20 17:29:23 -06:00
parent 93e6cd36a7
commit d71721ab87
3 changed files with 26 additions and 0 deletions

View File

@ -22,6 +22,7 @@ class attachFromLocal(object):
self.type = "local" self.type = "local"
self.dialog = gui.attachDialog(voice_messages) self.dialog = gui.attachDialog(voice_messages)
widgetUtils.connect_event(self.dialog.photo, widgetUtils.BUTTON_PRESSED, self.upload_image) widgetUtils.connect_event(self.dialog.photo, widgetUtils.BUTTON_PRESSED, self.upload_image)
widgetUtils.connect_event(self.dialog.audio, widgetUtils.BUTTON_PRESSED, self.upload_audio)
widgetUtils.connect_event(self.dialog.remove, widgetUtils.BUTTON_PRESSED, self.remove_attachment) widgetUtils.connect_event(self.dialog.remove, widgetUtils.BUTTON_PRESSED, self.remove_attachment)
self.dialog.get_response() self.dialog.get_response()
log.debug("Attachments controller started.") log.debug("Attachments controller started.")
@ -40,6 +41,18 @@ class attachFromLocal(object):
self.dialog.attachments.insert_item(False, *info) self.dialog.attachments.insert_item(False, *info)
self.dialog.remove.Enable(True) self.dialog.remove.Enable(True)
def upload_audio(self, *args, **kwargs):
audio = self.dialog.get_audio()
if audio != None:
# Define data structure for this attachment, as will be required by VK API later.
audioInfo = {"type": "audio", "file": audio}
log.debug("Audio data to upload: %r" % (audioInfo,))
self.attachments.append(audioInfo)
# Translators: This is the text displayed in the attachments dialog, when the user adds a photo.
info = [_(u"Audio file"), os.path.basename(audio)]
self.dialog.attachments.insert_item(False, *info)
self.dialog.remove.Enable(True)
def remove_attachment(self, *args, **kwargs): def remove_attachment(self, *args, **kwargs):
""" Remove the currently focused item from the attachments list.""" """ Remove the currently focused item from the attachments list."""
current_item = self.dialog.attachments.get_selected() current_item = self.dialog.attachments.get_selected()

View File

@ -146,6 +146,13 @@ class baseBuffer(object):
id = r[0]["id"] id = r[0]["id"]
owner_id = r[0]["owner_id"] owner_id = r[0]["owner_id"]
local_attachments += "photo{0}_{1},".format(owner_id, id) local_attachments += "photo{0}_{1},".format(owner_id, id)
elif i["type"] == "audio":
audio = i["file"]
r = uploader.audio(audio, "untitled", "untitled")
id = r["id"]
owner_id = r["owner_id"]
local_attachments += "audio{0}_{1},".format(owner_id, id)
return local_attachments return local_attachments
def connect_events(self): def connect_events(self):

View File

@ -49,3 +49,9 @@ class attachDialog(widgetUtils.BaseDialog):
result = dlg.GetValue() result = dlg.GetValue()
dlg.Destroy() dlg.Destroy()
return result return result
def get_audio(self):
openFileDialog = wx.FileDialog(self, _(u"Select the audio file to be uploaded"), "", "", _("Audio files (*.mp3)|*.mp3"), wx.FD_OPEN | wx.FD_FILE_MUST_EXIST)
if openFileDialog.ShowModal() == wx.ID_CANCEL:
return None
return openFileDialog.GetPath()