Merged upstream changes.

This commit is contained in:
Bill Dengler 2015-06-12 21:51:04 -04:00
commit 884532d7af
45 changed files with 13050 additions and 6753 deletions

View File

@ -5,7 +5,7 @@ if snapshot == False:
version = "0.80" version = "0.80"
update_url = 'http://twblue.es/updates/twblue_ngen.json' update_url = 'http://twblue.es/updates/twblue_ngen.json'
else: else:
version = "9.2" version = "9.5"
update_url = 'http://twblue.es/updates/snapshots_ngen.json' update_url = 'http://twblue.es/updates/snapshots_ngen.json'
author = u"Manuel Cortéz, Bill Dengler" author = u"Manuel Cortéz, Bill Dengler"
authorEmail = "manuel@manuelcortez.net" authorEmail = "manuel@manuelcortez.net"

View File

@ -47,8 +47,8 @@ class bufferController(object):
def get_event(self, ev): def get_event(self, ev):
if ev.GetKeyCode() == wx.WXK_RETURN and ev.ControlDown(): event = "url" if ev.GetKeyCode() == wx.WXK_RETURN and ev.ControlDown(): event = "interact"
elif ev.GetKeyCode() == wx.WXK_RETURN: event = "interact" elif ev.GetKeyCode() == wx.WXK_RETURN: event = "url"
elif ev.GetKeyCode() == wx.WXK_F5: event = "volume_down" elif ev.GetKeyCode() == wx.WXK_F5: event = "volume_down"
elif ev.GetKeyCode() == wx.WXK_F6: event = "volume_up" elif ev.GetKeyCode() == wx.WXK_F6: event = "volume_up"
elif ev.GetKeyCode() == wx.WXK_DELETE and ev.ShiftDown(): event = "clear_list" elif ev.GetKeyCode() == wx.WXK_DELETE and ev.ShiftDown(): event = "clear_list"
@ -81,7 +81,6 @@ class bufferController(object):
if hasattr(sound.URLPlayer, "stream"): if hasattr(sound.URLPlayer, "stream"):
sound.URLPlayer.stream.volume = self.session.settings["sound"]["volume"] sound.URLPlayer.stream.volume = self.session.settings["sound"]["volume"]
self.session.sound.play("volume_changed.ogg") self.session.sound.play("volume_changed.ogg")
def start_stream(self): def start_stream(self):
pass pass
@ -534,6 +533,15 @@ class listBufferController(baseBufferController):
self.users.append(i["id"]) self.users.append(i["id"])
next_cursor = users["next_cursor"] next_cursor = users["next_cursor"]
def remove_buffer(self):
dlg = commonMessageDialogs.remove_buffer()
if dlg == widgetUtils.YES:
if self.name[:-5] in self.session.settings["other_buffers"]["lists"]:
self.session.settings["other_buffers"]["lists"].remove(self.name[:-5])
return True
elif dlg == widgetUtils.NO:
return False
class eventsBufferController(bufferController): class eventsBufferController(bufferController):
def __init__(self, parent, name, session, account, *args, **kwargs): def __init__(self, parent, name, session, account, *args, **kwargs):
super(eventsBufferController, self).__init__(parent, *args, **kwargs) super(eventsBufferController, self).__init__(parent, *args, **kwargs)

View File

@ -305,7 +305,7 @@ class Controller(object):
self.buffers.append(blocks) self.buffers.append(blocks)
self.view.insert_buffer(blocks.buffer, name=_(u"Blocked users"), pos=self.view.search(session.db["user_name"], session.db["user_name"])) self.view.insert_buffer(blocks.buffer, name=_(u"Blocked users"), pos=self.view.search(session.db["user_name"], session.db["user_name"]))
elif i == 'muted': elif i == 'muted':
muted = buffersController.peopleBufferController(self.view.nb, "get_muted_users_list", "muted", session, session.db["user_name"]) muted = buffersController.peopleBufferController(self.view.nb, "list_mutes", "muted", session, session.db["user_name"])
self.buffers.append(muted) self.buffers.append(muted)
self.view.insert_buffer(muted.buffer, name=_(u"Muted users"), pos=self.view.search(session.db["user_name"], session.db["user_name"])) self.view.insert_buffer(muted.buffer, name=_(u"Muted users"), pos=self.view.search(session.db["user_name"], session.db["user_name"]))
elif i == 'events': elif i == 'events':

View File

@ -2,6 +2,7 @@
import wx import wx
import widgetUtils import widgetUtils
import application import application
class autocompletionSettingsDialog(widgetUtils.BaseDialog): class autocompletionSettingsDialog(widgetUtils.BaseDialog):
def __init__(self): def __init__(self):
super(autocompletionSettingsDialog, self).__init__(parent=None, id=-1, title=_(u"Autocomplete users settings")) super(autocompletionSettingsDialog, self).__init__(parent=None, id=-1, title=_(u"Autocomplete users settings"))

View File

@ -1,6 +1,12 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
""" This module contains some bugfixes for packages used in TWBlue.""" """ This module contains some bugfixes for packages used in TWBlue."""
import sys
import fix_arrow # A few new locales for Three languages in arrow. import fix_arrow # A few new locales for Three languages in arrow.
# import fix_requests_cert_location # For a better compilation in Windows.
import fix_urllib3_warnings # Avoiding some SSL warnings related to Twython.
def setup(): def setup():
fix_arrow.fix() fix_arrow.fix()
# if hasattr(sys, "frozen"):
# fix_requests_cert_location.fix()
fix_urllib3_warnings.fix()

View File

@ -0,0 +1,9 @@
# -*- coding: utf-8 -*-
import paths
def where():
return paths.app_path(r"requests\cacert.pem")
def fix():
from requests import certs
certs.where = where

View File

@ -0,0 +1,5 @@
# -*- coding: utf-8 -*-
from requests.packages import urllib3
def fix():
urllib3.disable_warnings()

File diff suppressed because it is too large Load Diff

Binary file not shown.

View File

@ -2,14 +2,14 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: TW Blue 0.50\n" "Project-Id-Version: TW Blue 0.50\n"
"POT-Creation-Date: 2015-04-23 12:38+Hora de verano central (México)\n" "POT-Creation-Date: 2015-04-23 12:38+Hora de verano central (México)\n"
"PO-Revision-Date: 2015-04-25 00:31+0100\n" "PO-Revision-Date: 2015-06-09 11:54+0100\n"
"Last-Translator: Sukil Echenique <sukiletxe@yahoo.es>\n" "Last-Translator: Sukil Echenique <sukiletxe@yahoo.es>\n"
"Language-Team: Sukil Etxenike Arizaleta <sukiletxe@yahoo.es>\n" "Language-Team: Sukil Etxenike Arizaleta <sukiletxe@yahoo.es>\n"
"Language: eu\n" "Language: eu\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 1.6.10\n" "X-Generator: Poedit 1.8.1\n"
"X-Poedit-KeywordsList: _;gettext;gettext_noop\n" "X-Poedit-KeywordsList: _;gettext;gettext_noop\n"
"X-Poedit-Basepath: .\n" "X-Poedit-Basepath: .\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
@ -358,7 +358,7 @@ msgstr ""
#: ../src\controller\user.py:96 #: ../src\controller\user.py:96
msgid "Verified: %s\n" msgid "Verified: %s\n"
msgstr "" msgstr "Egiaztatuta: %s\n"
#: ../src\controller\user.py:97 #: ../src\controller\user.py:97
msgid "Tweets: %s\n" msgid "Tweets: %s\n"

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@ -51,6 +51,7 @@ log = logging.getLogger("main")
def setup(): def setup():
log.debug("Starting " + application.name + " %s" % (application.version,)) log.debug("Starting " + application.name + " %s" % (application.version,))
config.setup() config.setup()
fixes.setup()
log.debug("Using %s %s" % (platform.system(), platform.architecture()[0])) log.debug("Using %s %s" % (platform.system(), platform.architecture()[0]))
log.debug("Application path is %s" % (paths.app_path(),)) log.debug("Application path is %s" % (paths.app_path(),))
log.debug("config path is %s" % (paths.config_path(),)) log.debug("config path is %s" % (paths.config_path(),))
@ -71,7 +72,6 @@ def setup():
if hasattr(sm.view, "destroy"): if hasattr(sm.view, "destroy"):
sm.view.destroy() sm.view.destroy()
del sm del sm
fixes.setup()
r = mainController.Controller() r = mainController.Controller()
r.view.show() r.view.show()
r.do_work() r.do_work()

View File

@ -24,10 +24,10 @@ def call_threaded(func, *args, **kwargs):
def stream_threaded(func, *args, **kwargs): def stream_threaded(func, *args, **kwargs):
def new_func(*a, **k): def new_func(*a, **k):
# try: try:
func(**k) func(**k)
# except: except:
# pub.sendMessage("streamError", session=a[0]) pub.sendMessage("streamError", session=a[0])
thread = threading.Thread(target=new_func, args=args, kwargs=kwargs) thread = threading.Thread(target=new_func, args=args, kwargs=kwargs)
thread.daemon = True thread.daemon = True
thread.start() thread.start()

View File

@ -406,5 +406,7 @@ class Session(object):
except: except:
output.speak("An exception occurred while deshelving 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 deshelving 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)
log.exception("Exception while deshelving" + shelfname) log.exception("Exception while deshelving" + shelfname)
os.remove(shelfname) try:
os.remove(shelfname)
except:
pass

View File

@ -48,7 +48,7 @@ def get_data():
("requests", ["cacert.pem"]), ("requests", ["cacert.pem"]),
("accessible_output2/lib", glob("accessible_output2/lib/*.dll")), ("accessible_output2/lib", glob("accessible_output2/lib/*.dll")),
("keys/lib", glob("keys/lib/*.dll")), ("keys/lib", glob("keys/lib/*.dll")),
("keymaps", glob("keymaps/*.keymap")),
]+get_sounds()+get_locales()+get_documentation()+sound_lib.find_datafiles()+accessible_output2.find_datafiles()+enchant.utils.win32_data_files()+get_architecture_files() ]+get_sounds()+get_locales()+get_documentation()+sound_lib.find_datafiles()+accessible_output2.find_datafiles()+enchant.utils.win32_data_files()+get_architecture_files()
def get_documentation (): def get_documentation ():
@ -92,7 +92,7 @@ data_files = get_data(),
options = { options = {
'py2exe': { 'py2exe': {
'optimize':2, 'optimize':2,
'packages': ["pubsub", "pubsub.core", "pubsub.core.kwargs"], 'packages': ["pubsub", "pubsub.core", "pubsub.core.kwargs", "dbhash"],
'dll_excludes': ["MPR.dll", "api-ms-win-core-apiquery-l1-1-0.dll", "api-ms-win-core-console-l1-1-0.dll", "api-ms-win-core-delayload-l1-1-1.dll", "api-ms-win-core-errorhandling-l1-1-1.dll", "api-ms-win-core-file-l1-2-0.dll", "api-ms-win-core-handle-l1-1-0.dll", "api-ms-win-core-heap-obsolete-l1-1-0.dll", "api-ms-win-core-libraryloader-l1-1-1.dll", "api-ms-win-core-localization-l1-2-0.dll", "api-ms-win-core-processenvironment-l1-2-0.dll", "api-ms-win-core-processthreads-l1-1-1.dll", "api-ms-win-core-profile-l1-1-0.dll", "api-ms-win-core-registry-l1-1-0.dll", "api-ms-win-core-synch-l1-2-0.dll", "api-ms-win-core-sysinfo-l1-2-0.dll", "api-ms-win-security-base-l1-2-0.dll", "api-ms-win-core-heap-l1-2-0.dll", "api-ms-win-core-interlocked-l1-2-0.dll", "api-ms-win-core-localization-obsolete-l1-1-0.dll", "api-ms-win-core-string-l1-1-0.dll", "api-ms-win-core-string-obsolete-l1-1-0.dll", "WLDAP32.dll", "MSVCP90.dll"], 'dll_excludes': ["MPR.dll", "api-ms-win-core-apiquery-l1-1-0.dll", "api-ms-win-core-console-l1-1-0.dll", "api-ms-win-core-delayload-l1-1-1.dll", "api-ms-win-core-errorhandling-l1-1-1.dll", "api-ms-win-core-file-l1-2-0.dll", "api-ms-win-core-handle-l1-1-0.dll", "api-ms-win-core-heap-obsolete-l1-1-0.dll", "api-ms-win-core-libraryloader-l1-1-1.dll", "api-ms-win-core-localization-l1-2-0.dll", "api-ms-win-core-processenvironment-l1-2-0.dll", "api-ms-win-core-processthreads-l1-1-1.dll", "api-ms-win-core-profile-l1-1-0.dll", "api-ms-win-core-registry-l1-1-0.dll", "api-ms-win-core-synch-l1-2-0.dll", "api-ms-win-core-sysinfo-l1-2-0.dll", "api-ms-win-security-base-l1-2-0.dll", "api-ms-win-core-heap-l1-2-0.dll", "api-ms-win-core-interlocked-l1-2-0.dll", "api-ms-win-core-localization-obsolete-l1-1-0.dll", "api-ms-win-core-string-l1-1-0.dll", "api-ms-win-core-string-obsolete-l1-1-0.dll", "WLDAP32.dll", "MSVCP90.dll"],
'skip_archive': True 'skip_archive': True
}, },

View File

@ -8,8 +8,8 @@ import output
logger = logging.getLogger("updater") logger = logging.getLogger("updater")
def do_update(): def do_update():
try: # try:
return update.perform_update(endpoint=application.update_url, current_version=application.version, app_name=application.name, update_available_callback=available_update_dialog, progress_callback=progress_callback, update_complete_callback=update_finished) return update.perform_update(endpoint=application.update_url, current_version=application.version, app_name=application.name, update_available_callback=available_update_dialog, progress_callback=progress_callback, update_complete_callback=update_finished)
except: # except:
logger.exception("Update failed.") # logger.exception("Update failed.")
output.speak("An exception occurred while attempting to update " + application.name + ". If this message persists, contact the " + application.name + " developers. More information about the exception has been written to the error log.",True) # output.speak("An exception occurred while attempting to update " + application.name + ". If this message persists, contact the " + application.name + " developers. More information about the exception has been written to the error log.",True)

View File

@ -6,6 +6,7 @@ import application
from multiplatform_widgets import widgets from multiplatform_widgets import widgets
import output import output
import config import config
class general(wx.Panel, baseDialog.BaseWXDialog): class general(wx.Panel, baseDialog.BaseWXDialog):
def __init__(self, parent, languages,keymaps): def __init__(self, parent, languages,keymaps):
super(general, self).__init__(parent) super(general, self).__init__(parent)

@ -1 +1 @@
Subproject commit 4d106f04f7e6d2f9e160aca54ce107efb46ee099 Subproject commit 0f65f42c9f752396b0567e597d96c0ab8a5a53f8