From c1ce8cb8e5e827984f9e450040704c6cb75ccd50 Mon Sep 17 00:00:00 2001 From: Bill Dengler Date: Mon, 11 May 2015 21:21:27 -0400 Subject: [PATCH] Closed #32. --- src/Conf.defaults | 1 + src/controller/buffersController.py | 10 ++++++++++ src/controller/settings.py | 3 +++ src/wxUI/dialogs/configuration.py | 4 +++- 4 files changed, 17 insertions(+), 1 deletion(-) diff --git a/src/Conf.defaults b/src/Conf.defaults index cfa66edf..8b7cb6f9 100644 --- a/src/Conf.defaults +++ b/src/Conf.defaults @@ -14,6 +14,7 @@ announce_stream_status = boolean(default=True) retweet_mode = string(default="ask") persist_size = integer(default=1764) buffer_order = list(default=list('home','mentions','dm','sent_dm','sent_tweets','favorites','followers','friends','blocks','muted','events')) +autohandle_audio = boolean(default=True) [sound] volume = float(default=1.0) diff --git a/src/controller/buffersController.py b/src/controller/buffersController.py index 418b984c..8807903b 100644 --- a/src/controller/buffersController.py +++ b/src/controller/buffersController.py @@ -428,6 +428,16 @@ class baseBufferController(bufferController): @_tweets_exist def url(self): + "Select the best action for a URL." + tweet = self.get_tweet() + urls = utils.find_urls(tweet) + #handle audio-only (no weblinks) tweets. + if len(urls) == 1 and utils.is_audio(tweet) and self.session.settings["general"]["autohandle_audio"]: + return self.audio() + else: + return self.url_browser() + + def url_browser(self): tweet = self.get_tweet() urls = utils.find_urls(tweet) if len(urls) == 1: diff --git a/src/controller/settings.py b/src/controller/settings.py index 910b476d..aca3931a 100644 --- a/src/controller/settings.py +++ b/src/controller/settings.py @@ -91,6 +91,7 @@ class accountSettingsController(globalSettingsController): else: self.dialog.set_value("general", "retweet_mode", _(u"Retweet with comments")) self.dialog.set_value("general", "persist_size", str(self.config["general"]["persist_size"])) + self.dialog.set_value("general", "autohandle_audio", self.config["general"]["autohandle_audio"]) self.dialog.create_other_buffers() buffer_values = self.get_buffers_list() self.dialog.buffers.insert_buffers(buffer_values) @@ -150,6 +151,8 @@ class accountSettingsController(globalSettingsController): self.config["general"]["retweet_mode"] = "direct" else: self.config["general"]["retweet_mode"] = "comment" + if self.config["general"]["autohandle_audio"] != self.dialog.get_value("general", "autohandle_audio"): + self.config["general"]["autohandle_audio"] = self.dialog.get_value("general", "autohandle_audio") buffers_list = self.dialog.buffers.get_list() if set(self.config["general"]["buffer_order"]) != set(buffers_list): self.needs_restart = True diff --git a/src/wxUI/dialogs/configuration.py b/src/wxUI/dialogs/configuration.py index b6220613..b2e26420 100644 --- a/src/wxUI/dialogs/configuration.py +++ b/src/wxUI/dialogs/configuration.py @@ -5,7 +5,7 @@ import logging as original_logger import application from multiplatform_widgets import widgets import output - +import config class general(wx.Panel, baseDialog.BaseWXDialog): def __init__(self, parent, languages): super(general, self).__init__(parent) @@ -94,8 +94,10 @@ class generalAccount(wx.Panel, baseDialog.BaseWXDialog): sizer.Add(rMode, 0, wx.ALL, 5) 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) + self.autohandle_audio= wx.CheckBox(self, -1, _(U"Automatically handle audio on "+config.app["keymap"]["url"])) sizer.Add(PersistSizeLabel, 0, wx.ALL, 5) sizer.Add(self.persist_size, 0, wx.ALL, 5) + sizer.Add(self.autohandle_audio, 0, wx.ALL, 5) self.SetSizer(sizer) class other_buffers(wx.Panel):