Vés al contingut

Tema de Viquipèdia:La taverna/Tecnicismes

Autenticació dels bots

12
Resum per Paucabot

Problemes sembla que momentàniament resolts

Joutbis (discussiócontribucions)

Sembla que es revifa el problema que ja va sortir l'agost passat i en vam parlar aquí. Recordeu que llavors es van revertir els canvis a Wikimedia, però hi havia una mica de mala maror, perquè s'havien avisat feia més de mig any, i la comunitat del pywikibot no havia fet res.

Ara han tornat a tirar endavant els canvis a Wikimedia i sembla que tornen els problemes. A la petició de suport original ja hi ha gent que ho explica, i això que sembla que utilitzen la "nova" manera d'autenticar-se. De moment a mi em va bé, però suposo que quan caduqui la cookie, ja hi tornarem a ser.

Que jo sàpiga, l'única solució de moment està explicada aquí. La veritat, no m'agrada massa, perquè implica registrar el bot (fins aquí, cap problema), i a partir d'aquell moment, les edicions es fan amb el nom de l'usuari humà en comptes del bot. No sé què passa si com a "your username" hi poses el nom del bot.

Algú ha provat això de l'OAuth? El tema del nom amb què surten les edicions, com ho veieu?

Faig un avís a botaires, així de memòria:@Leptictidium, @KRLS, @Coet, @Arnaugir, @Toniher, @Jaumeortola,@Vriullop. Suposo que me'n descuido, aviseu-los si se us n'acut un altre.

Jaumeortola (discussiócontribucions)

Jo vaig fer el canvi de sistema d'autenticació fa uns quants mesos. El pitjor és el procés de sol·licitud: no és molt clar com s'han d'omplir els formularis. Passat aquest tràmit, jo hi veig cap problema.

Això que dius que "les edicions es fan amb el nom de l'usuari humà en comptes del bot", ¿on ho has vist? Jo no veig que passi en la pràctica.

Joutbis (discussiócontribucions)

Ho deia per la frase "The old way of having a separate bot account and primary account and using the latter only for actions which need extra permissions is not necessary (and not yet supported either)", i al final, on diu "If you want to revoke the bot's access to your account,"

Llavors quan et demana l'usuari vas posar el nom del bot en comptes del teu? Per mi, molt millor.

I sobre versions, diu que has de fer servir "master". Això és diferent de "core", no? Jo ja m'he perdut. Pensava que només hi havia "compat" i "core", i ara surten amb el master...

Jaumeortola (discussiócontribucions)

Sí, es refereixen sempre al bot, que és el que té determinades autoritzacions especials.

El que jo entenc és que en l'autenticació OAuth tu pots permetre totes les accions per a les quals té autorització el bot, o bé restringir-les, no permetre-les totes. Això suposo que només té sentit per als bots o apps que fan coses avançades.

Jo tampoc estic al corrent de les versions de Pywikibot i el que impliquen. Simplement cal actualitzar a la versió que diuen.

Joutbis (discussiócontribucions)

Finalment ho he fet, i tot bé. He fet logon a la pàgina de sol·licitud amb l'usuari del bot, he seguit les instruccions, i de seguida m'ha donat les quatre tirallongues de números que has de posar a user-config.py. He intentat donar la clau RSA, però no m'entenia el format i no ha pogut ser.

He fet ja algunes edicions de prova, i només tocant el user-config.py sembla que va tot igual. Estic fent servir la versió core, per cert.

Vriullop (discussiócontribucions)

Impossible. He seguit els passos de mw:Manual:Pywikibot/OAuth/Wikimedia, he posat els 4 numerets a user-config.py però no m'autentica, em segueix demanant inútilment la password. He perdut tot un matí per quedar-me sense bot.

Joutbis (discussiócontribucions)

Jo al user-config.py el tinc així:

mylang = 'ca'

family = 'wikipedia'

usernames['wikipedia']['ca'] =             \

usernames['meta']['*'] =            \

usernames['commons']['*'] =            \

usernames['wikidata']['*'] =            \

usernames['wiktionary']['*'] =        \

usernames['wikibooks']['*'] =            \

usernames['wikinews']['*'] =            \

usernames['wikiquote']['*'] =            \

usernames['wikisource']['*'] =        \

usernames['wikiversity']['*'] =        \

usernames['wikivoyage']['*'] =        \

'JoRobot'

authenticate['*.wikipedia.org'] =        \

authenticate['*.wikimedia.org'] =         \

authenticate['*.wikidata.org'] =         \

authenticate['*.wiktionary.org'] =         \

authenticate['*.wikibooks.org'] =         \

authenticate['*.wikinews.org'] =         \

authenticate['*.wikiquote.org'] =         \

authenticate['*.wikisource.org'] =         \

authenticate['*.wikiversity.org'] =         \

authenticate['*.wikivoyage.org'] =        \

authenticate['*.mediawiki.org'] =        \

('primer','segon', 'tercer', 'quart')

I res més. També utilitzo la branca "core", amb una actualització recent. Pot ser un problema de versions del pywikibot?

80.24.217.44 (discussiócontribucions)

El problema ha estat en actualitzar a la darrera versió estable core llavors he perdut el cookie de login. Tinc l'user-config igual, l'he deixat al mínim per descartar coses rares:

family = 'wikipedia'
mylang = 'ca'
usernames['wikipedia']['ca'] = u'VriuBot'
authenticate['*.wikipedia.org'] = ('<primer>','<segon>', '<tercer>', '<quart>')

No hi ha manera que m'autentiqui. Fins hi tot he demanat renovar les credencials per si m'havia equivocat en copiar-les m:Special:Log/mwoauthconsumer/VriuBot.

Joutbis (discussiócontribucions)

A mi em funciona amb core, però a tot arreu deia que havies de fer servir "master", per això estava confós. Potser amb core no està garantit? Jo tampoc veig cap problema al teu user-config, has provat d'obrir una petició a Phabricator?

Vriullop (discussiócontribucions)

Fet phab:T156514, però és que tot són problemes. A banda del warning que explico, abans m'he trobat amb un error

File "C:\Python279\lib\ntpath.py", line 310, in expanduser
    return userhome + path[i:]
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe7 in position 14: ordinal not in range(128)

He deduït que és per culpa de tenir "Vicenç" com a userhome i a config2.py línia 611 he hagut de canviar "db_connect_file = user_home_path('.my.cnf')" per "db_connect_file = None", de fet no uso cap database en local.

Tot plegat s'ha produït pel problema explicat a Tema:Tjq6xlbxqi4yc6fl. En voler consultar Wikidata dóna un altre error: "Keyerror: upperBound" a pywikibot/__init__.py per "upperBound = eval(wb['upperBound'])" que he hagut de canviar a "upperBound = eval(wb.setdefault('upperBound', 'amount'))". Igualment el lowerBound.

En fi, que estic fins el gorro de problemes per acabar quedant-me sense bot.

Joutbis (discussiócontribucions)

A mi també em va començar el festival perquè Wikidata requereix una versió nova del Pywikibot, i amb els canvis de versió comença el festival. T'han contestat que cal la branca master. Doncs jo tinc core i em funciona. Potser és perquè encara no m'ha caducat la cookie i quan ho faci em començaran els problemes...

Vriullop (discussiócontribucions)

Mira que és complicat. A Pywikibot Nightlies hi ha diferents opcions, per ser prudent he anat a la darrera versió estable 2.0rc3. A mw:Manual:Pywikibot/Installation diuen que instal·lis Pywikibot 2.0rc5, així que l'he tornat a actualitzar. La master d'entrada no se sap què és. He provat amb la darrera de les nightlies i és la 3.0-dev. Això ja se sembla més al que diu Pywikibot 3 master branch.

De fet a mw:Manual:Pywikibot/OAuth/Wikimedia sí que diuen Pywikibot master, si és que un endevina què vol dir. El següent pas ha estat instal·lar requests-oauthlib, però com que tinc un Python 2.7.9 he hagut d'endevinar que primer havia d'actualitzar el pip.

Al final ho he aconseguit, però si algú em demana com instal·lar un bot no sabria per on començar.