Trending topic buffers are loaded during init

This commit is contained in:
Manuel Cortez 2015-02-03 04:39:46 -06:00
parent 103b62719e
commit 3b1d8eb48a
3 changed files with 25 additions and 6 deletions

View File

@ -185,9 +185,8 @@ class baseBufferController(bufferController):
if self.buffer.list.get_count() == 0: if self.buffer.list.get_count() == 0:
for i in self.session.db[self.name]: for i in self.session.db[self.name]:
tweet = self.compose_function(i, self.session.db, self.session.settings["general"]["relative_times"]) tweet = self.compose_function(i, self.session.db, self.session.settings["general"]["relative_times"])
self.buffer.list.insert_item(False, *tweet) self.buffer.list.insert_item(self.session.settings["general"]["reverse_timelines"], *tweet)
self.buffer.set_position(self.session.settings["general"]["reverse_timelines"]) self.buffer.set_position(self.session.settings["general"]["reverse_timelines"])
# self.buffer.set_list_position()
elif self.buffer.list.get_count() > 0: elif self.buffer.list.get_count() > 0:
if self.session.settings["general"]["reverse_timelines"] == False: if self.session.settings["general"]["reverse_timelines"] == False:
for i in self.session.db[self.name][:number_of_items]: for i in self.session.db[self.name][:number_of_items]:
@ -460,8 +459,8 @@ class trendsBufferController(bufferController):
def start_stream(self): def start_stream(self):
data = self.session.twitter.twitter.get_place_trends(id=self.trendsFor) data = self.session.twitter.twitter.get_place_trends(id=self.trendsFor)
if not hasattr(self, "name"): if not hasattr(self, "name_"):
self.name = data[0]["locations"][0]["name"] self.name_ = data[0]["locations"][0]["name"]
self.trends = data[0]["trends"] self.trends = data[0]["trends"]
self.put_items_on_the_list() self.put_items_on_the_list()
self.session.sound.play(self.sound) self.session.sound.play(self.sound)
@ -472,7 +471,7 @@ class trendsBufferController(bufferController):
for i in self.trends: for i in self.trends:
tweet = self.compose_function(i) tweet = self.compose_function(i)
self.buffer.list.insert_item(False, *tweet) self.buffer.list.insert_item(False, *tweet)
self.buffer.list.select_item(selected_item) self.buffer.set_position(self.session.settings["general"]["reverse_timelines"])
def compose_function_(self, trend): def compose_function_(self, trend):
return [trend["name"]] return [trend["name"]]

View File

@ -218,6 +218,13 @@ class Controller(object):
self.view.insert_buffer(tl.buffer, name=_(u"Search for {}".format(i)), pos=self.view.search("searches", session.db["user_name"])) self.view.insert_buffer(tl.buffer, name=_(u"Search for {}".format(i)), pos=self.view.search("searches", session.db["user_name"]))
tl.timer = RepeatingTimer(180, tl.start_stream) tl.timer = RepeatingTimer(180, tl.start_stream)
tl.timer.start() tl.timer.start()
for i in session.settings["other_buffers"]["trending_topic_buffers"]:
buffer = buffersController.trendsBufferController(self.view.nb, "%s_tt" % (i,), session, session.db["user_name"], i)
buffer.start_stream()
self.buffers.append(buffer)
self.view.insert_buffer(buffer.buffer, name=_(u"Trending topics for %s") % (buffer.name_), pos=self.view.search(session.db["user_name"], session.db["user_name"]))
timer = RepeatingTimer(300, buffer.start_stream)
timer.start()
def search(self, *args, **kwargs): def search(self, *args, **kwargs):
log.debug("Creating a new search...") log.debug("Creating a new search...")
@ -306,7 +313,12 @@ class Controller(object):
def exit(self, *args, **kwargs): def exit(self, *args, **kwargs):
if config.app["app-settings"]["ask_at_exit"] == True: if config.app["app-settings"]["ask_at_exit"] == True:
answer = commonMessageDialogs.exit_dialog() answer = commonMessageDialogs.exit_dialog()
if answer == widgetUtils.NO: return if answer == widgetUtils.YES:
self.exit_()
else:
self.exit_()
def exit_(self):
log.debug("Exiting...") log.debug("Exiting...")
log.debug("Saving global configuration...") log.debug("Saving global configuration...")
config.app.write() config.app.write()
@ -480,6 +492,7 @@ class Controller(object):
trends = trendingTopics.trendingTopicsController(buff.session) trends = trendingTopics.trendingTopicsController(buff.session)
if trends.dialog.get_response() == widgetUtils.OK: if trends.dialog.get_response() == widgetUtils.OK:
woeid = trends.get_woeid() woeid = trends.get_woeid()
if woeid in buff.session.settings["other_buffers"]["trending_topic_buffers"]: return
buffer = buffersController.trendsBufferController(self.view.nb, "%s_tt" % (woeid,), buff.session, buff.account, woeid) buffer = buffersController.trendsBufferController(self.view.nb, "%s_tt" % (woeid,), buff.session, buff.account, woeid)
self.buffers.append(buffer) self.buffers.append(buffer)
self.view.insert_buffer(buffer.buffer, name=_(u"Trending topics for %s") % (trends.get_string()), pos=self.view.search(buff.session.db["user_name"], buff.session.db["user_name"])) self.view.insert_buffer(buffer.buffer, name=_(u"Trending topics for %s") % (trends.get_string()), pos=self.view.search(buff.session.db["user_name"], buff.session.db["user_name"]))

View File

@ -22,3 +22,10 @@ class trendsPanel(wx.Panel):
self.sizer.Add(btnSizer, 0, wx.ALL, 5) self.sizer.Add(btnSizer, 0, wx.ALL, 5)
self.sizer.Add(self.list.list, 0, wx.ALL, 5) self.sizer.Add(self.list.list, 0, wx.ALL, 5)
self.SetSizer(self.sizer) self.SetSizer(self.sizer)
def set_position(self, reversed=False):
if reversed == False:
self.list.select_item(self.list.get_count()-1)
else:
self.list.select_item(0)