
Outro dia entrei no https://linux-br.org e olhei as postagens. E percebi que a última tinha sido dia 28 de dezembro de 2025. Bem na época em que fiz upgrade do sistema operacional. Algo que sempre deixo pra fazer nessa época de festas de fim de ano. Época essa que também aproveito e tiro férias.
Hoje fui olhar nos logs e...
Traceback (most recent call last):
File "/home/helio/linux-br.org-news-bot/linuxbrnewsgenerator.py", line 17, in
from googletrans import Translator
ModuleNotFoundError: No module named 'googletrans'
/home/helio/linux-br.org-news-bot/linuxbrnewsgenerator.py:135: SyntaxWarning: invalid escape sequence '\.'
if re.search("[ \.,]" + word.lower() + "[ \.,]", text.lower()):
/home/helio/linux-br.org-news-bot/linuxbrnewsgenerator.py:135: SyntaxWarning: invalid escape sequence '\.'
if re.search("[ \.,]" + word.lower() + "[ \.,]", text.lower()):
/home/helio/linux-br.org-news-bot/linuxbrnewsgenerator.py:138: SyntaxWarning: invalid escape sequence '\.'
elif re.search("[ \.,]" + word.lower() + "$", text.lower()):
/home/helio/linux-br.org-news-bot/linuxbrnewsgenerator.py:141: SyntaxWarning: invalid escape sequence '\.'
elif re.search("^" + word.lower() + "[ \.,]", text.lower()):
Traceback (most recent call last):
File "/home/helio/linux-br.org-news-bot/linuxbrnewsgenerator.py", line 17, in
from googletrans import Translator
ModuleNotFoundError: No module named 'googletrans'
/home/helio/linux-br.org-news-bot/linuxbrnewsgenerator.py:135: SyntaxWarning: invalid escape sequence '\.'
if re.search("[ \.,]" + word.lower() + "[ \.,]", text.lower()):
/home/helio/linux-br.org-news-bot/linuxbrnewsgenerator.py:135: SyntaxWarning: invalid escape sequence '\.'
if re.search("[ \.,]" + word.lower() + "[ \.,]", text.lower()):
/home/helio/linux-br.org-news-bot/linuxbrnewsgenerator.py:138: SyntaxWarning: invalid escape sequence '\.'
elif re.search("[ \.,]" + word.lower() + "$", text.lower()):
/home/helio/linux-br.org-news-bot/linuxbrnewsgenerator.py:141: SyntaxWarning: invalid escape sequence '\.'
elif re.search("^" + word.lower() + "[ \.,]", text.lower()):
Traceback (most recent call last):
File "/home/helio/linux-br.org-news-bot/linuxbrnewsgenerator.py", line 17, in
from googletrans import Translator
ModuleNotFoundError: No module named 'googletrans'
/home/helio/linux-br.org-news-bot/linuxbrnewsgenerator.py:135: SyntaxWarning: invalid escape sequence '\.'
if re.search("[ \.,]" + word.lower() + "[ \.,]", text.lower()):
/home/helio/linux-br.org-news-bot/linuxbrnewsgenerator.py:135: SyntaxWarning: invalid escape sequence '\.'
if re.search("[ \.,]" + word.lower() + "[ \.,]", text.lower()):
/home/helio/linux-br.org-news-bot/linuxbrnewsgenerator.py:138: SyntaxWarning: invalid escape sequence '\.'
elif re.search("[ \.,]" + word.lower() + "$", text.lower()):
/home/helio/linux-br.org-news-bot/linuxbrnewsgenerator.py:141: SyntaxWarning: invalid escape sequence '\.'
elif re.search("^" + word.lower() + "[ \.,]", text.lower()):
Traceback (most recent call last):
File "/home/helio/linux-br.org-news-bot/linuxbrnewsgenerator.py", line 17, in
from googletrans import Translator
ModuleNotFoundError: No module named 'googletrans'
Então está faltando esse módulo googletrans. Coisa simples.
❯ apt-cache search googletrans
❯
Ooops... não tão simples assim. Então troquei o script que rodava como python3 pra uv, que fiquei fanzasso. Fui rodar e...
❯ /home/helio/linux-br.org-news-bot/linuxbrnewsgenerator.py --config=/home/helio/.config/linux-br.org-autonews-bot/config
INFO:linuxbrnewsgenerator.py:Starting at: Thu May 14 14:50:15 2026
DEBUG:linuxbrnewsgenerator.py:"Picks, Shovels, and the Bill of Materials – Supply Chain Pain Points" [SCORE: 0]
INFO:linuxbrnewsgenerator.py:Not related to something we might like, so we skip: Picks, Shovels, and the Bill of Materials – Supply Chain Pain Points
DEBUG:linuxbrnewsgenerator.py:"Show HN: A whiteboard for your AI coding agent [video]" [SCORE: 0]
INFO:linuxbrnewsgenerator.py:Not related to something we might like, so we skip: Show HN: A whiteboard for your AI coding agent [video]
DEBUG:linuxbrnewsgenerator.py:"EasyDMARC Alternative: Why Teams Are Switching" [SCORE: 0]
INFO:linuxbrnewsgenerator.py:Not related to something we might like, so we skip: EasyDMARC Alternative: Why Teams Are Switching
DEBUG:linuxbrnewsgenerator.py:"LLM Targeted Underperformance Disproportionately Impacts Vulnerable Users" [SCORE: 0]
INFO:linuxbrnewsgenerator.py:Not related to something we might like, so we skip: LLM Targeted Underperformance Disproportionately Impacts Vulnerable Users
DEBUG:linuxbrnewsgenerator.py:"Psychosocial Impact of Covid-19 on Intensive Care Unit Personnel" [SCORE: 0]
INFO:linuxbrnewsgenerator.py:Not related to something we might like, so we skip: Psychosocial Impact of Covid-19 on Intensive Care Unit Personnel
DEBUG:linuxbrnewsgenerator.py:"Self-report fraud and walk free, New York prosecutors tell Wall Street" [SCORE: 0]
INFO:linuxbrnewsgenerator.py:Not related to something we might like, so we skip: Self-report fraud and walk free, New York prosecutors tell Wall Street
DEBUG:linuxbrnewsgenerator.py:"Metal Gear Solid Peace Walker" [SCORE: 0]
INFO:linuxbrnewsgenerator.py:Not related to something we might like, so we skip: Metal Gear Solid Peace Walker
DEBUG:linuxbrnewsgenerator.py:"So you want to deploy Falcon / FN-DSA for small post-quantum signatures" [SCORE: 0]
INFO:linuxbrnewsgenerator.py:Not related to something we might like, so we skip: So you want to deploy Falcon / FN-DSA for small post-quantum signatures
DEBUG:linuxbrnewsgenerator.py:"Wait, Am I a Vampire?" [SCORE: 0]
INFO:linuxbrnewsgenerator.py:Not related to something we might like, so we skip: Wait, Am I a Vampire?
DEBUG:linuxbrnewsgenerator.py:"Subquadratic Model Performance and Architecture Evaluation [pdf]" [SCORE: 0]
INFO:linuxbrnewsgenerator.py:Not related to something we might like, so we skip: Subquadratic Model Performance and Architecture Evaluation [pdf]
DEBUG:linuxbrnewsgenerator.py:"Benchmarking Subquadratic's latest model and SSA Kernel" [SCORE: 0]
INFO:linuxbrnewsgenerator.py:Not related to something we might like, so we skip: Benchmarking Subquadratic's latest model and SSA Kernel
DEBUG:linuxbrnewsgenerator.py:"Slack having issues with Messaging, API" [SCORE: 1]
INFO:linuxbrnewsgenerator.py:Ranking: [API] 1
INFO:linuxbrnewsgenerator.py:Interested article: Slack having issues with Messaging, API
INFO:linuxbrnewsgenerator.py:Too short summary for: Slack having issues with Messaging, API (DISCARDED)
DEBUG:linuxbrnewsgenerator.py:"The Navigator Trackpad is here" [SCORE: 0]
INFO:linuxbrnewsgenerator.py:Not related to something we might like, so we skip: The Navigator Trackpad is here
DEBUG:linuxbrnewsgenerator.py:"Dude where's my password? Claude reunites forgetful stoner with $400k Bitcoin" [SCORE: 1]
INFO:linuxbrnewsgenerator.py:Ranking: [bitcoin] 1
INFO:linuxbrnewsgenerator.py:Interested article: Dude where's my password? Claude reunites forgetful stoner with $400k Bitcoin
INFO:linuxbrnewsgenerator.py:translating: Dude where's my password? Claude reunites forgetful stoner with $400k Bitcoin
Traceback (most recent call last):
File "/home/helio/linux-br.org-news-bot/linuxbrnewsgenerator.py", line 508, in
news.run()
~~~~~~~~^^
File "/home/helio/linux-br.org-news-bot/linuxbrnewsgenerator.py", line 259, in run
self.articles = self.getArticles()
~~~~~~~~~~~~~~~~^^
File "/home/helio/linux-br.org-news-bot/linuxbrnewsgenerator.py", line 306, in getArticles
translated_summary = self.translate_article(summary)
File "/home/helio/linux-br.org-news-bot/linuxbrnewsgenerator.py", line 348, in translate_article
if translated_content.text == text:
^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'coroutine' object has no attribute 'text'
:0: RuntimeWarning: coroutine 'Translator.translate' was never awaited
Uma pausa pro momento "tasqueopariu".

Então atualizaram a biblioteca pra asyncio e... eu tenho de me virar com isso agora?
Bom... então tá. No fim acabei mexendo pra caramba e atualizei tudo. Parece que os posts estão de volta ao ar. Como levei 5 meses pra perceber isso (5 meses e MEIO), se algo der errado, só daqui outros 5 meses. Tudo em nome da eficiência.
O código novo já está lá no CodeBerg:
