Timelines should be updated properly; changes for the 0.48 version

This commit is contained in:
2014-11-09 06:07:36 -06:00
parent d2c89a1f91
commit 1a2f834a27
11 changed files with 810 additions and 874 deletions

View File

@@ -14,7 +14,6 @@ max_tweets_per_call = integer(default=100)
reverse_timelines = boolean(default=False)
time_to_check_streams = integer(default=30)
announce_stream_status = boolean(default=True)
auto_connect_streams = boolean(default=True)
ask_at_exit = boolean(default=True)
[sound]
@@ -87,4 +86,3 @@ search = string(default="control+win+-")
edit_keystrokes = string(default="control+win+k")
view_user_lists = string(default="control+win+l")
get_more_items = string(default="alt+win+pageup")
connect_streams = string(default="win+alt+s")

View File

@@ -2,7 +2,7 @@
name = 'TW Blue'
snapshot = False
if snapshot == False:
version = "0.47"
version = "0.48"
update_url = 'http://twblue.com.mx/updates/tw_blue.json'
else:
version = "4"
@@ -13,7 +13,7 @@ copyright = u"copyright (C) 2013-2014, Manuel cortéz"
description = u"TW Blue is an app designed to use Twitter in a simple and fast way and avoiding, as far as possible, the consumtion of excessive resources of the machine where its running. With this app youll have access to most twitter features."
translators = [u"Bryner Villalobos (English)", u"Mohammed Al Shara (Arabic)", u"Salva Doménech, Juan Carlos Rivilla(Catalan)", u"Manuel cortéz(Spanish)", u"Sukil Etxenike Arizaleta(Basque)", u"Jani Kinnunen(finnish)", u"Javier Currás, José Manuel Delicado, Alba Quinteiro(Galician)", u"Robert Osztolykan(Hungarian)", u"Paweł Masarczyk(Polish)", u"Odenilton Júnior Santos(Portuguese)", u"Alexander Jaszyn(Russian)", u"Burak (Turkish)"]
url = u"http://twblue.com.mx"
report_bugs_url = "http://twblue.com.mx/errores/api/soap/mantisconnect.php?wsdl"
#report_bugs_url = "http://twblue.com.mx/errores/api/soap/mantisconnect.php?wsdl"
# Tokens
app_key = '8pDLbyOW3saYnvSZ4uLFg'

View File

@@ -50,7 +50,7 @@ class general(wx.Panel):
langBox.Add(language, 0, wx.ALL, 5)
langBox.Add(self.language, 0, wx.ALL, 5)
sizer.Add(langBox, 0, wx.ALL, 5)
self.ask_at_exit = wx.CheckBox(self, -1, _(U"Ask to exit TWBlue"))
self.ask_at_exit = wx.CheckBox(self, -1, _(U"ask before exiting TwBlue?"))
self.ask_at_exit.SetValue(config.main["general"]["ask_at_exit"])
sizer.Add(self.ask_at_exit, 0, wx.ALL, 5)
self.relative_time = wx.CheckBox(self, -1, _(U"Relative times"))

View File

@@ -123,8 +123,8 @@ class mainFrame(wx.Frame):
# buffer menu
buffer = wx.Menu()
load_more_items = buffer.Append(wx.NewId(), _(u"Load more items"))
self.Bind(wx.EVT_MENU, self.get_more_items, load_more_items)
load_previous_items = buffer.Append(wx.NewId(), _(u"&Load previous items"))
self.Bind(wx.EVT_MENU, self.get_more_items, load_previous_items)
mute = buffer.Append(wx.NewId(), _(u"&Mute"))
self.Bind(wx.EVT_MENU, self.toggle_mute, mute)
autoread = buffer.Append(wx.NewId(), _(u"&Autoread tweets for this buffer"))
@@ -343,9 +343,8 @@ class mainFrame(wx.Frame):
if run_streams == True:
self.get_home()
self.get_tls()
if config.main["general"]["auto_connect_streams"] == True:
self.check_streams = RepeatingTimer(config.main["general"]["time_to_check_streams"], self.check_stream_up)
self.check_streams.start()
self.check_streams = RepeatingTimer(config.main["general"]["time_to_check_streams"], self.check_stream_up)
self.check_streams.start()
# If all it's done, then play a nice sound saying that all it's OK.
sound.player.play("ready.ogg")
@@ -394,24 +393,24 @@ class mainFrame(wx.Frame):
def get_tls(self):
""" Setting the stream for individual user timelines."""
try:
self.stream2 = twitter.buffers.indibidual.streamer(application.app_key, application.app_secret, config.main["twitter"]["user_key"], config.main["twitter"]["user_secret"], parent=self)
# try:
self.stream2 = twitter.buffers.indibidual.streamer(application.app_key, application.app_secret, config.main["twitter"]["user_key"], config.main["twitter"]["user_secret"], parent=self)
# The self.ids contains all IDS for the follow argument of the stream.
ids = ""
ids = ""
# If we have more than 0 items on a list, then.
for i in config.main["other_buffers"]["timelines"]:
ids = ids+self.db.settings[i][0]["user"]["id_str"]+", "
for i in range(0, self.nb.GetPageCount()):
if self.nb.GetPage(i).type == "list":
for z in self.nb.GetPage(i).users:
ids+= str(z)+", "
if ids != "":
for i in config.main["other_buffers"]["timelines"]:
ids = ids+self.db.settings[i][0]["user"]["id_str"]+", "
for i in range(0, self.nb.GetPageCount()):
if self.nb.GetPage(i).type == "list":
for z in self.nb.GetPage(i).users:
ids+= str(z)+", "
if ids != "":
# try:
call_threaded(self.stream2.statuses.filter, follow=ids)
call_threaded(self.stream2.statuses.filter, follow=ids)
# except:
# pass
except:
self.stream2.disconnect()
# except:
# self.stream2.disconnect()
def check_stream_up(self):
try:
@@ -950,22 +949,15 @@ class mainFrame(wx.Frame):
def get_more_items(self, event=None):
self.nb.GetCurrentPage().get_more_items()
def connect_streams(self):
disconnect = False
if self.stream.connected == False:
output.speak(_(u"Trying to reconnect the main stream"))
disconnect = True
del self.stream
call_threaded(self.init)
self.get_home()
if hasattr(self, "stream2") and self.stream2.connected == False:
output.speak(_(u"Trying to reconnect the buffers stream"))
disconnect = True
log.debug("Trying reconnects the timelines stream...")
del self.stream2
self.get_tls()
if disconnect == False:
output.speak(_(u"All streams are working properly"))
def search_buffer(self, buffer_type=None, name_buffer=None):
page = None
for i in range(0, self.nb.GetPageCount()):
page = self.nb.GetPage(i)
if page.type != buffer_type:
continue
if page.name_buffer == name_buffer:
return page
return page
### Close App
def Destroy(self):

View File

@@ -41,5 +41,5 @@ actions = {
"search": _(u"Search on twitter"),
"edit_keystrokes": _(u"Shows the keystroke editor"),
"view_user_lists": _(u"Show lists for a specified user"),
"get_more_items": _(u"Load previous item for a buffer"),
"get_more_items": _(u"loads previous items to any buffer"),
}

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@@ -19,13 +19,15 @@ class streamer(TwythonStreamer):
log.debug("%s: %s" % (status_code, data))
def check_tls(self, data):
print "checking timelines..."
for i in config.main["other_buffers"]["timelines"]:
if data["user"]["screen_name"] == i:
print "I found it"
tweet_event = event.event(event.EVT_OBJECT, 1)
tweet_event.SetItem(data)
announce = _(u"One tweet from %s") % (data["user"]["name"])
tweet_event.SetAnnounce(announce)
wx.PostEvent(self.parent.nb.GetPage(self.db.settings["buffers"].index(i)), tweet_event)
wx.PostEvent(self.parent.search_buffer(buffer_type="timeline", name_buffer=data["user"]["screen_name"]), tweet_event)
for i in range(0, self.parent.nb.GetPageCount()):
if self.parent.nb.GetPage(i).type == "list":
try:
@@ -34,13 +36,13 @@ class streamer(TwythonStreamer):
tweet_event.SetItem(data)
announce = _(u"One tweet from %s in the list %s") % (data["user"]["name"], self.parent.nb.GetPage(i).name_buffer[:-5])
tweet_event.SetAnnounce(announce)
wx.PostEvent(self.parent.nb.GetPage(self.db.settings["buffers"].index(self.parent.nb.GetPage(i).name_buffer)), tweet_event)
wx.PostEvent(self.parent.nb.GetPage(i), tweet_event)
except ValueError:
pass
def on_success(self, data):
try:
if "text" in data:
if data.has_key("text"):
self.check_tls(data)
except:
pass

View File

@@ -27,7 +27,7 @@ class streamer(TwythonStreamer):
if config.main["other_buffers"]["show_blocks"] == True:
tweet_event = event.event(event.EVT_OBJECT, 1)
tweet_event.SetItem(data["target"])
wx.PostEvent(self.parent.nb.GetPage(self.db.settings["buffers"].index("blocks")), tweet_event)
wx.PostEvent(self.parent.search_buffer("people", "blocks"), tweet_event)
def unblock(self, data):
if config.main["other_buffers"]["show_blocks"] == True:
@@ -35,20 +35,20 @@ class streamer(TwythonStreamer):
self.db.settings["blocks"].pop(item)
deleted_event = event.event(event.EVT_DELETED, 1)
deleted_event.SetItem(item)
wx.PostEvent(self.parent.nb.GetPage(self.db.settings["buffers"].index("blocks")), deleted_event)
wx.PostEvent(self.parent.search_buffer("people", "blocks"), deleted_event)
wx.PostEvent(self.parent, event.ResultEvent())
def check_send(self, data):
if self.db.settings["user_name"] == data["user"]["screen_name"]:
tweet_event = event.event(event.EVT_OBJECT, 1)
tweet_event.SetItem(data)
wx.PostEvent(self.parent.nb.GetPage(self.db.settings["buffers"].index("sent")), tweet_event)
wx.PostEvent(self.parent.search_buffer("buffer", "sent"), tweet_event)
def check_favs(self, data):
if data["source"]["screen_name"] == self.db.settings["user_name"]:
tweet_event = event.event(event.EVT_OBJECT, 1)
tweet_event.SetItem(data["target_object"])
wx.PostEvent(self.parent.nb.GetPage(self.db.settings["buffers"].index("favs")), tweet_event)
wx.PostEvent(self.parent.search_buffer("buffer", "favs"), tweet_event)
def check_mentions(self, data):
if "@%s" % (self.db.settings["user_name"]) in data["text"]:
@@ -56,30 +56,30 @@ class streamer(TwythonStreamer):
tweet_event.SetItem(data)
text = _(u"One mention from %s ") % (data["user"]["name"])
tweet_event.SetAnnounce(text)
wx.PostEvent(self.parent.nb.GetPage(self.db.settings["buffers"].index("mentions")), tweet_event)
wx.PostEvent(self.parent.search_buffer("buffer", "mentions"), tweet_event)
def process_dm(self, data):
if self.db.settings["user_name"] == data["direct_message"]["sender"]["screen_name"]:
tweet_event = event.event(event.EVT_OBJECT, 1)
tweet_event.SetItem(data["direct_message"])
wx.PostEvent(self.parent.nb.GetPage(self.db.settings["buffers"].index("sent")), tweet_event)
wx.PostEvent(self.parent.search_buffer("buffer", "sent"), tweet_event)
if self.db.settings["user_name"] != data["direct_message"]["sender"]["screen_name"]:
tweet_event = event.event(event.EVT_OBJECT, 1)
tweet_event.SetItem(data["direct_message"])
text = _(u"One direct message")
tweet_event.SetAnnounce(text)
wx.PostEvent(self.parent.nb.GetPage(self.db.settings["buffers"].index("direct_messages")), tweet_event)
wx.PostEvent(self.parent.search_buffer("buffer", "direct_messages"), tweet_event)
def check_follower(self, data):
if data["target"]["screen_name"] == self.db.settings["user_name"]:
if config.main["other_buffers"]["show_followers"] == True:
tweet_event = event.event(event.EVT_OBJECT, 1)
tweet_event.SetItem(data["source"])
wx.PostEvent(self.parent.nb.GetPage(self.db.settings["buffers"].index("followers")), tweet_event)
wx.PostEvent(self.parent.search_buffer("people", "followers"), tweet_event)
elif data["source"]["screen_name"] == self.db.settings["user_name"] and config.main["other_buffers"]["show_friends"] == True:
tweet_event = event.event(event.EVT_OBJECT, 1)
tweet_event.SetItem(data["target"])
wx.PostEvent(self.parent.nb.GetPage(self.db.settings["buffers"].index("friends")), tweet_event)
wx.PostEvent(self.parent.search_buffer("people", "friends"), tweet_event)
def remove_fav(self, data):
if self.db.settings["user_name"] == data["source"]["screen_name"]:
@@ -88,7 +88,7 @@ class streamer(TwythonStreamer):
self.db.settings["favs"].pop(item)
deleted_event = event.event(event.EVT_DELETED, 1)
deleted_event.SetItem(item)
wx.PostEvent(self.parent.nb.GetPage(self.db.settings["buffers"].index("favs")), deleted_event)
wx.PostEvent(self.parent.search_buffer("buffer", "favs"), deleted_event)
def remove_friend(self, data):
if config.main["other_buffers"]["show_friends"] == True:
@@ -98,7 +98,7 @@ class streamer(TwythonStreamer):
deleted_event.SetItem(item)
self.friends.pop(item)
self.db.settings["friends"].pop(item)
wx.PostEvent(self.parent.nb.GetPage(self.db.settings["buffers"].index("friends")), deleted_event)
wx.PostEvent(self.parent.search_buffer("people", "friends"), deleted_event)
def on_success(self, data):
try:
@@ -113,7 +113,7 @@ class streamer(TwythonStreamer):
if data["user"]["id"] in self.friends or data["user"]["screen_name"] == self.db.settings["user_name"]:
tweet_event = event.event(event.EVT_OBJECT, 1)
tweet_event.SetItem(data)
wx.PostEvent(self.parent.nb.GetPage(self.db.settings["buffers"].index("home_timeline")), tweet_event)
wx.PostEvent(self.parent.search_buffer("buffer", "home_timeline"), tweet_event)
elif data.has_key("event"):
if "favorite" == data["event"] and config.main["other_buffers"]["show_favourites"] == True:
self.check_favs(data)
@@ -163,7 +163,7 @@ class streamer(TwythonStreamer):
tweet_event.SetAnnounce(text)
# deleted_event = event.event(event.EVT_DELETED, 1)
# deleted_event.SetItem(evento)
wx.PostEvent(self.parent.nb.GetPage(self.db.settings["buffers"].index("events")), tweet_event)
wx.PostEvent(self.parent.search_buffer("event", "events"), tweet_event)
# self.sound.play("new_event.ogg")
except:
pass