Compare commits

...

9 Commits
v0.86 ... v0.87

51 changed files with 24250 additions and 37073 deletions

View File

@@ -2,7 +2,7 @@
name = 'TWBlue'
snapshot = False
if snapshot == False:
version = "0.86"
version = "0.87"
update_url = 'http://twblue.es/updates/twblue_ngen.json'
mirror_update_url = 'https://raw.githubusercontent.com/manuelcortez/TWBlue/next-gen/updates/stable.json'
else:

View File

@@ -5,8 +5,8 @@
msgid ""
msgstr ""
"Project-Id-Version: TW Blue documentation 0.46\n"
"POT-Creation-Date: 2016-08-05 08:33+Hora de verano central (México)\n"
"PO-Revision-Date: 2016-09-17 14:53+0400\n"
"POT-Creation-Date: 2016-10-02 21:05+Hora de verano romance\n"
"PO-Revision-Date: 2016-10-03 11:52+0400\n"
"Last-Translator: Valeria <luciana.lu3a@gmail.com>\n"
"Language-Team: \n"
"Language: ru\n"
@@ -601,9 +601,9 @@ msgstr ""
"пользователю, нажав эту кнопку. Откроется диалог, подобный окну создания "
"твита, но с уже заполненным именем пользователя (например, @user), и вам "
"останется только написать свое сообщение. Если твит относится к нескольким "
"пользователям, можно нажать Шифт-Таб и активировать кнопку Упомянуть всех. "
"Если вы находитесь в списке друзей или читателей, эта кнопка будет "
"называться Упомянуть."
"пользователям, можно нажать Шифт-Таб и отметить флажок Упомянуть всех. Если "
"вы находитесь в списке друзей или читателей, этот флажок будет называться "
"Упомянуть."
#: ../doc\strings.py:68
msgid ""
@@ -615,10 +615,10 @@ msgid ""
msgstr ""
"* Личное сообщение: тоже, что и отправка твита, но это приватное сообщение, "
"которое может быть просмотрено только тем пользователем, которому вы его "
"отправляете. Чтобы посмотреть получателя, нажмите Шифт-таб. Если в твите, "
"который вы читаете, упомянуто несколько пользователей,стрелками вверх и вниз "
"можно выбрать получателя сообщения, или ввести имя вручную, без знака "
"собаки."
"отправляете. Чтобы посмотреть получателя, нажмите Шифт-таб. Если в "
"сообщении, которое вы читаете, упомянуто несколько пользователей, стрелками "
"вверх и вниз можно выбрать получателя сообщения, или ввести имя вручную, без "
"знака собаки."
#: ../doc\strings.py:69
msgid ""

View File

@@ -20,8 +20,8 @@ CommercialUse=true
EULAVersion=2
[Version]
PackageVersion=0.86.0.0
DisplayVersion=0.86
PackageVersion=0.87.0.0
DisplayVersion=0.87
[Control]
Icons=1

View File

@@ -13,9 +13,9 @@ SetCompressor /solid lzma
SetDatablockOptimize on
VIAddVersionKey ProductName "TWBlue"
VIAddVersionKey LegalCopyright "Copyright 2016 Manuel Cortéz."
VIAddVersionKey ProductVersion "0.86"
VIAddVersionKey FileVersion "0.86"
VIProductVersion "0.86.0.0"
VIAddVersionKey ProductVersion "0.87"
VIAddVersionKey FileVersion "0.87"
VIProductVersion "0.87.0.0"
!insertmacro MUI_PAGE_WELCOME
!define MUI_LICENSEPAGE_RADIOBUTTONS
!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" "InstallLocation" $INSTDIR
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall" "Publisher" "Manuel Cortéz"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\twblue" "DisplayVersion" "0.86"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\twblue" "DisplayVersion" "0.87"
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" "VersionMinor" 86
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\twblue" "VersionMinor" 87
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\twblue" "NoModify" 1
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\twblue" "NoRepair" 1
SectionEnd

View File

@@ -39,3 +39,4 @@ spelling_language = string(default="")
save_followers_in_autocompletion_db = boolean(default=False)
save_friends_in_autocompletion_db = boolean(default=False)
twishort_enabled = boolean(default=False)
mention_all = boolean(default=True)

View File

@@ -2,7 +2,7 @@
name = 'TWBlue'
snapshot = False
if snapshot == False:
version = "0.86"
version = "0.87"
update_url = 'http://twblue.es/updates/twblue_ngen.json'
mirror_update_url = 'https://raw.githubusercontent.com/manuelcortez/TWBlue/next-gen/updates/stable.json'
else:

View File

@@ -479,11 +479,14 @@ class baseBufferController(bufferController):
tweet = self.get_right_tweet()
screen_name = tweet["user"]["screen_name"]
id = tweet["id"]
users = len(utils.get_all_mentioned(tweet, self.session.db))
users = utils.get_all_mentioned(tweet, self.session.db)
message = messages.reply(self.session, _(u"Reply"), _(u"Reply to %s") % (screen_name,), "", twishort_enabled=self.session.settings["mysc"]["twishort_enabled"], users=users)
if message.message.get_response() == widgetUtils.OK:
self.session.settings["mysc"]["twishort_enabled"] = message.message.long_tweet.GetValue()
self.session.settings["mysc"]["mention_all"] = message.message.mentionAll.GetValue()
text = message.message.get_text()
if message.message.mentionAll.GetValue() == False:
text = u"@{0} {1}".format(screen_name, text)
if len(text) > 140 and message.message.get("long_tweet") == True:
if message.image == None:
text = twishort.create_tweet(self.session.settings["twitter"]["user_key"], self.session.settings["twitter"]["user_secret"], text)

View File

@@ -148,10 +148,10 @@ class reply(tweet):
def __init__(self, session, title, caption, text, twishort_enabled, users=None):
super(reply, self).__init__(session, title, caption, text, twishort_enabled, messageType="reply")
self.message.mentionAll.SetValue(True)
if users > 1:
if len(users) > 1:
# widgetUtils.connect_event(self.message.mentionAll, widgetUtils.CHECKBOX, self.mention_all)
self.message.enable_button("mentionAll")
self.message.mentionAll.SetValue(False)
self.message.mentionAll.SetValue(self.session.settings["mysc"]["mention_all"])
self.message.set_cursor_at_end()
self.text_processor()

View File

@@ -11,7 +11,7 @@ right = string(default="alt+win+right")
next_account = string(default="alt+win+shift+right")
previous_account = string(default="alt+win+shift+left")
open_conversation = string(default="alt+win+c")
show_hide = string(default="alt+win+w")
show_hide = string(default="control+win+w")
post_tweet = string(default="alt+win+n")
post_reply = string(default="control+win+r")
post_retweet = string(default="alt+win+shift+r")

Binary file not shown.

File diff suppressed because it is too large Load Diff

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

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

File diff suppressed because it is too large Load Diff

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

File diff suppressed because it is too large Load Diff

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

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

@@ -24,7 +24,11 @@ def is_long(tweet):
return False
def clear_url(tweet):
urls = utils.find_urls_in_text(tweet["full_text"])
if tweet.has_key("full_text"):
value = "full_text"
else:
value = "text"
urls = utils.find_urls_in_text(tweet[value])
try: tweet["message"] = tweet["message"].replace(urls[-1], "")
except IndexError: pass
return tweet

View File

@@ -30,8 +30,11 @@ def get_twishort_uri(url):
def is_long(tweet):
long = False
for url in range(0, len(tweet["entities"]["urls"])):
if "twishort.com" in tweet["entities"]["urls"][url]["expanded_url"]:
long = get_twishort_uri(tweet["entities"]["urls"][url]["expanded_url"])
try:
if "twishort.com" in tweet["entities"]["urls"][url]["expanded_url"]:
long = get_twishort_uri(tweet["entities"]["urls"][url]["expanded_url"])
except TypeError:
pass
return long
def get_full_text(uri):

View File

@@ -26,8 +26,9 @@ def stream_threaded(func, *args, **kwargs):
def new_func(*a, **k):
try:
func(**k)
except:
except exception as msg:
log.error("Error in stream with args: %r" % (a,))
log.error(msg.message)
pub.sendMessage("stream-error", session=a[0])
thread = threading.Thread(target=new_func, args=args, kwargs=kwargs)

View File

@@ -432,9 +432,13 @@ class Session(object):
def get_quoted_tweet(self, tweet):
quoted_tweet = tweet
urls = utils.find_urls_in_text(quoted_tweet["full_text"])
if tweet.has_key("full_text"):
value = "full_text"
else:
value = "text"
urls = utils.find_urls_in_text(quoted_tweet[value])
for url in range(0, len(urls)):
try: quoted_tweet["full_text"] = quoted_tweet["full_text"].replace(urls[url], quoted_tweet["entities"]["urls"][url]["expanded_url"])
try: quoted_tweet[value] = quoted_tweet[value].replace(urls[url], quoted_tweet["entities"]["urls"][url]["expanded_url"])
except IndexError: pass
id = tweets.is_long(quoted_tweet)
try: original_tweet = self.twitter.twitter.show_status(id=id, tweet_mode="extended")

View File

@@ -17,5 +17,4 @@ class handler(BaseHTTPServer.BaseHTTPRequestHandler):
params = parse_qs(urlparse(self.path).query)
global verifier
verifier = params.get('oauth_verifier', [None])[0]
self.wfile.write("You have successfully logged into Twitter with" + application.name + ". "
"You can close this window now.")
self.wfile.write(_(u"You have successfully logged into Twitter with {0}. You can close this window now.").format(application.name))

View File

@@ -71,7 +71,7 @@ class timelinesStreamer(TwythonStreamer):
if "text" in data and utils.is_allowed(data, self.session.settings["twitter"]["ignored_clients"]) == True:
if data.has_key("extended_tweet"):
data["full_text"] = data["extended_tweet"]["full_text"]
data["entities"] = data["extended_tweet"]["entities"]
# data["entities"] = data["extended_tweet"]["entities"]
# log.error(data["extended_entities"])
self.check_tls(data)
# except:

View File

@@ -137,8 +137,9 @@ class streamer(TwythonStreamer):
elif "text" in data and utils.is_allowed(data, self.session.settings["twitter"]["ignored_clients"]) == True:
if data.has_key("extended_tweet"):
data["full_text"] = data["extended_tweet"]["full_text"]
data["entities"] = data["extended_tweet"]["entities"]
# log.error("Extended tweet")
# data["entities"].extend(data["extended_tweet"]["entities"])
# log.error(data["extended_tweet"])
# log.error("Extended tweet")
if data["user"]["id"] in self.muted_users: return
self.check_mentions(data)
self.check_send(data)

View File

@@ -59,8 +59,11 @@ def compose_tweet(tweet, db, relative_times):
if tweet.has_key("message") == False:
urls = utils.find_urls_in_text(text)
for url in range(0, len(urls)):
try: text = text.replace(urls[url], tweet["entities"]["urls"][url]["expanded_url"])
except IndexError: pass
try:
log.error(urls[url])
log.error(tweet["entities"]["urls"][url])
text = text.replace(urls[url], tweet["entities"]["urls"][url]["expanded_url"])
except: pass
if config.app['app-settings']['handle_longtweets']: pass
# return [user+", ", text, ts+", ", source]
return [user+", ", text, ts+", ", source]
@@ -88,18 +91,24 @@ def compose_dm(tweet, db, relative_times):
def compose_quoted_tweet(quoted_tweet, original_tweet):
""" It receives a tweet and returns a list with the user, text for the tweet or message, date and the client where user is."""
text = StripChars(quoted_tweet["full_text"])
if quoted_tweet.has_key("full_text"):
value = "full_text"
else:
value = "text"
text = StripChars(quoted_tweet[value])
quoting_user = quoted_tweet["user"]["name"]
source = re.sub(r"(?s)<.*?>", "", quoted_tweet["source"])
try: text = "rt @%s: %s" % (quoted_tweet["retweeted_status"]["user"]["screen_name"], StripChars(quoted_tweet["retweeted_status"]["full_text"]))
except KeyError: text = "%s" % (StripChars(quoted_tweet["full_text"]))
try: text = "rt @%s: %s" % (quoted_tweet["retweeted_status"]["user"]["screen_name"], StripChars(quoted_tweet["retweeted_status"][value]))
except KeyError: text = "%s" % (StripChars(quoted_tweet[value]))
if text[-1] in chars: text=text+"."
original_user = original_tweet["user"]["screen_name"]
if original_tweet.has_key("message"):
original_text = StripChars(original_tweet["message"])
else:
elif original_tweet.has_key("full_text"):
original_text = StripChars(original_tweet["full_text"])
quoted_tweet["message"] = _(u"{0}. Quoted tweet from @{1}: {2}").format( quoted_tweet["full_text"], original_user, original_text)
else:
original_text = StripChars(original_tweet["text"])
quoted_tweet["message"] = _(u"{0}. Quoted tweet from @{1}: {2}").format( quoted_tweet[value], original_user, original_text)
quoted_tweet = tweets.clear_url(quoted_tweet)
return quoted_tweet

View File

@@ -71,8 +71,8 @@ def get_all_mentioned(tweet, conf):
string = []
for i in tweet["entities"]["user_mentions"]:
if i["screen_name"] != conf["user_name"] and i["screen_name"] != tweet["user"]["screen_name"]:
if "@"+i["screen_name"] not in string:
string.append("@"+i["screen_name"])
if i["id"] not in string:
string.append(i["id_str"])
return " ".join(string)+" "
def get_all_users(tweet, conf):

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1,4 +1,4 @@
{"current_version": "0.86",
{"current_version": "0.87",
"description": "The first version for the new generation of TWBlue.",
"downloads":
{"Windows32": "http://twblue.es/pubs/twblue_ngen_0.80_x86.zip",