扩展:WatchAnalytics

This page is a translated version of the page Extension:WatchAnalytics and the translation is 23% complete.
MediaWiki扩展手册
WatchAnalytics
发行状态: 稳定版
实现 特殊页面 , 用户活动 , 通知
描述 Encourages good distribution of watchers
作者 James Montalvo,
Kris Field (Jamesmontalvo3留言)
维护者 Sanjay Thiyagarajan (User:Techwizzie)
最新版本 4.3 (2024年9月)
MediaWiki 1.38+
数据库更改
Composer mediawiki/watch-analytics
许可协议 MIT授權條款
下載
README

  • $egWatchAnalyticsPageScoreNamespaces
  • $egPendingReviewsEmphasizeDays
  • $egPendingReviewsNumberWatchSuggestions
  • $egPendingReviewsShowWatchSuggestionsIfReviewsUnder
  • $egWatchAnalyticsWatchQualityColors
  • $egWatchAnalyticsReviewStatusColors

  • viewpagescore
  • clearreviews
  • pendingreviewslink
季度下載量 7 (Ranked 132nd)
前往translatewiki.net翻譯WatchAnalytics扩展
問題 开启的任务 · 报告错误

The WatchAnalytics extension leverages the watchlist table to show statistics on how well-guarded an individual page and the wiki as a whole is, as well as to invite users to watch and review neglected pages.

Note that there has been very little consideration so far for making this extension configurable for public wikis. All features were designed with enterprise use in mind, and before calling this extension, configuration options must be available to protect users' privacy.

Download

You can download version 4.3 in .zip format.

You can also download the code directly via Git from the MediaWiki source code repository. From a command line in the extensions/ directory, run the following:

git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/WatchAnalytics

To view the code online, including version history for each file, go here: view WatchAnalytics code.

安裝

  • 下载文件,并将解压后的WatchAnalytics文件夹移动到extensions/目录中。
    开发者和代码贡献人员应从Git安装扩展,输入:cd extensions/
    git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/WatchAnalytics
  • 将下列代码放置在您的LocalSettings.php 的底部:
    wfLoadExtension( 'WatchAnalytics' );
    
  • 运行更新脚本,它将自动创建此扩展必须依赖的数据库表。
  • Configure at your convenience.
  •   完成 – 在您的wiki上导航至Special:Version,以验证已成功安装扩展。

用法

Page scores

On each page in the main namespace (or any namespace added to the $egWatchAnalyticsPageScoreNamespaces variable) two scores are displayed near the heading which indicate how well the page is being watched in general (the "scrutiny") and the total number of people who have reviewed the latest version of the page. Clicking on these scores brings you to the PageStatistics special page.

 
Showing page scores added by Watch Analytics

Special:PageStatistics

Provides explanations of what "scrutiny" and "reviewers" mean. Below this it lists the page editors in order of number of revisions, who is watching the page, and whether or not they have reviewed the latest revision. At the bottom of the page it has a chart showing how many reviewers the page had at any given time in the past. In future versions this data will be used to determine an average length of time for the page to get n-reviewers, thus making it possible to find pages that tend to not be reviewed quickly.

Special:WatchAnalytics

The WatchAnalytics special page provides information about pages, users and the overall state of watchers on the wiki.

页面信息

For pages it provides information like the number of people watching, the number people who have reviewed the latest revision, and the "watch quality" of the page. Watch quality refers to how well the watchers of the page do at quickly reviewing changes to the page. Right now the algorithm for this number is pretty poor, and in future uses it will hopefully provide better page scoring.

用户信息

Provides similar information but for users. This includes how many pages the user is watching, how many pending reviews they have, how long their oldest review is, etc. This table can be filtered by user group and page category, which can be helpful to see how sub-organizations (e.g. creating a group type "Engineering") are doing at watching certain pages.

User-page relationship visualization

A D3.js force-directed graph showing how users are watching pages. Users are represented by orange dots around the outside, and pages are represented by blue dots. Lines between users and pages indicate that the user is watching the page. If the line is red it means that the user has not seen the most recent version of the page. Note that this visualization will not work well for very large wikis.

 
A D3.js force-directed graph showing the watch-relationship between users and pages.

Special:PendingReviews

This special page is a simplified version of Special:Watchlist. Special:Watchlist is very daunting for new editors and has a lot of unnecessary information even for seasoned editors. Pending Reviews shows which pages the user has not seen the latest version (of pages in the user's watchlist). These pages are prioritized by how important it is for the wiki to have the page reviewed, which right now is entirely determined by how many people have reviewed the page. In the future it will hopefully take into account revision scoring methods.

Approved Revs

If you have the Approved Revs extension installed, Special:PendingReviews will show pages needing approval below your pending reviews. Clicking on the pending approval will show you the diff between the current edit and the last approved version of the page. There is also an "approve" button which allows you to approve the page from the diff page.

观看建议

Below the user's list of pending reviews there are suggestions for other pages the user should watch. These are determined by finding all pages linked to or from the user's watchlist. These pages are then ranked by how many watchlist pages link to/from the page, how many watchers the page currently has, and how much traffic the page gets. Pages with few watchers and a lot of traffic are thus highly prioritized.

Special:ClearPendingReviews

This special page allows users with the 'clearreviews' right (default: sysop) to clear pending reviews for a given time period based on category and/or page title. This may come in handy for any maintenance done on the wiki such as using ReplaceText where an admin creates large amounts of reviews.

维护脚本

forgivePendingReviews.php
used to clear reviews. This script has not been used by the author in a long time, and users should only execute it after backing up their database. Make sure it does what you want before using.
watchAnalyticsRecordState.php
records the user and page watch state (how many watchers, how many pending, etc).

addCategoryToWatchlist.php

Adds every page in a category (or categories) to a user's (or multiple users') watchlist. Called like: php addCategoryToWatchlist.php --usernames=Jamesmontalvo3,Darenwelsh --categories="List of ISS Spacewalks,Astronauts"

配置

变量
变量 默认 描述
$egWatchAnalyticsPageScoreNamespaces NS_MAIN, NS_TALK An array to specify what namespace to display page scores.
$egPendingReviewsEmphasizeDays 7 After how many days should the pending reviews link in the top-right become bigger and threateningly shake at the user. To disable this feature set this value to zero.
$egPendingReviewsNumberWatchSuggestions 20 How many pages to show in Pending Reviews. This should also be user-configurable.
$egPendingReviewsShowWatchSuggestionsIfReviewsUnder 5 When number of pending reviews is under this number, show Watch Suggestions. Set to zero to disable.
$egWatchAnalyticsWatchQualityColors "50" : "plaid",

"5" : "excellent",

"1.5" : "okay",

Array used to define how to color page scores.
$egWatchAnalyticsReviewStatusColors "5" : "excellent",

"3" : "okay"

Array used to define how to color page scores.
$egWatchAnalyticsPageCounter false
$egWatchAnalyticsShowUnreviewDiff true Set true to display page diff in yellow unreview banner on page. This makes it more obvious that a page is being reviewed when a user navigates to the page directly (not through Special:PendingReviews)
$egPendingReviewMaxDiffChar

$egPendingReviewMaxDiffRows

3500

15

Max number of Chars or Rows in a diff to show inline diff on Special:PendingReviews

用户权限

  • To enable the Page Scores for users, they need to be granted the viewpagescore right (by default this is only enabled for admins).
  • To allow a user to clear reviews using Special:ClearPendingReviews, they need to be granted the clearreviews right (default: sysop).

Version history

  • 0.3.0 - 2015-07-01 - First officially numbered version
  • 1.0.0 - 2016-11-07 - Switch to extension.json; drop support for MW < 1.25
  • 2.0.0 - 2018-11-19 - Add Special:ClearPendingReviews; add pagination to Special:PendingReviews; open links in new tab; many bug fixes
  • 2.0.1 - 2018-11-27 - Make CSS configurable; bug fixes
  • 3.0.0 - 2019-02-24 - Show Approved Revs info in Special:PendingReviews; bug fixes
  • 3.1.0 - 2019-03-20 - Add diff to 'unreview' banner and Special:PendingReviews; bug fixes
  • 3.1.1 - 2019-03-22 - Improve diff display
  • 3.2.0 - 2020-06-12 - Add nav button during page review; remove $egWatchAnalyticsHidePrintScores; bug fixes
  • 4.0.0 - 2023-03-04 - Fix major bugs; minor UI update; replace deprecated hooks; translation added
  • 4.1.0 - 2023-03-29 - More bug fixes
  • 4.1.1 - 2023-09-14 - Remove (no-longer-working) #watchers_needed parser function; remove PHP entry point; bug fixes
  • 4.1.2 - 2023-11-06 - Get clearing of pending reviews working again; get addCategoryToWatchlist.php script working again; change from using PageContentSaveComplete hook to PageSaveComplete; remove dependence on jQuery UI; add support for DB prefix; i18n security fixes; general code cleanup
  • 4.2 - 2024-01-29 - Drop support for MW < 1.37; replace hardcoded English text with i18n messages; bug fixes
  • 4.3 - 2024-09-02 - Drop support for MW 1.37; fix for SQL querying with MW 1.42+; PHP 8 fixes; coding improvements

未来考虑因素

  • Add user preferences to allow users to choose to use Pending Reviews or not
  • Allow user to choose how many results to display in Pending Reviews
  • Allow disabling of the force-directed graph visualization (since it may not work with large wikis)