mirror of
https://github.com/MCV-Software/TWBlue.git
synced 2025-04-20 17:31:45 -04:00
Merge 884532d7aff642013b2f169619ae628c816df356 into 5467655264d84ab614451e69f4ce38977c561ec6
This commit is contained in:
commit
e0bf77e87f
@ -6,6 +6,9 @@ ignored_sessions = list(default=list())
|
|||||||
[app-settings]
|
[app-settings]
|
||||||
language = string(default="system")
|
language = string(default="system")
|
||||||
hide_gui = boolean(default=False)
|
hide_gui = boolean(default=False)
|
||||||
|
use_slow_audio_algo = boolean(default=False)
|
||||||
|
use_Codeofdusk_audio_handlers = boolean(default=False)
|
||||||
|
prefer_geocodes = 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)
|
||||||
use_invisible_keyboard_shorcuts = boolean(default=True)
|
use_invisible_keyboard_shorcuts = boolean(default=True)
|
||||||
|
@ -81,29 +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 interact(self):
|
|
||||||
if hasattr(sound.URLPlayer,'stream'):
|
|
||||||
return sound.URLPlayer.stop_audio(delete=True)
|
|
||||||
tweet = self.get_tweet()
|
|
||||||
url=None
|
|
||||||
urls = utils.find_urls(tweet)
|
|
||||||
if len(urls) == 1:
|
|
||||||
url=urls[0]
|
|
||||||
elif len(urls) > 1:
|
|
||||||
urls_list = dialogs.urlList.urlList()
|
|
||||||
urls_list.populate_list(urls)
|
|
||||||
if urls_list.get_response() == widgetUtils.OK:
|
|
||||||
url=urls_list.get_string()
|
|
||||||
if hasattr(urls_list, "destroy"): urls_list.destroy()
|
|
||||||
if url != None:
|
|
||||||
output.speak(_(u"Opening media..."), True)
|
|
||||||
if sound.URLPlayer.is_playable(url=url, play=True, volume=self.session.settings["sound"]["volume"]) == False:
|
|
||||||
return webbrowser.open_new_tab(url)
|
|
||||||
# else:
|
|
||||||
# output.speak(_(u"Not actionable."), True)
|
|
||||||
# self.session.sound.play("error.ogg")
|
|
||||||
|
|
||||||
def start_stream(self):
|
def start_stream(self):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
@ -992,11 +992,44 @@ class Controller(object):
|
|||||||
def interact(self):
|
def interact(self):
|
||||||
"Select the best action for the currently focused tweet (audio, geocode, URL, etc)."
|
"Select the best action for the currently focused tweet (audio, geocode, URL, etc)."
|
||||||
buffer = self.get_current_buffer()
|
buffer = self.get_current_buffer()
|
||||||
buffer.interact()
|
if hasattr(sound.URLPlayer,'stream') and config.app['app-settings']['use_Codeofdusk_audio_handlers']:
|
||||||
|
return sound.URLPlayer.stop_audio(delete=True)
|
||||||
|
tweet = buffer.get_tweet()
|
||||||
|
if utils.is_geocoded(tweet) and config.app['app-settings']['use_Codeofdusk_audio_handlers'] and config.app['app-settings']['prefer_geocodes']:
|
||||||
|
return self.reverse_geocode()
|
||||||
|
if config.app['app-settings']['use_Codeofdusk_audio_handlers'] == False:
|
||||||
|
return buffer.url()
|
||||||
|
url=None
|
||||||
|
urls = utils.find_urls(tweet)
|
||||||
|
if len(urls) == 1:
|
||||||
|
url=urls[0]
|
||||||
|
elif len(urls) > 1:
|
||||||
|
urls_list = dialogs.urlList.urlList()
|
||||||
|
urls_list.populate_list(urls)
|
||||||
|
if urls_list.get_response() == widgetUtils.OK:
|
||||||
|
url=urls_list.get_string()
|
||||||
|
if hasattr(urls_list, "destroy"): urls_list.destroy()
|
||||||
|
if url != None:
|
||||||
|
output.speak("Opening media...",True)
|
||||||
|
if sound.URLPlayer.is_playable(url=url,play=True,volume=buffer.session.settings["sound"]["volume"]) == False:
|
||||||
|
return webbrowser.open_new_tab(url)
|
||||||
|
else:
|
||||||
|
output.speak(_(u"Not actionable."), True)
|
||||||
|
buffer.session.sound.play("error.ogg")
|
||||||
|
|
||||||
|
def secondary_interact(self):
|
||||||
|
buffer = self.get_current_buffer()
|
||||||
|
tweet=buffer.get_tweet()
|
||||||
|
if utils.is_geocoded(tweet) and config.app['app-settings']['use_Codeofdusk_audio_handlers'] and config.app['app-settings']['prefer_geocodes']:
|
||||||
|
return self.view_reverse_geocode()
|
||||||
|
elif config.app['app-settings']['use_Codeofdusk_audio_handlers']:
|
||||||
|
return buffer.url()
|
||||||
|
else:
|
||||||
|
return buffer.audio()
|
||||||
|
|
||||||
def url(self, *args, **kwargs):
|
def url(self, *args, **kwargs):
|
||||||
buffer = self.get_current_buffer()
|
buffer = self.get_current_buffer()
|
||||||
buffer.url()
|
return buffer.url()
|
||||||
|
|
||||||
def audio(self, *args, **kwargs):
|
def audio(self, *args, **kwargs):
|
||||||
self.get_current_buffer().audio()
|
self.get_current_buffer().audio()
|
||||||
|
@ -60,6 +60,9 @@ class globalSettingsController(object):
|
|||||||
self.dialog.set_value("general", "use_invisible_shorcuts", config.app["app-settings"]["use_invisible_keyboard_shorcuts"])
|
self.dialog.set_value("general", "use_invisible_shorcuts", config.app["app-settings"]["use_invisible_keyboard_shorcuts"])
|
||||||
self.dialog.set_value("general", "disable_sapi5", config.app["app-settings"]["voice_enabled"])
|
self.dialog.set_value("general", "disable_sapi5", config.app["app-settings"]["voice_enabled"])
|
||||||
self.dialog.set_value("general", "hide_gui", config.app["app-settings"]["hide_gui"])
|
self.dialog.set_value("general", "hide_gui", config.app["app-settings"]["hide_gui"])
|
||||||
|
self.dialog.set_value("general", "use_slow_audio_algo", config.app["app-settings"]["use_slow_audio_algo"])
|
||||||
|
self.dialog.set_value("general", "use_Codeofdusk_audio_handlers", config.app["app-settings"]["use_Codeofdusk_audio_handlers"])
|
||||||
|
self.dialog.set_value("general", "prefer_geocodes", config.app["app-settings"]["prefer_geocodes"])
|
||||||
self.dialog.create_proxy()
|
self.dialog.create_proxy()
|
||||||
self.dialog.set_value("proxy", "server", config.app["proxy"]["server"])
|
self.dialog.set_value("proxy", "server", config.app["proxy"]["server"])
|
||||||
self.dialog.set_value("proxy", "port", config.app["proxy"]["port"])
|
self.dialog.set_value("proxy", "port", config.app["proxy"]["port"])
|
||||||
@ -84,7 +87,12 @@ class globalSettingsController(object):
|
|||||||
config.app["app-settings"]["hide_gui"] = self.dialog.get_value("general", "hide_gui")
|
config.app["app-settings"]["hide_gui"] = self.dialog.get_value("general", "hide_gui")
|
||||||
config.app["app-settings"]["ask_at_exit"] = self.dialog.get_value("general", "ask_at_exit")
|
config.app["app-settings"]["ask_at_exit"] = self.dialog.get_value("general", "ask_at_exit")
|
||||||
config.app["app-settings"]["play_ready_sound"] = self.dialog.get_value("general", "play_ready_sound")
|
config.app["app-settings"]["play_ready_sound"] = self.dialog.get_value("general", "play_ready_sound")
|
||||||
|
config.app["app-settings"]["use_Codeofdusk_audio_handlers"] = self.dialog.get_value("general", "use_Codeofdusk_audio_handlers")
|
||||||
|
config.app["app-settings"]["prefer_geocodes"] = self.dialog.get_value("general", "prefer_geocodes")
|
||||||
config.app["app-settings"]["speak_ready_msg"] = self.dialog.get_value("general", "speak_ready_msg")
|
config.app["app-settings"]["speak_ready_msg"] = self.dialog.get_value("general", "speak_ready_msg")
|
||||||
|
if config.app["app-settings"]["use_slow_audio_algo"] != self.dialog.get_value("general", "use_invisible_shorcuts"):
|
||||||
|
config.app["app-settings"]["use_slow_audio_algo"] = self.dialog.get_value("general", "use_invisible_shorcuts")
|
||||||
|
self.needs_restart=True
|
||||||
if config.app["proxy"]["server"] != self.dialog.get_value("proxy", "server") or config.app["proxy"]["port"] != self.dialog.get_value("proxy", "port") or config.app["proxy"]["user"] != self.dialog.get_value("proxy", "user") or config.app["proxy"]["password"] != self.dialog.get_value("proxy", "password"):
|
if config.app["proxy"]["server"] != self.dialog.get_value("proxy", "server") or config.app["proxy"]["port"] != self.dialog.get_value("proxy", "port") or config.app["proxy"]["user"] != self.dialog.get_value("proxy", "user") or config.app["proxy"]["password"] != self.dialog.get_value("proxy", "password"):
|
||||||
if self.is_started == True:
|
if self.is_started == True:
|
||||||
self.needs_restart = True
|
self.needs_restart = True
|
||||||
|
@ -24,8 +24,9 @@ view_item = control+win+v
|
|||||||
exit = control+win+f4
|
exit = control+win+f4
|
||||||
open_timeline = control+win+i
|
open_timeline = control+win+i
|
||||||
remove_buffer = control+win+shift+i
|
remove_buffer = control+win+shift+i
|
||||||
interact = control+alt+win+return
|
interact = control+win+return
|
||||||
url = control+win+return
|
secondary_interact = control+alt+win+return
|
||||||
|
|
||||||
volume_up = control+win+alt+up
|
volume_up = control+win+alt+up
|
||||||
volume_down = control+win+alt+down
|
volume_down = control+win+alt+down
|
||||||
go_home = control+win+home
|
go_home = control+win+home
|
||||||
|
@ -44,16 +44,34 @@ def find_next_reply(id, listItem):
|
|||||||
if listItem[i]["in_reply_to_status_id_str"] == str(id): return i
|
if listItem[i]["in_reply_to_status_id_str"] == str(id): return i
|
||||||
return None
|
return None
|
||||||
|
|
||||||
def is_audio(tweet):
|
def is_audio(tweet,force=False):
|
||||||
|
if force == False and 'is_audio' in tweet:
|
||||||
|
return tweet['is_audio']
|
||||||
try:
|
try:
|
||||||
if len(find_urls(tweet)) < 1:
|
if len(find_urls(tweet)) < 1:
|
||||||
|
tweet['is_audio']=False
|
||||||
return False
|
return False
|
||||||
|
|
||||||
if len(tweet["entities"]["hashtags"]) > 0:
|
if len(tweet["entities"]["hashtags"]) > 0:
|
||||||
for i in tweet["entities"]["hashtags"]:
|
for i in tweet["entities"]["hashtags"]:
|
||||||
if i["text"] == "audio":
|
if i["text"] == "audio":
|
||||||
|
tweet['is_audio']=True
|
||||||
return True
|
return True
|
||||||
except:
|
except:
|
||||||
log.exception("Exception while executing is_audio hashtag algorithm")
|
log.exception("Exception while executing is_audio hashtag algorithm")
|
||||||
|
try:
|
||||||
|
if config.app["app-settings"]["use_slow_audio_algo"]:
|
||||||
|
for u in find_urls(tweet):
|
||||||
|
if url_is_audio(u):
|
||||||
|
tweet['is_audio']=True
|
||||||
|
return True
|
||||||
|
except:
|
||||||
|
log.exception("Exception while executing is_audio Codeofdusk algorithm.")
|
||||||
|
tweet['is_audio']=False
|
||||||
|
return False
|
||||||
|
|
||||||
|
def url_is_audio(u):
|
||||||
|
return sound.URLPlayer.is_playable(u)
|
||||||
|
|
||||||
def is_geocoded(tweet):
|
def is_geocoded(tweet):
|
||||||
if tweet.has_key("coordinates") and tweet["coordinates"] != None:
|
if tweet.has_key("coordinates") and tweet["coordinates"] != None:
|
||||||
|
@ -30,6 +30,12 @@ class general(wx.Panel, baseDialog.BaseWXDialog):
|
|||||||
sizer.Add(self.disable_sapi5, 0, wx.ALL, 5)
|
sizer.Add(self.disable_sapi5, 0, wx.ALL, 5)
|
||||||
self.hide_gui = wx.CheckBox(self, -1, _(u"Hide GUI on launch"))
|
self.hide_gui = wx.CheckBox(self, -1, _(u"Hide GUI on launch"))
|
||||||
sizer.Add(self.hide_gui, 0, wx.ALL, 5)
|
sizer.Add(self.hide_gui, 0, wx.ALL, 5)
|
||||||
|
self.use_slow_audio_algo = wx.CheckBox(self, -1, _(u"Use slow audio tweet detection algorithm (increases audio tweet detection accuracy at the cost of significantly reduced client performance)"))
|
||||||
|
sizer.Add(self.use_slow_audio_algo, 0, wx.ALL, 5)
|
||||||
|
self.use_Codeofdusk_audio_handlers = wx.CheckBox(self, -1, _(u"Use Codeofdusk's tweet interaction handlers (intelegently handle audio and geotweets, but may impact client performance on very slow connections)"))
|
||||||
|
sizer.Add(self.use_Codeofdusk_audio_handlers, 0, wx.ALL, 5)
|
||||||
|
self.prefer_geocodes = wx.CheckBox(self, -1, _(u"Codeofdusk's tweet interaction handlers: always display geocode on interact, even if the tweet contains URLs"))
|
||||||
|
sizer.Add(self.prefer_geocodes, 0, wx.ALL, 5)
|
||||||
kmbox = wx.BoxSizer(wx.VERTICAL)
|
kmbox = wx.BoxSizer(wx.VERTICAL)
|
||||||
km_label = wx.StaticText(self, -1, _(u"Keymap"))
|
km_label = wx.StaticText(self, -1, _(u"Keymap"))
|
||||||
self.km = wx.ComboBox(self, -1, choices=keymaps, style=wx.CB_READONLY)
|
self.km = wx.ComboBox(self, -1, choices=keymaps, style=wx.CB_READONLY)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user