Project:Pywikibot/2.0/Porting status

The following table lists all directories and files currently in the legacy compat version, and their status of being ported to core. Please help update this table. See also Manual:Pywikibot/Scripts.

Porting status should be either "Done", "Not Done", or "N/A" for files that do not need to be ported.

notdone {{{core}}} {{{comments}}} notdone
review {{{core}}} {{{comments}}} review
done {{{core}}} {{{comments}}} done
na {{{core}}} {{{comments}}} na

Framework edit

In compat In core Comments Bug Status
./apispec.py "This is a library for querying special pages through API."

Currently only handles blocks; should be moved somewhere under pywikibot.*

bugzilla:64835 notdone
./botlist.py ./pywikibot/page.py Library function.

"Allows access to the site's bot user list.

The function refresh() downloads the current bot user list and saves it to disk. It is run automatically when a bot first tries to get this data."

Seems to only be used to find the last 'human' editor (Page.userNameHuman); A lastNonBotUser function is added to pywikibot/page.py in core resolving it's usage.

Page.userNameHuman is not available yet

bugzilla:64833 done
./category.py ./scripts/category.py done
./catlib.py ./pywikibot/catlib.py done
./config.py pywikibot/config2.py done
./CONTENTS Should be merged with general documentation. bugzilla:64847 review
./Doxyfile docs na
./families/ ./pywikibot/families/ done
./family.py ./pywikibot/family.py done
./fixes.py ./pywikibot/fixes.py done
./date.py ./pywikibot/date.py done
./diskcache.py Lib to cache dictionaries on-disk. No longer necessary -- we can cache complete API queries. na
./interwiki_graph.py ./pywikibot/interwiki_graph.py done
./LICENSE ./LICENSE done
./logindata.py "Usable example module: Use of pywikipedia as a library." Not relevant anymore now that pywikibot is nstallable. na
./pagegenerators.py ./pywikibot/pagegenerators.py done
./pageimport.py Should be re-written for API and placed in pywikibot.site (?) bugzilla:64877 notdone
./pywikibot/ ./pywikibot/ done
./query.py pywikibot/compat/query.py done
./README ./README.md done
./setup.cfg nosetests config. Replaced by travis/jenkins. na
./simple_family.py Part of login-data.py na
./userinterfaces/ ./pywikibot/userinterfaces/ The GUI interfaces were non-functional and have been removed done
./userlib.py ./pywikibot/userlib.py done
./watchlist.py "Allows access to the bot account's watchlist."

We have functions to edit the watchlist and to walk over new edits, so I think we can safely ignore this file.

na
./wikicomserver.py "This library allows the use of the pywikipediabot directly from COM-aware

applications."

I would suggest VB6 users to not use VB6 :-p

na
./wikipedia.py pywikibot/* done
./wikipediatools.py pywikibot/* done
./xmlreader.py ./pywikibot/xmlreader.py done
./families/README-family.txt notdone

User tools edit

In compat In core Comments Bug Status
./daemonize.py Ugly hack to daemonize a process. Not in scope for pwb. na
./generate_family_file.py ./generate_family_file.py done
./generate_user_files.py ./generate_user_files.py done
./pwb.py* ./pwb.py Note that compat pwb.py is a script cooked up by DrTrigon to run SGE jobs on the toolserver. That one should never have been in the repository. na
./user-config.py.sample ./user-config.py.sample done

Generic scripts edit

These can still be WMF specific, but should be usable on most sites.

In compat In core Comments Bug Status
./add_text.py ./scripts/add_text.py done
./basic.py ./scripts/basic.py done
./blockpageschecker.py ./scripts/blockpageschecker.py done
./catall.py ./scripts/catall.py Add or change categories on a number of pages. Usage: catall.py name - goes

through pages, starting at 'name'. Provides the categories on the page and asks whether to change them. If no starting name is provided, the bot starts at 'A'.

done
./category_redirect.py ./scripts/category_redirect.py This bot will move pages out of redirected categories done
./checkimages.py ./scripts/checkimages.py Script to check recently uploaded files. This script checks if a file

description is present and if there are other problems in the image's description.

done
./clean_sandbox.py ./scripts/clean_sandbox.py done
./commonscat.py ./scripts/commonscat.py done
./commons_link.py ./scripts/commons_link.py Include commons template in home wiki. done
./cosmetic_changes.py ./scripts/cosmetic_changes.py done
./delete.py ./scripts/delete.py done
./disambredir.py ./scripts/disambredir.py done
./editarticle.py ./scripts/editarticle.py done
./featured.py ./scripts/featured.py done
./fixing_redirects.py ./scripts/fixing_redirects.py done
./get.py .scripts/listpages.py Very simple script which gets a page and writes its contents to standard output. This makes it possible to pipe the text to another process. bugzilla:64855 done
./image.py ./scripts/image.py This script can be used to change one image to another or remove an image entirely. done
./isbn.py ./scripts/isbn.py done
./login.py ./scripts/login.py done
./lonelypages.py ./scripts/lonelypages.py done
./makecat.py ./scripts/makecat.py done
./misspelling.py ./scripts/misspelling.py done
./movepages.py ./scripts/movepages.py done
./noreferences.py ./scripts/noreferences.py done
./nowcommons.py ./scripts/nowcommons.py done
./overcat_simple_filter.py bugzilla:64876 notdone
./pagefromfile.py ./scripts/pagefromfile.py done
./pagegenerators.py ./scripts/listpages.py done
./piper.py "This is a bot that uses external filtering programs to munge the

article text, for example:

   python piper.py -filter:'tr A-Z a-z' Wikipedia:Sandbox

"

Not sure about the usefulness of this, but I like the unix-y style.

done
./protect.py ./scripts/protect.py done
./redirect.py ./scripts/redirect.py done
./reflinks.py ./scripts/reflinks.py done
./replace.py ./scripts/replace.py done
./replicate_wiki.py ./scripts/replicate_wiki.py done
./revertbot.py ./scripts/revertbot.py done
./selflink.py This bot goes over multiple pages of the home wiki, searches for selflinks, and

allows removing them. Maybe should be part of cosmetic_changes.py?

done
./solve_disambiguation.py ./scripts/solve_disambiguation.py done
./spamremove.py ./scripts/spamremove.py done
./standardize_notes.py This bot will standardize footnote references. It will retrieve information on

which pages might need changes either from an SQL dump (no longer supported) or a text file, or only change a single page.

notdone
./table2wiki.py "Nifty script to convert HTML-tables to MediaWiki's own syntax."

Is this still relevant?

notdone
./templatecount.py ./scripts/templatecount.py "This script will display the list of pages transcluding a given list of templates. It can also be used to simply count the number of pages (rather than listing each individually)." done
./template.py ./scripts/template.py done
./titletranslate.py ./pywikibot/titletranslate.py done
./touch.py ./scripts/touch.py done
./unlink.py ./scripts/unlink.py"This bot unlinks a page on every page that links to it." done
./unusedfiles.py ./scripts/unusedfiles.py done
./upload.py ./scripts/upload.py done
./version.py ./scripts/version.py done
./weblinkchecker.py ./scripts/weblinkchecker.py done
./welcome.py ./scripts/welcome.py done

Specialty scripts edit

In compat In core Comments Bug Status
./archivebot.py ./scripts/archivebot.py done
./blockreview.py "This bot implements a blocking review process for de-wiki first.

For other sites this bot script must be changed.

This script is run by de:User:xqt. It should not be run by other users without prior contact."

bugzilla:64832 done
./casechecker.py ./scripts/casechecker.py Script to enumerate all pages on the wiki and find all titles

with mixed latin and cyrilic alphabets

done
./cfd.py ./scripts/cfd.py This script processes the Categories for discussion working page. It parses

out the actions that need to be taken as a result of CFD discussions (as posted to the working page by an administrator) and performs them.

done
./commons_category_redirect.py ./category_redirect.py Script to clean up

http://commons.wikimedia.org/wiki/Category:Non-empty_category_redirects

Moves all images, pages and categories in redirect categories to the target category.

bugzilla:64845 done
./create_categories.py ./scripts/create_categories.py done
./data_ingestion.py ./scripts/data_ingestion.py done
./deledpimage.py Script to remove EDP images in non-article namespaces. This script is currently

used on the Chinese wikipedia.

bugzilla:64849 notdone
./djvutext.py This bot uploads text from djvu files onto pages in the "Page". Application: on Wikisource, with Extension:Proofread Page, it is

possible to preload text from a not existing page in the Page namespace, if the corresponding Index page is present. If a djvu file is connected to an Index page, text is basically already available, making this script less important. namespace. It is intended to be used for Wikisource.

bugzilla:64853 na
./extract_wikilinks.py "Script to extract all wiki page names a certain HTML file points to in

interwiki-link format

The output can be used as input to interwiki.py."

Looks like a one-off script to me; suggest to discard.

na
./followlive.py "Script to follow new articles on a wikipedia and flag them

with a template or eventually blank them.

There must be A LOT of bugs ! Use with caution and verify what it is doing !"

bugzilla:64854 notdone
./harvest_template.py ./scripts/harvest_template.py done
./imagerecat.py ./scripts/imagerecat.py done
./imagetransfer.py ./scripts/imagetransfer.py done
./imageuncat.py ./scripts/imageuncat.py done
./inline_images.py "This bot goes over multiple pages of the home wiki, and looks for images that are linked inline (i.e., they are hosted from an external server and hotlinked, instead of using the wiki's upload function."

Move to generic scripts repo?

bugzilla:64870 notdone
./parserfunctioncount.py This script helps to find expensive templates that are subject to be converted

to Lua. It counts parser functions and then orders templates by number of these and uploads the first n titles or alternatively templates having count()>n.

bugzilla:64878 notdone
./patrol.py "This bot obtains a list of recentchanges and newpages and marks the

edits as patrolled based on a whitelist."

Specialty bot, should not be in pywikibot repository.

done
./speedy_delete.py This bot is used to quickly trawl through candidates for speedy deletion in a fast and semi-automated fashion. The bot displays the contents of each pageone at a time and provides a prompt for the user to skip or delete the page. Of course, this will require a sysop account. bugzilla:64880 review
./spellcheck.py "This bot spellchecks Wikipedia pages. It is very simple, only checking

whether a word, stripped to its 'essence' is in the list or not, it does not do any grammar checking or such. It can be used in four ways:"

notdone
./statistics_in_wikitable.py \03{lightyellow}This bot renders statistics provided by Special:Statistics in a table on a wiki page.\03{default}

Thus it creates and updates a Statistics wikitable.

notdone
./subster_irc.py 'Robot which connects to Recent Changes channel and runs "SubsterBot" whenever

needed.'

Specialty bot, should be in it's own repo.

na
./subster.py "Robot which will does substitutions of tags within wiki page content with external or other wiki text data. Like dynamic text updating."

Specialty bot, should be in it's own repo.

na
./sum_disc.py "This bot is used for summarize discussions spread over the whole wiki

including all namespaces. It checks several users (at request), sequential (currently for the german wiki [de] only)."

Specialty bot, should be in it's own repo.

na
./us-states.py ./scripts/states_redirect.py "Renamed to states-redirect.py as it covers more than US States redirection. Sub-divisions used for all countries using pycountry" done

Interwiki edit

In compat In core Comments Bug Status
./interwiki.py ./scripts/interwiki.py done
./splitwarning.py "Splits a interwiki.log file into chunks of warnings separated by language."

Are warning files used at all anymore?

notdone
./standardize_interwiki.py Loop over all pages in the home wiki, standardizing the interwiki links. notdone
./warnfile.py "A robot to implement backlinks from a interwiki.log file without checking them

against the live wikipedia.

bugzilla:59097 notdone

Redirect-creation scripts edit

In compat In core Comments Bug Status
./capitalize_redirects.py "Bot to create capitalized redirects where the first character of the first

word is uppercase and the remainig characters and words are lowercase."

bugzilla:64837 done
./ndashredir.py "This script will collect articles that have n dash or m dash character in their

title, and create a redirect to them automatically from the corresponding hyphenated title. "

bugzilla:64875 notdone

Image classification edit

In compat In core Comments Bug Status
./catimages.py "Image by content categorization derived from 'checkimages.py'.

Script to check uncategorized files. This script checks if a file has some content that allows to assign it to a category."

OpenCV-based image classification. Is this within scope for the 'standard library of scripts'? I think having this as a seperate package makes more sense.

bugzilla:64838 notdone
./match_images.py Program to match two images based on histograms.

Move to scripts repo

bugzilla:64871 done

Image upload tools edit

In compat In core Comments Bug Status
./flickrripper.py ./scripts/flickrripper.py done
./imagecopy.py Commons upload cluster bugzilla:64856 notdone
./imagecopy_self.py Commons upload cluster bugzilla:64856 notdone
./imageharvest.py Commons upload cluster bugzilla:64856 notdone
./panoramiopicker.py Commons upload cluster bugzilla:64856 notdone
./tag_nowcommons.py "Bot tag tag files available at Commons with the Nowcommons template."

Specialty bot; should be moved to it's own repo (Commons upload bots?)

bugzilla:64159 notdone

Maintainer.py edit

In compat In core Comments Bug Status
./censure.py Maintainer.py cluster bugzilla:64839 notdone
./maintainer.py Maintainer.py cluster bugzilla:64839 notdone
./maintcont.py Maintainer.py cluster bugzilla:64839 notdone
./rciw.py Maintainer.py cluster bugzilla:64839 notdone

Commonsdelinker edit

In compat In core Comments Bug Status
./delinker.py Commonsdelinker init bugzilla:64850 done
./mysql_autoconnection.py Part of CommonsDelinker bugzilla:64850 na
./commonsdelinker/* bugzilla:64850 done

Moved to a separate repository: http://git.wikimedia.org/tree/pywikibot%2Fbots%2FCommonsDelinker.git

Copyright edit

In compat In core Comments Bug Status
./copyright_clean.py copyright.py cluster bugzilla:64848 notdone
./copyright_put.py copyright.py cluster bugzilla:64848 notdone
./copyright.py This robot checks copyright text in Google, Yahoo! and Live Search. bugzilla:64848 notdone
./copyright/exclusion_list.txt Copyright cluster bugzilla:64848 notdone
./copyright/site_protected_list.txt bugzilla:64848 notdone


Wiktionary edit

This is now a separate pywikibot-wiktionary repository.

In compat In core Comments Bug Status
./wiktionary.py AFAIS this is a duplicate of all the smaller individual files bugzilla:64881 na
./wiktionary/entry.py bugzilla:64881 done
./wiktionary/header.py bugzilla:64881 done
./wiktionary/headertest.py bugzilla:64881 done
./wiktionary/meaning.py bugzilla:64881 done
./wiktionary/meaningtest.py bugzilla:64881 done
./wiktionary/sortonlanguagename.py* bugzilla:64881 done
./wiktionary/structs.py bugzilla:64881 done
./wiktionary/term.py bugzilla:64881 done
./wiktionary/termtest.py* bugzilla:64881 done
./wiktionary/testall.sh* bugzilla:64881 done
./wiktionary/wiktionarypage.py bugzilla:64881 done
./wiktionary/wiktionarypagetest.py bugzilla:64881 done

Maintenance scripts edit

In compat In core Comments Bug Status
./maintenance/ ./scripts/maintenance/ done
./maintenance/check_disambiguationspage.py "No longer needed with disambiguator extension" na
./maintenance/cleanident* Managed by pep8 checks na
./maintenance/family_check.py Checks namespaces in family files. No longer necessary na
./maintenance/make_i18n_dict.py ./scripts/maintenance/make_i18n_dict.py done
./maintenance/preferences.py "This module contains a read-write class that represents the user preferences" notdone
./maintenance/readtalk.py This tool will go through all the normal (not sysop) accounts configured in

user-config and output the contents of the talk page.

notdone
./maintenance/release.py "This tool prepares and sets the framework directory for final release by

performing several actions:"

We don't do 'real' releases anymore, and if we do, we probably want to do something else.

na
./maintenance/setmail.py "This tool sets an email address on all bot accounts and email confirms them."

We have SUL now.

na
./maintenance/test_namespaces.py "This utility's primary use is to find all mismatches between the namespace

naming in the family files and the language files on the wiki servers."

Namespaces are retrieved from the server in core.

na
./maintenance/update_namespaces.py Namespaces are retrieved from the server in core. na
./maintenance/wikimedia_sites.py ./scripts/maintenance/wikimedia_sites.py done

Broken/unclear scripts edit

In compat In core Comments Bug Status
./articlenos.py "A script that displays the ordinal number of the new articles being created

visible on the Recent Changes list."

Seems broken -- does not respond to IRC messages, and I'm not sure what the 'ordinal number' should be (size?). Can be removed?

na
./gui.py " A window with a unicode textfield where the user can e.g. edit

the contents of an article"

Could be useful as part of an userinterface, but currently does not run on compat. Marked as na.

na
./rcsort.py "A tool to see the recentchanges ordered by user instead of by date. This

is meant to be run as a CGI script."

Not in scope and does not really depend on pywikibot (just uses it to get the address of Special:RecentChanges)

na
./saveHTML.py "This bot downloads the HTML-pages of articles and images

and saves the interesting parts, i.e. the article-text and the footer to a file like Hauptseite.txt."

There are much better tools for local wiki-viewing, and I think this is out of scope.

na
./udp-log.py Bot to pipe some unclear format to some unclear UDP server @ toolserver.

Not within scope.

na