mirror of
https://github.com/MCV-Software/TWBlue.git
synced 2025-11-08 15:17:04 +00:00
Delete/view tweets and direct messages has been implemented; some buffer fixes.
This commit is contained in:
@@ -1,11 +1,12 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from wxUI import (view, dialogs)
|
||||
from wxUI import (view, dialogs, commonMessageDialogs)
|
||||
import buffersController
|
||||
import messages
|
||||
from sessionmanager import session
|
||||
from pubsub import pub
|
||||
import sound
|
||||
import output
|
||||
from twython import TwythonError
|
||||
from mysc.thread_utils import call_threaded
|
||||
from mysc.repeating_timer import RepeatingTimer
|
||||
import config
|
||||
@@ -29,6 +30,12 @@ class Controller(object):
|
||||
for i in self.buffers:
|
||||
if i.name == name_ and i.account == user: return i
|
||||
|
||||
def get_current_buffer(self):
|
||||
buffer = self.view.get_current_buffer()
|
||||
if hasattr(buffer, "account"):
|
||||
buffer = self.search_buffer(buffer.name, buffer.account)
|
||||
return buffer
|
||||
|
||||
def get_best_buffer(self):
|
||||
# Gets the parent buffer to know what account is doing an action
|
||||
view_buffer = self.view.get_current_buffer()
|
||||
@@ -66,6 +73,8 @@ class Controller(object):
|
||||
widgetUtils.connect_event(self.view, widgetUtils.MENU, self.post_retweet, self.view.retweet)
|
||||
widgetUtils.connect_event(self.view, widgetUtils.MENU, self.add_to_favourites, self.view.fav)
|
||||
widgetUtils.connect_event(self.view, widgetUtils.MENU, self.remove_from_favourites, self.view.unfav)
|
||||
widgetUtils.connect_event(self.view, widgetUtils.MENU, self.view_item, self.view.view)
|
||||
widgetUtils.connect_event(self.view, widgetUtils.MENU, self.delete, self.view.delete)
|
||||
widgetUtils.connect_event(self.view, widgetUtils.MENU, self.send_dm, self.view.dm)
|
||||
|
||||
def __init__(self):
|
||||
@@ -206,8 +215,11 @@ class Controller(object):
|
||||
def show_details_for_user(self, user):
|
||||
pass
|
||||
|
||||
def delete(self):
|
||||
pass
|
||||
def delete(self, *args, **kwargs):
|
||||
buffer = self.view.get_current_buffer()
|
||||
if hasattr(buffer, "account"):
|
||||
buffer = self.search_buffer(buffer.name, buffer.account)
|
||||
buffer.destroy_status()
|
||||
|
||||
def exit(self, *args, **kwargs):
|
||||
for item in session.sessions:
|
||||
@@ -233,7 +245,7 @@ class Controller(object):
|
||||
call_threaded(buffer.session.api_call, call_name="update_status_with_media", _sound="tweet_send.ogg", status=text, media=tweet.image)
|
||||
|
||||
def post_reply(self, *args, **kwargs):
|
||||
buffer = self.get_best_buffer()
|
||||
buffer = self.get_current_buffer()
|
||||
if buffer.name == "sent_direct_messages" or buffer.name == "sent-tweets": return
|
||||
elif buffer.name == "direct_messages":
|
||||
buffer.direct_message()
|
||||
@@ -241,20 +253,20 @@ class Controller(object):
|
||||
buffer.reply()
|
||||
|
||||
def send_dm(self, user):
|
||||
buffer = self.get_best_buffer()
|
||||
buffer = self.get_current_buffer()
|
||||
if buffer.name == "sent_direct_messages" or buffer.name == "sent-tweets": return
|
||||
else:
|
||||
buffer.direct_message()
|
||||
|
||||
def post_retweet(self, *args, **kwargs):
|
||||
buffer = self.get_best_buffer()
|
||||
buffer = self.get_current_buffer()
|
||||
if buffer.type == "dm" or buffer.type == "people" or buffer.type == "events":
|
||||
return
|
||||
else:
|
||||
buffer.retweet()
|
||||
|
||||
def add_to_favourites(self, *args, **kwargs):
|
||||
buffer = self.get_best_buffer()
|
||||
buffer = self.get_current_buffer()
|
||||
if buffer.type == "dm" or buffer.type == "people" or buffer.type == "events":
|
||||
return
|
||||
else:
|
||||
@@ -262,13 +274,28 @@ class Controller(object):
|
||||
call_threaded(buffer.session.api_call, call_name="create_favorite", _sound="favourite.ogg", id=id)
|
||||
|
||||
def remove_from_favourites(self, *args, **kwargs):
|
||||
buffer = self.get_best_buffer()
|
||||
buffer = self.get_current_buffer()
|
||||
if buffer.type == "dm" or buffer.type == "people" or buffer.type == "events":
|
||||
return
|
||||
else:
|
||||
id = buffer.get_tweet()["id"]
|
||||
call_threaded(buffer.session.api_call, call_name="destroy_favorite", id=id)
|
||||
|
||||
def view_item(self, *args, **kwargs):
|
||||
buffer = self.get_current_buffer()
|
||||
if buffer.type == "baseBuffer" or buffer.type == "favourites_timeline" or buffer.type == "list" or buffer.type == "search":
|
||||
try:
|
||||
tweet = buffer.get_right_tweet()
|
||||
msg = messages.viewTweet(tweet, )
|
||||
except TwythonError:
|
||||
non_tweet = buffer.get_message()
|
||||
msg = messages.viewTweet(non_tweet, False)
|
||||
elif buffer.type == "account" or buffer.type == "empty":
|
||||
return
|
||||
else:
|
||||
non_tweet = buffer.get_message()
|
||||
msg = messages.viewTweet(non_tweet, False)
|
||||
|
||||
def open_timeline(self, user, timeline_tipe):
|
||||
pass
|
||||
|
||||
|
||||
Reference in New Issue
Block a user