Compare commits

...

20 Commits

Author SHA1 Message Date
128575df05 Fixed a typo 2025-03-08 14:28:26 -06:00
64af7dc02b Added new release notes 2025-03-08 14:11:46 -06:00
6a8ef9b523 Include a previous setuptools version 2025-03-08 14:10:49 -06:00
2a4a17fdeb Fixed update links 2025-03-08 13:57:30 -06:00
Mira P
bea28d8d19 Translated using Weblate (Bulgarian)
Currently translated at 28.7% (200 of 696 strings)

Translation: TWBlue/TWBlue
Translate-URL: https://weblate.mcvsoftware.com/projects/twblue/twblue/bg/
2025-03-08 18:23:01 +00:00
Corentin Bacqué-Cazenave
89a89778aa Translated using Weblate (French)
Currently translated at 100.0% (674 of 674 strings)

Translation: TWBlue/TWBlue
Translate-URL: https://weblate.mcvsoftware.com/projects/twblue/twblue/fr/
2025-03-08 18:23:00 +00:00
2b4a66aa05 Bumped to a new version 2025-03-08 11:59:48 -06:00
70a1c9fbcc Minimal code cleanup 2025-03-08 11:57:09 -06:00
76dae8bcf8 Prepare changelog for release 2025-03-08 11:51:43 -06:00
b432873500 Fix some typos on changelog 2025-03-08 11:32:03 -06:00
45bee2bf57 Updated changelog 2025-03-08 11:15:47 -06:00
921fe631e0 Merge pull request #763 from MCV-Software/features/pinned-posts
Mastodon: Loads pinned posts in user timelines and supports announcing when the focused post is pinned
2025-03-08 11:08:16 -06:00
582d14708f Improve pinned post parsing for templates 2025-03-08 11:06:15 -06:00
ea79165362 Adjust the way pinned posts are sorted 2025-03-08 05:21:20 -06:00
460d71075b Expose status of pinned posts in variable templates 2025-03-08 01:31:50 -06:00
3d7d1142d3 Attempt to load pinned posts when loading a timeline for an user 2025-03-08 01:15:34 -06:00
6aa84daf5e Merge pull request #762 from MCV-Software/feature/filters
Mastodon: adds Filter support
2025-03-08 00:50:26 -06:00
Mira P
6974c6beba Added translation using Weblate (Bulgarian) 2025-03-07 17:15:29 +00:00
ff196693df Translated using Weblate (Spanish)
Currently translated at 100.0% (674 of 674 strings)

Translation: TWBlue/TWBlue
Translate-URL: https://weblate.mcvsoftware.com/projects/twblue/twblue/es/
2025-03-07 17:15:29 +00:00
03a90922d8 Added bulgarian translation catalog 2025-03-06 13:14:00 -06:00
14 changed files with 5001 additions and 296 deletions

View File

@@ -2,8 +2,12 @@ TWBlue Changelog
## changes in this version
In this version, we have focused on providing initial support for Mastodon filters and pinned posts. From TWBlue, it is now possible to initially use filters for posts in most buffers, as well as manage them (create, edit, and delete filters, in addition to adding keywords). A new variable has also been added for post templates in the invisible interface that allows displaying whether a post has been pinned by its author.
* Mastodon:
* Added filters support to TWBlue. Filters are only implemented in posts for the moment. TWBlue will, depending in the selected settings, hide behind a content warning or completely ignore a post based on filters. Also it is possible to add, delete or edit filters from the buffer menu in the menu bar.
* A language selector has been added for posting in TWBlue. It is now possible to choose the language in which a post will be made, which will be useful for content filtering and other language-dependent features. The default language can be chosen based on your Mastodon accounts language, the language of the post youre replying to, or, if no automatic selection is possible, TWBlues own language will be used by default.
* TWBlue now supports announcing (via a new template variable for posts) pinned posts. You can edit your posts template and use the $pinned variable. When reading the post, TWBlue will indicate if the post is pinned. Also, when loading an user timeline, pinned posts will be loaded at the top or bottom of the buffer according to local settings.
* TWBlue should be able to display all posts in the post displayer dialog.
* reading long posts in the graphical user interface should work better.

File diff suppressed because it is too large Load Diff

View File

@@ -1,13 +1,10 @@
## Changelog
In this version of TWBlue, which is being released several months after the previous one, we focused on adding initial support for GoToSocial-type networks. GoToSocial is a server for creating decentralized networks similar to Mastodon. Its API is very similar but retains some differences. In this version, TWBlue can be used to log into GoToSocial accounts, although there will be some features, such as the Streaming API and Markdown support, that are not yet functional. Another significant addition is support for creating community timelines, which will allow you to load the local and public timeline of remote instances. This is useful if your instance does not federate directly with them, as it will allow you to see posts from other communities and interact directly with them. Finally, the translation module has been rewritten; it now supports using LibreTranslate by default and DeepL, for which an API key is required. Below is the detailed list of changes:
In this version, we have focused on providing initial support for Mastodon filters and pinned posts. From TWBlue, it is now possible to initially use filters for posts in most buffers, as well as manage them (create, edit, and delete filters, in addition to adding keywords). A new variable has also been added for post templates in the invisible interface that allows displaying whether a post has been pinned by its author.
* Core:
* Added Initial Support to GoToSocial. Some features are not fully implemented yet, although GoToXocial instances should be able to be used as normal sessions in TWBlue. Streaming, poll options and markdown are not supported but planned for the near future.
* The translation module has been rewritten. Now, instead of offering translations with Google Translator, the user can choose between [LibreTranslate,](https://github.com/LibreTranslate/LibreTranslate) which requires no configuration thanks to the [instance of the NVDA Spanish community;](https://translate.nvda.es) or translate using [DeepL,](https://deepl.com) for which it is necessary to create an account on DeepL and [subscribe to a DeepL API Free plan](https://support.deepl.com/hc/en-us/articles/360021200939-DeepL-API-Free) to obtain the API key which can be used to translate up to 500000 characters every month. The API key can be entered in the global options dialog, under a new tab called translation services. When translating a text, the translation engine can be changed. When changing the translation engine, the target language must be selected again before translation takes place.
* TWBlue should be able to switch to Windows 11 Keymap when running under Windows 11. ([#494](https://github.com/mcv-software/twblue/issues/494))
* Mastodon:
* Added support for viewing communities: A community timeline is the local or public timeline of another instance. This is especially useful when the instance one is part of does not federate with other remote instances. The posts displayed are only those that are shared publicly. It is possible to interact with the posts from community timelines, but it should be noted that TWBlue will take some time to retrieve the post one wishes to interact with.
* When viewing a post, a button displays the number of boosts and times it has been added to favorites. Clicking on that button will open a list of users who have interacted with the post. From that list, it is possible to view profiles and perform common user actions.
* Now it is possible to mute conversations in Mastodon sessions. To do this, there is a button that can be called "Mute" or "Unmute Conversation" in the dialog to display the post. Conversations that have been muted will not generate notifications or mentions when they receive new replies. Only conversations that you are a part of can be muted.
* Fixed an error that caused TWBlue to be unable to properly display the user action dialog from the followers or following buffer. ([#575](https://github.com/mcv-software/twblue/issues/575))
* Added filters support to TWBlue. Filters are only implemented in posts for the moment. TWBlue will, depending in the selected settings, hide behind a content warning or completely ignore a post based on filters. Also it is possible to add, delete or edit filters from the buffer menu in the menu bar.
* A language selector has been added for posting in TWBlue. It is now possible to choose the language in which a post will be made, which will be useful for content filtering and other language-dependent features. The default language can be chosen based on your Mastodon accounts language, the language of the post youre replying to, or, if no automatic selection is possible, TWBlues own language will be used by default.
* TWBlue now supports announcing (via a new template variable for posts) pinned posts. You can edit your posts template and use the $pinned variable. When reading the post, TWBlue will indicate if the post is pinned. Also, when loading an user timeline, pinned posts will be loaded at the top or bottom of the buffer according to local settings.
* TWBlue should be able to display all posts in the post displayer dialog.
* reading long posts in the graphical user interface should work better.

View File

@@ -43,6 +43,7 @@ requests==2.32.3
requests-oauthlib==2.0.0
requests-toolbelt==1.0.0
rfc3986==2.0.0
setuptools==69.0.0
six==1.17.0
sniffio==1.3.1
sound_lib @ git+https://github.com/accessibleapps/sound_lib@a439f0943fb95ee7b6ba24f51a686f47c4ad66b2

View File

@@ -108,13 +108,28 @@ class BaseBuffer(base.Buffer):
min_id = self.session.db[self.name][0].id
else:
min_id = self.session.db[self.name][-1].id
# loads pinned posts from user accounts.
# Load those posts only when there are no items previously loaded.
if "-timeline" in self.name and "account_statuses" in self.function and len(self.session.db.get(self.name, [])) == 0:
pinned_posts = self.session.api.account_statuses(pinned=True, limit=count, *self.args, **self.kwargs)
pinned_posts.reverse()
else:
pinned_posts = None
try:
results = getattr(self.session.api, self.function)(min_id=min_id, limit=count, *self.args, **self.kwargs)
results.reverse()
except Exception as e:
log.exception("Error %s" % (str(e)))
return
if self.session.settings["general"]["reverse_timelines"]:
if pinned_posts != None and len(pinned_posts) > 0:
amount_of_pinned_posts = self.session.order_buffer(self.name, pinned_posts)
number_of_items = self.session.order_buffer(self.name, results)
if self.session.settings["general"]["reverse_timelines"] == False:
if pinned_posts != None and len(pinned_posts) > 0:
amount_of_pinned_posts = self.session.order_buffer(self.name, pinned_posts)
if pinned_posts != None and len(pinned_posts) > 0:
number_of_items = amount_of_pinned_posts+number_of_items
log.debug("Number of items retrieved: %d" % (number_of_items,))
if hasattr(self, "finished_timeline") and self.finished_timeline == False:
if "-timeline" in self.name:
@@ -557,7 +572,6 @@ class BaseBuffer(base.Buffer):
except MastodonNotFoundError:
output.speak(_("No status found with that ID"))
return
# print(item)
msg = messages.viewPost(self.session, item, offset_hours=self.session.db["utc_offset"], item_url=self.get_item_url(item=item))
def ocr_image(self):

View File

@@ -254,7 +254,6 @@ class post(messages.basicMessage):
langs = self.session.supported_languages
lang = self.message.language.GetSelection()
if lang >= 0:
print(langs[lang].code)
return langs[lang].code
return None

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

View File

@@ -1,18 +1,19 @@
# Manuel Cortez <manuel@manuelcortez.net>, 2022, 2023, 2024.
# Manuel Cortez <manuel@manuelcortez.net>, 2022, 2023, 2024, 2025.
msgid ""
msgstr ""
"Project-Id-Version: TW Blue 0.84\n"
"Report-Msgid-Bugs-To: manuel@manuelcortez.net\n"
"POT-Creation-Date: 2025-03-02 00:55+0000\n"
"PO-Revision-Date: 2024-05-23 15:59+0000\n"
"PO-Revision-Date: 2025-03-07 17:15+0000\n"
"Last-Translator: Manuel Cortez <manuel@manuelcortez.net>\n"
"Language-Team: Spanish <https://weblate.mcvsoftware.com/projects/twblue/"
"twblue/es/>\n"
"Language: es\n"
"Language-Team: Spanish "
"<https://weblate.mcvsoftware.com/projects/twblue/twblue/es/>\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 5.10.1\n"
"Generated-By: Babel 2.17.0\n"
#: languageHandler.py:61
@@ -591,9 +592,8 @@ msgid "Show user profile"
msgstr "Ver perfil del usuario"
#: controller/mastodon/handler.py:53
#, fuzzy
msgid "Create c&ommunity timeline"
msgstr "Crear línea temporal de comunidad"
msgstr "Crear línea temporal de &comunidad"
#: controller/mastodon/handler.py:94
msgid "Timelines"
@@ -614,7 +614,6 @@ msgid "Communities"
msgstr "Comunidades"
#: controller/mastodon/handler.py:113
#, fuzzy
msgid "federated"
msgstr "Federada"
@@ -918,7 +917,6 @@ msgid "Editing {0} users database"
msgstr "Editando base de datos de usuarios para {}"
#: extra/autocompletionUsers/wx_manage.py:13
#, fuzzy
msgid "Username"
msgstr "Usuario"
@@ -963,14 +961,12 @@ msgid "Autocomplete users' settings"
msgstr "Opciones de autocompletado de usuarios"
#: extra/autocompletionUsers/mastodon/wx_scan.py:11
#, fuzzy
msgid "Add &followers to database"
msgstr "Añadir seguidores a base de datos"
msgstr "Añadir &seguidores a base de datos"
#: extra/autocompletionUsers/mastodon/wx_scan.py:12
#, fuzzy
msgid "Add f&ollowing to database"
msgstr "añadir siguiendo a base de datos"
msgstr "Añadir s&iguiendo a base de datos"
#: extra/autocompletionUsers/mastodon/wx_scan.py:26
msgid "Updating autocompletion database"
@@ -1008,9 +1004,8 @@ msgid "TWBlue has imported {} users successfully."
msgstr "TWBlue ha añadido {} usuarios correctamente."
#: extra/autocompletionUsers/mastodon/wx_scan.py:40
#, fuzzy
msgid "Done"
msgstr "¡Hecho!"
msgstr "Hecho"
#: extra/autocompletionUsers/mastodon/wx_scan.py:44
msgid "Error adding users from Mastodon. Please try again in about 15 minutes."
@@ -1499,7 +1494,7 @@ msgid "{username} has posted: {status}"
msgstr "{username} ha publicado: {status}"
#: sessions/mastodon/compose.py:63
#, fuzzy, python-brace-format
#, python-brace-format
msgid "{username} has mentioned you: {status}"
msgstr "{username} te ha mencionado: {status}"
@@ -1621,7 +1616,7 @@ msgid "has posted: {status}"
msgstr "Ha publicado: {status}"
#: sessions/mastodon/templates.py:149
#, fuzzy, python-brace-format
#, python-brace-format
msgid "has mentioned you: {status}"
msgstr "Te ha mencionado: {status}"
@@ -2125,98 +2120,85 @@ msgid "Message"
msgstr "Mensaje"
#: wxUI/dialogs/configuration.py:15
#, fuzzy
msgid "&Language"
msgstr "Idioma"
msgstr "&Idioma"
#: wxUI/dialogs/configuration.py:22
#, fuzzy, python-brace-format
#, python-brace-format
msgid "&Ask before exiting {0}"
msgstr "preguntar antes de salir de {0}"
msgstr "Preguntar antes de salir de {0}"
#: wxUI/dialogs/configuration.py:24
#, fuzzy
msgid "&Disable Streaming functions"
msgstr "Desactivar funciones en tiempo real"
msgstr "&Desactivar funciones en tiempo real"
#: wxUI/dialogs/configuration.py:27
#, fuzzy
msgid "&Buffer update interval, in minutes"
msgstr "Intervalo de actualización de los buffers, en minutos"
msgstr "Intervalo de actualización de los &buffers, en minutos"
#: wxUI/dialogs/configuration.py:33
#, fuzzy, python-brace-format
#, python-brace-format
msgid "Pla&y a sound when {0} launches"
msgstr "Reproducir un sonido cuando inicia {0}"
msgstr "Reproducir un sonido cuando inicia &{0}"
#: wxUI/dialogs/configuration.py:35
#, fuzzy, python-brace-format
#, python-brace-format
msgid "Sp&eak a message when {0} launches"
msgstr "Hablar un mensaje cuando {0} inicie"
msgstr "&Hablar un mensaje cuando {0} inicie"
#: wxUI/dialogs/configuration.py:37
#, fuzzy
msgid "&Use invisible interface's keyboard shortcuts while GUI is visible"
msgstr "Usar los atajos de teclado de la interfaz invisible en la ventana gráfica"
msgstr ""
"Usar los &atajos de teclado de la interfaz invisible en la ventana gráfica"
#: wxUI/dialogs/configuration.py:39
#, fuzzy
msgid "A&ctivate Sapi5 when any other screen reader is not being run"
msgstr "Activar Sapi5 cuando no hay ningún lector de pantalla ejecutándose"
msgstr "Activar Sapi5 &cuando no hay ningún lector de pantalla ejecutándose"
#: wxUI/dialogs/configuration.py:41
#, fuzzy
msgid "&Hide GUI on launch"
msgstr "Esconder interfaz gráfica al iniciar"
msgstr "Esconder interfaz &gráfica al iniciar"
#: wxUI/dialogs/configuration.py:43
msgid "&Read long posts in GUI"
msgstr ""
msgstr "&Leer publicaciones largas en la interfaz gráfica"
#: wxUI/dialogs/configuration.py:46
#, fuzzy
msgid "&Keymap"
msgstr "Mapa de teclado"
msgstr "Mapa de &teclado"
#: wxUI/dialogs/configuration.py:51
#, fuzzy, python-brace-format
#, python-brace-format
msgid "Check for u&pdates when {0} launches"
msgstr "Comprobar actualizaciones cuando {0} inicie"
msgstr "Comprobar ac&tualizaciones cuando {0} inicie"
#: wxUI/dialogs/configuration.py:61
#, fuzzy
msgid "Proxy &type: "
msgstr "Tipo de proxy: "
msgstr "&Tipo de proxy: "
#: wxUI/dialogs/configuration.py:68
#, fuzzy
msgid "Proxy s&erver: "
msgstr "Servidor proxy: "
msgstr "&Servidor proxy: "
#: wxUI/dialogs/configuration.py:74
#, fuzzy
msgid "&Port: "
msgstr "Puerto: "
msgstr "&Puerto: "
#: wxUI/dialogs/configuration.py:80
#, fuzzy
msgid "&User: "
msgstr "Usuario: "
msgstr "&Usuario: "
#: wxUI/dialogs/configuration.py:86
#, fuzzy
msgid "P&assword: "
msgstr "Contraseña: "
msgstr "&Contraseña: "
#: wxUI/dialogs/configuration.py:98
#, fuzzy
msgid "Enable automatic s&peech feedback"
msgstr "Activar mensajes automáticos hablados"
msgstr "Activar mensajes automáticos &hablados"
#: wxUI/dialogs/configuration.py:100
#, fuzzy
msgid "Enable automatic &Braille feedback"
msgstr "Activar mensajes automáticos en Braille"
msgstr "Activar mensajes automáticos en &Braille"
#: wxUI/dialogs/configuration.py:108
msgid "Buffer"
@@ -2227,19 +2209,16 @@ msgid "Status"
msgstr "Estado"
#: wxUI/dialogs/configuration.py:111
#, fuzzy
msgid "S&how/hide"
msgstr "Mostrar/ocultar"
msgstr "&Mostrar/ocultar"
#: wxUI/dialogs/configuration.py:112
#, fuzzy
msgid "Move &up"
msgstr "Mover arriba"
msgstr "Mover &arriba"
#: wxUI/dialogs/configuration.py:113
#, fuzzy
msgid "Move &down"
msgstr "Mover abajo"
msgstr "Mover a&bajo"
#: wxUI/dialogs/configuration.py:123 wxUI/dialogs/configuration.py:188
#: wxUI/dialogs/configuration.py:191 wxUI/dialogs/configuration.py:196
@@ -2268,19 +2247,16 @@ msgid "The buffer is already at the bottom of the list."
msgstr "El buffer ya se encuentra al final de la lista."
#: wxUI/dialogs/configuration.py:205
#, fuzzy
msgid "&LibreTranslate API URL: "
msgstr "URL de API LibreTranslate: "
msgstr "URL de API &LibreTranslate: "
#: wxUI/dialogs/configuration.py:211
#, fuzzy
msgid "LibreTranslate API &Key (optional): "
msgstr "Clave de API para LibreTranslate (opcional): "
msgstr "Clave de &API para LibreTranslate (opcional): "
#: wxUI/dialogs/configuration.py:217
#, fuzzy
msgid "&DeepL API Key: "
msgstr "Clave de API para DeepL: "
msgstr "Clave de API para &DeepL: "
#: wxUI/dialogs/configuration.py:231
#, python-brace-format
@@ -2300,9 +2276,8 @@ msgid "Translation services"
msgstr "Servicios de traducción"
#: wxUI/dialogs/configuration.py:251 wxUI/dialogs/mastodon/configuration.py:170
#, fuzzy
msgid "&Save"
msgstr "Guardar"
msgstr "&Guardar"
#: wxUI/dialogs/configuration.py:253
#: wxUI/dialogs/mastodon/communityTimeline.py:27
@@ -2431,14 +2406,12 @@ msgid "Buffer type"
msgstr "Tipo de buffer"
#: wxUI/dialogs/mastodon/communityTimeline.py:17
#, fuzzy
msgid "&Local timeline"
msgstr "Línea temporal local"
msgstr "Línea temporal &local"
#: wxUI/dialogs/mastodon/communityTimeline.py:18
#, fuzzy
msgid "&Federated Timeline"
msgstr "Línea temporal pública"
msgstr "Línea temporal &pública"
#: wxUI/dialogs/mastodon/communityTimeline.py:25
#: wxUI/dialogs/mastodon/search.py:24
@@ -2453,140 +2426,120 @@ msgid "User autocompletion settings"
msgstr "Opciones de autocompletado de usuarios"
#: wxUI/dialogs/mastodon/configuration.py:15
#, fuzzy
msgid ""
"Scan acc&ount and add followers and following users to the user "
"autocompletion database"
msgstr ""
"Escanear cuenta y añadir seguidores y siguiendo a la base de datos de "
"Escanear &cuenta y añadir seguidores y siguiendo a la base de datos de "
"autocompletado de usuarios"
#: wxUI/dialogs/mastodon/configuration.py:16
#, fuzzy
msgid "&Manage autocompletion database"
msgstr "Gestionar base de datos del autocompletado de usuarios"
msgstr "&Gestionar base de datos del autocompletado de usuarios"
#: wxUI/dialogs/mastodon/configuration.py:21
#, fuzzy
msgid "&Disable Streaming API endpoints"
msgstr "Desactivar funciones en tiempo real"
msgstr "&Desactivar funciones en tiempo real"
#: wxUI/dialogs/mastodon/configuration.py:23
#, fuzzy
msgid "&Relative timestamps"
msgstr "Tiempos relativos"
msgstr "&Tiempos relativos"
#: wxUI/dialogs/mastodon/configuration.py:25
#, fuzzy
msgid ""
"R&ead preferences from instance (default visibility when publishing and "
"displaying sensitive content)"
msgstr ""
"Leer preferencias de la instancia (visibilidad por defecto al publicar y "
"&Leer preferencias de la instancia (visibilidad por defecto al publicar y "
"mostrar contenido sensible)"
#: wxUI/dialogs/mastodon/configuration.py:28
#, fuzzy
msgid "&Items on each API call"
msgstr "Elementos por cada llamada a la API"
msgstr "&Elementos por cada llamada a la API"
#: wxUI/dialogs/mastodon/configuration.py:34
#, fuzzy
msgid ""
"I&nverted buffers: The newest items will be shown at the beginning while "
"the oldest at the end"
msgstr ""
"Buffers invertidos: los nuevos elementos se mostrarán al principio de las"
" listas y los viejos al final"
"Buffers &invertidos: los nuevos elementos se mostrarán al principio de las "
"listas y los viejos al final"
#: wxUI/dialogs/mastodon/configuration.py:36
#, fuzzy
msgid "&Ask confirmation before boosting a post"
msgstr "Solicitar confirmación antes de impulsar una publicación"
msgstr "&Solicitar confirmación antes de impulsar una publicación"
#: wxUI/dialogs/mastodon/configuration.py:38
#, fuzzy
msgid "S&how screen names instead of full names"
msgstr "Mostrar nombres de pantalla en lugar de nombres completos"
msgstr "Mos&trar nombres de pantalla en lugar de nombres completos"
#: wxUI/dialogs/mastodon/configuration.py:40
#, fuzzy
msgid "Hide e&mojis in usernames"
msgstr "Esconder emojis en nombres de usuario"
msgstr "Esconder &emojis en nombres de usuario"
#: wxUI/dialogs/mastodon/configuration.py:42
#, fuzzy
msgid ""
"&Number of items per buffer to cache in database (0 to disable caching, "
"blank for unlimited)"
msgstr ""
"Número de elementos de cada buffer a conservar en la base de datos (dejar"
" en blanco para guardarlos de forma ilimitada, 0 para desactivar la base "
"de datos)"
"&Número de elementos de cada buffer a conservar en la base de datos (dejar "
"en blanco para guardarlos de forma ilimitada, 0 para desactivar la base de "
"datos)"
#: wxUI/dialogs/mastodon/configuration.py:46
#, fuzzy
msgid ""
"&Load cache for items in memory (much faster in big datasets but requires"
" more RAM)"
msgstr ""
"Cargar cache para elementos en RAM (es más rápido para listas muy grandes"
" de elementos, pero requiere más memoria)"
"Cargar &cache para elementos en RAM (es más rápido para listas muy grandes "
"de elementos, pero requiere más memoria)"
#: wxUI/dialogs/mastodon/configuration.py:53
#, fuzzy, python-brace-format
#, python-brace-format
msgid "Edit template for &posts. Current template: {}"
msgstr "Editar plantilla para publicaciones. Plantilla actual: {}"
msgstr "Editar plantilla para &publicaciones. Plantilla actual: {}"
#: wxUI/dialogs/mastodon/configuration.py:55
#, fuzzy, python-brace-format
#, python-brace-format
msgid "Edit template for c&onversations. Current template: {}"
msgstr "Editar plantilla para conversaciones. Plantilla actual: {}"
msgstr "Editar plantilla para &conversaciones. Plantilla actual: {}"
#: wxUI/dialogs/mastodon/configuration.py:57
#, fuzzy, python-brace-format
#, python-brace-format
msgid "Edit template for p&ersons. Current template: {}"
msgstr "Editar plantilla para usuarios. Plantilla actual: {}"
msgstr "Editar plantilla para &usuarios. Plantilla actual: {}"
#: wxUI/dialogs/mastodon/configuration.py:65
#, fuzzy
msgid "&Volume"
msgstr "Volumen"
msgstr "&Volumen"
#: wxUI/dialogs/mastodon/configuration.py:76
#, fuzzy
msgid "S&ession mute"
msgstr "Silencio de sesión"
msgstr "Si&lencio de sesión"
#: wxUI/dialogs/mastodon/configuration.py:78
#, fuzzy
msgid "&Output device"
msgstr "Dispositivo de salida"
msgstr "Dispositivo de &salida"
#: wxUI/dialogs/mastodon/configuration.py:85
#, fuzzy
msgid "&Input device"
msgstr "Dispositivo de entrada"
msgstr "Dispositivo de &entrada"
#: wxUI/dialogs/mastodon/configuration.py:93
#, fuzzy
msgid "Sound &pack"
msgstr "Paquete de sonidos"
msgstr "&Paquete de sonidos"
#: wxUI/dialogs/mastodon/configuration.py:99
#, fuzzy
msgid "Indicate &audio or video in posts with sound"
msgstr "Reproducir sonido en publicaciones que incluyan archivos multimedia"
msgstr "Reproducir sonido en publicaciones que incluyan archivos &multimedia"
#: wxUI/dialogs/mastodon/configuration.py:101
#, fuzzy
msgid "Indicate posts containing i&mages with sound"
msgstr "Reproducir sonido en publicaciones que incluyan imágenes"
msgstr "Reproducir sonido en publicaciones que incluyan &imágenes"
#: wxUI/dialogs/mastodon/configuration.py:124
#, fuzzy
msgid "&Language for OCR"
msgstr "Idioma para el OCR"
msgstr "Idioma para el &OCR"
#: wxUI/dialogs/mastodon/configuration.py:149
msgid "Feedback"
@@ -2740,7 +2693,6 @@ msgid "&Visibility"
msgstr "&Visibilidad"
#: wxUI/dialogs/mastodon/postDialogs.py:54
#, fuzzy
msgid "Language"
msgstr "Idioma"
@@ -3017,29 +2969,24 @@ msgid "{}'s Profile"
msgstr "Perfil de {}"
#: wxUI/dialogs/mastodon/showUserProfile.py:79
#, fuzzy
msgid "&Name: "
msgstr "Nombre: "
msgstr "&Nombre: "
#: wxUI/dialogs/mastodon/showUserProfile.py:84
#, fuzzy
msgid "&URL: "
msgstr "URL: "
msgstr "&URL: "
#: wxUI/dialogs/mastodon/showUserProfile.py:89
#, fuzzy
msgid "&Bio: "
msgstr "Biografía: "
msgstr "&Biografía: "
#: wxUI/dialogs/mastodon/showUserProfile.py:94
#, fuzzy
msgid "&Joined at: "
msgstr "Se unió: "
msgstr "Se &unió: "
#: wxUI/dialogs/mastodon/showUserProfile.py:99
#, fuzzy
msgid "&Actions"
msgstr "Acciones"
msgstr "A&cciones"
#: wxUI/dialogs/mastodon/showUserProfile.py:104
msgid "Header: "
@@ -3050,9 +2997,9 @@ msgid "Avatar: "
msgstr "Avatar: "
#: wxUI/dialogs/mastodon/showUserProfile.py:122
#, fuzzy, python-brace-format
#, python-brace-format
msgid "Field &{} - Label: "
msgstr "Campo {} - Nombre: "
msgstr "&Campo {} - Nombre: "
#: wxUI/dialogs/mastodon/showUserProfile.py:129
msgid "Content: "
@@ -3067,86 +3014,76 @@ msgid "No"
msgstr "No"
#: wxUI/dialogs/mastodon/showUserProfile.py:137
#, fuzzy
msgid "&Private account: "
msgstr "Cuenta privada: "
msgstr "Cuenta &privada: "
#: wxUI/dialogs/mastodon/showUserProfile.py:144
#, fuzzy
msgid "&Bot account: "
msgstr "Cuenta bot: "
msgstr "Cuenta &bot: "
#: wxUI/dialogs/mastodon/showUserProfile.py:151
#, fuzzy
msgid "&Discoverable account: "
msgstr "Cuenta visible "
msgstr "Cuenta &visible "
#: wxUI/dialogs/mastodon/showUserProfile.py:157
#, fuzzy, python-brace-format
#, python-brace-format
msgid "{} p&osts. Click to open posts timeline"
msgstr "{} publicaciones. Presiona para abrir línea temporal"
msgstr "{} p&ublicaciones. Presiona para abrir línea temporal"
#: wxUI/dialogs/mastodon/showUserProfile.py:162
#, fuzzy, python-brace-format
#, python-brace-format
msgid "{} &following. Click to open Following timeline"
msgstr "{} siguiendo. Presiona para abrir línea temporal"
msgstr "{} &siguiendo. Presiona para abrir línea temporal"
#: wxUI/dialogs/mastodon/showUserProfile.py:166
#, fuzzy, python-brace-format
#, python-brace-format
msgid "{} fo&llowers. Click to open followers timeline"
msgstr "{} seguidores. Presiona para abrir línea temporal"
msgstr "{} s&eguidores. Presiona para abrir línea temporal"
#: wxUI/dialogs/mastodon/updateProfile.py:43
#, fuzzy
msgid "&Display Name"
msgstr "Nombre"
msgstr "N&ombre"
#: wxUI/dialogs/mastodon/updateProfile.py:50
#, fuzzy
msgid "&Bio"
msgstr "Biografía"
msgstr "&Biografía"
#: wxUI/dialogs/mastodon/updateProfile.py:58
msgid "Header"
msgstr "Imagen de cabecera"
#: wxUI/dialogs/mastodon/updateProfile.py:71
#, fuzzy
msgid "Change &header"
msgstr "Cambiar imagen de cabecera"
msgstr "Cambiar imagen de &cabecera"
#: wxUI/dialogs/mastodon/updateProfile.py:79
msgid "Avatar"
msgstr "Avatar"
#: wxUI/dialogs/mastodon/updateProfile.py:92
#, fuzzy
msgid "Change &avatar"
msgstr "Cambiar imagen de avatar"
msgstr "Cambiar imagen de &avatar"
#: wxUI/dialogs/mastodon/updateProfile.py:102
#, fuzzy, python-brace-format
#, python-brace-format
msgid "Field &{}: Label"
msgstr "Campo {}. Nombre"
msgstr "Campo {}. &Nombre"
#: wxUI/dialogs/mastodon/updateProfile.py:110
msgid "Content"
msgstr "Contenido"
#: wxUI/dialogs/mastodon/updateProfile.py:120
#, fuzzy
msgid "&Private account"
msgstr "Cuenta privada"
msgstr "Cuenta &privada"
#: wxUI/dialogs/mastodon/updateProfile.py:122
#, fuzzy
msgid "&Bot account"
msgstr "Cuenta bot"
msgstr "Cuenta &bot"
#: wxUI/dialogs/mastodon/updateProfile.py:124
#, fuzzy
msgid "&Discoverable account"
msgstr "Cuenta visible"
msgstr "Cuenta &visible"
#: wxUI/dialogs/mastodon/updateProfile.py:167
msgid "Select header image - max 2MB"
@@ -4562,4 +4499,3 @@ msgstr "Siguiendo"
#~ msgid "Read long posts in GUI"
#~ msgstr ""

Binary file not shown.

View File

@@ -1,18 +1,19 @@
# Corentin Bacqué-Cazenave <corentin@progaccess.net>, 2022, 2023, 2024.
# Corentin Bacqué-Cazenave <corentin@progaccess.net>, 2022, 2023, 2024, 2025.
msgid ""
msgstr ""
"Project-Id-Version: TW Blue 0.94\n"
"Report-Msgid-Bugs-To: manuel@manuelcortez.net\n"
"POT-Creation-Date: 2025-03-02 00:55+0000\n"
"PO-Revision-Date: 2024-06-04 16:03+0000\n"
"PO-Revision-Date: 2025-03-08 18:23+0000\n"
"Last-Translator: Corentin Bacqué-Cazenave <corentin@progaccess.net>\n"
"Language-Team: French <https://weblate.mcvsoftware.com/projects/twblue/"
"twblue/fr/>\n"
"Language: fr\n"
"Language-Team: French "
"<https://weblate.mcvsoftware.com/projects/twblue/twblue/fr/>\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Weblate 5.10.1\n"
"Generated-By: Babel 2.17.0\n"
#: languageHandler.py:61
@@ -593,9 +594,8 @@ msgid "Show user profile"
msgstr "Voir le &profil de l'utilisateur"
#: controller/mastodon/handler.py:53
#, fuzzy
msgid "Create c&ommunity timeline"
msgstr "Créer une chronologie de communauté"
msgstr "Créer une chronologie de c&ommunauté"
#: controller/mastodon/handler.py:94
msgid "Timelines"
@@ -963,14 +963,12 @@ msgid "Autocomplete users' settings"
msgstr "Paramètres d'autocomplétion utilisateurs"
#: extra/autocompletionUsers/mastodon/wx_scan.py:11
#, fuzzy
msgid "Add &followers to database"
msgstr "Ajouter des abonnés à la base de données"
msgstr "Ajouter des &abonnés à la base de données"
#: extra/autocompletionUsers/mastodon/wx_scan.py:12
#, fuzzy
msgid "Add f&ollowing to database"
msgstr "Ajouter un abonnement à la base de données"
msgstr "Ajouter un ab&onnement à la base de données"
#: extra/autocompletionUsers/mastodon/wx_scan.py:26
msgid "Updating autocompletion database"
@@ -2134,103 +2132,87 @@ msgid "Message"
msgstr "Message"
#: wxUI/dialogs/configuration.py:15
#, fuzzy
msgid "&Language"
msgstr "Langue"
msgstr "&Langue"
#: wxUI/dialogs/configuration.py:22
#, fuzzy, python-brace-format
#, python-brace-format
msgid "&Ask before exiting {0}"
msgstr "Demander avant de quitter {0}"
msgstr "&Demander avant de quitter {0}"
#: wxUI/dialogs/configuration.py:24
#, fuzzy
msgid "&Disable Streaming functions"
msgstr "Désactiver les fonctions de streaming"
msgstr "D&ésactiver les fonctions de streaming"
#: wxUI/dialogs/configuration.py:27
#, fuzzy
msgid "&Buffer update interval, in minutes"
msgstr "Intervalle de mise à jour des tampons, en minutes"
msgstr "&Intervalle de mise à jour des tampons, en minutes"
#: wxUI/dialogs/configuration.py:33
#, fuzzy, python-brace-format
#, python-brace-format
msgid "Pla&y a sound when {0} launches"
msgstr "Jouer un son lorsque {0} démarre"
msgstr "&Jouer un son lorsque {0} démarre"
#: wxUI/dialogs/configuration.py:35
#, fuzzy, python-brace-format
#, python-brace-format
msgid "Sp&eak a message when {0} launches"
msgstr "Dire un message lorsque {0} démarre"
msgstr "Dire un &message lorsque {0} démarre"
#: wxUI/dialogs/configuration.py:37
#, fuzzy
msgid "&Use invisible interface's keyboard shortcuts while GUI is visible"
msgstr ""
"Utilisez les raccourcis clavier de l'interface invisible alors que "
"l'interface graphique est affichée"
"Utilisez les raccourcis clavier de l'interface invisible lorsque l'interface "
"&graphique est affichée"
#: wxUI/dialogs/configuration.py:39
#, fuzzy
msgid "A&ctivate Sapi5 when any other screen reader is not being run"
msgstr ""
"Activer Sapi5 lorsqu'il n'y a aucun autre lecteur d'écran en cours "
"d'exécution"
"Activer Sapi&5 lorsqu'aucun autre lecteur d'écran n'est en cours d'exécution"
#: wxUI/dialogs/configuration.py:41
#, fuzzy
msgid "&Hide GUI on launch"
msgstr "Masquer l'interface graphique au démarrage"
msgstr "&Masquer l'interface graphique au démarrage"
#: wxUI/dialogs/configuration.py:43
#, fuzzy
msgid "&Read long posts in GUI"
msgstr "Lire les posts longs dans l'interface graphique"
msgstr "&Lire les posts longs dans l'interface graphique"
#: wxUI/dialogs/configuration.py:46
#, fuzzy
msgid "&Keymap"
msgstr "Configuration clavier"
msgstr "&Configuration clavier"
#: wxUI/dialogs/configuration.py:51
#, fuzzy, python-brace-format
#, python-brace-format
msgid "Check for u&pdates when {0} launches"
msgstr "Vérifier les mises à jour lorsque {0} démarre"
msgstr "Vérifier les mises &à jour lorsque {0} démarre"
#: wxUI/dialogs/configuration.py:61
#, fuzzy
msgid "Proxy &type: "
msgstr "Type de proxy: "
msgstr "T&ype de proxy : "
#: wxUI/dialogs/configuration.py:68
#, fuzzy
msgid "Proxy s&erver: "
msgstr "Serveur proxy: "
msgstr "&Serveur proxy : "
#: wxUI/dialogs/configuration.py:74
#, fuzzy
msgid "&Port: "
msgstr "Port: "
msgstr "&Port : "
#: wxUI/dialogs/configuration.py:80
#, fuzzy
msgid "&User: "
msgstr "Utilisateur: "
msgstr "&Utilisateur : "
#: wxUI/dialogs/configuration.py:86
#, fuzzy
msgid "P&assword: "
msgstr "Mot de passe: "
msgstr "&Mot de passe : "
#: wxUI/dialogs/configuration.py:98
#, fuzzy
msgid "Enable automatic s&peech feedback"
msgstr "Activer le retour automatique de la parole"
msgstr "Activer le retour automatique par la &parole"
#: wxUI/dialogs/configuration.py:100
#, fuzzy
msgid "Enable automatic &Braille feedback"
msgstr "Activer le retour automatique en braille"
msgstr "Activer le retour automatique en &Braille"
#: wxUI/dialogs/configuration.py:108
msgid "Buffer"
@@ -2241,19 +2223,16 @@ msgid "Status"
msgstr "Statut"
#: wxUI/dialogs/configuration.py:111
#, fuzzy
msgid "S&how/hide"
msgstr "Afficher / masquer"
msgstr "&Afficher/masquer"
#: wxUI/dialogs/configuration.py:112
#, fuzzy
msgid "Move &up"
msgstr "Déplacer vers le haut"
msgstr "Déplacer vers le &haut"
#: wxUI/dialogs/configuration.py:113
#, fuzzy
msgid "Move &down"
msgstr "Déplacer vers le bas"
msgstr "Déplacer vers le &bas"
#: wxUI/dialogs/configuration.py:123 wxUI/dialogs/configuration.py:188
#: wxUI/dialogs/configuration.py:191 wxUI/dialogs/configuration.py:196
@@ -2282,19 +2261,16 @@ msgid "The buffer is already at the bottom of the list."
msgstr "Le tampon est déjà en bas de la liste."
#: wxUI/dialogs/configuration.py:205
#, fuzzy
msgid "&LibreTranslate API URL: "
msgstr "URL de l'API LibreTranslate : "
msgstr "URL de l'API &LibreTranslate : "
#: wxUI/dialogs/configuration.py:211
#, fuzzy
msgid "LibreTranslate API &Key (optional): "
msgstr "Clé API LibreTranslate (facultatif) : "
msgstr "&Clé API LibreTranslate (facultatif) : "
#: wxUI/dialogs/configuration.py:217
#, fuzzy
msgid "&DeepL API Key: "
msgstr "Clé API DeepL : "
msgstr "Clé API &DeepL : "
#: wxUI/dialogs/configuration.py:231
#, python-brace-format
@@ -2314,9 +2290,8 @@ msgid "Translation services"
msgstr "&Traduire"
#: wxUI/dialogs/configuration.py:251 wxUI/dialogs/mastodon/configuration.py:170
#, fuzzy
msgid "&Save"
msgstr "Enregistrer"
msgstr "&Enregistrer"
#: wxUI/dialogs/configuration.py:253
#: wxUI/dialogs/mastodon/communityTimeline.py:27
@@ -2465,139 +2440,119 @@ msgid "User autocompletion settings"
msgstr "Paramètres d'autocomplétion utilisateur"
#: wxUI/dialogs/mastodon/configuration.py:15
#, fuzzy
msgid ""
"Scan acc&ount and add followers and following users to the user "
"autocompletion database"
msgstr ""
"Analyser le compte et ajouter les abonnés et abonnements à la base de "
"&Scanner le compte et ajouter les abonnés et abonnements à la base de "
"données d'autocomplétion des utilisateurs"
#: wxUI/dialogs/mastodon/configuration.py:16
#, fuzzy
msgid "&Manage autocompletion database"
msgstr "Gérer la base de données d'autocomplétion"
msgstr "&Gérer la base de données d'autocomplétion"
#: wxUI/dialogs/mastodon/configuration.py:21
#, fuzzy
msgid "&Disable Streaming API endpoints"
msgstr "Désactiver les fonctionnalités de l'API de streaming"
msgstr "Désactiver les fonctionnalités de l'API de &streaming"
#: wxUI/dialogs/mastodon/configuration.py:23
#, fuzzy
msgid "&Relative timestamps"
msgstr "Temps relatifs"
msgstr "&Temps relatifs"
#: wxUI/dialogs/mastodon/configuration.py:25
#, fuzzy
msgid ""
"R&ead preferences from instance (default visibility when publishing and "
"displaying sensitive content)"
msgstr ""
"Lire les préférences depuis l'instance (visibillité par défaut lors de la"
" publication et de l'affichage de contenu sensible)"
"&Lire les préférences depuis l'instance (visibillité par défaut lors de la "
"publication et de l'affichage de contenu sensible)"
#: wxUI/dialogs/mastodon/configuration.py:28
#, fuzzy
msgid "&Items on each API call"
msgstr "Éléments pour chaque appel à l'API"
msgstr "&Éléments pour chaque appel à l'API"
#: wxUI/dialogs/mastodon/configuration.py:34
#, fuzzy
msgid ""
"I&nverted buffers: The newest items will be shown at the beginning while "
"the oldest at the end"
msgstr ""
"Tampons inversés : Les nouveaux éléments seront affichés au début et les "
"Tampons &inversés : Les nouveaux éléments seront affichés au début et les "
"plus anciens à la fin."
#: wxUI/dialogs/mastodon/configuration.py:36
#, fuzzy
msgid "&Ask confirmation before boosting a post"
msgstr "Demander confirmation avant de partager un post"
msgstr "Demander &une confirmation avant de partager un post"
#: wxUI/dialogs/mastodon/configuration.py:38
#, fuzzy
msgid "S&how screen names instead of full names"
msgstr "Afficher les noms d'écran au lieu des noms complets"
msgstr "Afficher les noms d'&affichage à la place des noms complets"
#: wxUI/dialogs/mastodon/configuration.py:40
#, fuzzy
msgid "Hide e&mojis in usernames"
msgstr "Cacher les emojis dans les noms d'utilisateur"
msgstr "Cacher les mojis dans les noms d'utilisateur"
#: wxUI/dialogs/mastodon/configuration.py:42
#, fuzzy
msgid ""
"&Number of items per buffer to cache in database (0 to disable caching, "
"blank for unlimited)"
msgstr ""
"Nombre d'éléments par tampon en cache dans la base de données (0 pour "
"désactiver la mise en cache, laissez en blanc pour illimité)"
"&Nombre d'éléments par tampon en cache dans la base de données (0 pour "
"désactiver la mise en cache, blanc pour illimité)"
#: wxUI/dialogs/mastodon/configuration.py:46
#, fuzzy
msgid ""
"&Load cache for items in memory (much faster in big datasets but requires"
" more RAM)"
msgstr ""
"Charger le cache des éléments en mémoire (plus rapide sur les grosses "
"bases de données mais nécessite plus de RAM)"
"&Charger le cache des éléments en mémoire (plus rapide sur les grosses bases "
"de données mais nécessite plus de RAM)"
#: wxUI/dialogs/mastodon/configuration.py:53
#, fuzzy, python-brace-format
#, python-brace-format
msgid "Edit template for &posts. Current template: {}"
msgstr "Éditer le modèle pour les posts. Modèle actuel : {}"
msgstr "Éditer le modèle pour les &posts. Modèle actuel : {}"
#: wxUI/dialogs/mastodon/configuration.py:55
#, fuzzy, python-brace-format
#, python-brace-format
msgid "Edit template for c&onversations. Current template: {}"
msgstr "Éditer le modèle pour les conversations. Modèle actuel : {}"
msgstr "Éditer le modèle pour les c&onversations. Modèle actuel : {}"
#: wxUI/dialogs/mastodon/configuration.py:57
#, fuzzy, python-brace-format
#, python-brace-format
msgid "Edit template for p&ersons. Current template: {}"
msgstr "Éditer le modèles pour les personnes. Modèle actuel : {}"
msgstr "Éditer le modèles pour les p&ersonnes. Modèle actuel : {}"
#: wxUI/dialogs/mastodon/configuration.py:65
#, fuzzy
msgid "&Volume"
msgstr "Volume"
msgstr "&Volume"
#: wxUI/dialogs/mastodon/configuration.py:76
#, fuzzy
msgid "S&ession mute"
msgstr "Session muette"
msgstr "&Session muette"
#: wxUI/dialogs/mastodon/configuration.py:78
#, fuzzy
msgid "&Output device"
msgstr "Périphérique de sortie"
msgstr "Périphérique de &sortie"
#: wxUI/dialogs/mastodon/configuration.py:85
#, fuzzy
msgid "&Input device"
msgstr "Périphérique d'entrée"
msgstr "Périphérique d'&entrée"
#: wxUI/dialogs/mastodon/configuration.py:93
#, fuzzy
msgid "Sound &pack"
msgstr "Pack de sons"
msgstr "&Pack de sons"
#: wxUI/dialogs/mastodon/configuration.py:99
#, fuzzy
msgid "Indicate &audio or video in posts with sound"
msgstr "Indiquer un audio ou une vidéo dans un post par un son"
msgstr "Indiquer les posts &audio ou vidéo par un son"
#: wxUI/dialogs/mastodon/configuration.py:101
#, fuzzy
msgid "Indicate posts containing i&mages with sound"
msgstr "Indiquer les posts contenants des images par un son"
msgstr "Indiquer les posts contenants des &images par un son"
#: wxUI/dialogs/mastodon/configuration.py:124
#, fuzzy
msgid "&Language for OCR"
msgstr "Langue pour l'OCR"
msgstr "Langue pour la &ROC"
#: wxUI/dialogs/mastodon/configuration.py:149
msgid "Feedback"
@@ -2748,7 +2703,6 @@ msgid "&Visibility"
msgstr "&Visibilité"
#: wxUI/dialogs/mastodon/postDialogs.py:54
#, fuzzy
msgid "Language"
msgstr "Langue"
@@ -4563,4 +4517,3 @@ msgstr "Abo&nnement"
#~ msgid "Remember state for mention all and long tweet"
#~ msgstr "Se souvenir de l'état pour \"Répondre à tous\" et \"Tweet long\""

View File

@@ -9,7 +9,7 @@ from . import utils, compose
# This will be used for the edit template dialog.
# Available variables for post objects.
# safe_text will be the content warning in case a post contains one, text will always be the full text, no matter if has a content warning or not.
post_variables = ["date", "display_name", "screen_name", "source", "lang", "safe_text", "text", "image_descriptions", "visibility"]
post_variables = ["date", "display_name", "screen_name", "source", "lang", "safe_text", "text", "image_descriptions", "visibility", "pinned"]
person_variables = ["display_name", "screen_name", "description", "followers", "following", "favorites", "posts", "created_at"]
conversation_variables = ["users", "last_post"]
notification_variables = ["display_name", "screen_name", "text", "date"]
@@ -57,6 +57,7 @@ def render_post(post, template, settings, relative_times=False, offset_hours=0):
$text: Toot text. This always displays the full text, even if there is a content warning present.
$image_descriptions: Information regarding image descriptions added by twitter users.
$visibility: post's visibility: public, not listed, followers only or direct.
$pinned: Wether the post is pinned or not (if not pinned, this will be blank).
"""
global post_variables
available_data = dict(source="")
@@ -88,6 +89,12 @@ def render_post(post, template, settings, relative_times=False, offset_hours=0):
else:
image_descriptions = process_image_descriptions(post.media_attachments)
available_data.update(image_descriptions=image_descriptions)
# Process if the post is pinned
if post.get("pinned", False):
pinned = _("Pinned.")
else:
pinned = ""
available_data.update(pinned=pinned)
result = Template(_(template)).safe_substitute(**available_data)
return result

View File

@@ -1,7 +1,7 @@
{"current_version": "2024.05.23",
"description": "Read long posts in GUI, display posts with unicode characters and several buffixes.",
{"current_version": "2025.03.08",
"description": "Initial filter support, added pinned posts. Fixed some minor issues.",
"date": "unknown",
"downloads":
{"Windows32": "https://github.com/MCV-Software/TWBlue/releases/download/v2024.05.23/TWBlue_portable_v2024.05.23.zip",
"Windows64": "https://github.com/MCV-Software/TWBlue/releases/download/v2024.05.23/TWBlue_portable_v2024.05.23.zip"}
{"Windows32": "https://github.com/MCV-Software/TWBlue/releases/download/v2025.03.08/TWBlue_portable_v2024.05.23.zip",
"Windows64": "https://github.com/MCV-Software/TWBlue/releases/download/v2025.03.08/TWBlue_portable_v2025.03.08.zip"}
}