mirror of
https://github.com/MCV-Software/TWBlue.git
synced 2024-11-22 19:28:09 -06:00
Merge branch 'next-gen' of https://github.com/manuelcortez/twblue into next-gen
This commit is contained in:
commit
a57c44d566
@ -92,7 +92,7 @@ This dependency has been built using pure basic 4.61. Its source can be found at
|
|||||||
|
|
||||||
* [NSIS Unicode Portable,](http://portableapps.com/apps/development/nsis_portable) version 2.46.5 rev 3
|
* [NSIS Unicode Portable,](http://portableapps.com/apps/development/nsis_portable) version 2.46.5 rev 3
|
||||||
* [PortableApps.com Launcher,](http://portableapps.com/apps/development/portableapps.com_launcher) version 2.2
|
* [PortableApps.com Launcher,](http://portableapps.com/apps/development/portableapps.com_launcher) version 2.2
|
||||||
* [PortableApps.com Installer,](http://portableapps.com/apps/development/portableapps.com_installer) version 3.1.3
|
* [PortableApps.com Installer,](http://portableapps.com/apps/development/portableapps.com_installer) version 3.3.2
|
||||||
|
|
||||||
Important! Install these 3 apps into the same folder, otherwise you won't be able to build the pa.c version. For example: D:\portableApps\NSISPortable, D:\PortableApps\PortableApps.com installer, ...
|
Important! Install these 3 apps into the same folder, otherwise you won't be able to build the pa.c version. For example: D:\portableApps\NSISPortable, D:\PortableApps\PortableApps.com installer, ...
|
||||||
|
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
name = 'TWBlue'
|
name = 'TWBlue'
|
||||||
snapshot = False
|
snapshot = False
|
||||||
if snapshot == False:
|
if snapshot == False:
|
||||||
version = "0.84"
|
version = "0.85"
|
||||||
update_url = 'http://twblue.es/updates/twblue_ngen.json'
|
update_url = 'http://twblue.es/updates/twblue_ngen.json'
|
||||||
mirror_update_url = 'https://raw.githubusercontent.com/manuelcortez/TWBlue/next-gen/updates/stable.json'
|
mirror_update_url = 'https://raw.githubusercontent.com/manuelcortez/TWBlue/next-gen/updates/stable.json'
|
||||||
else:
|
else:
|
||||||
|
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
@ -313,13 +313,13 @@ If you still have questions after reading this document, if you wish to collabor
|
|||||||
|
|
||||||
## Credits
|
## Credits
|
||||||
|
|
||||||
TWBlue is developed and mantained by [Manuel Cortéz](https://twitter.com/manuelcortez00), [José Manuel Delicado](https://twitter.com/jmdaweb), and [Bill Dengler](https://twitter.com/codeofdusk). It's supported and sponsored by [Technow S. L.](https://twitter.com/technow)
|
TWBlue is developed and mantained by [Manuel Cortéz](https://twitter.com/manuelcortez00) and [José Manuel Delicado](https://twitter.com/jmdaweb). It's supported and sponsored by [Technow S. L.](https://twitter.com/technow)
|
||||||
|
|
||||||
We would also like to thank the translators of TWBlue, who have allowed the spreading of the application.
|
We would also like to thank the translators of TWBlue, who have allowed the spreading of the application.
|
||||||
|
|
||||||
* English: [Bryner Villalobos](https://twitter.com/Bry_StarkCR) and [Bill Dengler](https://twitter.com/codeofdusk).
|
* English: [Manuel Cortéz](https://twitter.com/manuelcortez00).
|
||||||
* Arabic: [Mohammed Al Shara](https://twitter.com/mohammed0204).
|
* Arabic: [Mohammed Al Shara](https://twitter.com/mohammed0204).
|
||||||
* Catalan: [Joan Rabat](https://twitter.com/joanrabat) and Juan Carlos Rivilla.
|
* Catalan: [Francisco Torres](https://twitter.com/ftgalleg)
|
||||||
* Spanish: [Manuel Cortéz](https://twitter.com/manuelcortez00).
|
* Spanish: [Manuel Cortéz](https://twitter.com/manuelcortez00).
|
||||||
* Basque: [Sukil Etxenike](https://twitter.com/sukil2011).
|
* Basque: [Sukil Etxenike](https://twitter.com/sukil2011).
|
||||||
* Finnish: [Jani Kinnunen](https://twitter.com/jani_kinnunen).
|
* Finnish: [Jani Kinnunen](https://twitter.com/jani_kinnunen).
|
||||||
@ -333,7 +333,7 @@ We would also like to thank the translators of TWBlue, who have allowed the spre
|
|||||||
* Polish: [Pawel Masarczyk.](https://twitter.com/Piciok)
|
* Polish: [Pawel Masarczyk.](https://twitter.com/Piciok)
|
||||||
* Portuguese: Odenilton Júnior Santos.
|
* Portuguese: Odenilton Júnior Santos.
|
||||||
* Romanian: [Florian Ionașcu](https://twitter.com/7ro) and [Răzvan Ciule](https://twitter.com/pilgrim89)
|
* Romanian: [Florian Ionașcu](https://twitter.com/7ro) and [Răzvan Ciule](https://twitter.com/pilgrim89)
|
||||||
* Russian: [Александр Яшин](https://twitter.com/radovest).
|
* Russian: [Наталья Хедлунд](https://twitter.com/Lifestar_n).
|
||||||
* Serbian: [Aleksandar Đurić](https://twitter.com/sokodtreshnje)
|
* Serbian: [Aleksandar Đurić](https://twitter.com/sokodtreshnje)
|
||||||
* Turkish: [Burak Yüksek](https://twitter.com/burakyuksek).
|
* Turkish: [Burak Yüksek](https://twitter.com/burakyuksek).
|
||||||
|
|
||||||
|
@ -20,8 +20,8 @@ CommercialUse=true
|
|||||||
EULAVersion=2
|
EULAVersion=2
|
||||||
|
|
||||||
[Version]
|
[Version]
|
||||||
PackageVersion=0.84.0.0
|
PackageVersion=0.85.0.0
|
||||||
DisplayVersion=0.84
|
DisplayVersion=0.85
|
||||||
|
|
||||||
[Control]
|
[Control]
|
||||||
Icons=1
|
Icons=1
|
||||||
|
@ -13,9 +13,9 @@ SetCompressor /solid lzma
|
|||||||
SetDatablockOptimize on
|
SetDatablockOptimize on
|
||||||
VIAddVersionKey ProductName "TWBlue"
|
VIAddVersionKey ProductName "TWBlue"
|
||||||
VIAddVersionKey LegalCopyright "Copyright 2016 Manuel Cortéz."
|
VIAddVersionKey LegalCopyright "Copyright 2016 Manuel Cortéz."
|
||||||
VIAddVersionKey ProductVersion "0.84"
|
VIAddVersionKey ProductVersion "0.85"
|
||||||
VIAddVersionKey FileVersion "0.84"
|
VIAddVersionKey FileVersion "0.85"
|
||||||
VIProductVersion "0.84.0.0"
|
VIProductVersion "0.85.0.0"
|
||||||
!insertmacro MUI_PAGE_WELCOME
|
!insertmacro MUI_PAGE_WELCOME
|
||||||
!define MUI_LICENSEPAGE_RADIOBUTTONS
|
!define MUI_LICENSEPAGE_RADIOBUTTONS
|
||||||
!insertmacro MUI_PAGE_LICENSE "license.txt"
|
!insertmacro MUI_PAGE_LICENSE "license.txt"
|
||||||
@ -69,10 +69,10 @@ WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\twblue" "D
|
|||||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\twblue" "UninstallString" '"$INSTDIR\uninstall.exe"'
|
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\twblue" "UninstallString" '"$INSTDIR\uninstall.exe"'
|
||||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall" "InstallLocation" $INSTDIR
|
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall" "InstallLocation" $INSTDIR
|
||||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall" "Publisher" "Manuel Cortéz"
|
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall" "Publisher" "Manuel Cortéz"
|
||||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\twblue" "DisplayVersion" "0.84"
|
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\twblue" "DisplayVersion" "0.85"
|
||||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\twblue" "URLInfoAbout" "http://twblue.es"
|
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\twblue" "URLInfoAbout" "http://twblue.es"
|
||||||
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\twblue" "VersionMajor" 0
|
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\twblue" "VersionMajor" 0
|
||||||
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\twblue" "VersionMinor" 84
|
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\twblue" "VersionMinor" 85
|
||||||
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\twblue" "NoModify" 1
|
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\twblue" "NoModify" 1
|
||||||
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\twblue" "NoRepair" 1
|
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\twblue" "NoRepair" 1
|
||||||
SectionEnd
|
SectionEnd
|
||||||
|
@ -8,6 +8,7 @@ language = string(default="system")
|
|||||||
hide_gui = boolean(default=False)
|
hide_gui = boolean(default=False)
|
||||||
voice_enabled = boolean(default=False)
|
voice_enabled = boolean(default=False)
|
||||||
ask_at_exit = boolean(default=True)
|
ask_at_exit = boolean(default=True)
|
||||||
|
autostart = boolean(default=False)
|
||||||
handle_longtweets = boolean(default=True)
|
handle_longtweets = boolean(default=True)
|
||||||
use_invisible_keyboard_shorcuts = boolean(default=True)
|
use_invisible_keyboard_shorcuts = boolean(default=True)
|
||||||
play_ready_sound = boolean(default=True)
|
play_ready_sound = boolean(default=True)
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
name = 'TWBlue'
|
name = 'TWBlue'
|
||||||
snapshot = False
|
snapshot = False
|
||||||
if snapshot == False:
|
if snapshot == False:
|
||||||
version = "0.84"
|
version = "0.85"
|
||||||
update_url = 'http://twblue.es/updates/twblue_ngen.json'
|
update_url = 'http://twblue.es/updates/twblue_ngen.json'
|
||||||
mirror_update_url = 'https://raw.githubusercontent.com/manuelcortez/TWBlue/next-gen/updates/stable.json'
|
mirror_update_url = 'https://raw.githubusercontent.com/manuelcortez/TWBlue/next-gen/updates/stable.json'
|
||||||
else:
|
else:
|
||||||
|
@ -364,7 +364,7 @@ class baseBufferController(bufferController):
|
|||||||
self.remove_item(i)
|
self.remove_item(i)
|
||||||
|
|
||||||
def put_items_on_list(self, number_of_items):
|
def put_items_on_list(self, number_of_items):
|
||||||
if number_of_items == 0: return
|
if number_of_items == 0 and self.session.settings["general"]["persist_size"] == 0: return
|
||||||
log.debug("The list contains %d items " % (self.buffer.list.get_count(),))
|
log.debug("The list contains %d items " % (self.buffer.list.get_count(),))
|
||||||
log.debug("Putting %d items on the list" % (number_of_items,))
|
log.debug("Putting %d items on the list" % (number_of_items,))
|
||||||
if self.buffer.list.get_count() == 0:
|
if self.buffer.list.get_count() == 0:
|
||||||
@ -372,7 +372,7 @@ class baseBufferController(bufferController):
|
|||||||
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(False, *tweet)
|
||||||
self.buffer.set_position(self.session.settings["general"]["reverse_timelines"])
|
self.buffer.set_position(self.session.settings["general"]["reverse_timelines"])
|
||||||
elif self.buffer.list.get_count() > 0:
|
elif self.buffer.list.get_count() > 0 and number_of_items > 0:
|
||||||
if self.session.settings["general"]["reverse_timelines"] == False:
|
if self.session.settings["general"]["reverse_timelines"] == False:
|
||||||
items = self.session.db[self.name][len(self.session.db[self.name])-number_of_items:]
|
items = self.session.db[self.name][len(self.session.db[self.name])-number_of_items:]
|
||||||
for i in items:
|
for i in items:
|
||||||
|
@ -249,6 +249,8 @@ class Controller(object):
|
|||||||
# Connection checker executed each minute.
|
# Connection checker executed each minute.
|
||||||
self.checker_function = RepeatingTimer(60, self.check_connection)
|
self.checker_function = RepeatingTimer(60, self.check_connection)
|
||||||
self.checker_function.start()
|
self.checker_function.start()
|
||||||
|
self.save_db = RepeatingTimer(300, self.save_data_in_db)
|
||||||
|
self.save_db.start()
|
||||||
|
|
||||||
def start(self):
|
def start(self):
|
||||||
""" Starts all buffer objects. Loads their items."""
|
""" Starts all buffer objects. Loads their items."""
|
||||||
@ -355,7 +357,7 @@ class Controller(object):
|
|||||||
for i in session.settings["other_buffers"]["followers_timelines"]:
|
for i in session.settings["other_buffers"]["followers_timelines"]:
|
||||||
tl = buffersController.peopleBufferController(self.view.nb, "get_followers_list", "%s-followers" % (i,), session, session.db["user_name"], screen_name=i)
|
tl = buffersController.peopleBufferController(self.view.nb, "get_followers_list", "%s-followers" % (i,), session, session.db["user_name"], screen_name=i)
|
||||||
self.buffers.append(tl)
|
self.buffers.append(tl)
|
||||||
self.view.insert_buffer(tl.buffer, name=_(u"Followers for {}").format(i,), pos=self.view.search("favs_timelines", session.db["user_name"]))
|
self.view.insert_buffer(tl.buffer, name=_(u"Followers for {}").format(i,), pos=self.view.search("followers_timelines", session.db["user_name"]))
|
||||||
tl.timer = RepeatingTimer(300, tl.start_stream)
|
tl.timer = RepeatingTimer(300, tl.start_stream)
|
||||||
tl.timer.start()
|
tl.timer.start()
|
||||||
friends_timelines = buffersController.emptyPanel(self.view.nb, "friends_timelines", session.db["user_name"])
|
friends_timelines = buffersController.emptyPanel(self.view.nb, "friends_timelines", session.db["user_name"])
|
||||||
@ -364,7 +366,7 @@ class Controller(object):
|
|||||||
for i in session.settings["other_buffers"]["friends_timelines"]:
|
for i in session.settings["other_buffers"]["friends_timelines"]:
|
||||||
tl = buffersController.peopleBufferController(self.view.nb, "get_friends_list", "%s-friends" % (i,), session, session.db["user_name"], screen_name=i)
|
tl = buffersController.peopleBufferController(self.view.nb, "get_friends_list", "%s-friends" % (i,), session, session.db["user_name"], screen_name=i)
|
||||||
self.buffers.append(tl)
|
self.buffers.append(tl)
|
||||||
self.view.insert_buffer(tl.buffer, name=_(u"Friends for {}").format(i,), pos=self.view.search("favs_timelines", session.db["user_name"]))
|
self.view.insert_buffer(tl.buffer, name=_(u"Friends for {}").format(i,), pos=self.view.search("friends_timelines", session.db["user_name"]))
|
||||||
tl.timer = RepeatingTimer(300, tl.start_stream)
|
tl.timer = RepeatingTimer(300, tl.start_stream)
|
||||||
tl.timer.start()
|
tl.timer.start()
|
||||||
lists = buffersController.emptyPanel(self.view.nb, "lists", session.db["user_name"])
|
lists = buffersController.emptyPanel(self.view.nb, "lists", session.db["user_name"])
|
||||||
@ -374,7 +376,7 @@ class Controller(object):
|
|||||||
tl = buffersController.listBufferController(self.view.nb, "get_list_statuses", "%s-list" % (i,), session, session.db["user_name"], bufferType=None, list_id=utils.find_list(i, session.db["lists"]))
|
tl = buffersController.listBufferController(self.view.nb, "get_list_statuses", "%s-list" % (i,), session, session.db["user_name"], bufferType=None, list_id=utils.find_list(i, session.db["lists"]))
|
||||||
session.lists.append(tl)
|
session.lists.append(tl)
|
||||||
self.buffers.append(tl)
|
self.buffers.append(tl)
|
||||||
self.view.insert_buffer(tl.buffer, name=_(u"List for {}").format(i), pos=self.view.search("timelines", session.db["user_name"]))
|
self.view.insert_buffer(tl.buffer, name=_(u"List for {}").format(i), pos=self.view.search("lists", session.db["user_name"]))
|
||||||
searches = buffersController.emptyPanel(self.view.nb, "searches", session.db["user_name"])
|
searches = buffersController.emptyPanel(self.view.nb, "searches", session.db["user_name"])
|
||||||
self.buffers.append(searches)
|
self.buffers.append(searches)
|
||||||
self.view.insert_buffer(searches.buffer , name=_(u"Searches"), pos=self.view.search(session.db["user_name"], session.db["user_name"]))
|
self.view.insert_buffer(searches.buffer , name=_(u"Searches"), pos=self.view.search(session.db["user_name"], session.db["user_name"]))
|
||||||
@ -1495,3 +1497,7 @@ class Controller(object):
|
|||||||
for i in self.buffers:
|
for i in self.buffers:
|
||||||
if hasattr(i, "remove_tweet") and hasattr(i, "name"):
|
if hasattr(i, "remove_tweet") and hasattr(i, "name"):
|
||||||
i.remove_tweet(id)
|
i.remove_tweet(id)
|
||||||
|
|
||||||
|
def save_data_in_db(self):
|
||||||
|
for i in session_.sessions:
|
||||||
|
session_.sessions[i].shelve()
|
@ -1,7 +1,6 @@
|
|||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
import os
|
import os
|
||||||
import webbrowser
|
import webbrowser
|
||||||
#import pocket
|
|
||||||
import sound_lib
|
import sound_lib
|
||||||
import paths
|
import paths
|
||||||
import widgetUtils
|
import widgetUtils
|
||||||
@ -15,10 +14,10 @@ from extra.autocompletionUsers import settings
|
|||||||
from pubsub import pub
|
from pubsub import pub
|
||||||
import logging
|
import logging
|
||||||
import config_utils
|
import config_utils
|
||||||
#from pocket_utils import authorisationHandler
|
|
||||||
import BaseHTTPServer
|
|
||||||
log = logging.getLogger("Settings")
|
log = logging.getLogger("Settings")
|
||||||
import keys
|
import keys
|
||||||
|
from collections import OrderedDict
|
||||||
|
from platform_utils.autostart import windows as autostart_windows
|
||||||
|
|
||||||
class globalSettingsController(object):
|
class globalSettingsController(object):
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
@ -56,8 +55,11 @@ class globalSettingsController(object):
|
|||||||
self.dialog.create_general(langs,self.kmfriendlies)
|
self.dialog.create_general(langs,self.kmfriendlies)
|
||||||
self.dialog.general.language.SetSelection(id)
|
self.dialog.general.language.SetSelection(id)
|
||||||
self.dialog.general.km.SetSelection(self.kmid)
|
self.dialog.general.km.SetSelection(self.kmid)
|
||||||
|
if paths.mode == "installed":
|
||||||
|
self.dialog.set_value("general", "autostart", config.app["app-settings"]["autostart"])
|
||||||
|
else:
|
||||||
|
self.dialog.general.autostart.Enable(False)
|
||||||
self.dialog.set_value("general", "ask_at_exit", config.app["app-settings"]["ask_at_exit"])
|
self.dialog.set_value("general", "ask_at_exit", config.app["app-settings"]["ask_at_exit"])
|
||||||
|
|
||||||
self.dialog.set_value("general", "play_ready_sound", config.app["app-settings"]["play_ready_sound"])
|
self.dialog.set_value("general", "play_ready_sound", config.app["app-settings"]["play_ready_sound"])
|
||||||
self.dialog.set_value("general", "speak_ready_msg", config.app["app-settings"]["speak_ready_msg"])
|
self.dialog.set_value("general", "speak_ready_msg", config.app["app-settings"]["speak_ready_msg"])
|
||||||
self.dialog.set_value("general", "handle_longtweets", config.app["app-settings"]["handle_longtweets"])
|
self.dialog.set_value("general", "handle_longtweets", config.app["app-settings"]["handle_longtweets"])
|
||||||
@ -85,6 +87,9 @@ class globalSettingsController(object):
|
|||||||
kmFile.close()
|
kmFile.close()
|
||||||
self.needs_restart = True
|
self.needs_restart = True
|
||||||
|
|
||||||
|
if config.app["app-settings"]["autostart"] != self.dialog.get_value("general", "autostart") and paths.mode == "installed":
|
||||||
|
config.app["app-settings"]["autostart"] = self.dialog.get_value("general", "autostart")
|
||||||
|
autostart_windows.setAutoStart(application.name, enable=self.dialog.get_value("general", "autostart"))
|
||||||
if config.app["app-settings"]["use_invisible_keyboard_shorcuts"] != self.dialog.get_value("general", "use_invisible_shorcuts"):
|
if config.app["app-settings"]["use_invisible_keyboard_shorcuts"] != self.dialog.get_value("general", "use_invisible_shorcuts"):
|
||||||
config.app["app-settings"]["use_invisible_keyboard_shorcuts"] = self.dialog.get_value("general", "use_invisible_shorcuts")
|
config.app["app-settings"]["use_invisible_keyboard_shorcuts"] = self.dialog.get_value("general", "use_invisible_shorcuts")
|
||||||
pub.sendMessage("invisible-shorcuts-changed", registered=self.dialog.get_value("general", "use_invisible_shorcuts"))
|
pub.sendMessage("invisible-shorcuts-changed", registered=self.dialog.get_value("general", "use_invisible_shorcuts"))
|
||||||
@ -248,14 +253,25 @@ class accountSettingsController(globalSettingsController):
|
|||||||
self.dialog.ignored_clients.remove_(id)
|
self.dialog.ignored_clients.remove_(id)
|
||||||
|
|
||||||
def get_buffers_list(self):
|
def get_buffers_list(self):
|
||||||
all_buffers = ['home','mentions','dm','sent_dm','sent_tweets','favorites','followers','friends','blocks','muted','events']
|
all_buffers=OrderedDict()
|
||||||
|
all_buffers['home']=_(u"Home")
|
||||||
|
all_buffers['mentions']=_(u"Mentions")
|
||||||
|
all_buffers['dm']=_(u"Direct Messages")
|
||||||
|
all_buffers['sent_dm']=_(u"Sent direct messages")
|
||||||
|
all_buffers['sent_tweets']=_(u"Sent tweets")
|
||||||
|
all_buffers['favorites']=_(u"Likes")
|
||||||
|
all_buffers['followers']=_(u"Followers")
|
||||||
|
all_buffers['friends']=_(u"Friends")
|
||||||
|
all_buffers['blocks']=_(u"Blocked users")
|
||||||
|
all_buffers['muted']=_(u"Muted users")
|
||||||
|
all_buffers['events']=_(u"Events")
|
||||||
list_buffers = []
|
list_buffers = []
|
||||||
hidden_buffers=[]
|
hidden_buffers=[]
|
||||||
for i in all_buffers:
|
for i in all_buffers.keys():
|
||||||
if i in self.config["general"]["buffer_order"]:
|
if i in self.config["general"]["buffer_order"]:
|
||||||
list_buffers.append((i, True))
|
list_buffers.append((i, all_buffers[i], True))
|
||||||
else:
|
else:
|
||||||
hidden_buffers.append((i, False))
|
hidden_buffers.append((i, all_buffers[i], False))
|
||||||
list_buffers.extend(hidden_buffers)
|
list_buffers.extend(hidden_buffers)
|
||||||
return list_buffers
|
return list_buffers
|
||||||
|
|
||||||
|
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
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
@ -31,11 +31,11 @@ def getAutoStart(app_name):
|
|||||||
|
|
||||||
def setAutoStart(app_name, enable=True):
|
def setAutoStart(app_name, enable=True):
|
||||||
"""Configures automatic startup for the application, if the enable argument is set to True. If set to False, deletes the application AutoStart value."""
|
"""Configures automatic startup for the application, if the enable argument is set to True. If set to False, deletes the application AutoStart value."""
|
||||||
|
print paths.get_executable()
|
||||||
if getAutoStart(app_name) == enable:
|
if getAutoStart(app_name) == enable:
|
||||||
return
|
return
|
||||||
key = _winreg.OpenKey(_winreg.HKEY_CURRENT_USER, RUN_REGKEY, 0, _winreg.KEY_WRITE)
|
key = _winreg.OpenKey(_winreg.HKEY_CURRENT_USER, RUN_REGKEY, 0, _winreg.KEY_WRITE)
|
||||||
if enable:
|
if enable:
|
||||||
_winreg.SetValueEx(key, unicode(app_name), None, _winreg.REG_SZ, sys.argv[0])
|
_winreg.SetValueEx(key, unicode(app_name), None, _winreg.REG_SZ, paths.get_executable())
|
||||||
else:
|
else:
|
||||||
_winreg.DeleteValue(key, unicode(app_name))
|
_winreg.DeleteValue(key, unicode(app_name))
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
""" The main session object. Here are the twitter functions to interact with the "model" of TWBlue."""
|
""" The main session object. Here are the twitter functions to interact with the "model" of TWBlue."""
|
||||||
import urllib2
|
import urllib2
|
||||||
|
import config
|
||||||
import twitter
|
import twitter
|
||||||
from keys import keyring
|
from keys import keyring
|
||||||
import session_exceptions as Exceptions
|
import session_exceptions as Exceptions
|
||||||
@ -425,7 +426,7 @@ class Session(object):
|
|||||||
|
|
||||||
def check_quoted_status(self, tweet):
|
def check_quoted_status(self, tweet):
|
||||||
status = tweets.is_long(tweet)
|
status = tweets.is_long(tweet)
|
||||||
if status != False:
|
if status != False and config.app["app-settings"]["handle_longtweets"]:
|
||||||
tweet = self.get_quoted_tweet(tweet)
|
tweet = self.get_quoted_tweet(tweet)
|
||||||
return tweet
|
return tweet
|
||||||
|
|
||||||
@ -447,6 +448,6 @@ class Session(object):
|
|||||||
|
|
||||||
def check_long_tweet(self, tweet):
|
def check_long_tweet(self, tweet):
|
||||||
long = twishort.is_long(tweet)
|
long = twishort.is_long(tweet)
|
||||||
if long != False:
|
if long != False and config.app["app-settings"]["handle_longtweets"]:
|
||||||
tweet["message"] = twishort.get_full_text(long)
|
tweet["message"] = twishort.get_full_text(long)
|
||||||
return tweet
|
return tweet
|
@ -41,7 +41,6 @@ def get_architecture_files():
|
|||||||
("Microsoft.VC90.MFC", glob("../windows-dependencies/x64/Microsoft.VC90.MFC/*")),]
|
("Microsoft.VC90.MFC", glob("../windows-dependencies/x64/Microsoft.VC90.MFC/*")),]
|
||||||
|
|
||||||
def get_data():
|
def get_data():
|
||||||
import accessible_output2
|
|
||||||
import sound_lib
|
import sound_lib
|
||||||
import enchant
|
import enchant
|
||||||
return [
|
return [
|
||||||
@ -50,7 +49,8 @@ def get_data():
|
|||||||
("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")),
|
("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()+wx_files()
|
("share/enchant/myspell", glob("../windows-dependencies/dictionaries/*")),
|
||||||
|
]+get_sounds()+get_locales()+get_documentation()+sound_lib.find_datafiles()+enchant.utils.win32_data_files()+get_architecture_files()+wx_files()
|
||||||
|
|
||||||
def get_documentation ():
|
def get_documentation ():
|
||||||
answer = [("documentation", ["documentation/license.txt"])]
|
answer = [("documentation", ["documentation/license.txt"])]
|
||||||
|
@ -18,7 +18,9 @@ class general(wx.Panel, baseDialog.BaseWXDialog):
|
|||||||
langBox.Add(language, 0, wx.ALL, 5)
|
langBox.Add(language, 0, wx.ALL, 5)
|
||||||
langBox.Add(self.language, 0, wx.ALL, 5)
|
langBox.Add(self.language, 0, wx.ALL, 5)
|
||||||
sizer.Add(langBox, 0, wx.ALL, 5)
|
sizer.Add(langBox, 0, wx.ALL, 5)
|
||||||
|
self.autostart = wx.CheckBox(self, -1, _(u"Run {0} at Windows startup").format(application.name,))
|
||||||
self.ask_at_exit = wx.CheckBox(self, -1, _(U"ask before exiting {0}").format(application.name,))
|
self.ask_at_exit = wx.CheckBox(self, -1, _(U"ask before exiting {0}").format(application.name,))
|
||||||
|
sizer.Add(self.autostart, 0, wx.ALL, 5)
|
||||||
sizer.Add(self.ask_at_exit, 0, wx.ALL, 5)
|
sizer.Add(self.ask_at_exit, 0, wx.ALL, 5)
|
||||||
self.play_ready_sound = wx.CheckBox(self, -1, _(U"Play a sound when {0} launches").format(application.name,))
|
self.play_ready_sound = wx.CheckBox(self, -1, _(U"Play a sound when {0} launches").format(application.name,))
|
||||||
sizer.Add(self.play_ready_sound, 0, wx.ALL, 5)
|
sizer.Add(self.play_ready_sound, 0, wx.ALL, 5)
|
||||||
@ -114,7 +116,7 @@ class other_buffers(wx.Panel):
|
|||||||
def __init__(self, parent):
|
def __init__(self, parent):
|
||||||
super(other_buffers, self).__init__(parent)
|
super(other_buffers, self).__init__(parent)
|
||||||
sizer = wx.BoxSizer(wx.VERTICAL)
|
sizer = wx.BoxSizer(wx.VERTICAL)
|
||||||
self.buffers = widgets.list(self, _(u"Buffer"), _(u"Status"), style=wx.LC_SINGLE_SEL|wx.LC_REPORT)
|
self.buffers = widgets.list(self, _(u"Buffer"), _(u"Name"), _(u"Status"), style=wx.LC_SINGLE_SEL|wx.LC_REPORT)
|
||||||
sizer.Add(self.buffers.list, 0, wx.ALL, 5)
|
sizer.Add(self.buffers.list, 0, wx.ALL, 5)
|
||||||
btnSizer = wx.BoxSizer(wx.HORIZONTAL)
|
btnSizer = wx.BoxSizer(wx.HORIZONTAL)
|
||||||
self.toggle_state = wx.Button(self, -1, _(u"Show/hide"))
|
self.toggle_state = wx.Button(self, -1, _(u"Show/hide"))
|
||||||
@ -128,10 +130,10 @@ class other_buffers(wx.Panel):
|
|||||||
|
|
||||||
def insert_buffers(self, buffers):
|
def insert_buffers(self, buffers):
|
||||||
for i in buffers:
|
for i in buffers:
|
||||||
if i[1] == True:
|
if i[2] == True:
|
||||||
self.buffers.insert_item(False, *[i[0], _(u"Show")])
|
self.buffers.insert_item(False, *[i[0], i[1], _(u"Show")])
|
||||||
else:
|
else:
|
||||||
self.buffers.insert_item(False, *[i[0], _(u"Hide")])
|
self.buffers.insert_item(False, *[i[0], i[1], _(u"Hide")])
|
||||||
|
|
||||||
def connect_hook_func(self, func):
|
def connect_hook_func(self, func):
|
||||||
self.buffers.list.Bind(wx.EVT_CHAR_HOOK, func)
|
self.buffers.list.Bind(wx.EVT_CHAR_HOOK, func)
|
||||||
@ -141,40 +143,48 @@ class other_buffers(wx.Panel):
|
|||||||
if current == -1:
|
if current == -1:
|
||||||
output.speak(_(u"Select a buffer first."), True)
|
output.speak(_(u"Select a buffer first."), True)
|
||||||
return False
|
return False
|
||||||
if self.buffers.get_text_column(current, 1) == _(u"Hide"):
|
if self.buffers.get_text_column(current, 2) == _(u"Hide"):
|
||||||
output.speak(_(u"The buffer is hidden, show it first."), True)
|
output.speak(_(u"The buffer is hidden, show it first."), True)
|
||||||
return False
|
return False
|
||||||
if current <= 0:
|
if current <= 0:
|
||||||
output.speak(_(u"The buffer is already at the top of the list."), True)
|
output.speak(_(u"The buffer is already at the top of the list."), True)
|
||||||
return False
|
return False
|
||||||
current_text = self.buffers.get_text_column(self.buffers.get_selected(), 0)
|
current_text = self.buffers.get_text_column(self.buffers.get_selected(), 0)
|
||||||
current_text_state = self.buffers.get_text_column(self.buffers.get_selected(), 1)
|
current_name = self.buffers.get_text_column(self.buffers.get_selected(), 1)
|
||||||
|
current_text_state = self.buffers.get_text_column(self.buffers.get_selected(), 2)
|
||||||
text_above = self.buffers.get_text_column(self.buffers.get_selected()-1, 0)
|
text_above = self.buffers.get_text_column(self.buffers.get_selected()-1, 0)
|
||||||
text_above_state = self.buffers.get_text_column(self.buffers.get_selected()-1, 1)
|
name_above = self.buffers.get_text_column(self.buffers.get_selected()-1, 1)
|
||||||
|
text_above_state = self.buffers.get_text_column(self.buffers.get_selected()-1, 2)
|
||||||
self.buffers.set_text_column(self.buffers.get_selected()-1, 0, current_text)
|
self.buffers.set_text_column(self.buffers.get_selected()-1, 0, current_text)
|
||||||
self.buffers.set_text_column(self.buffers.get_selected()-1, 1, current_text_state)
|
self.buffers.set_text_column(self.buffers.get_selected()-1, 1, current_name)
|
||||||
|
self.buffers.set_text_column(self.buffers.get_selected()-1, 2, current_text_state)
|
||||||
self.buffers.set_text_column(self.buffers.get_selected(), 0, text_above)
|
self.buffers.set_text_column(self.buffers.get_selected(), 0, text_above)
|
||||||
self.buffers.set_text_column(self.buffers.get_selected(), 1, text_above_state)
|
self.buffers.set_text_column(self.buffers.get_selected(), 1, name_above)
|
||||||
|
self.buffers.set_text_column(self.buffers.get_selected(), 2, text_above_state)
|
||||||
|
|
||||||
def move_down(self, *args, **kwargs):
|
def move_down(self, *args, **kwargs):
|
||||||
current = self.buffers.get_selected()
|
current = self.buffers.get_selected()
|
||||||
if current == -1:
|
if current == -1:
|
||||||
output.speak(_(u"Select a buffer first."), True)
|
output.speak(_(u"Select a buffer first."), True)
|
||||||
return False
|
return False
|
||||||
if self.buffers.get_text_column(current, 1) == _(u"Hide"):
|
if self.buffers.get_text_column(current, 2) == _(u"Hide"):
|
||||||
output.speak(_(u"The buffer is hidden, show it first."), True)
|
output.speak(_(u"The buffer is hidden, show it first."), True)
|
||||||
return False
|
return False
|
||||||
if current+1 >= self.buffers.get_count():
|
if current+1 >= self.buffers.get_count():
|
||||||
output.speak(_(u"The buffer is already at the bottom of the list."), True)
|
output.speak(_(u"The buffer is already at the bottom of the list."), True)
|
||||||
return False
|
return False
|
||||||
current_text = self.buffers.get_text_column(self.buffers.get_selected(), 0)
|
current_text = self.buffers.get_text_column(self.buffers.get_selected(), 0)
|
||||||
current_text_state = self.buffers.get_text_column(self.buffers.get_selected(), 1)
|
current_name = self.buffers.get_text_column(self.buffers.get_selected(), 1)
|
||||||
|
current_text_state = self.buffers.get_text_column(self.buffers.get_selected(), 2)
|
||||||
text_below = self.buffers.get_text_column(self.buffers.get_selected()+1, 0)
|
text_below = self.buffers.get_text_column(self.buffers.get_selected()+1, 0)
|
||||||
text_below_state = self.buffers.get_text_column(self.buffers.get_selected()+1, 1)
|
name_below = self.buffers.get_text_column(self.buffers.get_selected()+1, 1)
|
||||||
|
text_below_state = self.buffers.get_text_column(self.buffers.get_selected()+1, 2)
|
||||||
self.buffers.set_text_column(self.buffers.get_selected()+1, 0, current_text)
|
self.buffers.set_text_column(self.buffers.get_selected()+1, 0, current_text)
|
||||||
self.buffers.set_text_column(self.buffers.get_selected()+1, 1, current_text_state)
|
self.buffers.set_text_column(self.buffers.get_selected()+1, 1, current_name)
|
||||||
|
self.buffers.set_text_column(self.buffers.get_selected()+1, 2, current_text_state)
|
||||||
self.buffers.set_text_column(self.buffers.get_selected(), 0, text_below)
|
self.buffers.set_text_column(self.buffers.get_selected(), 0, text_below)
|
||||||
self.buffers.set_text_column(self.buffers.get_selected(), 1, text_below_state)
|
self.buffers.set_text_column(self.buffers.get_selected(), 1, name_below)
|
||||||
|
self.buffers.set_text_column(self.buffers.get_selected(), 2, text_below_state)
|
||||||
|
|
||||||
def get_event(self, ev):
|
def get_event(self, ev):
|
||||||
if ev.GetKeyCode() == wx.WXK_SPACE:
|
if ev.GetKeyCode() == wx.WXK_SPACE:
|
||||||
@ -185,16 +195,16 @@ class other_buffers(wx.Panel):
|
|||||||
|
|
||||||
def change_selected_item(self):
|
def change_selected_item(self):
|
||||||
current = self.buffers.get_selected()
|
current = self.buffers.get_selected()
|
||||||
text = self.buffers.get_text_column(current, 1)
|
text = self.buffers.get_text_column(current, 2)
|
||||||
if text == _(u"Show"):
|
if text == _(u"Show"):
|
||||||
self.buffers.set_text_column(current, 1, _(u"Hide"))
|
self.buffers.set_text_column(current, 2, _(u"Hide"))
|
||||||
else:
|
else:
|
||||||
self.buffers.set_text_column(current, 1, _(u"Show"))
|
self.buffers.set_text_column(current, 2, _(u"Show"))
|
||||||
output.speak(self.buffers.get_text_column(current, 1),True)
|
output.speak(self.buffers.get_text_column(current, 2),True)
|
||||||
def get_list(self):
|
def get_list(self):
|
||||||
buffers_list = []
|
buffers_list = []
|
||||||
for i in xrange(0, self.buffers.get_count()):
|
for i in xrange(0, self.buffers.get_count()):
|
||||||
if self.buffers.get_text_column(i, 1) == _(u"Show"):
|
if self.buffers.get_text_column(i, 2) == _(u"Show"):
|
||||||
buffers_list.append(self.buffers.get_text_column(i, 0))
|
buffers_list.append(self.buffers.get_text_column(i, 0))
|
||||||
return buffers_list
|
return buffers_list
|
||||||
|
|
||||||
|
File diff suppressed because it is too large
Load Diff
2118
tools/twblue.pot
2118
tools/twblue.pot
File diff suppressed because it is too large
Load Diff
@ -1,4 +1,4 @@
|
|||||||
{"current_version": "0.84",
|
{"current_version": "0.85",
|
||||||
"description": "The first version for the new generation of TWBlue.",
|
"description": "The first version for the new generation of TWBlue.",
|
||||||
"date": "day_name_abr month day_numb, 2016",
|
"date": "day_name_abr month day_numb, 2016",
|
||||||
"downloads":
|
"downloads":
|
||||||
|
@ -1 +1 @@
|
|||||||
Subproject commit d40c89666083a45062d0dbd6a78d8f4476f3aecd
|
Subproject commit d927229b99e4f4be5aa0dc89ccef36a36e69bc18
|
Loading…
Reference in New Issue
Block a user