Moved code related to post creation to MVP
This commit is contained in:
		| @@ -11,7 +11,6 @@ import views | ||||
| import interactors | ||||
| import languageHandler | ||||
| import widgetUtils | ||||
| from . import messages | ||||
| from presenters import player | ||||
| import output | ||||
| from . import selector | ||||
| @@ -114,14 +113,14 @@ class baseBuffer(object): | ||||
| 		""" Create a post in the current user's wall. | ||||
| 		This process is handled in two parts. This is the first part, where the GUI is created and user can send the post. | ||||
| 		During the second part (threaded), the post will be sent to the API.""" | ||||
| 		p = messages.post(session=self.session, title=_("Write your post"), caption="", text="") | ||||
| 		if p.message.get_response() == widgetUtils.OK: | ||||
| 		p = presenters.postPresenter(session=self.session, interactor=interactors.postInteractor(), view=views.post(title=_("Write your post"), message="", text="")) | ||||
| 		if hasattr(p, "text") or hasattr(p, "privacy"): | ||||
| 			call_threaded(self.do_last, p=p) | ||||
|  | ||||
| 	def do_last(self, p, parent_endpoint="wall", child_endpoint="post", *args, **kwargs): | ||||
| 		""" Second part of post function. Here everything is going to be sent to the API""" | ||||
| 		msg = p.message.get_text() | ||||
| 		privacy_opts = p.get_privacy_options() | ||||
| 		msg = p.text | ||||
| 		privacy_opts = p.privacy | ||||
| 		attachments = "" | ||||
| 		if hasattr(p, "attachments"): | ||||
| 			attachments = self.upload_attachments(p.attachments) | ||||
| @@ -259,9 +258,9 @@ class baseBuffer(object): | ||||
| 		post = self.get_post() | ||||
| 		if post == None: | ||||
| 			return | ||||
| 		comment = messages.comment(title=_("Add a comment"), caption="", text="") | ||||
| 		if comment.message.get_response() == widgetUtils.OK: | ||||
| 			msg = comment.message.get_text().encode("utf-8") | ||||
| 		comment = presenters.postPresenter(session=self.session, interactor=interactors.postInteractor(), view=views.post(title=_("Add a comment"), message="", text="", mode="comment")) | ||||
| 		if hasattr(comment, "text") or hasattr(comment, "privacy"): | ||||
| 			msg = comment.text | ||||
| 			try: | ||||
| 				user = post[self.user_key] | ||||
| 				id = post[self.post_key] | ||||
| @@ -435,8 +434,8 @@ class feedBuffer(baseBuffer): | ||||
| 			return super(feedBuffer, self).post() | ||||
| 		owner_id = self.kwargs["owner_id"] | ||||
| 		user = self.session.get_user_name(owner_id) | ||||
| 		p = messages.post(session=self.session, title=_("Post to {user}'s wall").format(user=user,), caption="", text="") | ||||
| 		if p.message.get_response() == widgetUtils.OK: | ||||
| 		p = presenters.postPresenter(session=self.session, interactor=interactors.postInteractor(), view=views.post(title=_("Write your post"), message="", text="")) | ||||
| 		if hasattr(p, "text") or hasattr(p, "privacy"): | ||||
| 			call_threaded(self.do_last, p=p, owner_id=owner_id) | ||||
|  | ||||
| class communityBuffer(feedBuffer): | ||||
|   | ||||
| @@ -23,7 +23,6 @@ from wxUI.dialogs import search as searchDialogs | ||||
| from wxUI.dialogs import timeline, creation | ||||
| from update import updater | ||||
| from issueReporter import issueReporter | ||||
| from . import messages | ||||
| from . import buffers | ||||
| from presenters import player | ||||
| from . import posts | ||||
|   | ||||
| @@ -1,83 +0,0 @@ | ||||
| # -*- coding: utf-8 -*- | ||||
| from __future__ import unicode_literals | ||||
| import time | ||||
| import widgetUtils | ||||
| import presenters | ||||
| import views | ||||
| import interactors | ||||
| import output | ||||
| from pubsub import pub | ||||
| from wxUI.dialogs import message, selector | ||||
| from extra import SpellChecker, translator | ||||
| from logging import getLogger | ||||
|  | ||||
| log = getLogger("controller.message") | ||||
|  | ||||
| class post(object): | ||||
| 	def __init__(self, session, title, caption, text, post_type="post"): | ||||
| 		super(post, self).__init__() | ||||
| 		self.session = session | ||||
| 		self.title = title | ||||
| 		self.message = getattr(message, post_type)(title, caption, text) | ||||
| 		self.message.set_title(title) | ||||
| 		widgetUtils.connect_event(self.message.spellcheck, widgetUtils.BUTTON_PRESSED, self.spellcheck) | ||||
| 		widgetUtils.connect_event(self.message.translateButton, widgetUtils.BUTTON_PRESSED, self.translate) | ||||
| 		widgetUtils.connect_event(self.message.mention, widgetUtils.BUTTON_PRESSED, self.mention) | ||||
| 		self.images = [] | ||||
| 		if hasattr(self.message, "attach"): | ||||
| 			widgetUtils.connect_event(self.message.attach, widgetUtils.BUTTON_PRESSED, self.show_attach_dialog) | ||||
|  | ||||
| 	def get_privacy_options(self): | ||||
| 		p = self.message.get("privacy") | ||||
| 		if p == _("Friends of friends"): | ||||
| 			privacy = 0 | ||||
| 		elif p == _("All users"): | ||||
| 			privacy = 1 | ||||
| 		return privacy | ||||
|  | ||||
| 	def mention(self, *args, **kwargs): | ||||
| 		try: | ||||
| 			fields = "id, first_name, last_name" | ||||
| 			friends = self.session.vk.client.friends.get(count=5000, fields=fields) | ||||
| 		except AttributeError: | ||||
| 			time.sleep(2) | ||||
| 			log.exception("Error retrieving friends...") | ||||
| 			return self.mention(*args, **kwargs) | ||||
| 		users = [] | ||||
| 		for i in friends["items"]: | ||||
| 			users.append("{0} {1}".format(i["first_name"], i["last_name"])) | ||||
| 		select = selector.selectPeople(users) | ||||
| 		if select.get_response() == widgetUtils.OK and select.users.GetCount() > 0: | ||||
| 			self.tagged_people = [] | ||||
| 			tagged_users = select.get_all_users() | ||||
| 			for i in tagged_users: | ||||
| 				self.tagged_people.append("[id%s|%s]" % (str(friends["items"][i]["id"]), friends["items"][i]["first_name"])) | ||||
| 			self.message.text.SetValue(self.message.text.GetValue()+ ", ".join(self.tagged_people)) | ||||
|  | ||||
| 	def translate(self, *args, **kwargs): | ||||
| 		dlg = translator.gui.translateDialog() | ||||
| 		if dlg.get_response() == widgetUtils.OK: | ||||
| 			text_to_translate = self.message.get_text() | ||||
| 			dest = [x[0] for x in translator.translator.available_languages()][dlg.get("dest_lang")] | ||||
| 			msg = translator.translator.translate(text_to_translate, dest) | ||||
| 			self.message.set_text(msg) | ||||
| 			self.message.text_focus() | ||||
| 			output.speak(_("Translated")) | ||||
| 		dlg.Destroy() | ||||
|  | ||||
| 	def spellcheck(self, event=None): | ||||
| 		text = self.message.get_text() | ||||
| 		checker = SpellChecker.spellchecker.spellChecker(text, "") | ||||
| 		if hasattr(checker, "fixed_text"): | ||||
| 			self.message.set_text(checker.fixed_text) | ||||
| 		checker.clean() | ||||
|  | ||||
| 	def show_attach_dialog(self, *args, **kwargs): | ||||
| 		a = presenters.attachPresenter(session=self.session, view=views.attachDialog(), interactor=interactors.attachInteractor()) | ||||
| 		if len(a.attachments) != 0: | ||||
| 			self.attachments = a.attachments | ||||
|  | ||||
| class comment(post): | ||||
| 	def __init__(self, session, title, caption, text): | ||||
| 		super(comment, self).__init__(session, title, caption, text, "comment") | ||||
| 		self.message.set_title(_("New comment")) | ||||
| @@ -7,10 +7,12 @@ import os | ||||
| import six | ||||
| import threading | ||||
| import arrow | ||||
| from . import messages | ||||
| import requests | ||||
| import languageHandler | ||||
| import widgetUtils | ||||
| import views | ||||
| import presenters | ||||
| import interactors | ||||
| import output | ||||
| import wx | ||||
| import webbrowser | ||||
| @@ -266,9 +268,9 @@ class postController(object): | ||||
| 			pass | ||||
|  | ||||
| 	def add_comment(self, *args, **kwargs): | ||||
| 		comment = messages.comment(session=self.session, title=_("Add a comment"), caption="", text="") | ||||
| 		if comment.message.get_response() == widgetUtils.OK: | ||||
| 			msg = comment.message.get_text().encode("utf-8") | ||||
| 		comment = presenters.postPresenter(session=self.session, interactor=interactors.postInteractor(), view=views.post(title=_("Add a comment"), message="", text="", mode="comment")) | ||||
| 		if hasattr(comment, "text") or hasattr(comment, "privacy"): | ||||
| 			msg = comment.text | ||||
| 			try: | ||||
| 				user = self.post[self.user_identifier] | ||||
| 				id = self.post[self.post_identifier] | ||||
|   | ||||
		Reference in New Issue
	
	Block a user