mirror of
https://github.com/MCV-Software/TWBlue.git
synced 2025-08-27 18:29:23 +00:00
Compare commits
24 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
12f47b85af | ||
30c0a8249e | |||
62e51ad14b | |||
d076ed1f56 | |||
9bbe325517 | |||
6f5ef6d3f1 | |||
378d277a98 | |||
![]() |
2fdbcbc152 | ||
![]() |
ef7ba0fe40 | ||
![]() |
3c5de10fe6 | ||
![]() |
230e0fa951 | ||
31192a5801 | |||
f1c974b4cf | |||
![]() |
a9f9cb7969 | ||
![]() |
3a3393e03a | ||
3a7c0c8f12 | |||
bd2460e42b | |||
![]() |
2dd262cc83 | ||
![]() |
a2cf1ac8d0 | ||
df345b5eec | |||
![]() |
b535c996d6 | ||
b131f50d42 | |||
d729f86898 | |||
![]() |
51ef047fb6 |
@@ -73,7 +73,7 @@ setuptools installs a script, called easy_install. You can find it in the python
|
|||||||
|
|
||||||
easy_install will automatically get the additional libraries that these packages need to work properly.
|
easy_install will automatically get the additional libraries that these packages need to work properly.
|
||||||
Run the following command to quickly install and upgrade all packages and their dependencies:
|
Run the following command to quickly install and upgrade all packages and their dependencies:
|
||||||
easy_install -Z --upgrade six configobj goslate markdown future suds requests oauthlib requests-oauthlib requests-toolbelt pypubsub pygeocoder arrow==0.6 python-dateutil futures markdown microsofttranslator winpaths
|
easy_install -Z --upgrade six configobj goslate markdown future suds requests oauthlib requests-oauthlib requests-toolbelt pypubsub pygeocoder arrow==0.6 python-dateutil futures microsofttranslator winpaths
|
||||||
|
|
||||||
#### Other dependencies
|
#### Other dependencies
|
||||||
|
|
||||||
@@ -92,7 +92,7 @@ This dependency has been built using pure basic 4.61. Its source can be found at
|
|||||||
|
|
||||||
* [NSIS Unicode Portable,](http://portableapps.com/apps/development/nsis_portable) version 2.46.5 rev 3
|
* [NSIS Unicode Portable,](http://portableapps.com/apps/development/nsis_portable) version 2.46.5 rev 3
|
||||||
* [PortableApps.com Launcher,](http://portableapps.com/apps/development/portableapps.com_launcher) version 2.2
|
* [PortableApps.com Launcher,](http://portableapps.com/apps/development/portableapps.com_launcher) version 2.2
|
||||||
* [PortableApps.com Installer,](http://portableapps.com/apps/development/portableapps.com_installer) version 3.3.2
|
* [PortableApps.com Installer,](http://portableapps.com/apps/development/portableapps.com_installer) version 3.4.2
|
||||||
|
|
||||||
Important! Install these 3 apps into the same folder, otherwise you won't be able to build the pa.c version. For example: D:\portableApps\NSISPortable, D:\PortableApps\PortableApps.com installer, ...
|
Important! Install these 3 apps into the same folder, otherwise you won't be able to build the pa.c version. For example: D:\portableApps\NSISPortable, D:\PortableApps\PortableApps.com installer, ...
|
||||||
|
|
||||||
|
@@ -2,7 +2,7 @@
|
|||||||
name = 'TWBlue'
|
name = 'TWBlue'
|
||||||
snapshot = False
|
snapshot = False
|
||||||
if snapshot == False:
|
if snapshot == False:
|
||||||
version = "0.85"
|
version = "0.87"
|
||||||
update_url = 'http://twblue.es/updates/twblue_ngen.json'
|
update_url = 'http://twblue.es/updates/twblue_ngen.json'
|
||||||
mirror_update_url = 'https://raw.githubusercontent.com/manuelcortez/TWBlue/next-gen/updates/stable.json'
|
mirror_update_url = 'https://raw.githubusercontent.com/manuelcortez/TWBlue/next-gen/updates/stable.json'
|
||||||
else:
|
else:
|
||||||
|
Binary file not shown.
@@ -5,16 +5,16 @@
|
|||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: TW Blue documentation 0.46\n"
|
"Project-Id-Version: TW Blue documentation 0.46\n"
|
||||||
"POT-Creation-Date: 2016-08-05 08:33+Hora de verano central (México)\n"
|
"POT-Creation-Date: 2016-10-02 21:05+Hora de verano romance\n"
|
||||||
"PO-Revision-Date: 2016-08-06 14:20-0600\n"
|
"PO-Revision-Date: 2016-10-03 11:52+0400\n"
|
||||||
"Last-Translator: Наталья Хедлунд <natalia.hedlund@gmail.com>\n"
|
"Last-Translator: Valeria <luciana.lu3a@gmail.com>\n"
|
||||||
"Language-Team: \n"
|
"Language-Team: \n"
|
||||||
"Language: ru\n"
|
"Language: ru\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"Generated-By: pygettext.py 1.5\n"
|
"Generated-By: pygettext.py 1.5\n"
|
||||||
"X-Generator: Poedit 1.6.11\n"
|
"X-Generator: Poedit 1.5.7\n"
|
||||||
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
|
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
|
||||||
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
|
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
|
||||||
"X-Poedit-SourceCharset: UTF-8\n"
|
"X-Poedit-SourceCharset: UTF-8\n"
|
||||||
@@ -29,7 +29,7 @@ msgstr "Документация для TWBlue - 0.84"
|
|||||||
|
|
||||||
#: ../doc\strings.py:4
|
#: ../doc\strings.py:4
|
||||||
msgid "## Table of contents"
|
msgid "## Table of contents"
|
||||||
msgstr "Содержание"
|
msgstr "## Содержание"
|
||||||
|
|
||||||
#: ../doc\strings.py:5
|
#: ../doc\strings.py:5
|
||||||
msgid "[TOC]"
|
msgid "[TOC]"
|
||||||
@@ -60,9 +60,8 @@ msgid ""
|
|||||||
"If you want to see what has changed from the previous version, [read the "
|
"If you want to see what has changed from the previous version, [read the "
|
||||||
"list of updates here.](changes.html)"
|
"list of updates here.](changes.html)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Если вы хоти\n"
|
"Если вы хотите посмотреть какие изменения произошли с предыдущей версии, "
|
||||||
"те посмотреть какие изменения произошли с предыдущей версии, [читайте список "
|
"[читайте список обновлений здесь.](changes.html) "
|
||||||
"обновлений здесь.](changes.html) "
|
|
||||||
|
|
||||||
#: ../doc\strings.py:9
|
#: ../doc\strings.py:9
|
||||||
msgid "## Introduction"
|
msgid "## Introduction"
|
||||||
@@ -364,7 +363,8 @@ msgstr ""
|
|||||||
#: ../doc\strings.py:43
|
#: ../doc\strings.py:43
|
||||||
msgid "* Favourites: here you will see all the tweets you have favourited."
|
msgid "* Favourites: here you will see all the tweets you have favourited."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"* Избранное: здесь вы увидите все твиты, которые вы добавили в Избранное."
|
"* Понравившиеся: здесь вы увидите все твиты, которые вы отметили как "
|
||||||
|
"понравившиеся."
|
||||||
|
|
||||||
#: ../doc\strings.py:44
|
#: ../doc\strings.py:44
|
||||||
msgid ""
|
msgid ""
|
||||||
@@ -426,8 +426,8 @@ msgid ""
|
|||||||
"* User favourites: You can have the program create a buffer containing "
|
"* User favourites: You can have the program create a buffer containing "
|
||||||
"tweets favourited by a particular user."
|
"tweets favourited by a particular user."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"* Избранное пользователя: вы можете создать буфер, в котором будут "
|
"* Понравившиеся ленты: вы можете создать буфер, в котором будут содержаться "
|
||||||
"содержаться твиты, добавленные в Избранное определенным пользователем."
|
"твиты, отмеченные определённым пользователем как понравившиеся."
|
||||||
|
|
||||||
#: ../doc\strings.py:51
|
#: ../doc\strings.py:51
|
||||||
msgid ""
|
msgid ""
|
||||||
@@ -436,7 +436,7 @@ msgid ""
|
|||||||
"updated every five minutes."
|
"updated every five minutes."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"* Трендовые (популярные) темы: в трендовом буфере отображаются десять "
|
"* Трендовые (популярные) темы: в трендовом буфере отображаются десять "
|
||||||
"терминов, наиболее часто используемых в определенном регионе. Регионо может "
|
"терминов, наиболее часто используемых в определенном регионе. Регионом может "
|
||||||
"быть как страна, так и город. Тренды обновляются каждые пять минут."
|
"быть как страна, так и город. Тренды обновляются каждые пять минут."
|
||||||
|
|
||||||
#: ../doc\strings.py:52
|
#: ../doc\strings.py:52
|
||||||
@@ -450,8 +450,8 @@ msgid ""
|
|||||||
"Windows + G in the invisible interface to retrieve it."
|
"Windows + G in the invisible interface to retrieve it."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Если в твите содержится ссылка, ее можно открыть, нажав клавишу Ввод в окне "
|
"Если в твите содержится ссылка, ее можно открыть, нажав клавишу Ввод в окне "
|
||||||
"программы, либо нажав сочетание клавиш КОнтрол + Виндовс + Ввод в невидимом "
|
"программы, либо нажав сочетание клавиш Контрол + Виндовс + Ввод в невидимом "
|
||||||
"интерфейсе. Если присутстсвует аудио, его можно прослушать, нажав Контрол + "
|
"интерфейсе. Если присутствует аудио, его можно прослушать, нажав Контрол + "
|
||||||
"Ввод или Контрол + Виндовс, + Альт, + Ввод соответственно. Если в твите "
|
"Ввод или Контрол + Виндовс, + Альт, + Ввод соответственно. Если в твите "
|
||||||
"присутствует хэштег (метка) #audio, TWBlue проиграет звук, но аудио может "
|
"присутствует хэштег (метка) #audio, TWBlue проиграет звук, но аудио может "
|
||||||
"содержаться и в твитах, не имеющих этой метки. Наконец, если в твите "
|
"содержаться и в твитах, не имеющих этой метки. Наконец, если в твите "
|
||||||
@@ -601,9 +601,9 @@ msgstr ""
|
|||||||
"пользователю, нажав эту кнопку. Откроется диалог, подобный окну создания "
|
"пользователю, нажав эту кнопку. Откроется диалог, подобный окну создания "
|
||||||
"твита, но с уже заполненным именем пользователя (например, @user), и вам "
|
"твита, но с уже заполненным именем пользователя (например, @user), и вам "
|
||||||
"останется только написать свое сообщение. Если твит относится к нескольким "
|
"останется только написать свое сообщение. Если твит относится к нескольким "
|
||||||
"пользователям, можно нажать Шифт-Таб и активировать кнопку Упомянуть всех. "
|
"пользователям, можно нажать Шифт-Таб и отметить флажок Упомянуть всех. Если "
|
||||||
"Если вы находитесь в списке друзей или читателей, эта кнопка будет "
|
"вы находитесь в списке друзей или читателей, этот флажок будет называться "
|
||||||
"называться Упомянуть."
|
"Упомянуть."
|
||||||
|
|
||||||
#: ../doc\strings.py:68
|
#: ../doc\strings.py:68
|
||||||
msgid ""
|
msgid ""
|
||||||
@@ -615,10 +615,10 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"* Личное сообщение: тоже, что и отправка твита, но это приватное сообщение, "
|
"* Личное сообщение: тоже, что и отправка твита, но это приватное сообщение, "
|
||||||
"которое может быть просмотрено только тем пользователем, которому вы его "
|
"которое может быть просмотрено только тем пользователем, которому вы его "
|
||||||
"отправляете. Чтобы посмотреть получателя, нажмите Шифт-таб. Если в твите, "
|
"отправляете. Чтобы посмотреть получателя, нажмите Шифт-таб. Если в "
|
||||||
"который вы читаете, упомянуто несколько пользователей,стрелками вверх и вниз "
|
"сообщении, которое вы читаете, упомянуто несколько пользователей, стрелками "
|
||||||
"можно выбрать получателя сообщения, или ввести имя вручную, без знака "
|
"вверх и вниз можно выбрать получателя сообщения, или ввести имя вручную, без "
|
||||||
"собаки."
|
"знака собаки."
|
||||||
|
|
||||||
#: ../doc\strings.py:69
|
#: ../doc\strings.py:69
|
||||||
msgid ""
|
msgid ""
|
||||||
@@ -631,10 +631,10 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Учтите, что кнопки будут отображаться в зависимости от того, какие действия "
|
"Учтите, что кнопки будут отображаться в зависимости от того, какие действия "
|
||||||
"доступны в просматриваемом списке. Например, в главной ленте, в упоминаниях, "
|
"доступны в просматриваемом списке. Например, в главной ленте, в упоминаниях, "
|
||||||
"Отправленных, избраном и лентах пользователей вы увидите четыре кнопки, в то "
|
"Отправленных, избранном и лентах пользователей вы увидите четыре кнопки, в "
|
||||||
"время как в списке личных сообщений будут отображаться только кнопки Личное "
|
"то время как в списке личных сообщений будут отображаться только кнопки "
|
||||||
"сообщение и Твит, а в списках друзей и читающих будут доступны кнопки Личное "
|
"Личное сообщение и Твит, а в списках друзей и читающих будут доступны кнопки "
|
||||||
"сообщение,Твит и Упомянуть."
|
"Личное сообщение,Твит и Упомянуть."
|
||||||
|
|
||||||
#: ../doc\strings.py:70
|
#: ../doc\strings.py:70
|
||||||
msgid "#### Menus"
|
msgid "#### Menus"
|
||||||
@@ -756,14 +756,15 @@ msgstr ""
|
|||||||
|
|
||||||
#: ../doc\strings.py:84
|
#: ../doc\strings.py:84
|
||||||
msgid "* Add to favourites: marks the tweet you're viewing as a favourite."
|
msgid "* Add to favourites: marks the tweet you're viewing as a favourite."
|
||||||
msgstr "* Добавить в Избранное:добавляет просматриваемый твит в Избранное."
|
msgstr "* Нравится: отмечает просматриваемый вами твит как понравившийся."
|
||||||
|
|
||||||
#: ../doc\strings.py:85
|
#: ../doc\strings.py:85
|
||||||
msgid ""
|
msgid ""
|
||||||
"* Remove from favourites: removes the tweet from your favourites, but not "
|
"* Remove from favourites: removes the tweet from your favourites, but not "
|
||||||
"from Twitter."
|
"from Twitter."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"* Удалить из Избранного: удаляет твит из Избранного, но не из Твиттера."
|
"* Не нравится: удаляет твит из списка понравившихся вам твитов, но не из "
|
||||||
|
"твиттера."
|
||||||
|
|
||||||
#: ../doc\strings.py:86
|
#: ../doc\strings.py:86
|
||||||
msgid ""
|
msgid ""
|
||||||
@@ -779,7 +780,7 @@ msgstr ""
|
|||||||
"личное сообщение, имя друга или читателя, находящееся в фокусе. Текст можно "
|
"личное сообщение, имя друга или читателя, находящееся в фокусе. Текст можно "
|
||||||
"читать клавишами стрелок. Этот диалог похож на окно отправки твита, но без "
|
"читать клавишами стрелок. Этот диалог похож на окно отправки твита, но без "
|
||||||
"возможности отправки, прикрепления вложений и автозаполнения. Однако, здесь "
|
"возможности отправки, прикрепления вложений и автозаполнения. Однако, здесь "
|
||||||
"указано число ретвитов и добавлений в Избранное. Если вы находитесь в списке "
|
"указано число ретвитов и отметок Нравится. Если вы находитесь в списке "
|
||||||
"читателей или друзей, будут доступны только поле для чтения информации, "
|
"читателей или друзей, будут доступны только поле для чтения информации, "
|
||||||
"находящейся в фокусе, и кнопка Закрыть."
|
"находящейся в фокусе, и кнопка Закрыть."
|
||||||
|
|
||||||
@@ -861,7 +862,7 @@ msgid ""
|
|||||||
"both will be able to exchange direct messages. The muted user is not "
|
"both will be able to exchange direct messages. The muted user is not "
|
||||||
"informed of this action."
|
"informed of this action."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
" * Выключить: TWBlue не будет отображать в вашей главной ленте твиты "
|
" * Отключить: TWBlue не будет отображать в вашей главной ленте твиты "
|
||||||
"пользователя; вы также не будете видеть упоминаний этого человека. Но вы "
|
"пользователя; вы также не будете видеть упоминаний этого человека. Но вы "
|
||||||
"сможете обмениваться личными сообщениями. О том, что пользователь отключен, "
|
"сможете обмениваться личными сообщениями. О том, что пользователь отключен, "
|
||||||
"он уведомлен не будет."
|
"он уведомлен не будет."
|
||||||
@@ -954,8 +955,8 @@ msgid ""
|
|||||||
"* View favourites: Opens a buffer where you can see the tweets which have "
|
"* View favourites: Opens a buffer where you can see the tweets which have "
|
||||||
"been favourited by a particular user."
|
"been favourited by a particular user."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"* Просмотреть избранное: открывает буфер, в котором можно увидеть твиты, "
|
"* Просмотреть Понравившиеся: открывает буфер, в котором можно увидеть твиты, "
|
||||||
"добавленные указанным пользователем в избранное."
|
"отмеченные указанным пользователем как понравившиеся."
|
||||||
|
|
||||||
#: ../doc\strings.py:107
|
#: ../doc\strings.py:107
|
||||||
msgid "##### Buffer menu"
|
msgid "##### Buffer menu"
|
||||||
@@ -971,7 +972,7 @@ msgid ""
|
|||||||
"the \"OK\" button has been activated within the dialogue box. Remember this "
|
"the \"OK\" button has been activated within the dialogue box. Remember this "
|
||||||
"kind of buffer will be updated every five minutes."
|
"kind of buffer will be updated every five minutes."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"* Новый буфер для трендов: открывает буфер ля самых популярных тем в мире, "
|
"* Новый буфер для трендов: открывает буфер для самых популярных тем в мире, "
|
||||||
"стране или городе. Вы сможете выбрать из списка показывать ли популярные "
|
"стране или городе. Вы сможете выбрать из списка показывать ли популярные "
|
||||||
"темы по стране, городу или со всего мира (эта опция находится в списке "
|
"темы по стране, городу или со всего мира (эта опция находится в списке "
|
||||||
"Город), а затем выбрать нужный элемент. Буфер для трендов будет создан как "
|
"Город), а затем выбрать нужный элемент. Буфер для трендов будет создан как "
|
||||||
@@ -983,7 +984,7 @@ msgid ""
|
|||||||
"* Load previous items: This allows more items to be loaded for the specified "
|
"* Load previous items: This allows more items to be loaded for the specified "
|
||||||
"buffer."
|
"buffer."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"* Загрузить предыдущие твиты: позволяет загрузить больше элементов в "
|
"* Загрузить предыдущие элементы: позволяет загрузить больше элементов в "
|
||||||
"указанный буфер."
|
"указанный буфер."
|
||||||
|
|
||||||
#: ../doc\strings.py:110
|
#: ../doc\strings.py:110
|
||||||
@@ -991,7 +992,7 @@ msgid ""
|
|||||||
"* Mute: Mutes notifications of a particular buffer so you will not hear when "
|
"* Mute: Mutes notifications of a particular buffer so you will not hear when "
|
||||||
"new tweets arrive."
|
"new tweets arrive."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"* Выключить звук: отключает уведомления для конкретного буфера, так что вы "
|
"* Отключить: отключает звук и уведомления для конкретного буфера, так что вы "
|
||||||
"не будете слышать, когда приходят новые твиты."
|
"не будете слышать, когда приходят новые твиты."
|
||||||
|
|
||||||
#: ../doc\strings.py:111
|
#: ../doc\strings.py:111
|
||||||
@@ -1001,8 +1002,8 @@ msgid ""
|
|||||||
"could get rather chatty if there are a lot of incoming tweets."
|
"could get rather chatty if there are a lot of incoming tweets."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"* Авточтение: когда включено, программа экранного доступа или голос SAPI 5 "
|
"* Авточтение: когда включено, программа экранного доступа или голос SAPI 5 "
|
||||||
"(если активен) будет читать текст входящих твитов. Обратите внимание, что "
|
"(если активен) будет читать текст входящих твитов. Обратите внимание, что, "
|
||||||
"что, если приходит много твитов, программа может слишком много болтать."
|
"если приходит много твитов, программа может слишком много болтать."
|
||||||
|
|
||||||
#: ../doc\strings.py:112
|
#: ../doc\strings.py:112
|
||||||
msgid "* Clear buffer: Deletes all items from the buffer."
|
msgid "* Clear buffer: Deletes all items from the buffer."
|
||||||
@@ -1097,12 +1098,12 @@ msgstr ""
|
|||||||
"Невидимый интерфейс, как следует из названия, не имеет графического окна и "
|
"Невидимый интерфейс, как следует из названия, не имеет графического окна и "
|
||||||
"работает напрямую с программами экранного доступа, такими как JAWS для "
|
"работает напрямую с программами экранного доступа, такими как JAWS для "
|
||||||
"Windows, NVDA и System Access. По умолчанию этот интерфейс отключен, но его "
|
"Windows, NVDA и System Access. По умолчанию этот интерфейс отключен, но его "
|
||||||
"можно включить нажав Контрл + M. Ор работает подобно TheQube и Chicken "
|
"можно включить нажав Контрол + M. Он работает подобно TheQube и Chicken "
|
||||||
"Nugget. Горячие клаиши также похожи на те, что используются в этих клиентах. "
|
"Nugget. Горячие клавиши также похожи на те, что используются в этих "
|
||||||
"Кроме того, в программе имеется возможность редактирования клавиатурных "
|
"клиентах. Кроме того, в программе имеется возможность редактирования "
|
||||||
"команд, которую можно выбрать в Основных настройках. По умолчанию, с "
|
"клавиатурных команд, которую можно выбрать в Основных настройках. По "
|
||||||
"горячими клавишами этого интерфейса невозможно работать в графическом окне, "
|
"умолчанию, с горячими клавишами этого интерфейса невозможно работать в "
|
||||||
"но этот параметр можно изменить в Основных настройках."
|
"графическом окне, но этот параметр можно изменить в Основных настройках."
|
||||||
|
|
||||||
#: ../doc\strings.py:124
|
#: ../doc\strings.py:124
|
||||||
msgid ""
|
msgid ""
|
||||||
@@ -1127,55 +1128,55 @@ msgstr "* Ввод: открыть ссылку."
|
|||||||
|
|
||||||
#: ../doc\strings.py:128
|
#: ../doc\strings.py:128
|
||||||
msgid "* Control + Enter: Play audio."
|
msgid "* Control + Enter: Play audio."
|
||||||
msgstr "* КОнтрл + Ввод: воспроизвести аудио."
|
msgstr "* Контрол + Ввод: воспроизвести аудио."
|
||||||
|
|
||||||
#: ../doc\strings.py:129
|
#: ../doc\strings.py:129
|
||||||
msgid "* Control + M: Hide the GUI."
|
msgid "* Control + M: Hide the GUI."
|
||||||
msgstr "* Контрл + M: скрыть графический интерфейс."
|
msgstr "* Контрол + M: скрыть графический интерфейс."
|
||||||
|
|
||||||
#: ../doc\strings.py:130
|
#: ../doc\strings.py:130
|
||||||
msgid "* Control + N: Compose a new tweet."
|
msgid "* Control + N: Compose a new tweet."
|
||||||
msgstr "* Контрл + N: создать новый твит."
|
msgstr "* Контрол + N: создать новый твит."
|
||||||
|
|
||||||
#: ../doc\strings.py:131
|
#: ../doc\strings.py:131
|
||||||
msgid "* Control + R: Reply / mention."
|
msgid "* Control + R: Reply / mention."
|
||||||
msgstr "* Контрл + R: ответить / упомянуть."
|
msgstr "* Контрол + R: ответить / упомянуть."
|
||||||
|
|
||||||
#: ../doc\strings.py:132
|
#: ../doc\strings.py:132
|
||||||
msgid "* Control + Shift + R: Retweet."
|
msgid "* Control + Shift + R: Retweet."
|
||||||
msgstr "* Контрл + Шифт + R: ретвитнуть."
|
msgstr "* Контрол + Шифт + R: ретвитнуть."
|
||||||
|
|
||||||
#: ../doc\strings.py:133
|
#: ../doc\strings.py:133
|
||||||
msgid "* Control + D: Send a direct message."
|
msgid "* Control + D: Send a direct message."
|
||||||
msgstr "* КОнтрл + D: отправить личное сообщение."
|
msgstr "* Контрол + D: отправить личное сообщение."
|
||||||
|
|
||||||
#: ../doc\strings.py:134
|
#: ../doc\strings.py:134
|
||||||
msgid "* control + F: Add tweet to favourites."
|
msgid "* control + F: Add tweet to favourites."
|
||||||
msgstr "* КОнтрл + F: добавить твит в Избранное."
|
msgstr "* Контрол + F: отметить твит как понравившийся."
|
||||||
|
|
||||||
#: ../doc\strings.py:135
|
#: ../doc\strings.py:135
|
||||||
msgid "* Control + Shift + F: Remove a tweet from favourites."
|
msgid "* Control + Shift + F: Remove a tweet from favourites."
|
||||||
msgstr "* Контрл + Шифт + F: удалить твит из Избранного."
|
msgstr "* Контрол + Шифт + F: удалить твит из списка понравившихся."
|
||||||
|
|
||||||
#: ../doc\strings.py:136
|
#: ../doc\strings.py:136
|
||||||
msgid "* Control + S: Open the user actions dialogue."
|
msgid "* Control + S: Open the user actions dialogue."
|
||||||
msgstr "* Контрл + S: открыть диалог действий с пользователем."
|
msgstr "* Контрол + S: открыть диалог действий с пользователем."
|
||||||
|
|
||||||
#: ../doc\strings.py:137
|
#: ../doc\strings.py:137
|
||||||
msgid "* Control + Shift + V: Show tweet."
|
msgid "* Control + Shift + V: Show tweet."
|
||||||
msgstr "* Контрл + Шифт + V: показать твит."
|
msgstr "* Контрол + Шифт + V: показать твит."
|
||||||
|
|
||||||
#: ../doc\strings.py:138
|
#: ../doc\strings.py:138
|
||||||
msgid "* Control + Q: Quit this program."
|
msgid "* Control + Q: Quit this program."
|
||||||
msgstr "Контрл + Q: закрыть программу."
|
msgstr "* Контрол + Q: закрыть программу."
|
||||||
|
|
||||||
#: ../doc\strings.py:139
|
#: ../doc\strings.py:139
|
||||||
msgid "* Control + I: Open user timeline."
|
msgid "* Control + I: Open user timeline."
|
||||||
msgstr "Контрл + I: открыть ленту пользователя."
|
msgstr "* Контрол + I: открыть ленту пользователя."
|
||||||
|
|
||||||
#: ../doc\strings.py:140
|
#: ../doc\strings.py:140
|
||||||
msgid "* Control + Shift + i: Destroy buffer."
|
msgid "* Control + Shift + i: Destroy buffer."
|
||||||
msgstr "* КОнтрл + Шифт I: закрыть и удалить буфер."
|
msgstr "* Контрол + Шифт+ I: закрыть и удалить буфер."
|
||||||
|
|
||||||
#: ../doc\strings.py:141
|
#: ../doc\strings.py:141
|
||||||
msgid "* F5: Increase volume by 5%."
|
msgid "* F5: Increase volume by 5%."
|
||||||
@@ -1187,15 +1188,15 @@ msgstr "* F6: уменьшить громкость на 5%."
|
|||||||
|
|
||||||
#: ../doc\strings.py:143
|
#: ../doc\strings.py:143
|
||||||
msgid "* Control + P: Edit your profile."
|
msgid "* Control + P: Edit your profile."
|
||||||
msgstr "* Контрл + P: редактировать свой профиль."
|
msgstr "* Контрол + P: редактировать свой профиль."
|
||||||
|
|
||||||
#: ../doc\strings.py:144
|
#: ../doc\strings.py:144
|
||||||
msgid "* Control + Delete: Delete a tweet or direct message."
|
msgid "* Control + Delete: Delete a tweet or direct message."
|
||||||
msgstr "* Контрл + Делит: удалить твит или личное сообщение."
|
msgstr "* Контрол + Дэлит: удалить твит или личное сообщение."
|
||||||
|
|
||||||
#: ../doc\strings.py:145
|
#: ../doc\strings.py:145
|
||||||
msgid "* Control + Shift + Delete: Empty the current buffer."
|
msgid "* Control + Shift + Delete: Empty the current buffer."
|
||||||
msgstr "* КОнтрл + Шифт + Делит: очистить текущий буфер."
|
msgstr "* Контрол + Шифт + Дэлит: очистить текущий буфер."
|
||||||
|
|
||||||
#: ../doc\strings.py:146
|
#: ../doc\strings.py:146
|
||||||
msgid "### Shortcuts of the invisible interface (default keymap)"
|
msgid "### Shortcuts of the invisible interface (default keymap)"
|
||||||
@@ -1205,125 +1206,127 @@ msgstr "### Горячие клавиши для невидимого интер
|
|||||||
msgid ""
|
msgid ""
|
||||||
"* Control + Windows + Up Arrow: moves to the previous item in the buffer."
|
"* Control + Windows + Up Arrow: moves to the previous item in the buffer."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"* Контрл + Windows + Стрелка вверх: перемещает к предыдущему элементу в "
|
"* Контрол + Windows + Стрелка вверх: перемещает к предыдущему элементу в "
|
||||||
"буфере."
|
"буфере."
|
||||||
|
|
||||||
#: ../doc\strings.py:148
|
#: ../doc\strings.py:148
|
||||||
msgid "* Control + Windows + Down Arrow: moves to the next item in the buffer."
|
msgid "* Control + Windows + Down Arrow: moves to the next item in the buffer."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"* Контрл + Windows + Стрелка вниз: перемещает к следующему элементу в буфере."
|
"* Контрол + Windows + Стрелка вниз: перемещает к следующему элементу в "
|
||||||
|
"буфере."
|
||||||
|
|
||||||
#: ../doc\strings.py:149
|
#: ../doc\strings.py:149
|
||||||
msgid "* Control + Windows + Left Arrow: Move to the previous buffer."
|
msgid "* Control + Windows + Left Arrow: Move to the previous buffer."
|
||||||
msgstr "* Контрл + Windows + Стрелка влево: перейти к предыдущему буферу."
|
msgstr "* Контрол + Windows + Стрелка влево: перейти к предыдущему буферу."
|
||||||
|
|
||||||
#: ../doc\strings.py:150
|
#: ../doc\strings.py:150
|
||||||
msgid "* Control + Windows + Right Arrow: Move to the next buffer."
|
msgid "* Control + Windows + Right Arrow: Move to the next buffer."
|
||||||
msgstr "* Контрл + Windows + Стрелка вправо: перейти к следующему буферу."
|
msgstr "* Контрол + Windows + Стрелка вправо: перейти к следующему буферу."
|
||||||
|
|
||||||
#: ../doc\strings.py:151
|
#: ../doc\strings.py:151
|
||||||
msgid "* Control + Windows + Shift + Left: Focus the previous session."
|
msgid "* Control + Windows + Shift + Left: Focus the previous session."
|
||||||
msgstr "* Контрл + Windows + Шифт + Влево: перейти к предыдущей сессии."
|
msgstr "* Контрол + Windows + Шифт + Влево: перейти к предыдущей сессии."
|
||||||
|
|
||||||
#: ../doc\strings.py:152
|
#: ../doc\strings.py:152
|
||||||
msgid "* Control + Windows + Shift + Right: Focus the next session."
|
msgid "* Control + Windows + Shift + Right: Focus the next session."
|
||||||
msgstr "* Контрл + Windows + Шифт + Вправо: перейти к следующей сессии."
|
msgstr "* Контрол + Windows + Шифт + Вправо: перейти к следующей сессии."
|
||||||
|
|
||||||
#: ../doc\strings.py:153
|
#: ../doc\strings.py:153
|
||||||
msgid "* Control + Windows + C: View conversation."
|
msgid "* Control + Windows + C: View conversation."
|
||||||
msgstr "* Контрл + Windows + C: просмотреть беседу."
|
msgstr "* Контрол + Windows + C: просмотреть беседу."
|
||||||
|
|
||||||
#: ../doc\strings.py:154
|
#: ../doc\strings.py:154
|
||||||
msgid "* Control + Windows + Enter: Open URL."
|
msgid "* Control + Windows + Enter: Open URL."
|
||||||
msgstr "КОнтрл + Windows + Ввод: Открыть ссылку."
|
msgstr "* Контрол + Windows + Ввод: Открыть ссылку."
|
||||||
|
|
||||||
#: ../doc\strings.py:155
|
#: ../doc\strings.py:155
|
||||||
msgid "* Control + Windows + ALT + Enter: Play audio."
|
msgid "* Control + Windows + ALT + Enter: Play audio."
|
||||||
msgstr "* Контрл + Windows + Альт + Ввод: воспроизвести аудио."
|
msgstr "* Контрол + Windows + Альт + Ввод: воспроизвести аудио."
|
||||||
|
|
||||||
#: ../doc\strings.py:156
|
#: ../doc\strings.py:156
|
||||||
msgid "* Control + Windows + M: Show or hide the GUI."
|
msgid "* Control + Windows + M: Show or hide the GUI."
|
||||||
msgstr "* КОнтрл + Windows + M: показать или скрыть графический интерфейс."
|
msgstr "* Контрол + Windows + M: показать или скрыть графический интерфейс."
|
||||||
|
|
||||||
#: ../doc\strings.py:157
|
#: ../doc\strings.py:157
|
||||||
msgid "* Control + Windows + N: New tweet."
|
msgid "* Control + Windows + N: New tweet."
|
||||||
msgstr "* КОнтрл + Windows + N: новый твит."
|
msgstr "* Контрол + Windows + N: новый твит."
|
||||||
|
|
||||||
#: ../doc\strings.py:158
|
#: ../doc\strings.py:158
|
||||||
msgid "* Control + Windows + R: Reply / Mention."
|
msgid "* Control + Windows + R: Reply / Mention."
|
||||||
msgstr "* Контрл + Windows + R: ответить / упомянуть."
|
msgstr "* Контрол + Windows + R: ответить / упомянуть."
|
||||||
|
|
||||||
#: ../doc\strings.py:159
|
#: ../doc\strings.py:159
|
||||||
msgid "* Control + Windows + Shift + R: Retweet."
|
msgid "* Control + Windows + Shift + R: Retweet."
|
||||||
msgstr "* КОнтрл + Windows + Шифт + R: ретвитнуть."
|
msgstr "* Контрол + Windows + Шифт + R: ретвитнуть."
|
||||||
|
|
||||||
#: ../doc\strings.py:160
|
#: ../doc\strings.py:160
|
||||||
msgid "* Control + Windows + D: Send direct message."
|
msgid "* Control + Windows + D: Send direct message."
|
||||||
msgstr "* КОнтрл + Windows + D: отправить личное сообщение."
|
msgstr "* Контрол + Windows + D: отправить личное сообщение."
|
||||||
|
|
||||||
#: ../doc\strings.py:161
|
#: ../doc\strings.py:161
|
||||||
msgid "* Windows+ Alt + F: Like a tweet."
|
msgid "* Windows+ Alt + F: Like a tweet."
|
||||||
msgstr "* Windows+ Альт + F: поставить твиту отметку Нравится."
|
msgstr "* Windows+ Альт + F: отметить твит как понравившийся."
|
||||||
|
|
||||||
#: ../doc\strings.py:162
|
#: ../doc\strings.py:162
|
||||||
msgid "* Alt + Windows + Shift + F: Remove from likes."
|
msgid "* Alt + Windows + Shift + F: Remove from likes."
|
||||||
msgstr "* Альт + Windows + Шифт + F: удалить из понравившихся."
|
msgstr "* Альт + Windows + Шифт + F: удалить из списка понравившихся."
|
||||||
|
|
||||||
#: ../doc\strings.py:163
|
#: ../doc\strings.py:163
|
||||||
msgid "* Control + Windows + S: Open the user actions dialogue."
|
msgid "* Control + Windows + S: Open the user actions dialogue."
|
||||||
msgstr "* Контрл + Windows + S: открыть диалог действий с пользователем."
|
msgstr "* Контрол + Windows + S: открыть диалог действий с пользователем."
|
||||||
|
|
||||||
#: ../doc\strings.py:164
|
#: ../doc\strings.py:164
|
||||||
msgid "* Control + Windows + Alt + N: See user details."
|
msgid "* Control + Windows + Alt + N: See user details."
|
||||||
msgstr "* КОнтрл + Windows + Альт + N: посмотреть информацию о пользователе."
|
msgstr "* Контрол + Windows + Альт + N: посмотреть информацию о пользователе."
|
||||||
|
|
||||||
#: ../doc\strings.py:165
|
#: ../doc\strings.py:165
|
||||||
msgid "* Control + Windows + V: Show tweet."
|
msgid "* Control + Windows + V: Show tweet."
|
||||||
msgstr "* КОнтрл + Windows + V: показать твит."
|
msgstr "* Контрол + Windows + V: показать твит."
|
||||||
|
|
||||||
#: ../doc\strings.py:166
|
#: ../doc\strings.py:166
|
||||||
msgid "* Control + Windows + F4: Quit TWBlue."
|
msgid "* Control + Windows + F4: Quit TWBlue."
|
||||||
msgstr "* Контрл + Windows + F4: закрыть TWBlue."
|
msgstr "* Контрол + Windows + F4: закрыть TWBlue."
|
||||||
|
|
||||||
#: ../doc\strings.py:167
|
#: ../doc\strings.py:167
|
||||||
msgid "* Control + Windows + I: Open user timeline."
|
msgid "* Control + Windows + I: Open user timeline."
|
||||||
msgstr "* Контрл + Windows + I: открыть ленту пользователя."
|
msgstr "* Контрол + Windows + I: открыть ленту пользователя."
|
||||||
|
|
||||||
#: ../doc\strings.py:168
|
#: ../doc\strings.py:168
|
||||||
msgid "* Control + Windows + Shift + I: Destroy buffer."
|
msgid "* Control + Windows + Shift + I: Destroy buffer."
|
||||||
msgstr "* КОнтрл + Windows + Шифт + I: закрыть и удалить буфер."
|
msgstr "* Контрол + Windows + Шифт + I: закрыть и удалить буфер."
|
||||||
|
|
||||||
#: ../doc\strings.py:169
|
#: ../doc\strings.py:169
|
||||||
msgid "* Control + Windows + Alt + Up: Increase volume by 5%."
|
msgid "* Control + Windows + Alt + Up: Increase volume by 5%."
|
||||||
msgstr "* КОнтрл + Windows + Альт + вверх: увеличить громкость на 5%."
|
msgstr "* Контрол + Windows + Альт + вверх: увеличить громкость на 5%."
|
||||||
|
|
||||||
#: ../doc\strings.py:170
|
#: ../doc\strings.py:170
|
||||||
msgid "* Control + Windows + Alt + Down: Decrease volume by 5%."
|
msgid "* Control + Windows + Alt + Down: Decrease volume by 5%."
|
||||||
msgstr "* Контрл + Windows + Альт + Вниз: уменьшить громкость на 5%."
|
msgstr "* Контрол + Windows + Альт + Вниз: уменьшить громкость на 5%."
|
||||||
|
|
||||||
#: ../doc\strings.py:171
|
#: ../doc\strings.py:171
|
||||||
msgid ""
|
msgid ""
|
||||||
"* Control + Windows + Home: Jump to the first element of the current buffer."
|
"* Control + Windows + Home: Jump to the first element of the current buffer."
|
||||||
msgstr "* Контрл + Windows + Хоум: перейти к первому элементу текущего буфера."
|
msgstr ""
|
||||||
|
"* Контрол + Windows + Хоум: перейти к первому элементу текущего буфера."
|
||||||
|
|
||||||
#: ../doc\strings.py:172
|
#: ../doc\strings.py:172
|
||||||
msgid ""
|
msgid ""
|
||||||
"* Control + Windows + End: Jump to the last element of the current buffer."
|
"* Control + Windows + End: Jump to the last element of the current buffer."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"* Контрл + Windows + Энд: перейти к последнему элементу текущего буфера."
|
"* Контрол + Windows + Энд: перейти к последнему элементу текущего буфера."
|
||||||
|
|
||||||
#: ../doc\strings.py:173
|
#: ../doc\strings.py:173
|
||||||
msgid ""
|
msgid ""
|
||||||
"* Control + Windows + PageUp: Jump 20 elements up in the current buffer."
|
"* Control + Windows + PageUp: Jump 20 elements up in the current buffer."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"* КОнтрл + Windows + Страница вверх: перейти на 20элементов вверх в текущем "
|
"* Контрол + Windows + Страница вверх: перейти на 20элементов вверх в текущем "
|
||||||
"буфере."
|
"буфере."
|
||||||
|
|
||||||
#: ../doc\strings.py:174
|
#: ../doc\strings.py:174
|
||||||
msgid ""
|
msgid ""
|
||||||
"* Control + Windows + PageDown: Jump 20 elements down in the current buffer."
|
"* Control + Windows + PageDown: Jump 20 elements down in the current buffer."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"* Контрл + Windows + Страница вниз: перейти на 20 элементов вниз в текущем "
|
"* Контрол + Windows + Страница вниз: перейти на 20 элементов вниз в текущем "
|
||||||
"буфере."
|
"буфере."
|
||||||
|
|
||||||
#: ../doc\strings.py:175
|
#: ../doc\strings.py:175
|
||||||
@@ -1332,57 +1335,57 @@ msgstr "* Windows + Альт + P: редактировать профиль."
|
|||||||
|
|
||||||
#: ../doc\strings.py:176
|
#: ../doc\strings.py:176
|
||||||
msgid "* Control + Windows + Delete: Delete a tweet or direct message."
|
msgid "* Control + Windows + Delete: Delete a tweet or direct message."
|
||||||
msgstr "* КОнтрл + Windows + Делит: удалить твит или личное сообщение."
|
msgstr "* Контрол + Windows + Дэлит: удалить твит или личное сообщение."
|
||||||
|
|
||||||
#: ../doc\strings.py:177
|
#: ../doc\strings.py:177
|
||||||
msgid "* Control + Windows + Shift + Delete: Empty the current buffer."
|
msgid "* Control + Windows + Shift + Delete: Empty the current buffer."
|
||||||
msgstr "* Control + Windows + Шифт + Делит: очистить текущий буфер."
|
msgstr "* Контрол + Windows + Шифт + Дэлит: очистить текущий буфер."
|
||||||
|
|
||||||
#: ../doc\strings.py:178
|
#: ../doc\strings.py:178
|
||||||
msgid "* Control + Windows + Space: Repeat last item."
|
msgid "* Control + Windows + Space: Repeat last item."
|
||||||
msgstr "* Контрл + Windows + Пробел: повторить последний элемент."
|
msgstr "* Контрол + Windows + Пробел: повторить последний элемент."
|
||||||
|
|
||||||
#: ../doc\strings.py:179
|
#: ../doc\strings.py:179
|
||||||
msgid "* Control + Windows + Shift + C: Copy to clipboard."
|
msgid "* Control + Windows + Shift + C: Copy to clipboard."
|
||||||
msgstr "* Контрл + Windows + Шифт + C: скопировать в буфер обмена."
|
msgstr "* Контрол + Windows + Шифт + C: скопировать в буфер обмена."
|
||||||
|
|
||||||
#: ../doc\strings.py:180
|
#: ../doc\strings.py:180
|
||||||
msgid "* Control + Windows+ A: Add user to list."
|
msgid "* Control + Windows+ A: Add user to list."
|
||||||
msgstr "* Контрл + Windows+ A: добавить пользователя в список."
|
msgstr "* Контрол + Windows+ A: добавить пользователя в список."
|
||||||
|
|
||||||
#: ../doc\strings.py:181
|
#: ../doc\strings.py:181
|
||||||
msgid "* Control + Windows + Shift + A: Remove user from list."
|
msgid "* Control + Windows + Shift + A: Remove user from list."
|
||||||
msgstr "* Контрл + Windows + Шифт + A:удалить пользователя из списка. "
|
msgstr "* Контрол + Windows + Шифт + A: удалить пользователя из списка. "
|
||||||
|
|
||||||
#: ../doc\strings.py:182
|
#: ../doc\strings.py:182
|
||||||
msgid "* Control + Windows + Shift + M: Mute / unmute the current buffer."
|
msgid "* Control + Windows + Shift + M: Mute / unmute the current buffer."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"* Контрл + Windows + Шифт + M: отключить / включить звуки для текущего "
|
"* Контрол + Windows + Шифт + M: отключить / включить звуки для текущего "
|
||||||
"буфера."
|
"буфера."
|
||||||
|
|
||||||
#: ../doc\strings.py:183
|
#: ../doc\strings.py:183
|
||||||
msgid "* Windows + Alt + M: Mute / unmute the current session."
|
msgid "* Windows + Alt + M: Mute / unmute the current session."
|
||||||
msgstr "* Windows + Альт + M: отключить / включить звуки для текущей сессии."
|
msgstr "* Windows + Альт + M: Отключить / включить звуки для текущей сессии."
|
||||||
|
|
||||||
#: ../doc\strings.py:184
|
#: ../doc\strings.py:184
|
||||||
msgid ""
|
msgid ""
|
||||||
"* Control + Windows + E: Toggle the automatic reading of incoming tweets in "
|
"* Control + Windows + E: Toggle the automatic reading of incoming tweets in "
|
||||||
"the current buffer."
|
"the current buffer."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"* Контрл + Windows + E: переключить авточтение входящих твитов в текущем "
|
"* Контрол + Windows + E: переключить авточтение входящих твитов в текущем "
|
||||||
"буфере."
|
"буфере."
|
||||||
|
|
||||||
#: ../doc\strings.py:185
|
#: ../doc\strings.py:185
|
||||||
msgid "* Control + Windows + -: Search on Twitter."
|
msgid "* Control + Windows + -: Search on Twitter."
|
||||||
msgstr "* Контрл + Windows + -: искать в Твиттере."
|
msgstr "* Контрол + Windows + -: искать в Твиттере."
|
||||||
|
|
||||||
#: ../doc\strings.py:186
|
#: ../doc\strings.py:186
|
||||||
msgid "* Control + Windows + K: Show the keystroke editor."
|
msgid "* Control + Windows + K: Show the keystroke editor."
|
||||||
msgstr "* Control + Windows + K: показать редактор горячих клавиш."
|
msgstr "* Контрол + Windows + K: показать редактор горячих клавиш."
|
||||||
|
|
||||||
#: ../doc\strings.py:187
|
#: ../doc\strings.py:187
|
||||||
msgid "* Control + Windows + L: Show lists for a specified user."
|
msgid "* Control + Windows + L: Show lists for a specified user."
|
||||||
msgstr "* КОнтрл + Windows + L: показать списки указанного пользователя."
|
msgstr "* Контрол + Windows + L: показать списки указанного пользователя."
|
||||||
|
|
||||||
#: ../doc\strings.py:188
|
#: ../doc\strings.py:188
|
||||||
msgid "* Windows + Alt + PageUp: Load previous items for the current buffer."
|
msgid "* Windows + Alt + PageUp: Load previous items for the current buffer."
|
||||||
@@ -1392,22 +1395,22 @@ msgstr ""
|
|||||||
|
|
||||||
#: ../doc\strings.py:189
|
#: ../doc\strings.py:189
|
||||||
msgid "* Control + Windows + G: Get geolocation."
|
msgid "* Control + Windows + G: Get geolocation."
|
||||||
msgstr "* КОнтрл + Windows + G: получить местоположение."
|
msgstr "* Контрол + Windows + G: получить местоположение."
|
||||||
|
|
||||||
#: ../doc\strings.py:190
|
#: ../doc\strings.py:190
|
||||||
msgid ""
|
msgid ""
|
||||||
"* Control + Windows + Shift + G: Display the tweet's geolocation in a "
|
"* Control + Windows + Shift + G: Display the tweet's geolocation in a "
|
||||||
"dialogue."
|
"dialogue."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"* КОнтрл + Windows + Шифт + G: показать местоположение для твита в диалоге."
|
"* Контрол + Windows + Шифт + G: показать местоположение для твита в диалоге."
|
||||||
|
|
||||||
#: ../doc\strings.py:191
|
#: ../doc\strings.py:191
|
||||||
msgid "* Control + Windows + T: Create a trending topics' buffer."
|
msgid "* Control + Windows + T: Create a trending topics' buffer."
|
||||||
msgstr "* Контрл + Windows + T: создать буфер для трендов."
|
msgstr "* Контрол + Windows + T: создать буфер для трендов."
|
||||||
|
|
||||||
#: ../doc\strings.py:192
|
#: ../doc\strings.py:192
|
||||||
msgid "* Control + Windows + {: Find a string in the current buffer."
|
msgid "* Control + Windows + {: Find a string in the current buffer."
|
||||||
msgstr "* КОнтрл + Windows + {: найти фразу в текущем буфере."
|
msgstr "* Контрол + Windows + {: найти фразу в текущем буфере."
|
||||||
|
|
||||||
#: ../doc\strings.py:193
|
#: ../doc\strings.py:193
|
||||||
msgid "## Configuration"
|
msgid "## Configuration"
|
||||||
@@ -1571,7 +1574,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"* Язык: здесь можно выбрать язык программы. В настоящий момент "
|
"* Язык: здесь можно выбрать язык программы. В настоящий момент "
|
||||||
"поддерживаются Арабский,Каталанский, немецкий, английский,испанский, "
|
"поддерживаются Арабский,Каталанский, немецкий, английский,испанский, "
|
||||||
"баскский, финский, французский, Галицкий, хорватский, венгерский, "
|
"баскский, финский, французский, Галисийский, хорватский, венгерский, "
|
||||||
"итальянский, польский, португальский, русский и турецкий."
|
"итальянский, польский, португальский, русский и турецкий."
|
||||||
|
|
||||||
#: ../doc\strings.py:216
|
#: ../doc\strings.py:216
|
||||||
@@ -1598,8 +1601,8 @@ msgid ""
|
|||||||
"\"ready\"."
|
"\"ready\"."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"* Произносить приветствие при запуске TWBlue: то же, что и предыдущий "
|
"* Произносить приветствие при запуске TWBlue: то же, что и предыдущий "
|
||||||
"параметр, но определяетбудет ли программа экранного доступа говорить \"готово"
|
"параметр, но определяет будет ли программа экранного доступа говорить "
|
||||||
"\"."
|
"\"готово\"."
|
||||||
|
|
||||||
#: ../doc\strings.py:219
|
#: ../doc\strings.py:219
|
||||||
msgid ""
|
msgid ""
|
||||||
@@ -1692,7 +1695,7 @@ msgstr ""
|
|||||||
|
|
||||||
#: ../doc\strings.py:229
|
#: ../doc\strings.py:229
|
||||||
msgid "## Contact"
|
msgid "## Contact"
|
||||||
msgstr "## КОнтакт"
|
msgstr "## Контакт"
|
||||||
|
|
||||||
#: ../doc\strings.py:230
|
#: ../doc\strings.py:230
|
||||||
msgid ""
|
msgid ""
|
||||||
@@ -1704,7 +1707,7 @@ msgid ""
|
|||||||
"es)"
|
"es)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Если, после прочтения этого документа, у вас все еще остались вопросы, если "
|
"Если, после прочтения этого документа, у вас все еще остались вопросы, если "
|
||||||
"вы хотите каким-либо образом посотрудничать с проектом, или, если вы просто "
|
"вы хотите каким-либо образом сотрудничать с проектом, или, если вы просто "
|
||||||
"хотите связаться с разработчиком этого приложения, начните читать в Твиттере "
|
"хотите связаться с разработчиком этого приложения, начните читать в Твиттере "
|
||||||
"пользователя [@tw\\_blue2](https://twitter.com/tw_blue2) или "
|
"пользователя [@tw\\_blue2](https://twitter.com/tw_blue2) или "
|
||||||
"[@manuelcortez00.](https://twitter.com/manuelcortez00). Вы также можете "
|
"[@manuelcortez00.](https://twitter.com/manuelcortez00). Вы также можете "
|
||||||
@@ -1720,7 +1723,7 @@ msgid ""
|
|||||||
"manuelcortez00) and [José Manuel Delicado](https://twitter.com/jmdaweb). "
|
"manuelcortez00) and [José Manuel Delicado](https://twitter.com/jmdaweb). "
|
||||||
"It's supported and sponsored by [Technow S. L.](https://twitter.com/technow)"
|
"It's supported and sponsored by [Technow S. L.](https://twitter.com/technow)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Разрабатывают и поддерживают TWBlue [Мануэль Кортез](https://twitter.com/"
|
"Разрабатывают и поддерживают TWBlue [Мануэль Кортес](https://twitter.com/"
|
||||||
"manuelcortez00) и [Хосе Мануэль Деликадо](https://twitter.com/jmdaweb). "
|
"manuelcortez00) и [Хосе Мануэль Деликадо](https://twitter.com/jmdaweb). "
|
||||||
"Поддержку и спонсорскую помощь оказывает [Technow S. L.](https://twitter.com/"
|
"Поддержку и спонсорскую помощь оказывает [Technow S. L.](https://twitter.com/"
|
||||||
"technow)"
|
"technow)"
|
||||||
@@ -1743,7 +1746,7 @@ msgstr "* Арабский : [Mohammed Al Shara](https://twitter.com/mohammed020
|
|||||||
|
|
||||||
#: ../doc\strings.py:236
|
#: ../doc\strings.py:236
|
||||||
msgid "* Catalan: [Francisco Torres](https://twitter.com/ftgalleg)"
|
msgid "* Catalan: [Francisco Torres](https://twitter.com/ftgalleg)"
|
||||||
msgstr "* Галицийский: [Francisco Torres](https://twitter.com/ftgalleg)"
|
msgstr "* Каталанский: [Francisco Torres](https://twitter.com/ftgalleg)"
|
||||||
|
|
||||||
#: ../doc\strings.py:237
|
#: ../doc\strings.py:237
|
||||||
msgid "* Spanish: [Manuel Cortéz](https://twitter.com/manuelcortez00)."
|
msgid "* Spanish: [Manuel Cortéz](https://twitter.com/manuelcortez00)."
|
||||||
@@ -1763,7 +1766,7 @@ msgstr "* Французский: [Rémi Ruiz](https://twitter.com/blindhelp38).
|
|||||||
|
|
||||||
#: ../doc\strings.py:241
|
#: ../doc\strings.py:241
|
||||||
msgid "* Galician: [Juan Buño](https://twitter.com/Quetzatl_)."
|
msgid "* Galician: [Juan Buño](https://twitter.com/Quetzatl_)."
|
||||||
msgstr "* Галицийский: [Juan Buño](https://twitter.com/Quetzatl_)."
|
msgstr "* Галисийский: [Juan Buño](https://twitter.com/Quetzatl_)."
|
||||||
|
|
||||||
#: ../doc\strings.py:242
|
#: ../doc\strings.py:242
|
||||||
msgid "* German: [Steffen Schultz](https://twitter.com/schulle4u)."
|
msgid "* German: [Steffen Schultz](https://twitter.com/schulle4u)."
|
||||||
@@ -1826,7 +1829,7 @@ msgid ""
|
|||||||
"twitter.com/brianhartgen) and [Bill Dengler](https://twitter.com/codeofdusk)."
|
"twitter.com/brianhartgen) and [Bill Dengler](https://twitter.com/codeofdusk)."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Также огромная благодарность всем, кто работал над документацией. Изначально "
|
"Также огромная благодарность всем, кто работал над документацией. Изначально "
|
||||||
"[Мануэль Кортез](https://twitter.com/manuelcortez00) создал документацию на "
|
"[Мануэль Кортес](https://twitter.com/manuelcortez00) создал документацию на "
|
||||||
"испанском языке, затем она была переведена на английский пользователями "
|
"испанском языке, затем она была переведена на английский пользователями "
|
||||||
"[Bryner Villalobos](https://twitter.com/Bry_StarkCR), [Robert Spangler]"
|
"[Bryner Villalobos](https://twitter.com/Bry_StarkCR), [Robert Spangler]"
|
||||||
"(https://twitter.com/glasscity1837), [Sussan Rey](https://twitter.com/"
|
"(https://twitter.com/glasscity1837), [Sussan Rey](https://twitter.com/"
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
[Format]
|
[Format]
|
||||||
Type=PortableApps.comFormat
|
Type=PortableApps.comFormat
|
||||||
Version=3.3
|
Version=3.4
|
||||||
|
|
||||||
[Details]
|
[Details]
|
||||||
Name=tw blue portable
|
Name=tw blue portable
|
||||||
@@ -20,8 +20,8 @@ CommercialUse=true
|
|||||||
EULAVersion=2
|
EULAVersion=2
|
||||||
|
|
||||||
[Version]
|
[Version]
|
||||||
PackageVersion=0.85.0.0
|
PackageVersion=0.87.0.0
|
||||||
DisplayVersion=0.85
|
DisplayVersion=0.87
|
||||||
|
|
||||||
[Control]
|
[Control]
|
||||||
Icons=1
|
Icons=1
|
||||||
|
@@ -13,9 +13,9 @@ SetCompressor /solid lzma
|
|||||||
SetDatablockOptimize on
|
SetDatablockOptimize on
|
||||||
VIAddVersionKey ProductName "TWBlue"
|
VIAddVersionKey ProductName "TWBlue"
|
||||||
VIAddVersionKey LegalCopyright "Copyright 2016 Manuel Cortéz."
|
VIAddVersionKey LegalCopyright "Copyright 2016 Manuel Cortéz."
|
||||||
VIAddVersionKey ProductVersion "0.85"
|
VIAddVersionKey ProductVersion "0.87"
|
||||||
VIAddVersionKey FileVersion "0.85"
|
VIAddVersionKey FileVersion "0.87"
|
||||||
VIProductVersion "0.85.0.0"
|
VIProductVersion "0.87.0.0"
|
||||||
!insertmacro MUI_PAGE_WELCOME
|
!insertmacro MUI_PAGE_WELCOME
|
||||||
!define MUI_LICENSEPAGE_RADIOBUTTONS
|
!define MUI_LICENSEPAGE_RADIOBUTTONS
|
||||||
!insertmacro MUI_PAGE_LICENSE "license.txt"
|
!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\twblue" "UninstallString" '"$INSTDIR\uninstall.exe"'
|
||||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall" "InstallLocation" $INSTDIR
|
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" "Publisher" "Manuel Cortéz"
|
||||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\twblue" "DisplayVersion" "0.85"
|
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\twblue" "DisplayVersion" "0.87"
|
||||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\twblue" "URLInfoAbout" "http://twblue.es"
|
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" "VersionMajor" 0
|
||||||
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\twblue" "VersionMinor" 85
|
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" "NoModify" 1
|
||||||
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\twblue" "NoRepair" 1
|
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\twblue" "NoRepair" 1
|
||||||
SectionEnd
|
SectionEnd
|
||||||
|
@@ -39,3 +39,4 @@ 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)
|
twishort_enabled = boolean(default=False)
|
||||||
|
mention_all = boolean(default=True)
|
@@ -2,7 +2,7 @@
|
|||||||
name = 'TWBlue'
|
name = 'TWBlue'
|
||||||
snapshot = False
|
snapshot = False
|
||||||
if snapshot == False:
|
if snapshot == False:
|
||||||
version = "0.85"
|
version = "0.87"
|
||||||
update_url = 'http://twblue.es/updates/twblue_ngen.json'
|
update_url = 'http://twblue.es/updates/twblue_ngen.json'
|
||||||
mirror_update_url = 'https://raw.githubusercontent.com/manuelcortez/TWBlue/next-gen/updates/stable.json'
|
mirror_update_url = 'https://raw.githubusercontent.com/manuelcortez/TWBlue/next-gen/updates/stable.json'
|
||||||
else:
|
else:
|
||||||
|
@@ -224,7 +224,7 @@ class emptyPanel(bufferController):
|
|||||||
self.needs_init = True
|
self.needs_init = True
|
||||||
|
|
||||||
class baseBufferController(bufferController):
|
class baseBufferController(bufferController):
|
||||||
def __init__(self, parent, function, name, sessionObject, account, sound=None, bufferType=None, *args, **kwargs):
|
def __init__(self, parent, function, name, sessionObject, account, sound=None, bufferType=None, compose_func="compose_tweet", *args, **kwargs):
|
||||||
super(baseBufferController, self).__init__(parent, function, *args, **kwargs)
|
super(baseBufferController, self).__init__(parent, function, *args, **kwargs)
|
||||||
log.debug("Initializing buffer %s, account %s" % (name, account,))
|
log.debug("Initializing buffer %s, account %s" % (name, account,))
|
||||||
if bufferType != None:
|
if bufferType != None:
|
||||||
@@ -235,7 +235,7 @@ class baseBufferController(bufferController):
|
|||||||
self.name = name
|
self.name = name
|
||||||
self.type = self.buffer.type
|
self.type = self.buffer.type
|
||||||
self.session = sessionObject
|
self.session = sessionObject
|
||||||
self.compose_function = compose.compose_tweet
|
self.compose_function = getattr(compose, compose_func)
|
||||||
log.debug("Compose_function: %s" % (self.compose_function,))
|
log.debug("Compose_function: %s" % (self.compose_function,))
|
||||||
self.account = account
|
self.account = account
|
||||||
self.buffer.account = account
|
self.buffer.account = account
|
||||||
@@ -258,10 +258,10 @@ class baseBufferController(bufferController):
|
|||||||
if tweet.has_key("message"):
|
if tweet.has_key("message"):
|
||||||
message = tweet["message"]
|
message = tweet["message"]
|
||||||
try:
|
try:
|
||||||
tweet = self.session.twitter.twitter.show_status(id=tweet_id, include_ext_alt_text=True)
|
tweet = self.session.twitter.twitter.show_status(id=tweet_id, include_ext_alt_text=True, tweet_mode="extended")
|
||||||
urls = utils.find_urls_in_text(tweet["text"])
|
urls = utils.find_urls_in_text(tweet["full_text"])
|
||||||
for url in range(0, len(urls)):
|
for url in range(0, len(urls)):
|
||||||
try: tweet["text"] = tweet["text"].replace(urls[url], tweet["entities"]["urls"][url]["expanded_url"])
|
try: tweet["full_text"] = tweet["full_text"].replace(urls[url], tweet["entities"]["urls"][url]["expanded_url"])
|
||||||
except IndexError: pass
|
except IndexError: pass
|
||||||
except TwythonError as e:
|
except TwythonError as e:
|
||||||
utils.twitter_error(e)
|
utils.twitter_error(e)
|
||||||
@@ -272,10 +272,10 @@ class baseBufferController(bufferController):
|
|||||||
while l != False:
|
while l != False:
|
||||||
tweetsList.append(tweet)
|
tweetsList.append(tweet)
|
||||||
try:
|
try:
|
||||||
tweet = self.session.twitter.twitter.show_status(id=l, include_ext_alt_text=True)
|
tweet = self.session.twitter.twitter.show_status(id=l, include_ext_alt_text=True, tweet_mode="extended")
|
||||||
urls = utils.find_urls_in_text(tweet["text"])
|
urls = utils.find_urls_in_text(tweet["full_text"])
|
||||||
for url in range(0, len(urls)):
|
for url in range(0, len(urls)):
|
||||||
try: tweet["text"] = tweet["text"].replace(urls[url], tweet["entities"]["urls"][url]["expanded_url"])
|
try: tweet["full_text"] = tweet["full_text"].replace(urls[url], tweet["entities"]["urls"][url]["expanded_url"])
|
||||||
except IndexError: pass
|
except IndexError: pass
|
||||||
except TwythonError as e:
|
except TwythonError as e:
|
||||||
utils.twitter_error(e)
|
utils.twitter_error(e)
|
||||||
@@ -480,19 +480,22 @@ class baseBufferController(bufferController):
|
|||||||
screen_name = tweet["user"]["screen_name"]
|
screen_name = tweet["user"]["screen_name"]
|
||||||
id = tweet["id"]
|
id = tweet["id"]
|
||||||
users = 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,), "@%s " % (screen_name,), twishort_enabled=self.session.settings["mysc"]["twishort_enabled"], users=users)
|
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:
|
if message.message.get_response() == widgetUtils.OK:
|
||||||
self.session.settings["mysc"]["twishort_enabled"] = message.message.long_tweet.GetValue()
|
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()
|
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 len(text) > 140 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:
|
||||||
text = twishort.create_tweet(self.session.settings["twitter"]["user_key"], self.session.settings["twitter"]["user_secret"], text, 1)
|
text = twishort.create_tweet(self.session.settings["twitter"]["user_key"], self.session.settings["twitter"]["user_secret"], text, 1)
|
||||||
if message.image == None:
|
if message.image == None:
|
||||||
call_threaded(self.session.api_call, call_name="update_status", _sound="reply_send.ogg", in_reply_to_status_id=id, status=text)
|
call_threaded(self.session.api_call, call_name="update_status", _sound="reply_send.ogg", in_reply_to_status_id=id, status=text, auto_populate_reply_metadata=message.message.mentionAll.GetValue())
|
||||||
else:
|
else:
|
||||||
call_threaded(self.session.api_call, call_name="update_status_with_media", _sound="reply_send.ogg", in_reply_to_status_id=id, status=text, media=message.file)
|
call_threaded(self.session.api_call, call_name="update_status_with_media", _sound="reply_send.ogg", in_reply_to_status_id=id, status=text, media=message.file, auto_populate_reply_metadata=message.message.mentionAll.GetValue())
|
||||||
if hasattr(message.message, "destroy"): message.message.destroy()
|
if hasattr(message.message, "destroy"): message.message.destroy()
|
||||||
|
|
||||||
@_tweets_exist
|
@_tweets_exist
|
||||||
@@ -534,20 +537,16 @@ class baseBufferController(bufferController):
|
|||||||
self._retweet_with_comment(tweet, id)
|
self._retweet_with_comment(tweet, id)
|
||||||
|
|
||||||
def _retweet_with_comment(self, tweet, id, comment=''):
|
def _retweet_with_comment(self, tweet, id, comment=''):
|
||||||
retweet = messages.tweet(self.session, _(u"Retweet"), _(u"Add your comment to the tweet"), u"“@%s: %s ”" % (tweet["user"]["screen_name"], tweet["text"]), max=116, messageType="retweet", twishort_enabled=self.session.settings["mysc"]["twishort_enabled"])
|
if tweet.has_key("full_text"):
|
||||||
|
comments = tweet["full_text"]
|
||||||
|
else:
|
||||||
|
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"])
|
||||||
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:
|
||||||
text = retweet.message.get_text()
|
text = retweet.message.get_text()
|
||||||
comments=text
|
|
||||||
if len(text+ u"“@%s: %s ”" % (tweet["user"]["screen_name"], tweet["text"])) < 140:
|
|
||||||
text = text+u"“@%s: %s ”" % (tweet["user"]["screen_name"], tweet["text"])
|
|
||||||
else:
|
|
||||||
answer = commonMessageDialogs.retweet_as_link(self.buffer)
|
|
||||||
if answer == widgetUtils.YES:
|
|
||||||
text = text+" https://twitter.com/{0}/status/{1}".format(tweet["user"]["screen_name"], id)
|
text = text+" https://twitter.com/{0}/status/{1}".format(tweet["user"]["screen_name"], id)
|
||||||
else:
|
|
||||||
return self._retweet_with_comment(tweet, id, comment=comments)
|
|
||||||
if retweet.image == None:
|
if retweet.image == None:
|
||||||
call_threaded(self.session.api_call, call_name="update_status", _sound="retweet_send.ogg", status=text, in_reply_to_status_id=id)
|
call_threaded(self.session.api_call, call_name="update_status", _sound="retweet_send.ogg", status=text, in_reply_to_status_id=id)
|
||||||
else:
|
else:
|
||||||
@@ -1100,7 +1099,7 @@ class conversationBufferController(searchBufferController):
|
|||||||
tweet = self.tweet
|
tweet = self.tweet
|
||||||
while tweet["in_reply_to_status_id"] != None:
|
while tweet["in_reply_to_status_id"] != None:
|
||||||
try:
|
try:
|
||||||
tweet = self.session.twitter.twitter.show_status(id=tweet["in_reply_to_status_id"])
|
tweet = self.session.twitter.twitter.show_status(id=tweet["in_reply_to_status_id"], tweet_mode="extended")
|
||||||
except TwythonError as err:
|
except TwythonError as err:
|
||||||
break
|
break
|
||||||
self.statuses.insert(0, tweet)
|
self.statuses.insert(0, tweet)
|
||||||
@@ -1108,7 +1107,7 @@ class conversationBufferController(searchBufferController):
|
|||||||
if tweet["in_reply_to_status_id"] == None:
|
if tweet["in_reply_to_status_id"] == None:
|
||||||
self.kwargs["since_id"] = tweet["id"]
|
self.kwargs["since_id"] = tweet["id"]
|
||||||
self.ids.append(tweet["id"])
|
self.ids.append(tweet["id"])
|
||||||
val2 = self.session.search(self.name, *self.args, **self.kwargs)
|
val2 = self.session.search(self.name, tweet_mode="extended", *self.args, **self.kwargs)
|
||||||
for i in val2:
|
for i in val2:
|
||||||
if i["in_reply_to_status_id"] in self.ids:
|
if i["in_reply_to_status_id"] in self.ids:
|
||||||
self.statuses.append(i)
|
self.statuses.append(i)
|
||||||
@@ -1128,12 +1127,3 @@ class conversationBufferController(searchBufferController):
|
|||||||
return True
|
return True
|
||||||
elif dlg == widgetUtils.NO:
|
elif dlg == widgetUtils.NO:
|
||||||
return False
|
return False
|
||||||
|
|
||||||
class pocketBufferController(baseBufferController):
|
|
||||||
def __init__(self, parent, name, sessionObject, account, sound=None, function=None, bufferType=None, *args, **kwargs):
|
|
||||||
super(pocketBufferController, self).__init__(parent, name, sessionObject, account, sound, function, bufferType, *args, **kwargs)
|
|
||||||
self.type = "pocket"
|
|
||||||
|
|
||||||
def start_stream(self):
|
|
||||||
log.debug("Starting stream for buffer %s, account %s and type %s" % (self.name, self.account, self.type))
|
|
||||||
log.debug("args: %s, kwargs: %s" % (self.args, self.kwargs))
|
|
||||||
|
@@ -175,6 +175,8 @@ class Controller(object):
|
|||||||
widgetUtils.connect_event(self.view, widgetUtils.MENU, self.open_timeline, self.view.timeline)
|
widgetUtils.connect_event(self.view, widgetUtils.MENU, self.open_timeline, self.view.timeline)
|
||||||
widgetUtils.connect_event(self.view, widgetUtils.MENU, self.open_favs_timeline, self.view.favs)
|
widgetUtils.connect_event(self.view, widgetUtils.MENU, self.open_favs_timeline, self.view.favs)
|
||||||
widgetUtils.connect_event(self.view, widgetUtils.MENU, self.open_conversation, menuitem=self.view.view_conversation)
|
widgetUtils.connect_event(self.view, widgetUtils.MENU, self.open_conversation, menuitem=self.view.view_conversation)
|
||||||
|
widgetUtils.connect_event(self.view, widgetUtils.MENU, self.seekLeft, menuitem=self.view.seekLeft)
|
||||||
|
widgetUtils.connect_event(self.view, widgetUtils.MENU, self.seekRight, menuitem=self.view.seekRight)
|
||||||
if widgetUtils.toolkit == "wx":
|
if widgetUtils.toolkit == "wx":
|
||||||
widgetUtils.connect_event(self.view.nb, widgetUtils.NOTEBOOK_PAGE_CHANGED, self.buffer_changed)
|
widgetUtils.connect_event(self.view.nb, widgetUtils.NOTEBOOK_PAGE_CHANGED, self.buffer_changed)
|
||||||
widgetUtils.connect_event(self.view, widgetUtils.MENU, self.report_error, self.view.reportError)
|
widgetUtils.connect_event(self.view, widgetUtils.MENU, self.report_error, self.view.reportError)
|
||||||
@@ -291,27 +293,27 @@ class Controller(object):
|
|||||||
self.view.add_buffer(account.buffer , name=session.db["user_name"])
|
self.view.add_buffer(account.buffer , name=session.db["user_name"])
|
||||||
for i in session.settings['general']['buffer_order']:
|
for i in session.settings['general']['buffer_order']:
|
||||||
if i == 'home':
|
if i == 'home':
|
||||||
home = buffersController.baseBufferController(self.view.nb, "get_home_timeline", "home_timeline", session, session.db["user_name"])
|
home = buffersController.baseBufferController(self.view.nb, "get_home_timeline", "home_timeline", session, session.db["user_name"], tweet_mode="extended")
|
||||||
self.buffers.append(home)
|
self.buffers.append(home)
|
||||||
self.view.insert_buffer(home.buffer, name=_(u"Home"), pos=self.view.search(session.db["user_name"], session.db["user_name"]))
|
self.view.insert_buffer(home.buffer, name=_(u"Home"), pos=self.view.search(session.db["user_name"], session.db["user_name"]))
|
||||||
elif i == 'mentions':
|
elif i == 'mentions':
|
||||||
mentions = buffersController.baseBufferController(self.view.nb, "get_mentions_timeline", "mentions", session, session.db["user_name"], sound="mention_received.ogg")
|
mentions = buffersController.baseBufferController(self.view.nb, "get_mentions_timeline", "mentions", session, session.db["user_name"], sound="mention_received.ogg", tweet_mode="extended")
|
||||||
self.buffers.append(mentions)
|
self.buffers.append(mentions)
|
||||||
self.view.insert_buffer(mentions.buffer, name=_(u"Mentions"), pos=self.view.search(session.db["user_name"], session.db["user_name"]))
|
self.view.insert_buffer(mentions.buffer, name=_(u"Mentions"), pos=self.view.search(session.db["user_name"], session.db["user_name"]))
|
||||||
elif i == 'dm':
|
elif i == 'dm':
|
||||||
dm = buffersController.baseBufferController(self.view.nb, "get_direct_messages", "direct_messages", session, session.db["user_name"], bufferType="dmPanel", sound="dm_received.ogg", full_text=True)
|
dm = buffersController.baseBufferController(self.view.nb, "get_direct_messages", "direct_messages", session, session.db["user_name"], bufferType="dmPanel", compose_func="compose_dm", sound="dm_received.ogg", full_text=True)
|
||||||
self.buffers.append(dm)
|
self.buffers.append(dm)
|
||||||
self.view.insert_buffer(dm.buffer, name=_(u"Direct messages"), pos=self.view.search(session.db["user_name"], session.db["user_name"]))
|
self.view.insert_buffer(dm.buffer, name=_(u"Direct messages"), pos=self.view.search(session.db["user_name"], session.db["user_name"]))
|
||||||
elif i == 'sent_dm':
|
elif i == 'sent_dm':
|
||||||
sent_dm = buffersController.baseBufferController(self.view.nb, "get_sent_messages", "sent_direct_messages", session, session.db["user_name"], bufferType="dmPanel", full_text=True)
|
sent_dm = buffersController.baseBufferController(self.view.nb, "get_sent_messages", "sent_direct_messages", session, session.db["user_name"], bufferType="dmPanel", compose_func="compose_dm", full_text=True)
|
||||||
self.buffers.append(sent_dm)
|
self.buffers.append(sent_dm)
|
||||||
self.view.insert_buffer(sent_dm.buffer, name=_(u"Sent direct messages"), pos=self.view.search(session.db["user_name"], session.db["user_name"]))
|
self.view.insert_buffer(sent_dm.buffer, name=_(u"Sent direct messages"), pos=self.view.search(session.db["user_name"], session.db["user_name"]))
|
||||||
elif i == 'sent_tweets':
|
elif i == 'sent_tweets':
|
||||||
sent_tweets = buffersController.baseBufferController(self.view.nb, "get_user_timeline", "sent_tweets", session, session.db["user_name"], bufferType="dmPanel", screen_name=session.db["user_name"])
|
sent_tweets = buffersController.baseBufferController(self.view.nb, "get_user_timeline", "sent_tweets", session, session.db["user_name"], bufferType="dmPanel", screen_name=session.db["user_name"], tweet_mode="extended")
|
||||||
self.buffers.append(sent_tweets)
|
self.buffers.append(sent_tweets)
|
||||||
self.view.insert_buffer(sent_tweets.buffer, name=_(u"Sent tweets"), pos=self.view.search(session.db["user_name"], session.db["user_name"]))
|
self.view.insert_buffer(sent_tweets.buffer, name=_(u"Sent tweets"), pos=self.view.search(session.db["user_name"], session.db["user_name"]))
|
||||||
elif i == 'favorites':
|
elif i == 'favorites':
|
||||||
favourites = buffersController.baseBufferController(self.view.nb, "get_favorites", "favourites", session, session.db["user_name"])
|
favourites = buffersController.baseBufferController(self.view.nb, "get_favorites", "favourites", session, session.db["user_name"], tweet_mode="extended")
|
||||||
self.buffers.append(favourites)
|
self.buffers.append(favourites)
|
||||||
|
|
||||||
self.view.insert_buffer(favourites.buffer, name=_(u"Likes"), pos=self.view.search(session.db["user_name"], session.db["user_name"]))
|
self.view.insert_buffer(favourites.buffer, name=_(u"Likes"), pos=self.view.search(session.db["user_name"], session.db["user_name"]))
|
||||||
@@ -339,14 +341,14 @@ class Controller(object):
|
|||||||
self.buffers.append(timelines)
|
self.buffers.append(timelines)
|
||||||
self.view.insert_buffer(timelines.buffer , name=_(u"Timelines"), pos=self.view.search(session.db["user_name"], session.db["user_name"]))
|
self.view.insert_buffer(timelines.buffer , name=_(u"Timelines"), pos=self.view.search(session.db["user_name"], session.db["user_name"]))
|
||||||
for i in session.settings["other_buffers"]["timelines"]:
|
for i in session.settings["other_buffers"]["timelines"]:
|
||||||
tl = buffersController.baseBufferController(self.view.nb, "get_user_timeline", "%s-timeline" % (i,), session, session.db["user_name"], bufferType=None, screen_name=i)
|
tl = buffersController.baseBufferController(self.view.nb, "get_user_timeline", "%s-timeline" % (i,), session, session.db["user_name"], bufferType=None, screen_name=i, tweet_mode="extended")
|
||||||
self.buffers.append(tl)
|
self.buffers.append(tl)
|
||||||
self.view.insert_buffer(tl.buffer, name=_(u"Timeline for {}").format(i,), pos=self.view.search("timelines", session.db["user_name"]))
|
self.view.insert_buffer(tl.buffer, name=_(u"Timeline for {}").format(i,), pos=self.view.search("timelines", session.db["user_name"]))
|
||||||
favs_timelines = buffersController.emptyPanel(self.view.nb, "favs_timelines", session.db["user_name"])
|
favs_timelines = buffersController.emptyPanel(self.view.nb, "favs_timelines", session.db["user_name"])
|
||||||
self.buffers.append(favs_timelines)
|
self.buffers.append(favs_timelines)
|
||||||
self.view.insert_buffer(favs_timelines.buffer , name=_(u"Likes timelines"), pos=self.view.search(session.db["user_name"], session.db["user_name"]))
|
self.view.insert_buffer(favs_timelines.buffer , name=_(u"Likes timelines"), pos=self.view.search(session.db["user_name"], session.db["user_name"]))
|
||||||
for i in session.settings["other_buffers"]["favourites_timelines"]:
|
for i in session.settings["other_buffers"]["favourites_timelines"]:
|
||||||
tl = buffersController.baseBufferController(self.view.nb, "get_favorites", "%s-favorite" % (i,), session, session.db["user_name"], bufferType=None, screen_name=i)
|
tl = buffersController.baseBufferController(self.view.nb, "get_favorites", "%s-favorite" % (i,), session, session.db["user_name"], bufferType=None, screen_name=i, tweet_mode="extended")
|
||||||
self.buffers.append(tl)
|
self.buffers.append(tl)
|
||||||
self.view.insert_buffer(tl.buffer, name=_(u"Likes for {}").format(i,), pos=self.view.search("favs_timelines", session.db["user_name"]))
|
self.view.insert_buffer(tl.buffer, name=_(u"Likes for {}").format(i,), pos=self.view.search("favs_timelines", session.db["user_name"]))
|
||||||
tl.timer = RepeatingTimer(300, tl.start_stream)
|
tl.timer = RepeatingTimer(300, tl.start_stream)
|
||||||
@@ -373,7 +375,7 @@ class Controller(object):
|
|||||||
self.buffers.append(lists)
|
self.buffers.append(lists)
|
||||||
self.view.insert_buffer(lists.buffer , name=_(u"Lists"), pos=self.view.search(session.db["user_name"], session.db["user_name"]))
|
self.view.insert_buffer(lists.buffer , name=_(u"Lists"), pos=self.view.search(session.db["user_name"], session.db["user_name"]))
|
||||||
for i in session.settings["other_buffers"]["lists"]:
|
for i in session.settings["other_buffers"]["lists"]:
|
||||||
tl = buffersController.listBufferController(self.view.nb, "get_list_statuses", "%s-list" % (i,), session, session.db["user_name"], bufferType=None, list_id=utils.find_list(i, session.db["lists"]))
|
tl = buffersController.listBufferController(self.view.nb, "get_list_statuses", "%s-list" % (i,), session, session.db["user_name"], bufferType=None, list_id=utils.find_list(i, session.db["lists"]), tweet_mode="extended")
|
||||||
session.lists.append(tl)
|
session.lists.append(tl)
|
||||||
self.buffers.append(tl)
|
self.buffers.append(tl)
|
||||||
self.view.insert_buffer(tl.buffer, name=_(u"List for {}").format(i), pos=self.view.search("lists", session.db["user_name"]))
|
self.view.insert_buffer(tl.buffer, name=_(u"List for {}").format(i), pos=self.view.search("lists", session.db["user_name"]))
|
||||||
@@ -381,7 +383,7 @@ class Controller(object):
|
|||||||
self.buffers.append(searches)
|
self.buffers.append(searches)
|
||||||
self.view.insert_buffer(searches.buffer , name=_(u"Searches"), pos=self.view.search(session.db["user_name"], session.db["user_name"]))
|
self.view.insert_buffer(searches.buffer , name=_(u"Searches"), pos=self.view.search(session.db["user_name"], session.db["user_name"]))
|
||||||
for i in session.settings["other_buffers"]["tweet_searches"]:
|
for i in session.settings["other_buffers"]["tweet_searches"]:
|
||||||
tl = buffersController.searchBufferController(self.view.nb, "search", "%s-searchterm" % (i,), session, session.db["user_name"], bufferType="searchPanel", q=i, count=session.settings["general"]["max_tweets_per_call"])
|
tl = buffersController.searchBufferController(self.view.nb, "search", "%s-searchterm" % (i,), session, session.db["user_name"], bufferType="searchPanel", q=i, count=session.settings["general"]["max_tweets_per_call"], tweet_mode="extended")
|
||||||
self.buffers.append(tl)
|
self.buffers.append(tl)
|
||||||
self.view.insert_buffer(tl.buffer, name=_(u"Search for {}").format(i), pos=self.view.search("searches", session.db["user_name"]))
|
self.view.insert_buffer(tl.buffer, name=_(u"Search for {}").format(i), pos=self.view.search("searches", session.db["user_name"]))
|
||||||
tl.timer = RepeatingTimer(180, tl.start_stream)
|
tl.timer = RepeatingTimer(180, tl.start_stream)
|
||||||
@@ -478,6 +480,18 @@ class Controller(object):
|
|||||||
output.speak(_(u"{0} not found.").format(string,), True)
|
output.speak(_(u"{0} not found.").format(string,), True)
|
||||||
page.buffer.list.select_item(start)
|
page.buffer.list.select_item(start)
|
||||||
|
|
||||||
|
def seekLeft(self, *args, **kwargs):
|
||||||
|
try:
|
||||||
|
sound.URLPlayer.seek(-5)
|
||||||
|
except:
|
||||||
|
output.speak("Unable to seek.",True)
|
||||||
|
|
||||||
|
def seekRight(self, *args, **kwargs):
|
||||||
|
try:
|
||||||
|
sound.URLPlayer.seek(5)
|
||||||
|
except:
|
||||||
|
output.speak("Unable to seek.",True)
|
||||||
|
|
||||||
def edit_keystrokes(self, *args, **kwargs):
|
def edit_keystrokes(self, *args, **kwargs):
|
||||||
editor = keystrokeEditor.KeystrokeEditor()
|
editor = keystrokeEditor.KeystrokeEditor()
|
||||||
if editor.changed == True:
|
if editor.changed == True:
|
||||||
|
@@ -147,10 +147,11 @@ class tweet(basicTweet):
|
|||||||
class reply(tweet):
|
class reply(tweet):
|
||||||
def __init__(self, session, title, caption, text, twishort_enabled, users=None):
|
def __init__(self, session, title, caption, text, twishort_enabled, users=None):
|
||||||
super(reply, self).__init__(session, title, caption, text, twishort_enabled, messageType="reply")
|
super(reply, self).__init__(session, title, caption, text, twishort_enabled, messageType="reply")
|
||||||
self.users = users
|
self.message.mentionAll.SetValue(True)
|
||||||
if self.users != None and len(self.users) > 1:
|
if len(users) > 1:
|
||||||
widgetUtils.connect_event(self.message.mentionAll, widgetUtils.BUTTON_PRESSED, 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"])
|
||||||
self.message.set_cursor_at_end()
|
self.message.set_cursor_at_end()
|
||||||
self.text_processor()
|
self.text_processor()
|
||||||
|
|
||||||
@@ -184,10 +185,10 @@ class viewTweet(basicTweet):
|
|||||||
if tweetList[i].has_key("message") and tweetList[i]["is_quote_status"] == False:
|
if tweetList[i].has_key("message") and tweetList[i]["is_quote_status"] == False:
|
||||||
value = "message"
|
value = "message"
|
||||||
else:
|
else:
|
||||||
value = "text"
|
value = "full_text"
|
||||||
if tweetList[i].has_key("retweeted_status") and tweetList[i]["is_quote_status"] == False:
|
if tweetList[i].has_key("retweeted_status") and tweetList[i]["is_quote_status"] == False:
|
||||||
if tweetList[i].has_key("message") == False:
|
if tweetList[i].has_key("message") == False:
|
||||||
text = text + "rt @%s: %s\n" % (tweetList[i]["retweeted_status"]["user"]["screen_name"], tweetList[i]["retweeted_status"]["text"])
|
text = text + "rt @%s: %s\n" % (tweetList[i]["retweeted_status"]["user"]["screen_name"], tweetList[i]["retweeted_status"]["full_text"])
|
||||||
else:
|
else:
|
||||||
text = text + "rt @%s: %s\n" % (tweetList[i]["retweeted_status"]["user"]["screen_name"], tweetList[i][value])
|
text = text + "rt @%s: %s\n" % (tweetList[i]["retweeted_status"]["user"]["screen_name"], tweetList[i][value])
|
||||||
else:
|
else:
|
||||||
@@ -206,10 +207,10 @@ class viewTweet(basicTweet):
|
|||||||
if tweet.has_key("message"):
|
if tweet.has_key("message"):
|
||||||
value = "message"
|
value = "message"
|
||||||
else:
|
else:
|
||||||
value = "text"
|
value = "full_text"
|
||||||
if tweet.has_key("retweeted_status"):
|
if tweet.has_key("retweeted_status"):
|
||||||
if tweet.has_key("message") == False:
|
if tweet.has_key("message") == False:
|
||||||
text = "rt @%s: %s" % (tweet["retweeted_status"]["user"]["screen_name"], tweet["retweeted_status"]["text"])
|
text = "rt @%s: %s" % (tweet["retweeted_status"]["user"]["screen_name"], tweet["retweeted_status"]["full_text"])
|
||||||
else:
|
else:
|
||||||
text = "rt @%s: %s" % (tweet["retweeted_status"]["user"]["screen_name"], tweet[value])
|
text = "rt @%s: %s" % (tweet["retweeted_status"]["user"]["screen_name"], tweet[value])
|
||||||
else:
|
else:
|
||||||
|
@@ -11,11 +11,11 @@ right = string(default="alt+win+right")
|
|||||||
next_account = string(default="alt+win+shift+right")
|
next_account = string(default="alt+win+shift+right")
|
||||||
previous_account = string(default="alt+win+shift+left")
|
previous_account = string(default="alt+win+shift+left")
|
||||||
open_conversation = string(default="alt+win+c")
|
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_tweet = string(default="alt+win+n")
|
||||||
post_reply = string(default="control+win+r")
|
post_reply = string(default="control+win+r")
|
||||||
post_retweet = string(default="alt+win+shift+r")
|
post_retweet = string(default="alt+win+shift+r")
|
||||||
send_dm = string(default="alt+win+d")
|
send_dm = string(default="alt+win+shift+d")
|
||||||
add_to_favourites = string(default="alt+win+f")
|
add_to_favourites = string(default="alt+win+f")
|
||||||
remove_from_favourites = string(default="alt+shift+win+f")
|
remove_from_favourites = string(default="alt+shift+win+f")
|
||||||
follow = string(default="alt+win+s")
|
follow = string(default="alt+win+s")
|
||||||
|
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
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
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
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
Binary file not shown.
File diff suppressed because it is too large
Load Diff
@@ -24,7 +24,11 @@ def is_long(tweet):
|
|||||||
return False
|
return False
|
||||||
|
|
||||||
def clear_url(tweet):
|
def clear_url(tweet):
|
||||||
urls = utils.find_urls_in_text(tweet["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], "")
|
try: tweet["message"] = tweet["message"].replace(urls[-1], "")
|
||||||
except IndexError: pass
|
except IndexError: pass
|
||||||
return tweet
|
return tweet
|
@@ -18,8 +18,8 @@
|
|||||||
############################################################
|
############################################################
|
||||||
import requests
|
import requests
|
||||||
import keys
|
import keys
|
||||||
import application
|
|
||||||
from twitter import utils
|
from twitter import utils
|
||||||
|
from requests_oauthlib import OAuth1Session
|
||||||
|
|
||||||
def get_twishort_uri(url):
|
def get_twishort_uri(url):
|
||||||
try:
|
try:
|
||||||
@@ -30,25 +30,39 @@ def get_twishort_uri(url):
|
|||||||
def is_long(tweet):
|
def is_long(tweet):
|
||||||
long = False
|
long = False
|
||||||
for url in range(0, len(tweet["entities"]["urls"])):
|
for url in range(0, len(tweet["entities"]["urls"])):
|
||||||
|
try:
|
||||||
if "twishort.com" in tweet["entities"]["urls"][url]["expanded_url"]:
|
if "twishort.com" in tweet["entities"]["urls"][url]["expanded_url"]:
|
||||||
long = get_twishort_uri(tweet["entities"]["urls"][url]["expanded_url"])
|
long = get_twishort_uri(tweet["entities"]["urls"][url]["expanded_url"])
|
||||||
|
except TypeError:
|
||||||
|
pass
|
||||||
return long
|
return long
|
||||||
|
|
||||||
def get_full_text(uri):
|
def get_full_text(uri):
|
||||||
# try:
|
try:
|
||||||
r = requests.get("http://api.twishort.com/1.1/get.json", params={"uri": uri, "api_key": keys.keyring.get("twishort_api_key")})
|
r = requests.get("http://api.twishort.com/1.1/get.json", params={"uri": uri, "api_key": keys.keyring.get("twishort_api_key")})
|
||||||
return r.json()["text"]
|
return r.json()["text"]
|
||||||
# except:
|
except:
|
||||||
# return False
|
return False
|
||||||
|
|
||||||
def create_tweet(user_token, user_secret, text, media=0):
|
def create_tweet(user_token, user_secret, text, media=0):
|
||||||
if application.snapshot == True:
|
twitter = OAuth1Session(keys.keyring.get("api_key"), client_secret=keys.keyring.get("api_secret"), resource_owner_key=user_token, resource_owner_secret=user_secret)
|
||||||
url = "http://twblue.es/snapshot_twishort.php"
|
twishort_key=keys.keyring.get("twishort_api_key")
|
||||||
else:
|
x_auth_service_provider = "https://api.twitter.com/1.1/account/verify_credentials.json"
|
||||||
url = "http://twblue.es/stable_twishort.php"
|
twishort_post_url = "http://api.twishort.com/1.1/post.json"
|
||||||
data = {"user_token": user_token,
|
twishort_update_ids_url = "http://api.twishort.com/1.1/update_ids.json"
|
||||||
"user_secret": user_secret,
|
r=requests.Request('GET', x_auth_service_provider)
|
||||||
|
prep=twitter.prepare_request(r)
|
||||||
|
resp=twitter.send(prep)
|
||||||
|
twitter.headers={
|
||||||
|
'X-Auth-Service-Provider':x_auth_service_provider,
|
||||||
|
'X-Verify-Credentials-Authorization':prep.headers['Authorization'],
|
||||||
|
}
|
||||||
|
data = {'api_key':twishort_key,
|
||||||
"text": text.encode("utf-8"),
|
"text": text.encode("utf-8"),
|
||||||
"media": media}
|
"media": media}
|
||||||
response = requests.post(url, data=data)
|
response = twitter.post(twishort_post_url, data=data)
|
||||||
|
try:
|
||||||
return response.json()["text_to_tweet"]
|
return response.json()["text_to_tweet"]
|
||||||
|
except:
|
||||||
|
print "There was a problem creating a long tweet"
|
||||||
|
return 0
|
||||||
|
@@ -26,8 +26,9 @@ def stream_threaded(func, *args, **kwargs):
|
|||||||
def new_func(*a, **k):
|
def new_func(*a, **k):
|
||||||
try:
|
try:
|
||||||
func(**k)
|
func(**k)
|
||||||
except:
|
except exception as msg:
|
||||||
log.error("Error in stream with args: %r" % (a,))
|
log.error("Error in stream with args: %r" % (a,))
|
||||||
|
log.error(msg.message)
|
||||||
pub.sendMessage("stream-error", session=a[0])
|
pub.sendMessage("stream-error", session=a[0])
|
||||||
|
|
||||||
thread = threading.Thread(target=new_func, args=args, kwargs=kwargs)
|
thread = threading.Thread(target=new_func, args=args, kwargs=kwargs)
|
||||||
|
@@ -432,17 +432,21 @@ class Session(object):
|
|||||||
|
|
||||||
def get_quoted_tweet(self, tweet):
|
def get_quoted_tweet(self, tweet):
|
||||||
quoted_tweet = tweet
|
quoted_tweet = tweet
|
||||||
urls = utils.find_urls_in_text(quoted_tweet["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)):
|
for url in range(0, len(urls)):
|
||||||
try: quoted_tweet["text"] = quoted_tweet["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
|
except IndexError: pass
|
||||||
id = tweets.is_long(quoted_tweet)
|
id = tweets.is_long(quoted_tweet)
|
||||||
try: original_tweet = self.twitter.twitter.show_status(id=id)
|
try: original_tweet = self.twitter.twitter.show_status(id=id, tweet_mode="extended")
|
||||||
except: return quoted_tweet
|
except: return quoted_tweet
|
||||||
original_tweet = self.check_long_tweet(original_tweet)
|
original_tweet = self.check_long_tweet(original_tweet)
|
||||||
urls = utils.find_urls_in_text(original_tweet["text"])
|
urls = utils.find_urls_in_text(original_tweet["full_text"])
|
||||||
for url in range(0, len(urls)):
|
for url in range(0, len(urls)):
|
||||||
try: original_tweet["text"] = original_tweet["text"].replace(urls[url], original_tweet["entities"]["urls"][url]["expanded_url"])
|
try: original_tweet["full_text"] = original_tweet["full_text"].replace(urls[url], original_tweet["entities"]["urls"][url]["expanded_url"])
|
||||||
except IndexError: pass
|
except IndexError: pass
|
||||||
return compose.compose_quoted_tweet(quoted_tweet, original_tweet)
|
return compose.compose_quoted_tweet(quoted_tweet, original_tweet)
|
||||||
|
|
||||||
|
16
src/sound.py
16
src/sound.py
@@ -117,6 +117,22 @@ class URLStream(object):
|
|||||||
log.debug("Transformed URL: %s. Prepared" % (self.url,))
|
log.debug("Transformed URL: %s. Prepared" % (self.url,))
|
||||||
self.prepared = True
|
self.prepared = True
|
||||||
|
|
||||||
|
|
||||||
|
def seek(self,step):
|
||||||
|
pos=self.stream.get_position()
|
||||||
|
pos=self.stream.bytes_to_seconds(pos)
|
||||||
|
pos+=step
|
||||||
|
pos=self.stream.seconds_to_bytes(pos)
|
||||||
|
if pos<0:
|
||||||
|
pos=0
|
||||||
|
self.stream.set_position(pos)
|
||||||
|
|
||||||
|
def playpause(self):
|
||||||
|
if self.stream.is_playing==True:
|
||||||
|
self.stream.pause()
|
||||||
|
else:
|
||||||
|
self.stream.play()
|
||||||
|
|
||||||
def play(self, url=None, volume=1.0, stream=None,announce=True):
|
def play(self, url=None, volume=1.0, stream=None,announce=True):
|
||||||
if announce:
|
if announce:
|
||||||
output.speak(_(u"Playing..."))
|
output.speak(_(u"Playing..."))
|
||||||
|
@@ -17,5 +17,4 @@ class handler(BaseHTTPServer.BaseHTTPRequestHandler):
|
|||||||
params = parse_qs(urlparse(self.path).query)
|
params = parse_qs(urlparse(self.path).query)
|
||||||
global verifier
|
global verifier
|
||||||
verifier = params.get('oauth_verifier', [None])[0]
|
verifier = params.get('oauth_verifier', [None])[0]
|
||||||
self.wfile.write("You have successfully logged into Twitter with" + application.name + ". "
|
self.wfile.write(_(u"You have successfully logged into Twitter with {0}. You can close this window now.").format(application.name))
|
||||||
"You can close this window now.")
|
|
||||||
|
@@ -67,8 +67,12 @@ class timelinesStreamer(TwythonStreamer):
|
|||||||
self.friends = friends
|
self.friends = friends
|
||||||
|
|
||||||
def on_success(self, data):
|
def on_success(self, data):
|
||||||
try:
|
# 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"):
|
||||||
|
data["full_text"] = data["extended_tweet"]["full_text"]
|
||||||
|
# data["entities"] = data["extended_tweet"]["entities"]
|
||||||
|
# log.error(data["extended_entities"])
|
||||||
self.check_tls(data)
|
self.check_tls(data)
|
||||||
except:
|
# except:
|
||||||
pass
|
# pass
|
||||||
|
@@ -135,6 +135,11 @@ class streamer(TwythonStreamer):
|
|||||||
self.friends = data["friends"]
|
self.friends = data["friends"]
|
||||||
pub.sendMessage("friends-receibed")
|
pub.sendMessage("friends-receibed")
|
||||||
elif "text" in data and utils.is_allowed(data, self.session.settings["twitter"]["ignored_clients"]) == True:
|
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"].extend(data["extended_tweet"]["entities"])
|
||||||
|
# log.error(data["extended_tweet"])
|
||||||
|
# log.error("Extended tweet")
|
||||||
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)
|
||||||
|
@@ -40,47 +40,75 @@ def compose_tweet(tweet, db, relative_times):
|
|||||||
ts = tweet["created_at"]
|
ts = tweet["created_at"]
|
||||||
if tweet.has_key("message"):
|
if tweet.has_key("message"):
|
||||||
value = "message"
|
value = "message"
|
||||||
|
elif tweet.has_key("full_text"):
|
||||||
|
value = "full_text"
|
||||||
else:
|
else:
|
||||||
value = "text"
|
value = "text"
|
||||||
|
# log.exception(tweet.keys())
|
||||||
text = StripChars(tweet[value])
|
text = StripChars(tweet[value])
|
||||||
if tweet.has_key("sender"):
|
|
||||||
source = "DM"
|
|
||||||
if db["user_name"] == tweet["sender"]["screen_name"]: user = _(u"Dm to %s ") % (tweet["recipient"]["name"],)
|
|
||||||
else: user = tweet["sender"]["name"]
|
|
||||||
elif tweet.has_key("user"):
|
|
||||||
user = tweet["user"]["name"]
|
user = tweet["user"]["name"]
|
||||||
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"]["text"]))
|
text = "RT @%s: %s" % (tweet["retweeted_status"]["user"]["screen_name"], StripChars(tweet["retweeted_status"][value]))
|
||||||
elif tweet["retweeted_status"]["is_quote_status"]:
|
elif tweet["retweeted_status"]["is_quote_status"]:
|
||||||
text = "%s" % (StripChars(tweet[value]))
|
text = "%s" % (StripChars(tweet[value]))
|
||||||
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"], StripChars(tweet[value]))
|
||||||
if text[-1] in chars: text=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)):
|
||||||
try: text = text.replace(urls[url], tweet["entities"]["urls"][url]["expanded_url"])
|
try:
|
||||||
except IndexError: pass
|
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
|
if config.app['app-settings']['handle_longtweets']: pass
|
||||||
# return [user+", ", text, ts+", ", source]
|
# return [user+", ", text, ts+", ", source]
|
||||||
return [user+", ", text, ts+", ", source]
|
return [user+", ", text, ts+", ", source]
|
||||||
|
|
||||||
|
def compose_dm(tweet, db, relative_times):
|
||||||
|
""" It receives a tweet and returns a list with the user, text for the tweet or message, date and the client where user is."""
|
||||||
|
if system == "Windows":
|
||||||
|
original_date = arrow.get(tweet["created_at"], "ddd MMM DD H:m:s Z YYYY", locale="en")
|
||||||
|
if relative_times == True:
|
||||||
|
ts = original_date.humanize(locale=languageHandler.getLanguage())
|
||||||
|
else:
|
||||||
|
ts = original_date.replace(seconds=db["utc_offset"]).format(_(u"dddd, MMMM D, YYYY H:m:s"), locale=languageHandler.getLanguage())
|
||||||
|
else:
|
||||||
|
ts = tweet["created_at"]
|
||||||
|
text = StripChars(tweet["text"])
|
||||||
|
source = "DM"
|
||||||
|
if db["user_name"] == tweet["sender"]["screen_name"]: user = _(u"Dm to %s ") % (tweet["recipient"]["name"],)
|
||||||
|
else: user = tweet["sender"]["name"]
|
||||||
|
if text[-1] in chars: text=text+"."
|
||||||
|
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
|
||||||
|
return [user+", ", text, ts+", ", source]
|
||||||
|
|
||||||
def compose_quoted_tweet(quoted_tweet, original_tweet):
|
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."""
|
""" 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"])
|
if quoted_tweet.has_key("full_text"):
|
||||||
|
value = "full_text"
|
||||||
|
else:
|
||||||
|
value = "text"
|
||||||
|
text = StripChars(quoted_tweet[value])
|
||||||
quoting_user = quoted_tweet["user"]["name"]
|
quoting_user = quoted_tweet["user"]["name"]
|
||||||
source = re.sub(r"(?s)<.*?>", "", quoted_tweet["source"])
|
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"]))
|
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["text"]))
|
except KeyError: text = "%s" % (StripChars(quoted_tweet[value]))
|
||||||
if text[-1] in chars: text=text+"."
|
if text[-1] in chars: text=text+"."
|
||||||
original_user = original_tweet["user"]["screen_name"]
|
original_user = original_tweet["user"]["screen_name"]
|
||||||
if original_tweet.has_key("message"):
|
if original_tweet.has_key("message"):
|
||||||
original_text = StripChars(original_tweet["message"])
|
original_text = StripChars(original_tweet["message"])
|
||||||
|
elif original_tweet.has_key("full_text"):
|
||||||
|
original_text = StripChars(original_tweet["full_text"])
|
||||||
else:
|
else:
|
||||||
original_text = StripChars(original_tweet["text"])
|
original_text = StripChars(original_tweet["text"])
|
||||||
quoted_tweet["message"] = _(u"{0}. Quoted tweet from @{1}: {2}").format( quoted_tweet["text"], original_user, original_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)
|
quoted_tweet = tweets.clear_url(quoted_tweet)
|
||||||
return quoted_tweet
|
return quoted_tweet
|
||||||
|
|
||||||
|
@@ -25,6 +25,8 @@ def find_urls (tweet):
|
|||||||
urls = []
|
urls = []
|
||||||
if tweet.has_key("message"):
|
if tweet.has_key("message"):
|
||||||
i = "message"
|
i = "message"
|
||||||
|
elif tweet.has_key("full_text"):
|
||||||
|
i = "full_text"
|
||||||
else:
|
else:
|
||||||
i = "text"
|
i = "text"
|
||||||
return [s[0] for s in url_re.findall(tweet[i])]
|
return [s[0] for s in url_re.findall(tweet[i])]
|
||||||
@@ -57,6 +59,7 @@ def is_audio(tweet):
|
|||||||
if i["text"] == "audio":
|
if i["text"] == "audio":
|
||||||
return True
|
return True
|
||||||
except:
|
except:
|
||||||
|
print tweet["entities"]["hashtags"]
|
||||||
log.exception("Exception while executing is_audio hashtag algorithm")
|
log.exception("Exception while executing is_audio hashtag algorithm")
|
||||||
|
|
||||||
def is_geocoded(tweet):
|
def is_geocoded(tweet):
|
||||||
@@ -68,8 +71,8 @@ def get_all_mentioned(tweet, conf):
|
|||||||
string = []
|
string = []
|
||||||
for i in tweet["entities"]["user_mentions"]:
|
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"] != conf["user_name"] and i["screen_name"] != tweet["user"]["screen_name"]:
|
||||||
if "@"+i["screen_name"] not in string:
|
if i["id"] not in string:
|
||||||
string.append("@"+i["screen_name"])
|
string.append(i["id_str"])
|
||||||
return " ".join(string)+" "
|
return " ".join(string)+" "
|
||||||
|
|
||||||
def get_all_users(tweet, conf):
|
def get_all_users(tweet, conf):
|
||||||
@@ -120,7 +123,7 @@ def is_allowed(tweet, clients):
|
|||||||
for i in clients:
|
for i in clients:
|
||||||
if i.lower() == source.lower():
|
if i.lower() == source.lower():
|
||||||
allowed = False
|
allowed = False
|
||||||
log.exception("Tuit not allowed: %s" % (tweet["text"],))
|
# log.exception("Tuit not allowed: %r" % (tweet,))
|
||||||
return allowed
|
return allowed
|
||||||
|
|
||||||
def twitter_error(error):
|
def twitter_error(error):
|
||||||
|
@@ -234,7 +234,7 @@ class reply(tweet):
|
|||||||
def __init__(self, title, message, text):
|
def __init__(self, title, message, text):
|
||||||
super(reply, self).__init__(message, title, text)
|
super(reply, self).__init__(message, title, text)
|
||||||
self.text.SetInsertionPoint(len(self.text.GetValue()))
|
self.text.SetInsertionPoint(len(self.text.GetValue()))
|
||||||
self.mentionAll = wx.Button(self, -1, _(u"&Mention to all"), size=wx.DefaultSize)
|
self.mentionAll = wx.CheckBox(self, -1, _(u"&Mention to all"), size=wx.DefaultSize)
|
||||||
self.mentionAll.Disable()
|
self.mentionAll.Disable()
|
||||||
self.buttonsBox1.Add(self.mentionAll, 0, wx.ALL, 5)
|
self.buttonsBox1.Add(self.mentionAll, 0, wx.ALL, 5)
|
||||||
self.buttonsBox1.Layout()
|
self.buttonsBox1.Layout()
|
||||||
|
@@ -57,6 +57,11 @@ class mainFrame(wx.Frame):
|
|||||||
self.clear = buffer.Append(wx.NewId(), _(u"&Clear buffer"))
|
self.clear = buffer.Append(wx.NewId(), _(u"&Clear buffer"))
|
||||||
self.deleteTl = buffer.Append(wx.NewId(), _(u"&Destroy"))
|
self.deleteTl = buffer.Append(wx.NewId(), _(u"&Destroy"))
|
||||||
|
|
||||||
|
# audio menu
|
||||||
|
audio = wx.Menu()
|
||||||
|
self.seekLeft = audio.Append(wx.NewId(), _(u"&Seek back 5 seconds"))
|
||||||
|
self.seekRight = audio.Append(wx.NewId(), _(u"&Seek forward 5 seconds"))
|
||||||
|
|
||||||
# Help Menu
|
# Help Menu
|
||||||
help = wx.Menu()
|
help = wx.Menu()
|
||||||
self.doc = help.Append(-1, _(u"&Documentation"))
|
self.doc = help.Append(-1, _(u"&Documentation"))
|
||||||
@@ -72,6 +77,7 @@ class mainFrame(wx.Frame):
|
|||||||
menuBar.Append(tweet, _(u"&Tweet"))
|
menuBar.Append(tweet, _(u"&Tweet"))
|
||||||
menuBar.Append(user, _(u"&User"))
|
menuBar.Append(user, _(u"&User"))
|
||||||
menuBar.Append(buffer, _(u"&Buffer"))
|
menuBar.Append(buffer, _(u"&Buffer"))
|
||||||
|
menuBar.Append(audio, _(u"&Audio"))
|
||||||
menuBar.Append(help, _(u"&Help"))
|
menuBar.Append(help, _(u"&Help"))
|
||||||
|
|
||||||
self.accel_tbl = wx.AcceleratorTable([
|
self.accel_tbl = wx.AcceleratorTable([
|
||||||
@@ -88,7 +94,10 @@ class mainFrame(wx.Frame):
|
|||||||
(wx.ACCEL_CTRL, ord('I'), self.timeline.GetId()),
|
(wx.ACCEL_CTRL, ord('I'), self.timeline.GetId()),
|
||||||
(wx.ACCEL_CTRL|wx.ACCEL_SHIFT, ord('I'), self.deleteTl.GetId()),
|
(wx.ACCEL_CTRL|wx.ACCEL_SHIFT, ord('I'), self.deleteTl.GetId()),
|
||||||
(wx.ACCEL_CTRL, ord('M'), self.show_hide.GetId()),
|
(wx.ACCEL_CTRL, ord('M'), self.show_hide.GetId()),
|
||||||
|
(wx.ACCEL_CTRL, wx.WXK_LEFT, self.seekLeft.GetId()),
|
||||||
(wx.ACCEL_CTRL, ord('P'), self.updateProfile.GetId()),
|
(wx.ACCEL_CTRL, ord('P'), self.updateProfile.GetId()),
|
||||||
|
(wx.ACCEL_CTRL, wx.WXK_RIGHT, self.seekRight.GetId()),
|
||||||
|
(wx.ACCEL_CTRL, ord(' '), self.seekLeft.GetId()),
|
||||||
])
|
])
|
||||||
|
|
||||||
self.SetAcceleratorTable(self.accel_tbl)
|
self.SetAcceleratorTable(self.accel_tbl)
|
||||||
|
@@ -5,7 +5,7 @@
|
|||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
"POT-Creation-Date: 2016-08-05 08:33+Hora de verano central (M<>xico)\n"
|
"POT-Creation-Date: 2016-10-02 21:05+Hora de verano romance\n"
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
|
3022
tools/twblue.pot
3022
tools/twblue.pot
File diff suppressed because it is too large
Load Diff
@@ -1,4 +1,4 @@
|
|||||||
{"current_version": "0.85",
|
{"current_version": "0.87",
|
||||||
"description": "The first version for the new generation of TWBlue.",
|
"description": "The first version for the new generation of TWBlue.",
|
||||||
"downloads":
|
"downloads":
|
||||||
{"Windows32": "http://twblue.es/pubs/twblue_ngen_0.80_x86.zip",
|
{"Windows32": "http://twblue.es/pubs/twblue_ngen_0.80_x86.zip",
|
||||||
|
Submodule windows-dependencies updated: d927229b99...ec88a194da
Reference in New Issue
Block a user