Wikipédia:Patrouille RC/Projet LiveRC 2.0/Specifications

Une page de Wikipédia, l'encyclopédie libre.
Projet (Project) Cahier des charges (Specifications) Développement (French only) Discussion (French only) Talk page (English and other languages)

This page presents the current version of the specifications. You can also access the previous versions using the menu below.

Versions

Current version (#2) below



Version 2[modifier le code]

In green: text that has been modified from the 1st version of the Specifications.

Project description[modifier le code]

Context[modifier le code]

LiveRC is a real-time monitoring tool of recent changes, traditionally used on French Wikipedia for patrolling, has hardly been updated since about 2014. Thanks to a few contributors who have continued to maintain it at arm's length, it continues to work but is no longer being developed or improved. First of all, its code is obsolete: for example, there are more efficient ways to retrieve the list of recent changes in real time nowadays. Moreover, LiveRC has an interface that lacks ergonomics (very busy interface, very small links with risks of missclik, etc.), has an outdated look today. Some features are missing while others are not used much.

Goals[modifier le code]

The goals are the following:

  • a software that is adapted to the uses of the French Wikipedia patrollers and, as much as possible, to the other wikis ones (especially those already using LiveRC);
  • a software that keeps all the "useful" features of LiveRC and integrates the missing ones (some inspired by SWViewer, others requested by patrollers);
  • a relatively easy-to-use software: it is therefore necessary :
    • to get rid of useless and sometimes absurd options that are present in current LiveRC version
    • and especially to simplify and purify the interface;
  • a technically robust software that uses the latest features allowed by Mediawiki and can be easily maintained (well-structured code, documented, etc.).

Scope[modifier le code]

This tool will be aimed at users with some experience with Wikimedia wikis, but not only the most experienced ones. [To be determined: In which context and environment will the tool be used?

Technical environment[modifier le code]

  • A javascript mainly coded application.
  • Extensive use of the MediaWiki API.
  • Use of EventStream to retrieve changes in real time.
  • The tool can be implemented in two ways (to be determined) :
    • as a MediaWiki gadget;
    • or preferably as an external tool hosted on WikiMedia Cloud Services (with an OAuth authentication)
  • Modular interface using http://golden-layout.com/ (or similar).

Functionalities / needs[modifier le code]

Note: when indicated "diff", it can alternatively be a log entry.

  • #1 A list of recent changes
    • real-time updated
    • ability to pause (suspends new diffs display)
    • automatic scrolling interrupted while scrolling down (in order to avoid click errors)
    • [to be confirmed] possibility to display recent changes from several wikis (cross-wiki patrol)
    • a line represents a diff or a log entry which implies a large clicking surface
    • a click anywhere on the line opens the diff preview
    • keyboard shortcuts to navigate between the diffs in the list
    • after clicking on a diff line, you can choose (to be confirmed) :
      • the line disappears from the list ;
      • the line remains but is marked as read by a visual element.
    • a "previous" button allows you to redisplay the previous diffs viewed
    • a button to empty the list
    • a line contains the following elements (in textual form or signified by a visual element) :
      • time
      • edit/log entry author
        • user name or IP
        • status
        • current or previous block (possibly number)
        • user or IP contributions count
        • number of times the user has been revoked in the session
        • existence of recent warnings (templates {{Test 1}} and similar, {{Avertissement Copyvio}} on the user's talk page [feature provided by LiveRC's UserWarnings extension].
      • the corresponding page's title
      • the page's protection status
      • edit summary (possibly truncated)
      • byte difference
      • some relevant tags (to be defined: e.g. reverts, whitening, etc.) (Warning: some tags are wiki-specific, via AbuseFilter)
      • ORES score
    • filtering criterias:
      • user's editcount
      • user's seniority (expressed in number of days)
      • status (IP, registered/autoconfirmed/autopatrolled user, admin, bot)
      • namespaces
      • log types (new pages, deletions, protections, renames, etc. + edits blocked by anti-abuse filters)
      • ORES score
      • a whitelist/blacklist system for:
        • users
        • tags
      • options to override the above criteria for:
        • my own edits
        • revocations
        • blankings
        • watchlisted pages
  • #2 A diff preview component
    • classic display of the diff
    • using keyboard shortcuts to navigate between diffs of the same page
    • Regarding the author of the edit
      • Information:
        • username/IP → link = list of contributions
        • link to their talk page (red link if talk page does not exist)
        • status
        • Whois link
        • link to IPQualityScore (or similar open proxy detection service)
      • Actionable items:
        • [admins] block (possibly drop a blocking notification message included on the talk page) / [status?] blocking request
        • [status?] leave a message (drop a template)
        • hide the user: their edits do not appear anymore in the list of recent changes
    • Regarding the edited page
      • Information:
        • page title (includes namespace) → link = page
        • history link
        • discussion link
        • edit link
        • protect link
      • Possible actions:
        • [admins] delete / [status?] request deletion (also adds a {{speedy delete}} template [or similar template for each wiki, configurable] on the affected page)
        • [status?] add banner template, only for new pages (for some banners requesting a custom reason, allow to fill in a reason in the banner)
        • [admins] protect / [status?] request protection
        • [status?] add the page to my watchlist
        • Copyvio search with Earwig's Copyvio Detector (example)
    • Concerning the diff:
      • Information:
        • old and new version's timestamp
        • complete change summary
        • complete list of tags
      • Actions that can be done:
        • [status?] cancel
        • [status?] revoke [accessible for all or with revocator status only?]
        • [admin] hide / [status?] hide request
        • read back the modification
        • show images on hover
        • select a text then right click > search the web
        • navigate to the previous edit (and the previous ones, successively, until you find a clean version) and be able to apply the same actions as for the most recent diff
    • for all actions
      • choose the reason in a drop-down list imported from WP (for admin actions) or customizable in the software (for the others)
      • be able to specify a reason manually
      • actions can be combined with a one-click message deposit on the user's talkpage
      • actions can be done with keyboard shortcuts
  • #3 Status bar component
    • Button giving access to the list of diffs I visualized during the session
    • Stats:
      • number of reverts (all patrollers combined) using the software during x last minutes
      • number of patrollers using the software during x last minutes
    • Visual notifications (same as in Wikipedia interface) when:
      • I receive a new message on my user talk page
      • I receive a notification or a thank (thank feature).