2016-04-11 11:48:35 -05:00
|
|
|
# -*- coding: utf-8 -*-
|
2017-03-13 02:16:34 -06:00
|
|
|
""" Attachment upload methods for different kind of posts in VK."""
|
2016-04-11 11:48:35 -05:00
|
|
|
import os
|
|
|
|
import widgetUtils
|
2016-05-10 20:23:48 -05:00
|
|
|
import logging
|
2016-04-11 11:48:35 -05:00
|
|
|
from wxUI.dialogs import attach as gui
|
2017-03-13 02:16:34 -06:00
|
|
|
from wxUI.dialogs import selector
|
2016-05-10 20:23:48 -05:00
|
|
|
log = logging.getLogger("controller.attach")
|
2016-04-11 11:48:35 -05:00
|
|
|
|
2017-03-13 02:16:34 -06:00
|
|
|
class attachmentUploader(object):
|
|
|
|
def __init__(self, voice_messages=False):
|
2016-04-11 11:48:35 -05:00
|
|
|
self.attachments = list()
|
2017-03-13 02:16:34 -06:00
|
|
|
self.type = "local"
|
|
|
|
self.dialog = gui.attachDialog(voice_messages)
|
2016-04-11 11:48:35 -05:00
|
|
|
widgetUtils.connect_event(self.dialog.photo, widgetUtils.BUTTON_PRESSED, self.upload_image)
|
2016-04-25 05:26:55 -05:00
|
|
|
widgetUtils.connect_event(self.dialog.remove, widgetUtils.BUTTON_PRESSED, self.remove_attachment)
|
2016-04-11 11:48:35 -05:00
|
|
|
self.dialog.get_response()
|
2016-05-10 20:23:48 -05:00
|
|
|
log.debug("Attachments controller started.")
|
2016-04-11 11:48:35 -05:00
|
|
|
|
|
|
|
def upload_image(self, *args, **kwargs):
|
|
|
|
image, description = self.dialog.get_image()
|
|
|
|
if image != None:
|
2016-05-10 20:23:48 -05:00
|
|
|
imageInfo = {"type": "photo", "file": image, "description": os.path.basename(image)}
|
|
|
|
log.debug("Image data to upload: %r" % (imageInfo,))
|
|
|
|
self.attachments.append(imageInfo)
|
2016-06-29 10:56:41 -05:00
|
|
|
# Translators: This is the text displayed in the attachments dialog, when the user adds a photo.
|
2016-04-11 11:48:35 -05:00
|
|
|
info = [_(u"Photo"), os.path.basename(image)]
|
2016-04-25 05:26:55 -05:00
|
|
|
self.dialog.attachments.insert_item(False, *info)
|
|
|
|
self.dialog.remove.Enable(True)
|
|
|
|
|
|
|
|
def remove_attachment(self, *args, **kwargs):
|
|
|
|
current_item = self.dialog.attachments.get_selected()
|
2016-05-10 20:23:48 -05:00
|
|
|
log.debug("Removing item %d" % (current_item,))
|
2016-04-25 05:26:55 -05:00
|
|
|
if current_item == -1: current_item = 0
|
|
|
|
self.attachments.pop(current_item)
|
|
|
|
self.dialog.attachments.remove_item(current_item)
|
|
|
|
self.check_remove_status()
|
2016-05-10 20:23:48 -05:00
|
|
|
log.debug("Removed")
|
2016-04-25 05:26:55 -05:00
|
|
|
|
|
|
|
def check_remove_status(self):
|
|
|
|
if len(self.attachments) == 0 and self.dialog.attachments.get_count() == 0:
|
|
|
|
self.dialog.remove.Enable(False)
|
2017-03-13 02:16:34 -06:00
|
|
|
|
|
|
|
class attach(object):
|
|
|
|
|
|
|
|
def __init__(self, session):
|
|
|
|
self.session = session
|
|
|
|
self.attachments = list()
|
|
|
|
self.type = "online"
|
|
|
|
self.dialog = gui.attachDialog()
|
|
|
|
widgetUtils.connect_event(self.dialog.audio, widgetUtils.BUTTON_PRESSED, self.add_audio)
|
|
|
|
# widgetUtils.connect_event(self.dialog.remove, widgetUtils.BUTTON_PRESSED, self.remove_attachment)
|
|
|
|
self.dialog.get_response()
|
|
|
|
log.debug("Attachments controller started.")
|
|
|
|
|
|
|
|
def add_audio(self, *args, **kwargs):
|
|
|
|
list_of_audios = self.session.vk.client.audio.get(count=1000)
|
|
|
|
list_of_audios = list_of_audios["items"]
|
|
|
|
audios = []
|
|
|
|
for i in list_of_audios:
|
|
|
|
audios.append(u"{0}, {1}".format(i["title"], i["artist"]))
|
|
|
|
select = selector.selectAttachment(_(u"Select the audio files you want to send"), audios)
|
|
|
|
if select.get_response() == widgetUtils.OK and select.attachments.GetCount() > 0:
|
|
|
|
attachments = select.get_all_attachments()
|
|
|
|
for i in attachments:
|
|
|
|
print list_of_audios[i].keys()
|
|
|
|
list_of_audios[i]["type"] = "audio"
|
|
|
|
self.attachments.append(list_of_audios[i])
|
|
|
|
|
|
|
|
def parse_attachments(self):
|
|
|
|
result = ""
|
|
|
|
for i in self.attachments:
|
|
|
|
preresult = "{0}{1}_{2}".format(i["type"], i["owner_id"], i["id"])
|
|
|
|
result = preresult+","
|
|
|
|
return result
|