mirror of
https://github.com/MCV-Software/TWBlue.git
synced 2025-04-20 17:31:45 -04:00
Merge branch 'next-gen' into sane-gen
This commit is contained in:
commit
e5003e3bac
@ -5,7 +5,9 @@
|
|||||||
* When authorising an account, you will see a dialogue with a cancel button, in case you want to abort the process. Also, NVDA will not be blocked when the process starts. ([#101](https://github.com/manuelcortez/TWBlue/issues/101))
|
* When authorising an account, you will see a dialogue with a cancel button, in case you want to abort the process. Also, NVDA will not be blocked when the process starts. ([#101](https://github.com/manuelcortez/TWBlue/issues/101))
|
||||||
* In the translator module, the list of available languages is fetched automatically from the provider. That means all of these languages will work and there will not be inconsistencies. Also we've removed the first combo box, because the language is detected automatically by Yandex'S API. ([#153](https://github.com/manuelcortez/TWBlue/issues/153))
|
* In the translator module, the list of available languages is fetched automatically from the provider. That means all of these languages will work and there will not be inconsistencies. Also we've removed the first combo box, because the language is detected automatically by Yandex'S API. ([#153](https://github.com/manuelcortez/TWBlue/issues/153))
|
||||||
* Trending topics, searches and conversation buffers will use mute settings set for the session in wich they were opened. ([#157](https://github.com/manuelcortez/TWBlue/issues/157))
|
* Trending topics, searches and conversation buffers will use mute settings set for the session in wich they were opened. ([#157](https://github.com/manuelcortez/TWBlue/issues/157))
|
||||||
* And more. ([#156,](https://github.com/manuelcortez/TWBlue/issues/156) [#163,](https://github.com/manuelcortez/TWBlue/issues/163) [#159,](https://github.com/manuelcortez/TWBlue/issues/159))
|
* The Tweet limit is now 280 characters lenght instead 140. It means you can tweet longer tweets. ([#172](https://github.com/manuelcortez/TWBlue/issues/172))
|
||||||
|
* Per popular request, Status for mention to all and long tweet checkboxes will not be saved in settings. ([#170](https://github.com/manuelcortez/TWBlue/issues/170))
|
||||||
|
* And more. ([#156,](https://github.com/manuelcortez/TWBlue/issues/156) [#163,](https://github.com/manuelcortez/TWBlue/issues/163) [#159,](https://github.com/manuelcortez/TWBlue/issues/159) [#173,](https://github.com/manuelcortez/TWBlue/issues/173) [#174,](https://github.com/manuelcortez/TWBlue/issues/174))
|
||||||
|
|
||||||
## changes in version 0.91 and 0.92
|
## changes in version 0.91 and 0.92
|
||||||
|
|
||||||
|
@ -42,6 +42,4 @@ autoread_buffers = list(default=list(mentions, direct_messages, events))
|
|||||||
spelling_language = string(default="")
|
spelling_language = string(default="")
|
||||||
save_followers_in_autocompletion_db = boolean(default=False)
|
save_followers_in_autocompletion_db = boolean(default=False)
|
||||||
save_friends_in_autocompletion_db = boolean(default=False)
|
save_friends_in_autocompletion_db = boolean(default=False)
|
||||||
twishort_enabled = boolean(default=False)
|
|
||||||
mention_all = boolean(default=True)
|
|
||||||
ocr_language = string(default="")
|
ocr_language = string(default="")
|
@ -136,11 +136,10 @@ class bufferController(object):
|
|||||||
def post_tweet(self, *args, **kwargs):
|
def post_tweet(self, *args, **kwargs):
|
||||||
title = _(u"Tweet")
|
title = _(u"Tweet")
|
||||||
caption = _(u"Write the tweet here")
|
caption = _(u"Write the tweet here")
|
||||||
tweet = messages.tweet(self.session, title, caption, "", twishort_enabled=self.session.settings["mysc"]["twishort_enabled"])
|
tweet = messages.tweet(self.session, title, caption, "")
|
||||||
if tweet.message.get_response() == widgetUtils.OK:
|
if tweet.message.get_response() == widgetUtils.OK:
|
||||||
self.session.settings["mysc"]["twishort_enabled"] = tweet.message.long_tweet.GetValue()
|
|
||||||
text = tweet.message.get_text()
|
text = tweet.message.get_text()
|
||||||
if len(text) > 140 and tweet.message.get("long_tweet") == True:
|
if len(text) > 280 and tweet.message.get("long_tweet") == True:
|
||||||
if not hasattr(tweet, "attachments"):
|
if not hasattr(tweet, "attachments"):
|
||||||
text = twishort.create_tweet(self.session.settings["twitter"]["user_key"], self.session.settings["twitter"]["user_secret"], text)
|
text = twishort.create_tweet(self.session.settings["twitter"]["user_key"], self.session.settings["twitter"]["user_secret"], text)
|
||||||
else:
|
else:
|
||||||
@ -517,12 +516,9 @@ class baseBufferController(bufferController):
|
|||||||
title=_("Reply to {arg0}").format(arg0=screen_name)
|
title=_("Reply to {arg0}").format(arg0=screen_name)
|
||||||
else:
|
else:
|
||||||
title=_("Reply")
|
title=_("Reply")
|
||||||
message = messages.reply(self.session, title, _(u"Reply to %s") % (screen_name,), "", twishort_enabled=self.session.settings["mysc"]["twishort_enabled"], users=users, ids=ids)
|
message = messages.reply(self.session, title, _(u"Reply to %s") % (screen_name,), "", users=users, ids=ids)
|
||||||
if message.message.get_response() == widgetUtils.OK:
|
if message.message.get_response() == widgetUtils.OK:
|
||||||
params = {"_sound": "reply_send.ogg", "in_reply_to_status_id": id,}
|
params = {"_sound": "reply_send.ogg", "in_reply_to_status_id": id,}
|
||||||
self.session.settings["mysc"]["twishort_enabled"] = message.message.long_tweet.GetValue()
|
|
||||||
if len(message.users) > 0:
|
|
||||||
self.session.settings["mysc"]["mention_all"] = message.message.mentionAll.GetValue()
|
|
||||||
text = message.message.get_text()
|
text = message.message.get_text()
|
||||||
if twishort_enabled == False:
|
if twishort_enabled == False:
|
||||||
excluded_ids = message.get_ids()
|
excluded_ids = message.get_ids()
|
||||||
@ -531,7 +527,7 @@ class baseBufferController(bufferController):
|
|||||||
else:
|
else:
|
||||||
mentioned_people = message.get_people()
|
mentioned_people = message.get_people()
|
||||||
text = "@"+screen_name+" "+mentioned_people+u" "+text
|
text = "@"+screen_name+" "+mentioned_people+u" "+text
|
||||||
if len(text) > 140 and message.message.get("long_tweet") == True:
|
if len(text) > 280 and message.message.get("long_tweet") == True:
|
||||||
if message.image == None:
|
if message.image == None:
|
||||||
text = twishort.create_tweet(self.session.settings["twitter"]["user_key"], self.session.settings["twitter"]["user_secret"], text)
|
text = twishort.create_tweet(self.session.settings["twitter"]["user_key"], self.session.settings["twitter"]["user_secret"], text)
|
||||||
else:
|
else:
|
||||||
@ -589,7 +585,7 @@ class baseBufferController(bufferController):
|
|||||||
comments = tweet["full_text"]
|
comments = tweet["full_text"]
|
||||||
else:
|
else:
|
||||||
comments = tweet["text"]
|
comments = tweet["text"]
|
||||||
retweet = messages.tweet(self.session, _(u"Quote"), _(u"Add your comment to the tweet"), u"“@%s: %s ”" % (tweet["user"]["screen_name"], comments), max=116, messageType="retweet", twishort_enabled=self.session.settings["mysc"]["twishort_enabled"])
|
retweet = messages.tweet(self.session, _(u"Quote"), _(u"Add your comment to the tweet"), u"“@%s: %s ”" % (tweet["user"]["screen_name"], comments), max=256, messageType="retweet")
|
||||||
if comment != '':
|
if comment != '':
|
||||||
retweet.message.set_text(comment)
|
retweet.message.set_text(comment)
|
||||||
if retweet.message.get_response() == widgetUtils.OK:
|
if retweet.message.get_response() == widgetUtils.OK:
|
||||||
@ -1217,12 +1213,11 @@ class trendsBufferController(bufferController):
|
|||||||
if self.buffer.list.get_count() == 0: return
|
if self.buffer.list.get_count() == 0: return
|
||||||
title = _(u"Tweet")
|
title = _(u"Tweet")
|
||||||
caption = _(u"Write the tweet here")
|
caption = _(u"Write the tweet here")
|
||||||
tweet = messages.tweet(self.session, title, caption, self.get_message()+ " ", twishort_enabled=self.session.settings["mysc"]["twishort_enabled"])
|
tweet = messages.tweet(self.session, title, caption, self.get_message()+ " ")
|
||||||
tweet.message.set_cursor_at_end()
|
tweet.message.set_cursor_at_end()
|
||||||
if tweet.message.get_response() == widgetUtils.OK:
|
if tweet.message.get_response() == widgetUtils.OK:
|
||||||
self.session.settings["mysc"]["twishort_enabled"] = tweet.message.long_tweet.GetValue()
|
|
||||||
text = tweet.message.get_text()
|
text = tweet.message.get_text()
|
||||||
if len(text) > 140 and tweet.message.get("long_tweet") == True:
|
if len(text) > 280 and tweet.message.get("long_tweet") == True:
|
||||||
if tweet.image == None:
|
if tweet.image == None:
|
||||||
text = twishort.create_tweet(self.session.settings["twitter"]["user_key"], self.session.settings["twitter"]["user_secret"], text)
|
text = twishort.create_tweet(self.session.settings["twitter"]["user_key"], self.session.settings["twitter"]["user_secret"], text)
|
||||||
else:
|
else:
|
||||||
|
@ -18,7 +18,7 @@ from twitter import utils
|
|||||||
|
|
||||||
class basicTweet(object):
|
class basicTweet(object):
|
||||||
""" This class handles the tweet main features. Other classes should derive from this class."""
|
""" This class handles the tweet main features. Other classes should derive from this class."""
|
||||||
def __init__(self, session, title, caption, text, messageType="tweet", max=140, *args, **kwargs):
|
def __init__(self, session, title, caption, text, messageType="tweet", max=280, *args, **kwargs):
|
||||||
super(basicTweet, self).__init__()
|
super(basicTweet, self).__init__()
|
||||||
self.max = max
|
self.max = max
|
||||||
self.title = title
|
self.title = title
|
||||||
@ -124,14 +124,11 @@ class basicTweet(object):
|
|||||||
self.message.text_focus()
|
self.message.text_focus()
|
||||||
|
|
||||||
class tweet(basicTweet):
|
class tweet(basicTweet):
|
||||||
def __init__(self, session, title, caption, text, twishort_enabled, messageType="tweet", max=140, *args, **kwargs):
|
def __init__(self, session, title, caption, text, max=280, messageType="tweet", *args, **kwargs):
|
||||||
super(tweet, self).__init__(session, title, caption, text, messageType, max, *args, **kwargs)
|
super(tweet, self).__init__(session, title, caption, text, messageType, max, *args, **kwargs)
|
||||||
self.image = None
|
self.image = None
|
||||||
widgetUtils.connect_event(self.message.upload_image, widgetUtils.BUTTON_PRESSED, self.upload_image)
|
widgetUtils.connect_event(self.message.upload_image, widgetUtils.BUTTON_PRESSED, self.upload_image)
|
||||||
widgetUtils.connect_event(self.message.autocompletionButton, widgetUtils.BUTTON_PRESSED, self.autocomplete_users)
|
widgetUtils.connect_event(self.message.autocompletionButton, widgetUtils.BUTTON_PRESSED, self.autocomplete_users)
|
||||||
if twishort_enabled == False:
|
|
||||||
try: self.message.long_tweet.SetValue(False)
|
|
||||||
except AttributeError: pass
|
|
||||||
self.text_processor()
|
self.text_processor()
|
||||||
|
|
||||||
def upload_image(self, *args, **kwargs):
|
def upload_image(self, *args, **kwargs):
|
||||||
@ -144,16 +141,13 @@ class tweet(basicTweet):
|
|||||||
c.show_menu()
|
c.show_menu()
|
||||||
|
|
||||||
class reply(tweet):
|
class reply(tweet):
|
||||||
def __init__(self, session, title, caption, text, twishort_enabled, users=[], ids=[]):
|
def __init__(self, session, title, caption, text, users=[], ids=[]):
|
||||||
super(reply, self).__init__(session, title, caption, text, twishort_enabled, messageType="reply", users=users)
|
super(reply, self).__init__(session, title, caption, text, messageType="reply", users=users)
|
||||||
self.ids = ids
|
self.ids = ids
|
||||||
self.users = users
|
self.users = users
|
||||||
if len(users) > 0:
|
if len(users) > 0:
|
||||||
widgetUtils.connect_event(self.message.mentionAll, widgetUtils.CHECKBOX, self.mention_all)
|
widgetUtils.connect_event(self.message.mentionAll, widgetUtils.CHECKBOX, self.mention_all)
|
||||||
self.message.enable_button("mentionAll")
|
self.message.enable_button("mentionAll")
|
||||||
self.message.mentionAll.SetValue(self.session.settings["mysc"]["mention_all"])
|
|
||||||
if self.message.mentionAll.GetValue() == True:
|
|
||||||
self.mention_all()
|
|
||||||
self.message.set_cursor_at_end()
|
self.message.set_cursor_at_end()
|
||||||
self.text_processor()
|
self.text_processor()
|
||||||
|
|
||||||
@ -167,7 +161,6 @@ class reply(tweet):
|
|||||||
i.SetValue(False)
|
i.SetValue(False)
|
||||||
i.Show()
|
i.Show()
|
||||||
|
|
||||||
|
|
||||||
def get_ids(self):
|
def get_ids(self):
|
||||||
excluded_ids = ""
|
excluded_ids = ""
|
||||||
for i in xrange(0, len(self.message.checkboxes)):
|
for i in xrange(0, len(self.message.checkboxes)):
|
||||||
|
@ -60,12 +60,12 @@ class timelinesStreamer(TwythonStreamer):
|
|||||||
self.friends = friends
|
self.friends = friends
|
||||||
|
|
||||||
def on_success(self, data):
|
def on_success(self, data):
|
||||||
# try:
|
|
||||||
if "text" in data and utils.is_allowed(data, self.session.settings["twitter"]["ignored_clients"]) == True:
|
if "text" in data and utils.is_allowed(data, self.session.settings["twitter"]["ignored_clients"]) == True:
|
||||||
if data.has_key("extended_tweet"):
|
if data.has_key("extended_tweet"):
|
||||||
data["full_text"] = data["extended_tweet"]["full_text"]
|
data["full_text"] = data["extended_tweet"]["full_text"]
|
||||||
# data["entities"] = data["extended_tweet"]["entities"]
|
if data.has_key("retweeted_status"):
|
||||||
# log.error(data["extended_entities"])
|
if data["retweeted_status"].has_key("extended_tweet"):
|
||||||
|
data["retweeted_status"]["full_text"] = data["retweeted_status"]["extended_tweet"]["full_text"]
|
||||||
|
data["full_text"] = data["text"]
|
||||||
|
data["retweeted_status"]["entities"] = data["retweeted_status"]["extended_tweet"]["entities"]
|
||||||
self.check_tls(data)
|
self.check_tls(data)
|
||||||
# except:
|
|
||||||
# pass
|
|
||||||
|
@ -132,8 +132,11 @@ class streamer(TwythonStreamer):
|
|||||||
if data.has_key("extended_tweet"):
|
if data.has_key("extended_tweet"):
|
||||||
data["full_text"] = data["extended_tweet"]["full_text"]
|
data["full_text"] = data["extended_tweet"]["full_text"]
|
||||||
data["entities"] = data["extended_tweet"]["entities"]
|
data["entities"] = data["extended_tweet"]["entities"]
|
||||||
# log.error(data["extended_tweet"])
|
if data.has_key("retweeted_status"):
|
||||||
# log.error("Extended tweet")
|
if data["retweeted_status"].has_key("extended_tweet"):
|
||||||
|
data["retweeted_status"]["full_text"] = data["retweeted_status"]["extended_tweet"]["full_text"]
|
||||||
|
data["full_text"] = data["text"]
|
||||||
|
data["retweeted_status"]["entities"] = data["retweeted_status"]["extended_tweet"]["entities"]
|
||||||
if data["user"]["id"] in self.muted_users: return
|
if data["user"]["id"] in self.muted_users: return
|
||||||
self.check_mentions(data)
|
self.check_mentions(data)
|
||||||
self.check_send(data)
|
self.check_send(data)
|
||||||
|
@ -44,7 +44,9 @@ def compose_tweet(tweet, db, relative_times, show_screen_names=False):
|
|||||||
value = "full_text"
|
value = "full_text"
|
||||||
else:
|
else:
|
||||||
value = "text"
|
value = "text"
|
||||||
# log.exception(tweet.keys())
|
if tweet.has_key("retweeted_status") and value != "message":
|
||||||
|
text = StripChars(tweet["retweeted_status"][value])
|
||||||
|
else:
|
||||||
text = StripChars(tweet[value])
|
text = StripChars(tweet[value])
|
||||||
if show_screen_names:
|
if show_screen_names:
|
||||||
user = tweet["user"]["screen_name"]
|
user = tweet["user"]["screen_name"]
|
||||||
@ -53,12 +55,11 @@ def compose_tweet(tweet, db, relative_times, show_screen_names=False):
|
|||||||
source = re.sub(r"(?s)<.*?>", "", tweet["source"])
|
source = re.sub(r"(?s)<.*?>", "", tweet["source"])
|
||||||
if tweet.has_key("retweeted_status"):
|
if tweet.has_key("retweeted_status"):
|
||||||
if tweet.has_key("message") == False and tweet["retweeted_status"]["is_quote_status"] == False:
|
if tweet.has_key("message") == False and tweet["retweeted_status"]["is_quote_status"] == False:
|
||||||
text = "RT @%s: %s" % (tweet["retweeted_status"]["user"]["screen_name"], StripChars(tweet["retweeted_status"][value]))
|
text = "RT @%s: %s" % (tweet["retweeted_status"]["user"]["screen_name"], text)
|
||||||
elif tweet["retweeted_status"]["is_quote_status"]:
|
elif tweet["retweeted_status"]["is_quote_status"]:
|
||||||
text = "%s" % (StripChars(tweet[value]))
|
text = "%s" % (text)
|
||||||
else:
|
else:
|
||||||
text = "RT @%s: %s" % (tweet["retweeted_status"]["user"]["screen_name"], StripChars(tweet[value]))
|
text = "RT @%s: %s" % (tweet["retweeted_status"]["user"]["screen_name"], text)
|
||||||
# if text[-1] in chars: text=text+"."
|
|
||||||
if tweet.has_key("message") == False:
|
if tweet.has_key("message") == False:
|
||||||
urls = utils.find_urls_in_text(text)
|
urls = utils.find_urls_in_text(text)
|
||||||
for url in range(0, len(urls)):
|
for url in range(0, len(urls)):
|
||||||
|
@ -71,7 +71,6 @@ class tweet(textLimited):
|
|||||||
self.createTextArea(message, text)
|
self.createTextArea(message, text)
|
||||||
self.mainBox.Add(self.textBox, 0, wx.ALL, 5)
|
self.mainBox.Add(self.textBox, 0, wx.ALL, 5)
|
||||||
self.long_tweet = wx.CheckBox(self.panel, -1, _(u"&Long tweet"))
|
self.long_tweet = wx.CheckBox(self.panel, -1, _(u"&Long tweet"))
|
||||||
self.long_tweet.SetValue(True)
|
|
||||||
self.upload_image = wx.Button(self.panel, -1, _(u"&Upload image..."), size=wx.DefaultSize)
|
self.upload_image = wx.Button(self.panel, -1, _(u"&Upload image..."), size=wx.DefaultSize)
|
||||||
self.spellcheck = wx.Button(self.panel, -1, _("Check &spelling..."), size=wx.DefaultSize)
|
self.spellcheck = wx.Button(self.panel, -1, _("Check &spelling..."), size=wx.DefaultSize)
|
||||||
self.attach = wx.Button(self.panel, -1, _(u"&Attach audio..."), size=wx.DefaultSize)
|
self.attach = wx.Button(self.panel, -1, _(u"&Attach audio..."), size=wx.DefaultSize)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user