Changelog¶
Version 2.0¶
Unreleased (changes)
- Replaced the third-party modules - ConfigArgParseand- configfilewith their built-in alternatives. See the merge request for details: https://github.com/lahwaacz/wiki-scripts/pull/69
- As a result, the configuration file format has changed. See Configuration for details on migrating your configuration. 
- The default value of the - --cookie-fileoption was removed, so it has to be set explicitly in the configuration file for persistent authenticated session.
- The - --siteand- --cache-diroptions were removed.
Version 1.3¶
Released Jun 19, 2021 (changes)
- SQL database:
- Implemented a subset of MediaWiki API querie. Lists: - allpages,- alldeletedrevisions,- allrevisions,- allusers,- logevents,- protectedtitles,- recentchanges; props:- categories,- deletedrevisions,- extlinks,- images,- info,- iwlinks,- langlinks,- linkshere,- links,- pageprops,- redirects,- revisions,- sections,- templates,- transcludedin; including- generator,- titlesand- pageidsparameters. See the GitHub issue for more information: https://github.com/lahwaacz/wiki-scripts/issues/35.
- Implemented synchronization of revisions contents (either full or just the latest revision for each page). 
- Fixed many bugs in the synchronization process. 
- Implemented custom parser cache, see the GitHub issue for more information: https://github.com/lahwaacz/wiki-scripts/issues/42 
 
 
- Removed - ws.cache.LatestRevisionsmodule. Scripts use the SQL database for caching.
- Merged several smaller scripts into - list-problems.py.
- Implemented the - ws.client.api.API.move()method to rename pages on the wiki.
- Implemented recursive template expansion using - mwparserfromhelland the SQL database. See- ws.parser_helpers.template_expansion.
- Implemented a regex-based function to check if a page is a redirect ( - ws.parser_helpers.wikicode.is_redirect()).
- Fixed handling of relative links and leading colons in the - Titleclass.
- The parameter - --ssl-verifyis removed, SSL certificates are always verified for HTTPS requests. Furthermore, TLS 1.2 or newer is required for all HTTPS requests.
- And much more… 
Version 1.2¶
Released December 31, 2017 (changes)
- Large refactoring: - ws.corerenamed to- ws.client, created- ws.utils,- ws.statistics,- ws.interlanguage
- Added - ws.client.site,- ws.client.userand- ws.client.redirectsmodules,- ws.client.api.APIhas attributes with the appropriate instances for the current wiki.
- Improved parsing of page titles – fixed many bugs, extended test suite, added checking of legal characters, handling of namespace aliases. 
- Added - ws.autopagesubmodule.
- Switched from - noseto- pytestfor testing.
- Added - ws.dbmodule for the synchronization of a remote wiki into a local PostgreSQL database. See the GitHub issue for more information: https://github.com/lahwaacz/wiki-scripts/issues/35. This also means multiple new dependencies, see the README file for details.
- Transparent automatic conversion of timestamp strings into the Python’s - datetime.datetimeobjects. As a result, manual calls to the- ws.utils.parse_date()and- ws.utils.format_date()functions should not be necessary when working with the API.
Version 1.1¶
Released March 6, 2016 (changes)
- Fixed handling of - csrftoken, it is now cached and automatically renewed as indicated by the server responses.
- Partial interlanguage support for - update-package-templates.py: localized templates “Broken package link” and “aur-mirror” are respected.
- Added the - ws.parser_helpers.titlemodule for parsing titles into- (iwprefix, namespace, pagename, sectionname)and easy manipulation with the parts.
- Removed - ws.core.api.API.detect_namespace()in favour of the new- Titleparser.
- Improved exception logging in - API.edit(). Both- ws.core.api.API.edit()and- ws.interactive.edit_interactive()now take an additional- titleparameter representing the title of the page being edited.
- Added support for - WikEdDiff, an inline-style diff engine with block move support and splitting optimized for MediaWiki markup.- pygmentsis now used only as a fallback.
- The - link-checker.pyscript has been improved to consider the- DISPLAYTITLEproperty of pages and links to sections are checked base on the sections existing on the target page.
- Added - --connection-max-retriesand- --connection-timeoutoptions.
- Added - toc.pyscript to update the “Table of contents” page on the wiki.
Version 1.0¶
Released August 19, 2015 (changes)
- Major reorganization of the project structure: common code shared between the scripts has been moved to the - wsmodule and the original- MediaWikimodule has been renamed to- ws.core, some of its parts were moved directly to- ws.
- Reorganization of the - ws.parser_helperssubmodule, added- ws.parser_helpers.encodings.
- Expanded documentation, fixed many typos in docstrings. 
- Expanded test suite, at least for parts not depending on the MediaWiki API. 
- Generalized the - ws.core.connection.Connectionclass to handle also the- index.phpentry point.
- Created the - ws.core.lazy.LazyPropertydecorator and made- ws.core.api.API.is_loggedin,- ws.core.api.API.user_rightsand- ws.core.api.API.namespacesproper properties.
- Started using the - loggingmodule for messages.
- New unified configuration interface for all scripts, using the - ws.configsubmodule. See Configuration for details.- Basically all scripts were modified to use the - ws.configinterface.
- Default cookie path was changed from - $XDG_CACHE_HOMEto- $XDG_CACHE_HOME/wiki-scripts.
- Some command line arguments were renamed because of global configuration in a config file. 
 
- Added also - assert=botto all bot editing queries.
- Fixed bugs: - formatting of streak timestamps in the - statistic.pyscript
- namespace prefix parsing in - ws.core.api.API.detect_namespace()
- extraction of header elements in case they are nested inside e.g. - <noinclude>tags
- whitespace squashing in the - ws.parser_helpers.wikicode.remove_and_squash()function
- query-continuation algorithm (used to fail with generator queries with multiple values in the - propquery parameter)
- JSON serialization of non-str keys 
- exception catching for opening cookies 
 
- Improved scripts: - statistics.py(minor bug fixes)
- update-interlanguage-links.py(heavy refactoring)
- check-user-namespace.py(warn if user pages are categorized)
- list-redirects-broken-fragments.py(improved detection of redirects with broken fragments by comparing dot-encoded fragments)
- dump.py(deduplicated against- ws.core.connection.Connection)
 
- New scripts: - recategorize-over-redirect.py
 
