mirror of
				https://github.com/MCV-Software/TWBlue.git
				synced 2025-11-03 21:37:05 +00:00 
			
		
		
		
	#15: Initial work for persistance size limiting.
This commit is contained in:
		@@ -12,7 +12,7 @@ reverse_timelines = boolean(default=False)
 | 
				
			|||||||
time_to_check_streams = integer(default=30)
 | 
					time_to_check_streams = integer(default=30)
 | 
				
			||||||
announce_stream_status = boolean(default=True)
 | 
					announce_stream_status = boolean(default=True)
 | 
				
			||||||
retweet_mode = string(default="ask")
 | 
					retweet_mode = string(default="ask")
 | 
				
			||||||
persistant_session = boolean(default=True)
 | 
					persist_size = integer(default=1764)
 | 
				
			||||||
buffer_order = list(default=list('home','mentions','dm','sent_dm','sent_tweets','favorites','followers','friends','blocks','muted','events'))
 | 
					buffer_order = list(default=list('home','mentions','dm','sent_dm','sent_tweets','favorites','followers','friends','blocks','muted','events'))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[sound]
 | 
					[sound]
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -6,6 +6,7 @@ import paths
 | 
				
			|||||||
import widgetUtils
 | 
					import widgetUtils
 | 
				
			||||||
import config
 | 
					import config
 | 
				
			||||||
import languageHandler
 | 
					import languageHandler
 | 
				
			||||||
 | 
					import output
 | 
				
			||||||
from wxUI.dialogs import configuration
 | 
					from wxUI.dialogs import configuration
 | 
				
			||||||
from wxUI import commonMessageDialogs
 | 
					from wxUI import commonMessageDialogs
 | 
				
			||||||
from extra.autocompletionUsers import settings
 | 
					from extra.autocompletionUsers import settings
 | 
				
			||||||
@@ -89,7 +90,7 @@ class accountSettingsController(globalSettingsController):
 | 
				
			|||||||
   self.dialog.set_value("general", "retweet_mode", _(u"Retweet without comments"))
 | 
					   self.dialog.set_value("general", "retweet_mode", _(u"Retweet without comments"))
 | 
				
			||||||
  else:
 | 
					  else:
 | 
				
			||||||
   self.dialog.set_value("general", "retweet_mode", _(u"Retweet with comments"))
 | 
					   self.dialog.set_value("general", "retweet_mode", _(u"Retweet with comments"))
 | 
				
			||||||
  self.dialog.set_value("general", "persistant_session", self.config["general"]["persistant_session"])
 | 
					  self.dialog.set_value("general", "persist_size", str(self.config["general"]["persist_size"]))
 | 
				
			||||||
  self.dialog.create_other_buffers()
 | 
					  self.dialog.create_other_buffers()
 | 
				
			||||||
  buffer_values = self.get_buffers_list()
 | 
					  buffer_values = self.get_buffers_list()
 | 
				
			||||||
  self.dialog.buffers.insert_buffers(buffer_values)
 | 
					  self.dialog.buffers.insert_buffers(buffer_values)
 | 
				
			||||||
@@ -129,9 +130,15 @@ class accountSettingsController(globalSettingsController):
 | 
				
			|||||||
   self.config["general"]["relative_times"] = self.dialog.get_value("general", "relative_time")
 | 
					   self.config["general"]["relative_times"] = self.dialog.get_value("general", "relative_time")
 | 
				
			||||||
  self.config["general"]["max_api_calls"] = self.dialog.get_value("general", "apiCalls")
 | 
					  self.config["general"]["max_api_calls"] = self.dialog.get_value("general", "apiCalls")
 | 
				
			||||||
  self.config["general"]["max_tweets_per_call"] = self.dialog.get_value("general", "itemsPerApiCall")
 | 
					  self.config["general"]["max_tweets_per_call"] = self.dialog.get_value("general", "itemsPerApiCall")
 | 
				
			||||||
  if self.config["general"]["persistant_session"] != self.dialog.get_value("general", "persistant_session"):
 | 
					  if self.config["general"]["persist_size"] != self.dialog.get_value("general", "persist_size"):
 | 
				
			||||||
   self.needs_restart = True
 | 
					   if self.dialog.get_value("general", "persist_size") == '':
 | 
				
			||||||
   self.config["general"]["persistant_session"] = self.dialog.get_value("general", "persistant_session")
 | 
					    self.config["general"]["persist_size"] =-1
 | 
				
			||||||
 | 
					   else:
 | 
				
			||||||
 | 
					    try:
 | 
				
			||||||
 | 
					     self.config["general"]["persist_size"] = int(self.dialog.get_value("general", "persist_size"))
 | 
				
			||||||
 | 
					    except ValueError:
 | 
				
			||||||
 | 
					     output.speak("Invalid cache size, setting to default.",True)
 | 
				
			||||||
 | 
					     self.config["general"]["persist_size"] =1764
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  if self.config["general"]["reverse_timelines"] != self.dialog.get_value("general", "reverse_timelines"):
 | 
					  if self.config["general"]["reverse_timelines"] != self.dialog.get_value("general", "reverse_timelines"):
 | 
				
			||||||
   self.needs_restart = True
 | 
					   self.needs_restart = True
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -113,7 +113,7 @@ class Session(object):
 | 
				
			|||||||
   log.debug("Creating config file %s" % (file_,))
 | 
					   log.debug("Creating config file %s" % (file_,))
 | 
				
			||||||
   self.settings = config_utils.load_config(paths.config_path(file_), paths.app_path("Conf.defaults"))
 | 
					   self.settings = config_utils.load_config(paths.config_path(file_), paths.app_path("Conf.defaults"))
 | 
				
			||||||
   self.init_sound()
 | 
					   self.init_sound()
 | 
				
			||||||
   if self.settings["general"]["persistant_session"] == True:
 | 
					   if self.settings["general"]["persist_size"] != 0:
 | 
				
			||||||
    self.deshelve()
 | 
					    self.deshelve()
 | 
				
			||||||
#  except:
 | 
					#  except:
 | 
				
			||||||
#   log.exception("The session configuration has failed.")
 | 
					#   log.exception("The session configuration has failed.")
 | 
				
			||||||
@@ -378,7 +378,10 @@ class Session(object):
 | 
				
			|||||||
    if type(key) != str and type(key) != unicode:
 | 
					    if type(key) != str and type(key) != unicode:
 | 
				
			||||||
        output.speak("Uh oh, while shelving the database, a key of type " + str(type(key)) + " has been found. It will be converted to type str, but this will cause all sorts of problems on deshelve. Please bring this to the attention of the " + application.name + " developers immediately. More information about the error will be written to the error log.",True)
 | 
					        output.speak("Uh oh, while shelving the database, a key of type " + str(type(key)) + " has been found. It will be converted to type str, but this will cause all sorts of problems on deshelve. Please bring this to the attention of the " + application.name + " developers immediately. More information about the error will be written to the error log.",True)
 | 
				
			||||||
        log.error("Uh oh, " + str(key) + " is of type " + str(type(key)) + "!")
 | 
					        log.error("Uh oh, " + str(key) + " is of type " + str(type(key)) + "!")
 | 
				
			||||||
    shelf[str(key)]=value
 | 
					    if type(value) == List and self.settings["general"]["persist_size"] != -1 and len(type) > self.settings["general"]["persist_size"]:
 | 
				
			||||||
 | 
					        shelf[str(key)]=value[self.settings["general"]["persist_size"]:]
 | 
				
			||||||
 | 
					    else:
 | 
				
			||||||
 | 
					        shelf[str(key)]=value
 | 
				
			||||||
   shelf.close()
 | 
					   shelf.close()
 | 
				
			||||||
  except:
 | 
					  except:
 | 
				
			||||||
   output.speak("An exception occurred while shelving the " + application.name + " database. It will be deleted and rebuilt automatically. If this error persists, send the error log to the " + application.name + " developers.",True)
 | 
					   output.speak("An exception occurred while shelving the " + application.name + " database. It will be deleted and rebuilt automatically. If this error persists, send the error log to the " + application.name + " developers.",True)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -92,7 +92,10 @@ class generalAccount(wx.Panel, baseDialog.BaseWXDialog):
 | 
				
			|||||||
  rMode.Add(lbl, 0, wx.ALL, 5)
 | 
					  rMode.Add(lbl, 0, wx.ALL, 5)
 | 
				
			||||||
  rMode.Add(self.retweet_mode, 0, wx.ALL, 5)
 | 
					  rMode.Add(self.retweet_mode, 0, wx.ALL, 5)
 | 
				
			||||||
  sizer.Add(rMode, 0, wx.ALL, 5)
 | 
					  sizer.Add(rMode, 0, wx.ALL, 5)
 | 
				
			||||||
  self.persistant_session = wx.CheckBox(self, -1, _(u"Cache session in database (experimental)"))
 | 
					  PersistSizeLabel = wx.StaticText(self, -1, _(u"Number of items per buffer to cache in database (0 to disable caching, blank for unlimited)"))
 | 
				
			||||||
 | 
					  self.persist_size = wx.TextCtrl(self, -1)
 | 
				
			||||||
 | 
					  sizer.Add(PersistSizeLabel, 0, wx.ALL, 5)
 | 
				
			||||||
 | 
					  sizer.Add(self.persist_size, 0, wx.ALL, 5)
 | 
				
			||||||
  self.SetSizer(sizer)
 | 
					  self.SetSizer(sizer)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class other_buffers(wx.Panel):
 | 
					class other_buffers(wx.Panel):
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user