Page MenuHomePhabricator

interwikidata.py works weird
Open, MediumPublic

Description

>pwb.py interwikidata -clean -family:wiktionary -start:Category:! -create

Situaton 1a - page without interwiki does not exist on wikidata - script skips (should create page)

>>> Kategorie:Archaické výrazy/řečtina <<<
No interlanguagelinks on [[Kategorie:Archaické výrazy/řečtina]]

Situation 1b - page with interwiki does not exist on wikidata - script skips because of conflict (where?) instead of creating, importing and cleaning

>>> Kategorie:Archaické výrazy/polština <<<
WARNING: Interwiki [[en:Category:Polish archaic terms]] does not exist, skipping...
WARNING: Interwiki [[fr:Catégorie:Termes archaiques en polonais]] does not exist, skipping...
WARNING: Interwiki [[de:Kategorie:veralteter Wortschatz (Polnisch)]] does not exist, skipping...
WARNING: Interwiki conflict in [[Kategorie:Archaické výrazy/polština]], skipping...

Situation 2a - page have item on Wikidata, interwiki already imported (should remove interwiki from page)

>>> Kategorie:(vše) <<<
WARNING: Interwiki conflict in [[Kategorie:(vše)]], skipping...

Situation 2b - page have item on Wikidata, interwiki not imported (should import interwiki from page and then remove)
bot removes interwiki, but without importing it to Wikidata
https://www.wikidata.org/w/index.php?title=Q8258576&action=history
https://cs.wiktionary.org/w/index.php?title=Kategorie:Aragonština&action=history

Event Timeline

Change 361458 had a related patch set uploaded (by Matěj Suchánek; owner: Matěj Suchánek):
[pywikibot/core@master] [IMPR] Create items with interwiki using interwikidata.py

https://gerrit.wikimedia.org/r/361458

Xqt triaged this task as Medium priority.Jun 27 2017, 5:08 PM
Xqt added a project: Pywikibot.
Xqt claimed this task.

Change 361458 merged by jenkins-bot:
[pywikibot/core@master] [IMPR] Create items with interwiki using interwikidata.py

https://gerrit.wikimedia.org/r/361458

Change 361829 had a related patch set uploaded (by Matěj Suchánek; owner: Matěj Suchánek):
[pywikibot/core@master] [Bugfix] Use correct iterator method in interwikidata.py

https://gerrit.wikimedia.org/r/361829

Change 361829 merged by jenkins-bot:
[pywikibot/core@master] [Bugfix] Use correct iterator method in interwikidata.py

https://gerrit.wikimedia.org/r/361829

Change 361829 merged by jenkins-bot:
[pywikibot/core@master] [Bugfix] Use correct iterator method in interwikidata.py

https://gerrit.wikimedia.org/r/361829

After this change script correctly creates new item, but still not clean pages.

>>> Kategorie:Albánská adjektiva <<<
WARNING: Interwiki conflict in [[Kategorie:Albánská adjektiva]], skipping...


>>> Kategorie:Albánská citoslovce <<<
WARNING: Interwiki [[ru:Kategoriya:Albanskie mezhdometiya]] does not exist, skipping...
WARNING: Interwiki [[li:Categorie:Albanisj tösjewaordj]] does not exist, skipping...
WARNING: Interwiki [[zh:Category:?erbaniyayugantanci]] does not exist, skipping...
WARNING: Interwiki [[es:Categoría:SQ:Interjecciones]] does not exist, skipping...
WARNING: Interwiki [[sq:Kategoria:Pasthirrma shqip]] does not exist, skipping...
WARNING: Interwiki [[el:Katigoría:Epifonémata (albaniká)]] does not exist, skipping...
WARNING: Interwiki [[it:Categoria:Interiezioni in albanese]] does not exist, skipping...
WARNING: Interwiki [[th:hmudhmu::khamouthanphasaaeolebeni:y]] does not exist, skipping...
WARNING: Interwiki [[en:Category:Albanian interjections]] does not exist, skipping...
WARNING: Interwiki [[tr:Kategori:Ünlem (Arnavutça)]] does not exist, skipping...
WARNING: Interwiki [[tg:Guruxh:Nidohoi albanii]] does not exist, skipping...
WARNING: Interwiki [[lt:Kategorija:Albanu kalbos jaustukai]] does not exist, skipping...
WARNING: Interwiki [[ca:Categoria:Interjeccions en albanes]] does not exist, skipping...
WARNING: Interwiki [[sv:Kategori:Albanska/Interjektioner]] does not exist, skipping...
WARNING: Interwiki [[pt:Categoria:Interjeiçao (Albanes)]] does not exist, skipping...
WARNING: Interwiki [[nl:Categorie:Tussenwerpsel in het Albanees]] does not exist, skipping...
WARNING: Interwiki [[fi:Luokka:Albanian kielen interjektiot]] does not exist, skipping...
WARNING: Interwiki [[fr:Catégorie:Interjections en albanais]] does not exist, skipping...
Created item Q31048277
WARNING: Interwiki conflict in [[Kategorie:Albánská citoslovce]], skipping...

Script still deletes intrwiki which is not yet imported

>>> Kategorie:Anglická přísloví <<<
WARNING: Interwiki [[eo:Kategorio:Proverbo (Angla)]] does not exist, skipping...
WARNING: Interwiki [[eu:Kategoria:Atsotitzak ingelesez]] does not exist, skipping...
WARNING: Interwiki [[cy:Categori:Diarhebion Saesneg]] does not exist, skipping...
WARNING: Interwiki [[ms:Kategori:Peribahasa Inggeris]] does not exist, skipping...
WARNING: Interwiki [[pt:Categoria:Provérbio (Ingles)]] does not exist, skipping...
WARNING: Interwiki [[wa:Categoreye:Spots e l' ingles]] does not exist, skipping...
Adding link to Q8417938
Cleaning up the page
@@ -4,20 +4 @@
- [[Kategorie:Přísloví podle jazyků]]
+ [[Kategorie:Přísloví podle jazyků]]
-
- [[cy:Categori:Diarhebion Saesneg]]
- [[de:Kategorie:Sprichwort (Englisch)]]
- [[en:Category:English proverbs]]
- [[eo:Kategorio:Proverbo (Angla)]]
- [[es:Categoría:EN:Refranes]]
- [[eu:Kategoria:Atsotitzak ingelesez]]
- [[fr:Catégorie:Proverbes en anglais]]
- [[hu:Kategória:angol közmondások]]
- [[ja:kategori:ying? kotowaza]]
- [[ko:bunryu:yeongeo ??]]
- [[ms:Kategori:Peribahasa Inggeris]]
- [[no:Kategori:Ordtak i engelsk]]
- [[pl:Kategoria:Angielskie przysłowia]]
- [[pt:Categoria:Provérbio (Ingles)]]
- [[ru:Kategoriya:Poslovicy i pogovorki/en]]
- [[sv:Kategori:Engelska/Ordspraak]]
- [[tr:Kategori:Atasözü (Ingilizce)]]
- [[wa:Categoreye:Spots e l' ingles]]

Edit summary: Bot: Cleaning up old interwiki links
Do you want to accept these changes? ([y]es, [N]o, [a]ll, [q]uit):

https://www.wikidata.org/w/index.php?title=Q8417938&oldid=508603006 - missing cy,eo,eu,ms,pt,wa and bot wants to delete them

Xqt removed Xqt as the assignee of this task.Jun 28 2017, 8:01 PM
Xqt removed a project: Patch-For-Review.
Xqt subscribed.

Change 362232 had a related patch set uploaded (by Matěj Suchánek; owner: Matěj Suchánek):
[pywikibot/core@master] [IMPR] Only report to the user if the page doesn't exist

https://gerrit.wikimedia.org/r/362232

Change 362235 had a related patch set uploaded (by Matěj Suchánek; owner: Matěj Suchánek):
[pywikibot/core@master] [Bugfix] Fix interwiki conflict detection

https://gerrit.wikimedia.org/r/362235

Change 362235 had a related patch set uploaded (by Matěj Suchánek; owner: Matěj Suchánek):
[pywikibot/core@master] [Bugfix] Fix interwiki conflict detection

https://gerrit.wikimedia.org/r/362235

I t seems to be OK

But is there problem when page is softredirect with interwiki

https://uk.wiktionary.org/w/index.php?title=Категорія:Прикметники_за_мовами&action=edit&oldid=223709

>>> Категорія:Прикметники за мовами <<<
WARNING: Interwiki [[ko:분류:한국어 형용사]] does not exist, skipping...
WARNING: Interwiki [[sr:Категорија:Придев]] does not exist, skipping...
WARNING: Interwiki [[ar:تصنيف:صفات حسب اللغة]] does not exist, skipping...
WARNING: C:\pwb\pywikibot\site.py:1334: UserWarning: Unknown wbeditentity parameter new ignored
  return fn(self, *args, **kwargs)

WARNING: API error failed-save: The save has failed.

1314 pages read
0 pages written
Execution time: 116 seconds
Read operation time: 0 seconds
Script terminated by exception:

ERROR: OtherPageSaveError: Edit to page [[wikidata:-1]] failed:
failed-save: The save has failed. [help:See https://www.wikidata.org/w/api.php for API usage. Subscribe to the mediawiki-api-announce mailing list at &lt;https://lists.wikimedia.org/mailman/listinfo/mediawiki-api-announce&gt; for notice of API deprecations and breaking changes.]
Traceback (most recent call last):
  File "C:\pwb\pwb.py", line 262, in <module>
    if not main():
  File "C:\pwb\pwb.py", line 255, in main
    run_python_file(filename, [filename] + args, argvu, file_package)
  File "C:\pwb\pwb.py", line 121, in run_python_file
    main_mod.__dict__)
  File ".\scripts\interwikidata2.py", line 216, in <module>
    main()
  File ".\scripts\interwikidata2.py", line 209, in main
    bot.run()
  File "C:\pwb\pywikibot\bot.py", line 1464, in run
    self.treat(page)
  File "C:\pwb\pywikibot\bot.py", line 1755, in treat
    super(ExistingPageBot, self).treat(page)
  File "C:\pwb\pywikibot\bot.py", line 1678, in treat
    self.treat_page()
  File ".\scripts\interwikidata2.py", line 95, in treat_page
    item = self.create_item()
  File ".\scripts\interwikidata2.py", line 125, in create_item
    item.editEntity(data, new='item', summary=summary)
  File "C:\pwb\pywikibot\page.py", line 139, in wrapper
    handle(func, self, *args, **kwargs)
  File "C:\pwb\pywikibot\page.py", line 131, in handle
    raise pywikibot.OtherPageSaveError(self, err)
pywikibot.exceptions.OtherPageSaveError: Edit to page [[wikidata:-1]] failed:
failed-save: The save has failed. [help:See https://www.wikidata.org/w/api.php for API usage. Subscribe to the mediawiki-api-announce mailing list at &lt;https://lists.wikimedia.org/mailman/listinfo/mediawiki-api-announce&gt; for notice of API deprecations and breaking changes.]
<class 'pywikibot.exceptions.OtherPageSaveError'>
CRITICAL: Closing network session.

UserWarning: Unknown wbeditentity parameter new ignored is strange...

Change 362235 merged by jenkins-bot:
[pywikibot/core@master] [Bugfix] Fix interwiki conflict detection

https://gerrit.wikimedia.org/r/362235

Change 362232 merged by jenkins-bot:
[pywikibot/core@master] [IMPR] Show different message if the page doesn't have an item

https://gerrit.wikimedia.org/r/362232