Configuration for autocompletion users

This commit is contained in:
Manuel Cortez 2014-12-01 15:21:25 -06:00
parent 2f7eb12104
commit fee7254d55
3 changed files with 24 additions and 5 deletions

View File

@ -40,6 +40,8 @@ autoread_buffers = list(default=list())
[mysc] [mysc]
spelling_language = string(default="") spelling_language = string(default="")
save_followers_in_autocompletion_db = boolean(default=False)
save_friends_in_autocompletion_db = boolean(default=False)
[services] [services]
dropbox_token=string(default="") dropbox_token=string(default="")

View File

@ -1,6 +1,7 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
import storage import storage
import wx import wx
import config
import wx_settings import wx_settings
import output import output
from mysc.thread_utils import call_threaded from mysc.thread_utils import call_threaded
@ -10,20 +11,28 @@ class autocompletionSettings(object):
super(autocompletionSettings, self).__init__() super(autocompletionSettings, self).__init__()
self.window = window self.window = window
self.dialog = wx_settings.autocompletionSettingsDialog() self.dialog = wx_settings.autocompletionSettingsDialog()
self.dialog.friends_buffer.SetValue(config.main["mysc"]["save_friends_in_autocompletion_db"])
self.dialog.followers_buffer.SetValue(config.main["mysc"]["save_followers_in_autocompletion_db"])
if self.dialog.ShowModal() == wx.ID_OK: if self.dialog.ShowModal() == wx.ID_OK:
call_threaded(self.add_users_to_database) call_threaded(self.add_users_to_database)
def add_users_to_database(self): def add_users_to_database(self):
config.main["mysc"]["save_friends_in_autocompletion_db"] = self.dialog.friends_buffer.GetValue()
config.main["mysc"]["save_followers_in_autocompletion_db"] = self.dialog.friends_buffer.GetValue()
output.speak(_(u"Updating database... You can close this window now. A message will tell you when the process finishes.")) output.speak(_(u"Updating database... You can close this window now. A message will tell you when the process finishes."))
database = storage.storage() database = storage.storage()
if self.dialog.followers_buffer.GetValue() == True: if self.dialog.followers_buffer.GetValue() == True:
buffer = self.window.search_buffer("people", "followers") buffer = self.window.search_buffer("people", "followers")
for i in buffer.db.settings[buffer.name_buffer]: for i in buffer.db.settings[buffer.name_buffer]:
database.set_user(i["screen_name"], i["name"]) database.set_user(i["screen_name"], i["name"], 1)
else:
database.remove_by_buffer(1)
if self.dialog.friends_buffer.GetValue() == True: if self.dialog.friends_buffer.GetValue() == True:
buffer = self.window.search_buffer("people", "friends") buffer = self.window.search_buffer("people", "friends")
for i in buffer.db.settings[buffer.name_buffer]: for i in buffer.db.settings[buffer.name_buffer]:
database.set_user(i["screen_name"], i["name"]) database.set_user(i["screen_name"], i["name"], 2)
else:
database.remove_by_buffer(2)
wx_settings.show_success_dialog() wx_settings.show_success_dialog()
self.dialog.Destroy() self.dialog.Destroy()

View File

@ -21,19 +21,27 @@ class storage(object):
self.cursor.execute("""SELECT * FROM users WHERE user LIKE ?""", ('{}%'.format(term),)) self.cursor.execute("""SELECT * FROM users WHERE user LIKE ?""", ('{}%'.format(term),))
return self.cursor.fetchall() return self.cursor.fetchall()
def set_user(self, screen_name, user_name): def set_user(self, screen_name, user_name, from_a_buffer):
self.cursor.execute("""insert or ignore into users values(?, ?)""", (screen_name, user_name)) self.cursor.execute("""insert or ignore into users values(?, ?, ?)""", (screen_name, user_name, from_a_buffer))
self.connection.commit() self.connection.commit()
def remove_user(self, user): def remove_user(self, user):
self.cursor.execute("""DELETE FROM users WHERE user = ?""", (user,)) self.cursor.execute("""DELETE FROM users WHERE user = ?""", (user,))
self.connection.commit()
return self.cursor.fetchone()
def remove_by_buffer(self, bufferType):
""" Removes all users saved on a buffer. BufferType is 0 for no buffer, 1 for friends and 2 for followers"""
self.cursor.execute("""DELETE FROM users WHERE from_a_buffer = ?""", (bufferType,))
self.connection.commit()
return self.cursor.fetchone() return self.cursor.fetchone()
def create_table(self): def create_table(self):
self.cursor.execute(""" self.cursor.execute("""
create table users( create table users(
user TEXT UNIQUE, user TEXT UNIQUE,
name TEXT name TEXT,
from_a_buffer INTEGER
)""") )""")
def __del__(self): def __del__(self):