Changelog¶
Version 2.0¶
Unreleased (changes)
Replaced the third-party modules
ConfigArgParseandconfigfilewith their built-in alternatives. See the merge request for details: https://github.com/lahwaacz/wiki-scripts/pull/69As 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; includinggenerator,titlesandpageidsparameters. 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. Seews.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 tows.client, createdws.utils,ws.statistics,ws.interlanguageAdded
ws.client.site,ws.client.userandws.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
nosetopytestfor 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 thews.utils.parse_date()andws.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 newTitleparser.Improved exception logging in
API.edit(). Bothws.core.api.API.edit()andws.interactive.edit_interactive()now take an additionaltitleparameter 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 theDISPLAYTITLEproperty 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 originalMediaWikimodule has been renamed tows.core, some of its parts were moved directly tows.Reorganization of the
ws.parser_helperssubmodule, addedws.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 theindex.phpentry point.Created the
ws.core.lazy.LazyPropertydecorator and madews.core.api.API.is_loggedin,ws.core.api.API.user_rightsandws.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.pyscriptnamespace prefix parsing in
ws.core.api.API.detect_namespace()extraction of header elements in case they are nested inside e.g.
<noinclude>tagswhitespace squashing in the
ws.parser_helpers.wikicode.remove_and_squash()functionquery-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 againstws.core.connection.Connection)
New scripts:
recategorize-over-redirect.py