mirror of
https://github.com/MCV-Software/TWBlue.git
synced 2024-11-26 12:53:12 -06:00
New snapshot
This commit is contained in:
commit
408ff50404
@ -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"
|
||||
|
@ -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)
|
||||
|
@ -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:
|
||||
|
@ -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)
|
||||
|
@ -1,6 +1,5 @@
|
||||
import win32com.client
|
||||
|
||||
|
||||
def fix():
|
||||
if win32com.client.gencache.is_readonly == True:
|
||||
win32com.client.gencache.is_readonly = False
|
||||
|
@ -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]
|
||||
@ -26,3 +27,9 @@ def is_long(tweet):
|
||||
if "twitter.com" in tweet["entities"]["urls"][url]["expanded_url"]:
|
||||
long = get_id(tweet["entities"]["urls"][url]["expanded_url"])
|
||||
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
|
@ -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)
|
||||
|
||||
|
@ -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)
|
||||
|
@ -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:
|
||||
|
@ -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")
|
||||
|
@ -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 ""
|
||||
|
||||
|
305
tools/twblue.pot
305
tools/twblue.pot
@ -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 ""
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user