Vés al contingut

Tema de Viquipèdia:La taverna/Tecnicismes

Pere prlpz (discussiócontribucions)

He instal·lat el pywikibot i aconsegueixo que llegeixi pàgines però no que les editi.

Fent un programa de prova que fa servir page.put em dóna el següent error (els missatges d'error són molt més llargs però copio la part que em sembla significativa):

pywikibot.exceptions.OtherPageSaveError: Edit to page [[Usuari:PereBot/taller]] failed:
permissiondenied: The action you have requested is limited to users in one of the groups: *, [[Viquipèdia:Usuaris|Usuaris]]. [help:See https://ca.wikipedia.org/w/api.php for API usage. Subscribe to the mediawiki-api-announce mailing list at <https://lists.wikimedia.org/mailman/listinfo/mediawiki-api-announce> for notice of API deprecations and breaking changes.]

Si faig servir un script dels estàndard, també em passa el mateix. He provat amb python pwb.py replace.py -ns:0 arrivar arribar -search:arrivar i em trobo amb un error semblant:

WARNING: API error permissiondenied: The action you have requested is limited to users in one of the groups: *, [[Viquipèdia:Usuaris|Usuaris]].
ERROR: page [[Casa Magí Llorenç]] not saved due to permissiondenied: The action you have requested is limited to users in one of the groups: *, [[Viquipèdia:Usuaris|Usuaris]]. [help:See https://ca.wikipedia.org/w/api.php for API usage. Subscribe to the mediawiki-api-announce mailing list at <https://lists.wikimedia.org/mailman/listinfo/mediawiki-api-announce> for notice of API deprecations and breaking changes.]

No sé si hi pot estar relacionat, però, a més, només em funciona el pywikibot (des de la línia de comanda del Windows) quan estic al directori on és el mateix pywikibot, tot i que crec que tinc el PYTHONPATH i el PYWIKIBOT_DIR bé i l'user-config.py també.

Alguna idea de què puc estar fent malament?

Notifico en @Joutbis

Joutbis (discussiócontribucions)

Sembla que no et funciona l'autenticació. El motiu s'haurà de veure; o algun problema al user-config, o al PYTHONPATH.

Joutbis (discussiócontribucions)

Concentra't a provar el logon; diria que ara és obligatòriament mitjançant Oauth, i usuari/contrasenya ja no deu funcionar. Prova de fer només "python pwb login.py" (segons surt aquí) i afegint-hi l'opció "-dir:", per assegurar que agafa el user-config.py correcte, com explica aquí. A veure què tal.

Vriullop (discussiócontribucions)

Em vaig trobar amb aquests problemes, i d'altres, en canviar de Python 2 a 3. El login no el podia fer ni manualment, vaig haver de restaurar la contrasenya. Pel PATH vaig googlejar.

Pere prlpz (discussiócontribucions)

O sigui, seria canviar el PATH a més d'afegir el PYTHONPATH?

Vriullop (discussiócontribucions)

Pel que dius, "només em funciona el pywikibot quan estic al directori on és el mateix pywikibot", sembla el PATH. Potser el nou l'has instal·lat en un directori diferent al vell?

Pere prlpz (discussiócontribucions)

No només un directori diferent. He instal·lat el pywikibot en un ordinador diferent del que feia servir fa tres anys, que és la darrera vegada que vaig editar amb bot.

Del vídeo, el que havia entès és que el Python fa servir és la variable PYTHONPATH (i potser també PYWIKIBOT_DIR) per trobar el pywikibot. També cal posar al PATH el directori on és el pywikibot?

Joutbis (discussiócontribucions)

Jo no treballo amb Windows, però pel que vaig estar provant mentre feia el vídeo, diria que el PATH només és pràctic perquè el Windows trobi l'intèrpret de Python des de qualsevol directori. Llavors, el que hi ha d'haver al PATH és el directori on has instal·lat el Python. El pywikibot, només al Pythonpath, que és on el Python busca els mòduls i llibreries.

Pere prlpz (discussiócontribucions)
Pere prlpz (discussiócontribucions)

Diria que el login em funciona. Una mostra:

C:\Users\Pere\Documents\pywikibot>echo %PYTHONPATH%
C:\Users\Pere\Documents\pywikibot

C:\Users\Pere>cd %PYTHONPATH%

C:\Users\Pere\Documents\pywikibot>python pwb.py login.py
Logged in on wikipedia:ca as PereBot.

C:\Users\Pere\Documents\pywikibot>python ..\PereBot\prova2bot.py
(... línies omeses; llegeix un article i en presenta bé el codi wiki a la pantalla; intenta escriure)
Sleeping for 8.0 seconds, 2019-12-19 10:30:07
WARNING: API error permissiondenied: The action you have requested is limited to users in one of the groups: *, [[Viquipèdia:Usuaris|Usuaris]].
Traceback (most recent call last):
(...)
  File "C:\Users\Pere\Documents\pywikibot\pywikibot\data\api.py", line 2080, in submit
    raise APIError(**result['error'])
pywikibot.data.api.APIError: permissiondenied: The action you have requested is limited to users in one of the groups: *, [[Viquipèdia:Usuaris|Usuaris]]. [help:See https://ca.wikipedia.org/w/api.php for API usage. Subscribe to the mediawiki-api-announce mailing list at <https://lists.wikimedia.org/mailman/listinfo/mediawiki-api-announce> for notice of API deprecations and breaking changes.]

During handling of the above exception, another exception occurred:
(...)

O sigui, és com si entrés però després no reconegués els permisos. El user-config.py conté (salto línies):

mylang = 'ca'
family = 'wikipedia'
usernames['wikipedia']['ca'] = u'PereBot'
(...)
authenticate['*.wikipedia.org'] = ('...','...', '...', '...')
(...)

I per si de cas, l'script de prova que estic executant és el següent:

import pywikibot as pwb
site=pwb.Site('ca')
pag = pwb.Page(site, "Pastanaga")
print (pag)
contingut = pag.get()
print(contingut[0:500])
pagprova= pwb.Page(site, "Usuari:PereBot/taller")
pagprova.put(contingut, "Copiant [[ca:pastanaga]] per fer una prova")
print("Fet")

Tot i això, no crec que el problema sigui de l'script perquè amb el replace.py em passava el mateix.

Joutbis (discussiócontribucions)

Fes una prova, contra totes les bones pràctiques d'higiene, és cert, però provem això: copia l'script prova2bot.py al mateix directori del pywikibot, i executa'l des d'allà, a veure què passa. L'script és perfecte, segur que per aquí no ve el problema.

Per altra banda, a quin directori tens el user-config.py? Pot ser que en tinguis més d'una còpia?

Pere prlpz (discussiócontribucions)

Ja edita. Moltes gràcies a tots dos.

Al final el problema era amb els tokens. Quan vaig demanar-los no devia haver clicat prou creuetes i per això no tenia permís per escriure.

Joutbis (discussiócontribucions)

Ah, té sentit, també. A disposar!

Resposta a «bot no edita»