New snapshot

This commit is contained in:
Manuel Cortez 2015-10-03 04:55:02 -05:00
commit 408ff50404
12 changed files with 267 additions and 171 deletions

View File

@ -5,7 +5,7 @@ if snapshot == False:
version = "0.80"
update_url = 'http://twblue.es/updates/twblue_ngen.json'
else:
version = "10.10"
version = "10.91"
update_url = 'http://twblue.es/updates/snapshots_ngen.json'
author = u"Manuel Cortéz, Bill Dengler"
authorEmail = "manuel@manuelcortez.net"

View File

@ -231,7 +231,8 @@ class baseBufferController(bufferController):
return self.get_message()
def get_message(self):
return " ".join(self.compose_function(self.get_right_tweet(), self.session.db, self.session.settings["general"]["relative_times"]))
tweet = self.get_right_tweet()
return " ".join(self.compose_function(tweet, self.session.db, self.session.settings["general"]["relative_times"]))
def get_full_tweet(self):
tweet = self.get_right_tweet()
@ -604,6 +605,26 @@ class baseBufferController(bufferController):
user.profileController(session=self.session, user=dlg.get_user())
if hasattr(dlg, "destroy"): dlg.destroy()
def get_quoted_tweet(self, tweet):
# try:
quoted_tweet = self.session.twitter.twitter.show_status(id=tweet["id"])
urls = utils.find_urls_in_text(quoted_tweet["text"])
for url in range(0, len(urls)):
try: quoted_tweet["text"] = quoted_tweet["text"].replace(urls[url], quoted_tweet["entities"]["urls"][url]["expanded_url"])
except IndexError: pass
# except TwythonError as e:
# utils.twitter_error(e)
# return
l = tweets.is_long(quoted_tweet)
id = tweets.get_id(l)
# try:
original_tweet = self.session.twitter.twitter.show_status(id=id)
urls = utils.find_urls_in_text(original_tweet["text"])
for url in range(0, len(urls)):
try: original_tweet["text"] = original_tweet["text"].replace(urls[url], original_tweet["entities"]["urls"][url]["expanded_url"])
except IndexError: pass
return compose.compose_quoted_tweet(quoted_tweet, original_tweet, self.session.db, self.session.settings["general"]["relative_times"])
class listBufferController(baseBufferController):
def __init__(self, parent, function, name, sessionObject, account, sound=None, bufferType=None, list_id=None, *args, **kwargs):
super(listBufferController, self).__init__(parent, function, name, sessionObject, account, sound=None, bufferType=None, *args, **kwargs)

View File

@ -15,6 +15,7 @@ class listsController(object):
self.dialog.populate_list(self.get_all_lists())
widgetUtils.connect_event(self.dialog.createBtn, widgetUtils.BUTTON_PRESSED, self.create_list)
widgetUtils.connect_event(self.dialog.editBtn, widgetUtils.BUTTON_PRESSED, self.edit_list)
widgetUtils.connect_event(self.dialog.deleteBtn, widgetUtils.BUTTON_PRESSED, self.remove_list)
widgetUtils.connect_event(self.dialog.view, widgetUtils.BUTTON_PRESSED, self.open_list_as_buffer)
widgetUtils.connect_event(self.dialog.deleteBtn, widgetUtils.BUTTON_PRESSED, self.remove_list)
else:
@ -30,7 +31,7 @@ class listsController(object):
def get_user_lists(self, user):
self.lists = self.session.twitter.twitter.show_lists(reverse=True, screen_name=user)
return [compose.compose_list(item) for item in self.lists]
def create_list(self, *args, **kwargs):
dialog = lists.createListDialog()
if dialog.get_response() == widgetUtils.OK:
@ -94,7 +95,7 @@ class listsController(object):
self.session.db["lists"].append(list)
except TwythonError as e:
output.speak("error %s: %s" % (e.status_code, e.msg))
def unsubscribe(self, *args, **kwargs):
if self.dialog.lista.get_count() == 0: return
list_id = self.lists[self.dialog.get_item()]["id"]
@ -102,4 +103,4 @@ class listsController(object):
list = self.session.twitter.twitter.unsubscribe_from_list(list_id=list_id)
self.session.db["lists"].remove(list)
except TwythonError as e:
output.speak("error %s: %s" % (e.status_code, e.msg))
output.speak("error %s: %s" % (e.status_code, e.msg))

View File

@ -157,6 +157,7 @@ class Controller(object):
widgetUtils.connect_event(self.view, widgetUtils.MENU, self.delete, self.view.delete)
widgetUtils.connect_event(self.view, widgetUtils.MENU, self.follow, menuitem=self.view.follow)
widgetUtils.connect_event(self.view, widgetUtils.MENU, self.send_dm, self.view.dm)
widgetUtils.connect_event(self.view, widgetUtils.MENU, self.view_user_lists, menuitem=self.view.viewLists)
widgetUtils.connect_event(self.view, widgetUtils.MENU, self.get_more_items, menuitem=self.view.load_previous_items)
widgetUtils.connect_event(self.view, widgetUtils.MENU, self.view_user_lists, menuitem=self.view.viewLists)
widgetUtils.connect_event(self.view, widgetUtils.MENU, self.clear_buffer, menuitem=self.view.clear)

View File

@ -1,6 +1,5 @@
import win32com.client
def fix():
if win32com.client.gencache.is_readonly == True:
win32com.client.gencache.is_readonly = False

View File

@ -16,6 +16,7 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
############################################################
from twitter import utils
def get_id(url):
return url.split("/")[-1]
@ -25,4 +26,10 @@ def is_long(tweet):
for url in range(0, len(tweet["entities"]["urls"])):
if "twitter.com" in tweet["entities"]["urls"][url]["expanded_url"]:
long = get_id(tweet["entities"]["urls"][url]["expanded_url"])
return long
return long
def clear_url(tweet):
urls = utils.find_urls_in_text(tweet["text"])
try: tweet["message"] = tweet["message"].replace(urls[-1]+".", "")
except IndexError: pass
return tweet

View File

@ -9,7 +9,7 @@ import output
import time
import sound
import logging
from twitter import utils
from twitter import utils, compose
from twython import TwythonError, TwythonRateLimitError, TwythonAuthError
import config_utils
import shelve
@ -18,6 +18,7 @@ import os
from mysc.thread_utils import stream_threaded
from pubsub import pub
log = logging.getLogger("sessionmanager.session")
from long_tweets import tweets
sessions = {}
@ -61,6 +62,7 @@ class Session(object):
self.db[name] = []
for i in data:
if utils.find_item(i["id"], self.db[name]) == None and utils.is_allowed(i, self.settings["twitter"]["ignored_clients"]) == True:
i = self.check_quoted_status(i)
if self.settings["general"]["reverse_timelines"] == False: self.db[name].append(i)
else: self.db[name].insert(0, i)
num = num+1
@ -413,3 +415,28 @@ class Session(object):
os.remove(shelfname)
except:
pass
def check_quoted_status(self, tweet):
status = tweets.is_long(tweet)
if status != False:
tweet["quoted"] = 1
tweet = self.get_quoted_tweet(tweet)
return tweet
def get_quoted_tweet(self, tweet):
quoted_tweet = self.twitter.twitter.show_status(id=tweet["id"])
urls = utils.find_urls_in_text(quoted_tweet["text"])
for url in range(0, len(urls)):
try: quoted_tweet["text"] = quoted_tweet["text"].replace(urls[url], quoted_tweet["entities"]["urls"][url]["expanded_url"])
except IndexError: pass
l = tweets.is_long(quoted_tweet)
id = tweets.get_id(l)
try: original_tweet = self.twitter.twitter.show_status(id=id)
except: return quoted_tweet
urls = utils.find_urls_in_text(original_tweet["text"])
for url in range(0, len(urls)):
try: original_tweet["text"] = original_tweet["text"].replace(urls[url], original_tweet["entities"]["urls"][url]["expanded_url"])
except IndexError: pass
return compose.compose_quoted_tweet(quoted_tweet, original_tweet)

View File

@ -33,6 +33,7 @@ class timelinesStreamer(TwythonStreamer):
if utils.find_item(data["id"], self.session.db["%s-timeline" % (i,)]) != None:
log.error("duplicated tweet. Ignoring it...")
return
data = self.session.check_quoted_status(data)
if self.session.settings["general"]["reverse_timelines"] == False: self.session.db["%s-timeline" % (i,)].append(data)
else: self.session.db["%s-timeline" % (i,)].insert(0, data)
pub.sendMessage("item-in-timeline", data= data, user= self.session.db["user_name"], who= i)
@ -41,6 +42,7 @@ class timelinesStreamer(TwythonStreamer):
i.users.index(data["user"]["id"])
usr = data["in_reply_to_user_id"]
if (usr != None and usr in self.friends) or data.has_key("retweeted_status"):
data = self.session.check_quoted_status(data)
if self.session.settings["general"]["reverse_timelines"] == False: self.session.db["%s" % (i.name,)].append(data)
else: self.session.db["%s" % (i,)].insert(0, data)
pub.sendMessage("item-in-list", data= data, user= self.session.db["user_name"], where= i.name)

View File

@ -36,6 +36,7 @@ class streamer(TwythonStreamer):
if utils.find_item(data["id"], self.session.db[place]) != None:
log.error("duplicated tweet. Ignoring it...")
return
data = self.session.check_quoted_status(data)
if self.session.settings["general"]["reverse_timelines"] == False:
self.session.db[place].append(data)
else:

View File

@ -10,7 +10,7 @@ import languageHandler
import arrow
import logging
import config
from long_tweets import twishort
from long_tweets import twishort, tweets
log = logging.getLogger("compose")
def StripChars(s):
@ -64,9 +64,29 @@ def compose_tweet(tweet, db, relative_times):
except KeyError: pass
except:
text=oldtext
if tweet.has_key("message"):
text = tweet["message"]
return [user+", ", text, ts+", ", source]
tweet["text"] = text
return [user+", ", tweet["text"], ts+", ", source]
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["text"])
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"]["text"]))
except KeyError: text = "%s" % (StripChars(quoted_tweet["text"]))
if text[-1] in chars: text=text+"."
original_user = original_tweet["user"]["screen_name"]
original_text = StripChars(original_tweet["text"])
try: original_text = "rt @%s: %s" % (original_tweet["retweeted_status"]["user"]["screen_name"], StripChars(original_tweet["retweeted_status"]["text"]))
except KeyError: original_text = "%s" % (StripChars(original_tweet["text"]))
quoted_tweet["message"] = _(u"{0}. Quoted tweet from @{1}: {2}").format( quoted_tweet["text"], original_user, original_text)
quoted_tweet = tweets.clear_url(quoted_tweet)
return quoted_tweet
def compose_followers_list(tweet, db, relative_times=True):
if system == "Windows":
original_date = arrow.get(tweet["created_at"], "ddd MMM D H:m:s Z YYYY", locale="en")

View File

@ -5,7 +5,7 @@
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"POT-Creation-Date: 2015-09-05 11:46+Hora de verano central (México)\n"
"POT-Creation-Date: 2015-09-29 09:37+Hora de verano central (México)\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -51,7 +51,7 @@ msgstr ""
#: ../doc\strings.py:378 ../doc\strings.py:381 ../doc\strings.py:384
#: ../doc\strings.py:387 ../doc\strings.py:390 ../doc\strings.py:393
#: ../doc\strings.py:396 ../doc\strings.py:399 ../doc\strings.py:402
#: ../doc\strings.py:405 ../doc\strings.py:421 ../doc\strings.py:424
#: ../doc\strings.py:405 ../doc\strings.py:423 ../doc\strings.py:426
msgid ""
"\n"
msgstr ""
@ -973,7 +973,7 @@ msgid "* English: [Bryner Villalobos](https://twitter.com/Bry_StarkCR) and [Bill
msgstr ""
#: ../doc\strings.py:408
msgid "* Arabic: Mohammed Al Shara."
msgid "* Arabic: [Mohammed Al Shara](https://twitter.com/mohammed0204)."
msgstr ""
#: ../doc\strings.py:409
@ -989,11 +989,11 @@ msgid "* Basque: [Sukil Etxenike](https://twitter.com/sukil2011)."
msgstr ""
#: ../doc\strings.py:412
msgid "* Finnish: Jani Kinnunen."
msgid "* Finnish: [Jani Kinnunen](https://twitter.com/jani_kinnunen)."
msgstr ""
#: ../doc\strings.py:413
msgid "* French: R\303\251mi Ruiz."
msgid "* French: [R\303\251mi Ruiz](https://twitter.com/blindhelp38)."
msgstr ""
#: ../doc\strings.py:414
@ -1001,38 +1001,46 @@ msgid "* Galician: [Alba Kinteiro](https://twitter.com/albasmileforeve)."
msgstr ""
#: ../doc\strings.py:415
msgid "* German: Steffen Schultz."
msgid "* German: [Steffen Schultz](https://twitter.com/schulle4u)."
msgstr ""
#: ../doc\strings.py:416
msgid "* Hungarian: Robert Osztolykan."
msgid "* Croatian: [Zvonimir Stane\304\215i\304\207](https://twitter.com/zvonimirek222)."
msgstr ""
#: ../doc\strings.py:417
msgid "* Polish: Pawel Masarczyk."
msgid "* Hungarian: Robert Osztolykan."
msgstr ""
#: ../doc\strings.py:418
msgid "* Portuguese: Odenilton J\303\272nior Santos."
msgid "* Italian: [Christian Leo Mameli](https://twitter.com/llajta2012)."
msgstr ""
#: ../doc\strings.py:419
msgid "* Russian: Alexander Jaszyn."
msgid "* Polish: Pawel Masarczyk."
msgstr ""
#: ../doc\strings.py:420
msgid "* Turkish: Burak."
msgid "* Portuguese: Odenilton J\303\272nior Santos."
msgstr ""
#: ../doc\strings.py:423
#: ../doc\strings.py:421
msgid "* Russian: [\320\220\320\273\320\265\320\272\321\201\320\260\320\275\320\264\321\200 \320\257\321\210\320\270\320\275](https://twitter.com/radovest)."
msgstr ""
#: ../doc\strings.py:422
msgid "* Turkish: [Burak Y\303\274ksek](https://twitter.com/burakyuksek)."
msgstr ""
#: ../doc\strings.py:425
msgid "Many thanks also to the people who worked on the documentation. Initially, [Manuel Cortez](https://twitter.com/manuelcortez00) did the documentation in Spanish, and translated to English by [Bryner Villalobos](https://twitter.com/Bry_StarkCR), [Robert Spangler](https://twitter.com/glasscity1837), [Sussan Rey](https://twitter.com/sussanrey17), [Anibal Hernandez](https://twitter.com/anibalmetal), and [Holly Scott-Gardner](https://twitter.com/holly1994). It was updated by [Sukil Etxenike](https://twitter.com/sukil2011), with some valuable corrections by [Brian Hartgen](https://twitter.com/brianhartgen) and [Bill Dengler](https://twitter.com/codeofdusk)."
msgstr ""
#: ../doc\strings.py:426
#: ../doc\strings.py:428
msgid "---"
msgstr ""
#: ../doc\strings.py:427
#: ../doc\strings.py:429
msgid "Copyright \302\251 2013-2015. Manuel Cort\303\251z"
msgstr ""

View File

@ -5,7 +5,7 @@
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"POT-Creation-Date: 2015-09-05 11:46+Hora de verano central (México)\n"
"POT-Creation-Date: 2015-09-29 09:37+Hora de verano central (México)\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -20,273 +20,274 @@ msgid "This action is not supported for this buffer"
msgstr ""
#: ../src\controller\buffersController.py:128
#: ../src\controller\buffersController.py:957 ../src\wxUI\buffers\base.py:24
#: ../src\controller\buffersController.py:983 ../src\wxUI\buffers\base.py:24
#: ../src\wxUI\buffers\events.py:14 ../src\wxUI\buffers\trends.py:17
#: ../src\wxUI\dialogs\message.py:251 ../src\wxUI\sysTrayIcon.py:33
msgid "Tweet"
msgstr ""
#: ../src\controller\buffersController.py:129
#: ../src\controller\buffersController.py:958
#: ../src\controller\buffersController.py:984
msgid "Write the tweet here"
msgstr ""
#: ../src\controller\buffersController.py:312
#: ../src\controller\buffersController.py:753
#: ../src\controller\buffersController.py:313
#: ../src\controller\buffersController.py:774
msgid "%s items retrieved"
msgstr ""
#: ../src\controller\buffersController.py:332
#: ../src\controller\buffersController.py:333
msgid "This buffer is not a timeline; it can't be deleted."
msgstr ""
#: ../src\controller\buffersController.py:448
#: ../src\controller\buffersController.py:449
msgid "Reply to %s"
msgstr ""
#: ../src\controller\buffersController.py:448
#: ../src\controller\buffersController.py:449
#: ../src\keystrokeEditor\constants.py:11 ../src\wxUI\buffers\base.py:26
msgid "Reply"
msgstr ""
#: ../src\controller\buffersController.py:475
#: ../src\controller\buffersController.py:476
msgid "Direct message to %s"
msgstr ""
#: ../src\controller\buffersController.py:475
#: ../src\controller\mainController.py:1125
#: ../src\controller\buffersController.py:476
#: ../src\controller\mainController.py:1143
msgid "New direct message"
msgstr ""
#: ../src\controller\buffersController.py:496
#: ../src\controller\buffersController.py:497
msgid "Add your comment to the tweet"
msgstr ""
#: ../src\controller\buffersController.py:496
#: ../src\controller\buffersController.py:497
#: ../src\keystrokeEditor\constants.py:12 ../src\wxUI\buffers\base.py:25
#: ../src\wxUI\commonMessageDialogs.py:9 ../src\wxUI\dialogs\message.py:126
msgid "Retweet"
msgstr ""
#: ../src\controller\buffersController.py:567
#: ../src\controller\buffersController.py:568
msgid "Opening URL..."
msgstr ""
#: ../src\controller\buffersController.py:602
#: ../src\controller\buffersController.py:603
msgid "User details"
msgstr ""
#: ../src\controller\buffersController.py:651
#: ../src\controller\buffersController.py:672
msgid "Empty"
msgstr ""
#: ../src\controller\buffersController.py:712
#: ../src\controller\buffersController.py:733
msgid "Mention to %s"
msgstr ""
#: ../src\controller\buffersController.py:712 ../src\wxUI\buffers\people.py:15
#: ../src\controller\buffersController.py:733 ../src\wxUI\buffers\people.py:15
msgid "Mention"
msgstr ""
#: ../src\controller\mainController.py:254
#: ../src\controller\mainController.py:256
msgid "Ready"
msgstr ""
#: ../src\controller\mainController.py:286
#: ../src\controller\mainController.py:288
msgid "Home"
msgstr ""
#: ../src\controller\mainController.py:290
#: ../src\controller\mainController.py:292
msgid "Mentions"
msgstr ""
#: ../src\controller\mainController.py:294
#: ../src\controller\mainController.py:296
msgid "Direct messages"
msgstr ""
#: ../src\controller\mainController.py:298
#: ../src\controller\mainController.py:300
msgid "Sent direct messages"
msgstr ""
#: ../src\controller\mainController.py:302
#: ../src\controller\mainController.py:304
msgid "Sent tweets"
msgstr ""
#: ../src\controller\mainController.py:307
#: ../src\controller\mainController.py:1248
#: ../src\controller\mainController.py:309
#: ../src\controller\mainController.py:1266
#: ../src\wxUI\dialogs\userSelection.py:20
msgid "Favourites"
msgstr ""
#: ../src\controller\mainController.py:311
#: ../src\controller\mainController.py:1253
#: ../src\controller\mainController.py:313
#: ../src\controller\mainController.py:1271
msgid "Followers"
msgstr ""
#: ../src\controller\mainController.py:315
#: ../src\controller\mainController.py:1258
#: ../src\controller\mainController.py:317
#: ../src\controller\mainController.py:1276
msgid "Friends"
msgstr ""
#: ../src\controller\mainController.py:319
#: ../src\controller\mainController.py:1263
#: ../src\controller\mainController.py:321
#: ../src\controller\mainController.py:1281
msgid "Blocked users"
msgstr ""
#: ../src\controller\mainController.py:323
#: ../src\controller\mainController.py:1268
#: ../src\controller\mainController.py:325
#: ../src\controller\mainController.py:1286
msgid "Muted users"
msgstr ""
#: ../src\controller\mainController.py:327
#: ../src\controller\mainController.py:1273
#: ../src\controller\mainController.py:329
#: ../src\controller\mainController.py:1291
msgid "Events"
msgstr ""
#: ../src\controller\mainController.py:330
#: ../src\controller\mainController.py:332
msgid "Timelines"
msgstr ""
#: ../src\controller\mainController.py:334
#: ../src\controller\mainController.py:756
#: ../src\controller\mainController.py:336
#: ../src\controller\mainController.py:774
msgid "Timeline for {}"
msgstr ""
#: ../src\controller\mainController.py:337
#: ../src\controller\mainController.py:339
msgid "Favourites timelines"
msgstr ""
#: ../src\controller\mainController.py:341
#: ../src\controller\mainController.py:771
#: ../src\controller\mainController.py:343
#: ../src\controller\mainController.py:789
msgid "Favourites timeline for {}"
msgstr ""
#: ../src\controller\mainController.py:346 ../src\wxUI\dialogs\lists.py:12
#: ../src\controller\mainController.py:348 ../src\wxUI\dialogs\lists.py:12
msgid "Lists"
msgstr ""
#: ../src\controller\mainController.py:351
#: ../src\controller\mainController.py:1284
#: ../src\controller\mainController.py:353
#: ../src\controller\mainController.py:1302
msgid "List for {}"
msgstr ""
#: ../src\controller\mainController.py:354
#: ../src\controller\mainController.py:356
msgid "Searches"
msgstr ""
#: ../src\controller\mainController.py:358
#: ../src\controller\mainController.py:416
#: ../src\controller\mainController.py:360
#: ../src\controller\mainController.py:422
msgid "Search for {}"
msgstr ""
#: ../src\controller\mainController.py:368
#: ../src\controller\mainController.py:817
#: ../src\controller\mainController.py:370
#: ../src\controller\mainController.py:835
msgid "Trending topics for %s"
msgstr ""
#: ../src\controller\mainController.py:435
#: ../src\controller\mainController.py:912
#: ../src\controller\mainController.py:931
#: ../src\controller\mainController.py:950
#: ../src\controller\mainController.py:969
#: ../src\controller\mainController.py:441
#: ../src\controller\mainController.py:930
#: ../src\controller\mainController.py:949
#: ../src\controller\mainController.py:968
#: ../src\controller\mainController.py:987
msgid "No session is currently in focus. Focus a session with the next or previous session shortcut."
msgstr ""
#: ../src\controller\mainController.py:439
#: ../src\controller\mainController.py:445
msgid "Empty buffer."
msgstr ""
#: ../src\controller\mainController.py:446
#: ../src\controller\mainController.py:452
msgid "{0} not found."
msgstr ""
#: ../src\controller\mainController.py:482
#: ../src\controller\mainController.py:509
#: ../src\controller\mainController.py:485
#: ../src\controller\mainController.py:500
#: ../src\controller\mainController.py:527
msgid "Select the user"
msgstr ""
#: ../src\controller\mainController.py:790
#: ../src\controller\mainController.py:808
msgid "Conversation with {0}"
msgstr ""
#: ../src\controller\mainController.py:834
#: ../src\controller\mainController.py:853
#: ../src\controller\mainController.py:852
#: ../src\controller\mainController.py:871
msgid "There are no coordinates in this tweet"
msgstr ""
#: ../src\controller\mainController.py:836
#: ../src\controller\mainController.py:855
#: ../src\controller\mainController.py:854
#: ../src\controller\mainController.py:873
msgid "There are no results for the coordinates in this tweet"
msgstr ""
#: ../src\controller\mainController.py:838
#: ../src\controller\mainController.py:857
#: ../src\controller\mainController.py:856
#: ../src\controller\mainController.py:875
msgid "Error decoding coordinates. Try again later."
msgstr ""
#: ../src\controller\mainController.py:960
#: ../src\controller\mainController.py:979
#: ../src\controller\mainController.py:978
#: ../src\controller\mainController.py:997
msgid "%s, %s of %s"
msgstr ""
#: ../src\controller\mainController.py:962
#: ../src\controller\mainController.py:981
#: ../src\controller\mainController.py:1002
#: ../src\controller\mainController.py:1023
#: ../src\controller\mainController.py:980
#: ../src\controller\mainController.py:999
#: ../src\controller\mainController.py:1020
#: ../src\controller\mainController.py:1041
msgid "%s. Empty"
msgstr ""
#: ../src\controller\mainController.py:994
#: ../src\controller\mainController.py:1012
msgid "{0}: This account is not logged into Twitter."
msgstr ""
#: ../src\controller\mainController.py:1000
#: ../src\controller\mainController.py:1021
#: ../src\controller\mainController.py:1018
#: ../src\controller\mainController.py:1039
msgid "%s. %s, %s of %s"
msgstr ""
#: ../src\controller\mainController.py:1015
#: ../src\controller\mainController.py:1033
msgid "{0}: This account is not logged into twitter."
msgstr ""
#: ../src\controller\mainController.py:1116
#: ../src\controller\mainController.py:1134
msgid "One mention from %s "
msgstr ""
#: ../src\controller\mainController.py:1205
#: ../src\controller\mainController.py:1214
#: ../src\controller\mainController.py:1223
#: ../src\controller\mainController.py:1232
msgid "One tweet from %s"
msgstr ""
#: ../src\controller\mainController.py:1278
#: ../src\controller\mainController.py:1296
msgid "This list is already opened"
msgstr ""
#: ../src\controller\mainController.py:1337
#: ../src\controller\mainController.py:1355
msgid "The auto-reading of new tweets is enabled for this buffer"
msgstr ""
#: ../src\controller\mainController.py:1340
#: ../src\controller\mainController.py:1358
msgid "The auto-reading of new tweets is disabled for this buffer"
msgstr ""
#: ../src\controller\mainController.py:1346
#: ../src\controller\mainController.py:1364
msgid "Session mute on"
msgstr ""
#: ../src\controller\mainController.py:1349
#: ../src\controller\mainController.py:1367
msgid "Session mute off"
msgstr ""
#: ../src\controller\mainController.py:1356
#: ../src\controller\mainController.py:1374
msgid "Buffer mute on"
msgstr ""
#: ../src\controller\mainController.py:1359
#: ../src\controller\mainController.py:1377
msgid "Buffer mute off"
msgstr ""
#: ../src\controller\mainController.py:1372
#: ../src\controller\mainController.py:1390
msgid "Copied"
msgstr ""
@ -1557,15 +1558,15 @@ msgstr ""
msgid "You must provide a character for the keystroke"
msgstr ""
#: ../src\languageHandler.py:95
#: ../src\languageHandler.py:96
msgid "User default"
msgstr ""
#: ../src\sessionmanager\session.py:186
#: ../src\sessionmanager\session.py:188
msgid "%s failed. Reason: %s"
msgstr ""
#: ../src\sessionmanager\session.py:192
#: ../src\sessionmanager\session.py:194
msgid "%s succeeded."
msgstr ""
@ -1625,8 +1626,8 @@ msgstr ""
msgid "Stopped."
msgstr ""
#: ../src\twitter\compose.py:41 ../src\twitter\compose.py:74
#: ../src\twitter\compose.py:83
#: ../src\twitter\compose.py:41 ../src\twitter\compose.py:96
#: ../src\twitter\compose.py:105
msgid "dddd, MMMM D, YYYY H:m:s"
msgstr ""
@ -1634,119 +1635,123 @@ msgstr ""
msgid "Dm to %s "
msgstr ""
#: ../src\twitter\compose.py:85 ../src\twitter\compose.py:87
#: ../src\twitter\compose.py:86
msgid "{0}. Quoted tweet from @{1}: {2}"
msgstr ""
#: ../src\twitter\compose.py:107 ../src\twitter\compose.py:109
msgid "Unavailable"
msgstr ""
#: ../src\twitter\compose.py:88
#: ../src\twitter\compose.py:110
msgid "%s (@%s). %s followers, %s friends, %s tweets. Last tweeted %s. Joined Twitter %s"
msgstr ""
#: ../src\twitter\compose.py:92
#: ../src\twitter\compose.py:114
msgid "You've blocked %s"
msgstr ""
#: ../src\twitter\compose.py:94
#: ../src\twitter\compose.py:116
msgid "You've unblocked %s"
msgstr ""
#: ../src\twitter\compose.py:97
#: ../src\twitter\compose.py:119
msgid "%s(@%s) has followed you"
msgstr ""
#: ../src\twitter\compose.py:99
#: ../src\twitter\compose.py:121
msgid "You've followed %s(@%s)"
msgstr ""
#: ../src\twitter\compose.py:101
#: ../src\twitter\compose.py:123
msgid "You've unfollowed %s (@%s)"
msgstr ""
#: ../src\twitter\compose.py:104
#: ../src\twitter\compose.py:126
msgid "You've added to favourites: %s, %s"
msgstr ""
#: ../src\twitter\compose.py:106
#: ../src\twitter\compose.py:128
msgid "%s(@%s) has marked as favourite: %s"
msgstr ""
#: ../src\twitter\compose.py:108
#: ../src\twitter\compose.py:130
msgid "You've removed from favourites: %s, %s"
msgstr ""
#: ../src\twitter\compose.py:109
#: ../src\twitter\compose.py:131
msgid "%s(@%s) has removed from favourites: %s"
msgstr ""
#: ../src\twitter\compose.py:111
#: ../src\twitter\compose.py:133
msgid "You've created the list %s"
msgstr ""
#: ../src\twitter\compose.py:113
#: ../src\twitter\compose.py:135
msgid "You've deleted the list %s"
msgstr ""
#: ../src\twitter\compose.py:115
#: ../src\twitter\compose.py:137
msgid "You've updated the list %s"
msgstr ""
#: ../src\twitter\compose.py:117
#: ../src\twitter\compose.py:139
msgid "You've added %s(@%s) to the list %s"
msgstr ""
#: ../src\twitter\compose.py:118
#: ../src\twitter\compose.py:140
msgid "%s(@%s) has added you to the list %s"
msgstr ""
#: ../src\twitter\compose.py:120
#: ../src\twitter\compose.py:142
msgid "You'be removed %s(@%s) from the list %s"
msgstr ""
#: ../src\twitter\compose.py:121
#: ../src\twitter\compose.py:143
msgid "%s(@%s) has removed you from the list %s"
msgstr ""
#: ../src\twitter\compose.py:123
#: ../src\twitter\compose.py:145
msgid "You've subscribed to the list %s, which is owned by %s(@%s)"
msgstr ""
#: ../src\twitter\compose.py:124
#: ../src\twitter\compose.py:146
msgid "%s(@%s) has suscribed you to the list %s"
msgstr ""
#: ../src\twitter\compose.py:126
#: ../src\twitter\compose.py:148
msgid "You've unsubscribed from the list %s, which is owned by %s(@%s)"
msgstr ""
#: ../src\twitter\compose.py:127
#: ../src\twitter\compose.py:149
msgid "You've been unsubscribed from the list %s, which is owned by %s(@%s)"
msgstr ""
#: ../src\twitter\compose.py:129
#: ../src\twitter\compose.py:151
msgid "You have retweeted a retweet from %s(@%s): %s"
msgstr ""
#: ../src\twitter\compose.py:130
#: ../src\twitter\compose.py:152
msgid "%s(@%s) has retweeted your retweet: %s"
msgstr ""
#: ../src\twitter\compose.py:132
#: ../src\twitter\compose.py:154
msgid "@{0} quoted your tweet: {1}"
msgstr ""
#: ../src\twitter\compose.py:134
#: ../src\twitter\compose.py:156
msgid "Unknown"
msgstr ""
#: ../src\twitter\compose.py:140
#: ../src\twitter\compose.py:162
msgid "No description available"
msgstr ""
#: ../src\twitter\compose.py:144
#: ../src\twitter\compose.py:166
msgid "private"
msgstr ""
#: ../src\twitter\compose.py:145
#: ../src\twitter\compose.py:167
msgid "public"
msgstr ""
@ -1847,6 +1852,10 @@ msgstr ""
msgid "Tweet about this trend"
msgstr ""
#: ../src\wxUI\buffers\trends.py:19 ../src\wxUI\menus.py:90
msgid "Search topic"
msgstr ""
#: ../src\wxUI\commonMessageDialogs.py:6
msgid "This retweet is over 140 characters. Would you like to post it as a mention to the poster with your comments and a link to the original tweet?"
msgstr ""
@ -2475,7 +2484,7 @@ msgid "&Show tweet"
msgstr ""
#: ../src\wxUI\menus.py:21 ../src\wxUI\menus.py:39 ../src\wxUI\menus.py:55
#: ../src\wxUI\menus.py:65 ../src\wxUI\menus.py:82 ../src\wxUI\menus.py:94
#: ../src\wxUI\menus.py:65 ../src\wxUI\menus.py:82 ../src\wxUI\menus.py:96
msgid "&Copy to clipboard"
msgstr ""
@ -2504,7 +2513,7 @@ msgstr ""
msgid "&View lists"
msgstr ""
#: ../src\wxUI\menus.py:78 ../src\wxUI\view.py:46
#: ../src\wxUI\menus.py:78 ../src\wxUI\view.py:45
msgid "Show user &profile"
msgstr ""
@ -2512,11 +2521,11 @@ msgstr ""
msgid "&Show user"
msgstr ""
#: ../src\wxUI\menus.py:90
#: ../src\wxUI\menus.py:92
msgid "&Tweet about this trend"
msgstr ""
#: ../src\wxUI\menus.py:92
#: ../src\wxUI\menus.py:94
msgid "&Show item"
msgstr ""
@ -2536,7 +2545,7 @@ msgstr ""
msgid "&Show / hide"
msgstr ""
#: ../src\wxUI\sysTrayIcon.py:38 ../src\wxUI\view.py:62
#: ../src\wxUI\sysTrayIcon.py:38 ../src\wxUI\view.py:61
msgid "&Documentation"
msgstr ""
@ -2576,7 +2585,7 @@ msgstr ""
msgid "E&xit"
msgstr ""
#: ../src\wxUI\view.py:27 ../src\wxUI\view.py:73
#: ../src\wxUI\view.py:27 ../src\wxUI\view.py:72
msgid "&Tweet"
msgstr ""
@ -2608,87 +2617,87 @@ msgstr ""
msgid "R&emove from list"
msgstr ""
#: ../src\wxUI\view.py:47
#: ../src\wxUI\view.py:46
msgid "V&iew favourites"
msgstr ""
#: ../src\wxUI\view.py:51
#: ../src\wxUI\view.py:50
msgid "New &trending topics buffer..."
msgstr ""
#: ../src\wxUI\view.py:52
#: ../src\wxUI\view.py:51
msgid "Find a string in the currently focused buffer..."
msgstr ""
#: ../src\wxUI\view.py:53
#: ../src\wxUI\view.py:52
msgid "&Load previous items"
msgstr ""
#: ../src\wxUI\view.py:55
#: ../src\wxUI\view.py:54
msgid "&Mute"
msgstr ""
#: ../src\wxUI\view.py:56
#: ../src\wxUI\view.py:55
msgid "&Autoread"
msgstr ""
#: ../src\wxUI\view.py:57
#: ../src\wxUI\view.py:56
msgid "&Clear buffer"
msgstr ""
#: ../src\wxUI\view.py:58
#: ../src\wxUI\view.py:57
msgid "&Destroy"
msgstr ""
#: ../src\wxUI\view.py:63
#: ../src\wxUI\view.py:62
msgid "Sounds &tutorial"
msgstr ""
#: ../src\wxUI\view.py:64
#: ../src\wxUI\view.py:63
msgid "&What's new in this version?"
msgstr ""
#: ../src\wxUI\view.py:66
#: ../src\wxUI\view.py:65
msgid "&Check for updates"
msgstr ""
#: ../src\wxUI\view.py:67
#: ../src\wxUI\view.py:66
msgid "&Report an error"
msgstr ""
#: ../src\wxUI\view.py:68
#: ../src\wxUI\view.py:67
msgid "{0}'s &website"
msgstr ""
#: ../src\wxUI\view.py:69
#: ../src\wxUI\view.py:68
msgid "About &{0}"
msgstr ""
#: ../src\wxUI\view.py:72
#: ../src\wxUI\view.py:71
msgid "&Application"
msgstr ""
#: ../src\wxUI\view.py:74
#: ../src\wxUI\view.py:73
msgid "&User"
msgstr ""
#: ../src\wxUI\view.py:75
#: ../src\wxUI\view.py:74
msgid "&Buffer"
msgstr ""
#: ../src\wxUI\view.py:76
#: ../src\wxUI\view.py:75
msgid "&Help"
msgstr ""
#: ../src\wxUI\view.py:159
#: ../src\wxUI\view.py:158
msgid "Address"
msgstr ""
#: ../src\wxUI\view.py:182
#: ../src\wxUI\view.py:181
msgid "Update"
msgstr ""
#: ../src\wxUI\view.py:182
#: ../src\wxUI\view.py:181
msgid "Your {0} version is up to date"
msgstr ""