mirror of
https://github.com/MCV-Software/TWBlue.git
synced 2026-03-06 09:27:33 +01:00
Idiomas
This commit is contained in:
@@ -12,9 +12,46 @@ from sessions import base
|
||||
from sessions import session_exceptions as Exceptions
|
||||
import output
|
||||
import application
|
||||
import languageHandler
|
||||
|
||||
log = logging.getLogger("sessions.blueskiSession")
|
||||
|
||||
|
||||
class Language:
|
||||
"""Simple language object with code and name attributes, mimicking Mastodon.py format."""
|
||||
def __init__(self, code: str, name: str):
|
||||
self.code = code
|
||||
self.name = name
|
||||
|
||||
def __repr__(self):
|
||||
return f"Language({self.code}, {self.name})"
|
||||
|
||||
|
||||
def get_supported_languages():
|
||||
"""Returns the list of supported languages with translated names."""
|
||||
return [
|
||||
Language("", _("Not set")),
|
||||
Language("en", _("English")),
|
||||
Language("es", _("Spanish")),
|
||||
Language("fr", _("French")),
|
||||
Language("de", _("German")),
|
||||
Language("it", _("Italian")),
|
||||
Language("pt", _("Portuguese")),
|
||||
Language("ja", _("Japanese")),
|
||||
Language("ko", _("Korean")),
|
||||
Language("zh", _("Chinese")),
|
||||
Language("ru", _("Russian")),
|
||||
Language("ar", _("Arabic")),
|
||||
Language("hi", _("Hindi")),
|
||||
Language("nl", _("Dutch")),
|
||||
Language("pl", _("Polish")),
|
||||
Language("tr", _("Turkish")),
|
||||
Language("uk", _("Ukrainian")),
|
||||
Language("ca", _("Catalan")),
|
||||
Language("eu", _("Basque")),
|
||||
Language("gl", _("Galician")),
|
||||
]
|
||||
|
||||
# Optional import of atproto. Code handles absence gracefully.
|
||||
try:
|
||||
from atproto import Client as AtpClient # type: ignore
|
||||
@@ -39,6 +76,8 @@ class Session(base.baseSession):
|
||||
self.char_limit = 300
|
||||
self.api = None
|
||||
self.poller = None
|
||||
self.supported_languages = get_supported_languages()
|
||||
self.default_language = languageHandler.curLang[:2]
|
||||
# Subscribe to pub/sub events from the poller
|
||||
pub.subscribe(self.on_notification, "blueski.notification_received")
|
||||
|
||||
|
||||
@@ -4,9 +4,12 @@ Utility functions for Bluesky session.
|
||||
"""
|
||||
|
||||
import logging
|
||||
import re
|
||||
|
||||
log = logging.getLogger("sessions.blueski.utils")
|
||||
|
||||
url_re = re.compile(r'https?://[^\s<>\[\]()"\',]+[^\s<>\[\]()"\',.:;!?]')
|
||||
|
||||
|
||||
def g(obj, key, default=None):
|
||||
"""Helper to get attribute from dict or object."""
|
||||
@@ -254,6 +257,14 @@ def find_urls(post):
|
||||
if uri and uri not in urls:
|
||||
urls.append(uri)
|
||||
|
||||
# Also search plain text for URLs using regex (fallback)
|
||||
text = g(record, "text", "")
|
||||
if text:
|
||||
text_urls = url_re.findall(text)
|
||||
for u in text_urls:
|
||||
if u not in urls:
|
||||
urls.append(u)
|
||||
|
||||
return urls
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user