@Paucabot, si estaves actualitzant la pàgina automàticament cada dia a les 9:31 sembla que el bot s'ha aturat.
Viquiprojecte Discussió:Discussions desateses/discussions
Aparença
De tant en tant el programa té problemes quan es troba amb una pàgina específica, cosa que fa que s'aturi. Miraré si aquesta vegada li ha passat el mateix.
Això li passa quan es troba una pàgina que ell no sap que s'ha esborrat. En aquest cas, Portal Discussió:Còmics/1925:
Traceback (most recent call last):</code> File "/home/pau/core/discussions.py", line 71, in <module> text=pag.get() File "/home/pau/core/pywikibot/page/_basepage.py", line 392, in get self._getInternals() File "/home/pau/core/pywikibot/page/_basepage.py", line 431, in _getInternals self.site.loadrevisions(self, content=True) File "/home/pau/core/pywikibot/site/_generators.py", line 830, in loadrevisions raise NoPageError(page) pywikibot.exceptions.NoPageError: Page [[Portal Discussió:Còmics/1925|ca:Portal Discussió:Còmics/1925]] doesn't exist. During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/home/pau/core/discussions.py", line 76, in <module> except pywikibot.NoPage: AttributeError: module 'pywikibot' has no attribute 'NoPage'. Did you mean: 'Page'? CRITICAL: Exiting due to uncaught exception AttributeError: module 'pywikibot' has no attribute 'NoPage'
El que faig perquè torni a funcionar és restaurar la pàgina.
Fet!
No acaba de ser un bon sistema, anar creant pàgines perquè funcioni el bot.
Quan tingui una estona miro d'arreglar l'excepció perquè funcioni. Podria ser que "pywikibot.NoPage" sigui una forma obsoleta i ara s'hagi de posar d'una altra manera.
Perfecte, millor que hi facis una ullada perquè jo, si l'he d'arreglar, hauria de fer-ho usant AI ...
@Paucabot: He vist que a la meva versió ja estava arreglat. La versió completa és a https://github.com/pere-prlpz/viquipedia/blob/master/discussions.py i si vols canviar només la línia problemàtica, on hi ha ha except pywikibot.NoPage: hi ha d'haver except pywikibot.exceptions.NoPageError:
Suposo que un canvi semblant ja està fet una mica més amunt on parla de redireccions perquè si no fallaria cada cop.
Ara veig en un fil de més avall que fa tres anys vam tenir exactament el mateix problema amb l'excepció de les redireccions.
Sí. Ara ho he vist, també. Ja he actualitzat el codi i funciona. Gràcies.
Bon dia,
Aquest és un missatge important en relació amb aquesta pàgina.
Aquesta pàgina empra el sistema de discussions estructurades (popularment, Flow), que s'ha convertit en una eina obsoleta amb diversos problemes de manteniment. S'ha decidit retirar-lo de tots els projectes de l'entorn Wikimedia.
A partir del 16 de desembre, ja no serà possible ni iniciar un tema nou, ni tampoc publicar cap missatge de resposta en aquesta pàgina.
Abans d'aquesta data, podeu moure-la o sol·licitar de traslladar-la a una altra subpàgina per tal d'arxivar-la. Un cop moguda, aquesta pàgina en què us trobeu ara es convertirà en una pàgina de discussió estàndard.
Si rebeu aquest missatge a la vostra pàgina de discussió d'usuari, molt probablement és perquè temps enrere vau decidir convertir-la al sistema Flow. Feu clic aquí per accedir a la pestanya «Característiques de la beta» i desactiveu-hi l'opció «Discussions estructurades a la pàgina de discussions de l'usuari».
Si no heu traslladat aquesta pàgina abans del 16 de desembre, un fitxer d'ordres (script) la mourà automàticament a una subpàgina d'arxiu amb el format Nom de la pàgina actual/Flow
. Consegüentment, la nova subpàgina es convertirà en una de només lectura, sense possibilitat d'editar-la.
Si teniu cap altre dubte, consulteu-lo a d'altres viquipedistes que ja n'estan al cas a Viquipèdia:La taverna/Tecnicismes o, en cas contrari, al tècnic Trizek_(WMF) de la Fundació Wikimedia!
Fa un parell de dies que em dona un error perquè es veu que s'embulla amb les redireccions de les categories:
Traceback (most recent call last):
File "discussions.py", line 71, in <module>
text=pag.get()
File "/data/project/shared/pywikibot/stable/pywikibot/page/__init__.py", line 442, in get
self._getInternals()
File "/data/project/shared/pywikibot/stable/pywikibot/page/__init__.py", line 479, in _getInternals
raise self._getexception
pywikibot.exceptions.IsRedirectPageError: Page ca:Discussió:Batalla de Kíev (2022) is a redirect page.
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "discussions.py", line 72, in <module>
except pywikibot.IsRedirectPage:
AttributeError: module 'pywikibot' has no attribute 'IsRedirectPage'
CRITICAL: Exiting due to uncaught exception <class 'AttributeError'>
@Pere prlpz: Sabries dir-me què ha de canviar per evitar aquest error?
Gràcies.
No n'estic segur perquè la versió original em seguia funcionant. Si l'estàs executant al servidor pot ser que hagin actualitzat la versió del Pywikibot i d'aquí vingui la diferència.
Pots provar de canviar la línia 72 i posar-hi:
except pywikibot.exceptions.IsRedirectPageError:
on abans hi deia:
except pywikibot.IsRedirectPage:
Hola, Pere_prlpz.
Això ja ho havia canviat per tal de que funcionàs i ho tenc així com dius (i fins ara havia funcionat).
Aleshores vaig una mica perdut perquè no sé quin codi fas servir ni on l'executes. He pujat el meu codi actual (que em funciona) a https://github.com/pere-prlpz/viquipedia/blob/master/discussions.py. El teu és igual?
Utilitz aquest codi a Toolforge.
Segueix dient
except pywikibot.IsRedirectPage:
i no
except pywikibot.exceptions.IsRedirectPageError:
Jo provaria de canviar-ho.
Ah.
Disculpes. Havia entès el canvi al revés. Llegesc massa ràpid. Ara ho prov.
Pau.
O jo escric massa a l'inrevés. Ja em diràs com va.
S'acaba d'actualitzar: Viquiprojecte:Discussions desateses/discussions.
Gràcies.
@Pere prlpz: Sembla que s'ha aturat. Hi podries fer una ullada? Gràcies.
@Paucabot La pàgina l'actualitzava el CobainBot automàticament. Com que es va aturar fa uns mesos, de tant en tant l'actualitzava jo engegant el meu bot a mà, però els meus bots han deixat de funcionar fins que tingui una estona per actualitzar el pywikibot.
Ara bé, fins que algú torni a muntar el cron per actualitzar automàticament, el sistema que trobo més pràctic és tenir el codi, que és a https://github.com/pere-prlpz/viquipedia/blob/master/discussions.py, i executar-lo cada cop que vull consultar la pàgina. Com que ja tens el pywikibot instal·lat potser t'aniria bé fer el mateix.
No sé si ho sabré fer, però intentaré programar el meu robot perquè, usant el teu codi, ho faci cada vespre. Ja et diré coses.
@Pere prlpz: He executat el programa al servidor Toolforge i em dona aquest error:
Traceback (most recent call last):
File "/data/project/rebot/discussions.py", line 54, in <module>
jpag=json.loads(pbrut)
File "/usr/lib/python3.5/json/__init__.py", line 312, in loads
s.__class__.__name__))
TypeError: the JSON object must be str, not 'bytes'
Tens idea de quin pot ser el problema?
No sé massa què dir-te perquè a casa aquesta part em funciona. Per l'error podria ser un problema de versions (un paquet que tens instal·lat tu dóna o espera un resultat diferent que un dels meus), o un problema que ha fallat el llegir la consulta. El segon no és estrany i normalment s'arreglava executant de nou, tot i que no recordo que el missatge fos aquest. Potser per fer una query a l'api des del Toolforge cal fer alguna cosa diferent, com ara donar-li un agent o alguna cosa així, però em sorprendria perquè l'única cosa que fa el programa és llegir una adreça web.
He actualitzat el codi al github però diria que els canvis que faltaven no tenen res a veure amb aquest error.
He actualitzat el meu pywikibot local a la darrera versió i al final m'ha funcionat. El que no he pogut aconseguir és fer-ho des del Toolforge.
M'acaba de funcionar al Toolforge. Ara posaré el cron.
Segons m'han dit al xat del Toolforge, amb les darreres versions de Python no hauria hagut de fer res, però amb la versió que hi havia allà he hagut de canviar pllista.read() per pllista.read().decode('utf-8').
Doncs sembla sorprenent perquè la versió del 2015 que hi ha a Usuari:PereBot/robot inclou discussions recents ja feia 'pllista.read()' sense 'decode'.
Per altra banda ara me n'he adonat que la versió que feia servir el CobainBot és força diferent (si més no en aquesta part) i potser hagués funcionat sense problemes. https://phabricator.wikimedia.org/source/tool-cobain/browse/master/public_html/pywikilab/inc_disc_rc.py
Això és el que m'ha dit els dos que m'han ajudat:
Lucas Werkmesiter: I guess it’s a Python 3 error, in Python 2 json.loads(bytes) was allowed
(but adding the decode step is the correct solution, please don’t go back to Python 2 ^^)
AntiComposite: actually, running it in python3.6+ should work
https://docs.python.org/3/library/json.html?highlight=json#json.loads
though that might require an encoding param
not sure what it would do in 3.9
Lucas Werkmesiter: oh, interesting
yeah, in Python 3.9 json.loads(b'{}') works
json.loads('{}'.encode('utf16')) and json.loads('{}'.encode('utf32')) also work, I guess it autodetects the encoding
Ara em lliga perquè la meva versió antiga funcionava amb Python 2.7 i l'actual la faig anar amb Python 3.8. Les versions que no han funcionat són les d'entremig que no he fet servir.
No tinc clars l'objectiu i continguts d'aquest "Projecte", ni com s'alimenta, però en el cas concret de Viquiprojecte:Discussions desateses/discussions#Nom i lema el reanomenament proposat ja està fet. Cal algun detall / acció per tal que surti d'aquí? Gràcies.
No, el bot llista les darreres edicions a pàgines de discussió. Quan faci un parell de dies que ningú no hi edita, ja no sortirà.
D'acord en el fons, que no cal fer res i la pàgina ja desapareixerà d'aquí tota sola. Ara bé, que jo recordi el que inclou el bot són les últimes pàgines de discussió creades a cada espai de noms, no les darreres editades. Les discussions desapareixen quan se'n creen de més noves al mateix espai de noms.
Cap més tema anterior