Nas últimas semanas verifiquei que alguns blogs começaram a não ser actualizados no Planeta SIG. Depois de investigar, percebi que certos blogs provocavam erros devido a carateres portugueses nos títulos ou à codificação (encoding) das datas… Para facilitar pesquisas no Google, aqui fica o erro:
ERROR:planet.runner:UnicodeDecodeError: 'utf8' codec can't decode bytes in position 3-5: invalid data
(...)
ERROR:planet.runner: File "C:\...\planet\reconstitute.py", line 110, in date
xdate.setAttribute('planet:format', formatted.decode('utf-8'))
ERROR:planet.runner: File "c:\python25\lib\encodings\utf_8.py", line 16, in decode
Depois de muitas tentativas, lá consegui chegar à solução, e mais uma vez vi-me forçado a alterar o código, o que vai dificultar ainda mais a actualização do Planeta quando sairem novas versões do software “Venus”.
Para ficar registado, aqui fica a alteração mágica que resolveu o problema. No ficheiro reconstitute.py, comentar a linha 110:
#xdate.setAttribute('planet:format', formatted.decode('utf-8'))
E adicionar em seu lugar as seguintes linhas:
try:
xdate.setAttribute('planet:format', formatted.decode('utf-8'))
except:
xdate.setAttribute('planet:format', formatted.decode('iso-8859-1'))
Suspeito que esta alteração deveria ser feita em todas as ocorrências de decode(‘utf-8’), mas isso ficará para quando encontrar mais erros e houver tempo. Em jeito de remate, aumentei também o tempo máximo de espera de 20 para 60s para que não haja tantos casos de erros de “timeout” (quando os servidores onde estão alojados os blogs demoram demasiado a responder).
Aos blogs afectados (Georden e Geo:metrik) as minhas desculpas.
Até breve.