Page MenuHomePhabricator

Wrap-up report for "Implement Flow Support for Pywikibot"
Closed, ResolvedPublic

Description

Fields required in a wrap-up report:

  • Project description (as you would explain it to a layman who has no clue about MediaWiki). Please include screenshots with description - explaining how exactly the tool/extension works.
  • Missing features/known bugs. Add links to phabricator tasks for the same and leave a short explanation.
  • Demo server link
  • Resource links (Project in gerrit/github, extension link on wiki etc.)
  • Anything else you can think of, which can make contributing to this project easier for newcomers.

(Please edit this task itself to write your report. Make sure you complete it by 21st of August when end-term evaluations start.)


This was a project to add support for Flow, the Wikimedia Foundation's new discussion framework, to Pywikibot, a Python framework widely used for bots operating on Foundation wikis. To accomplish this task, a module was implemented in Pywikibot with classes mapping to Flow data constructs, like topics and posts. Code supporting Flow-related API calls was also added, and tests were included for loading and saving operations. As it stands, Pywikibot-driven bots can now load Flow content, create new topics, reply to topics and posts, and lock and unlock topics.

Despite some delays, the MVP, which roughly corresponded to Phase 1, was completed and is already merged. The code not implemented is encapsulated in the rest of T109228 (Phase 2) and T109229 (Phase 3). There were also a few issues found in existing code within Flow and Pywikibot, which are detailed in several tasks on this project's workboard.

My demo will be modifying the scripts/unusedfiles.py bot script to post unused file messages to user talk pages that use Flow. The demo will be run on the testwiki as described in T108969. The code can be found in https://gerrit.wikimedia.org/r/#/c/232737/.

User-level documentation can be found at https://www.mediawiki.org/wiki/Manual:Pywikibot/Flow. Here are a few screenshots of test results:

Screenshot1.png (900×1 px, 218 KB)
- test results and a locked topic

Screenshot3.png (900×1 px, 224 KB)
- nested replies

Screenshot4.png (900×1 px, 227 KB)
- more replies

Screenshot2.png (900×1 px, 225 KB)
- two topics

Screenshot5.png (900×1 px, 217 KB)
- lockable topic, currently unlocked

Screenshot6.png (900×1 px, 300 KB)
- messages to uploader from unusedfiles.py script