Wikipedia:Database reports/Configuration
Appearance
wikitools
Every script uses wikitools.
The source code for all of the scripts is available on GitHub (under the name "database-reports").
crontab
# INSTRUCTIONS
# MIN HOUR DAYMONTH MONTH DAYWEEK
# GENERAL INFO
MAILTO=user@example.com
PYTHONPATH="/home/user/scripts"
# ARTICLES
12 0 * * 6 python ~/scripts/database-reports/linkedemailsinarticles.py > /dev/null
0 12 * * 5 python ~/scripts/database-reports/userlinksinarticles.py > /dev/null
0 12 13 * * python ~/scripts/database-reports/coordoverlap.py > /dev/null
0 12 6 * * python ~/scripts/database-reports/redlinkedfilesinarticles.py > /dev/null
# BIOGRAPHIES OF DEAD PEOPLE
30 0 * * 1,4 python ~/scripts/database-reports/potenshbdps1.py > /dev/null
35 0 * * 1,4 python ~/scripts/database-reports/potenshbdps2.py > /dev/null
40 0 * * 1,4 python ~/scripts/database-reports/potenshbdps3.py > /dev/null
# BIOGRAPHIES OF LIVING PEOPLE
0 2 * * 5 python ~/scripts/database-reports/unsourcedblps.py > /dev/null
45 0 * * * python ~/scripts/database-reports/potenshblps1.py > /dev/null
50 0 * * * python ~/scripts/database-reports/potenshblps2.py > /dev/null
55 0 * * * python ~/scripts/database-reports/potenshblps3.py > /dev/null
10 1 * * * nice -n 15 python ~/scripts/database-reports/potenshblps4.py > /dev/null
0 1 * * * python ~/scripts/database-reports/shortestbios.py > /dev/null
15 8 * * 2 python ~/scripts/database-reports/uncatunrefblps.py > /dev/null
20 8 * * 2 python ~/scripts/database-reports/untaggedunrefblps.py > /dev/null
20 8 * * 2 python ~/scripts/database-reports/untaggedblps.py > /dev/null
# BLOCKS
0 0 * * 2 python ~/scripts/database-reports/indefips.py > /dev/null
5 0 * * 2 python ~/scripts/database-reports/rangeblocks.py > /dev/null
0 12 8 * * python ~/scripts/database-reports/excessiveips.py > /dev/null
5 12 8 * * python ~/scripts/database-reports/excessiveusers.py > /dev/null
# CATEGORIES
0 1 * * 0 python ~/scripts/database-reports/redlinkedcatsincats.py > /dev/null
0 12 * * 5 python ~/scripts/database-reports/deletedredlinkedcats.py > /dev/null
0 1 * * 1,4 python ~/scripts/database-reports/emptycats.py > /dev/null
0 2 * * 2,6 python ~/scripts/database-reports/pollcats.py > /dev/null
0 6 * * 3 python ~/scripts/database-reports/selfcatcats.py > /dev/null
0 0 * * 1,3,5,6,7 python ~/scripts/database-reports/uncatcats.py > /dev/null
0 0 2 * * python ~/scripts/database-reports/usercats.py > /dev/null
# FILES
10 10 * * 6 python ~/scripts/database-reports/templatelessfilepages.py > /dev/null
40 10 * * 6 python ~/scripts/database-reports/catandtemplessfilepages.py > /dev/null
20 12 * * 6 python ~/scripts/database-reports/filelessfilepages.py > /dev/null
20 13 * * 6 python ~/scripts/database-reports/conflictedfiles.py > /dev/null
20 12 * * 6 python ~/scripts/database-reports/largenonfree.py > /dev/null
0 12 * * 6 python ~/scripts/database-reports/mistaggedfiles.py > /dev/null
20 18 * * * python ~/scripts/database-reports/nonfreemissingrat.py > /dev/null
5 12 * * 6 python ~/scripts/database-reports/templatesnonfree.py > /dev/null
10 12 * * 6 python ~/scripts/database-reports/pageslotnonfree.py > /dev/null
15 12 * * 6 python ~/scripts/database-reports/overusednonfree.py > /dev/null
0 3 * * * python ~/scripts/database-reports/unusednonfree.py > /dev/null
# PAGES
0 18 * * 5 python ~/scripts/database-reports/blankpages.py > /dev/null
0 18 * * 6 python ~/scripts/database-reports/longpages.py > /dev/null
5 18 * * 6 python ~/scripts/database-reports/olddeletiondiscussions.py > /dev/null
0 17 12 * * python ~/scripts/database-reports/orphanedafds.py > /dev/null
0 18 * * 3 python ~/scripts/database-reports/orphanedprojs.py > /dev/null
0 6 * * 1,5 python ~/scripts/database-reports/orphanedtalks.py > /dev/null
0 6 * * 1 python ~/scripts/database-reports/orphanedsubtalks.py > /dev/null
0 12 * * 6 python ~/scripts/database-reports/ownerlessuserpages.py > /dev/null
10 18 * * 5 python ~/scripts/database-reports/shortpages.py > /dev/null
0 12 10 * * python ~/scripts/database-reports/redlinkedfilesintemplates.py > /dev/null
# PROTECTIONS
5 12 7 * * python ~/scripts/database-reports/excessivefullarticles.py > /dev/null
35 0 * * 4 python ~/scripts/database-reports/indeffullarticles.py > /dev/null
45 0 * * 4 python ~/scripts/database-reports/indeffulltalks.py > /dev/null
6 12 7 * * python ~/scripts/database-reports/protlowtemps.py > /dev/null
30 0 * * 4 python ~/scripts/database-reports/indefsemiarticles.py > /dev/null
40 0 * * 4 python ~/scripts/database-reports/indefsemitalks.py > /dev/null
0 12 7 * * python ~/scripts/database-reports/excessivesemiarticles.py > /dev/null
# REDIRECTS
30 23 * * * python ~/scripts/database-reports/brokenredirects.py > /dev/null
30 0 1 * * python ~/scripts/database-reports/crossredirects.py > /dev/null
30 12 * * 6 python ~/scripts/database-reports/redreds.py > /dev/null
30 18 * * 6 python ~/scripts/database-reports/longredirects.py > /dev/null
# STATISTICS
0 12 * * 4 python ~/scripts/database-reports/mostwatched.py > /dev/null
0 14 * * 4 python ~/scripts/database-reports/mostwatchedperns.py > /dev/null
0 16 * * 4 python ~/scripts/database-reports/mostwatchedusers.py > /dev/null
15 0 * * * python ~/scripts/database-reports/nscounts.py > /dev/null
0 5 28 * * python ~/scripts/database-reports/mostrevisions.py > /dev/null
10 5 * * 4 python ~/scripts/database-reports/reviewercandidates.py > /dev/null
0 13 * * 4 python ~/scripts/database-reports/usersbyupload.py > /dev/null
20 0 * * * python ~/scripts/database-reports/logactions.py > /dev/null
# STUBS
0 15 * * 5 python ~/scripts/database-reports/longstubs.py > /dev/null
0 7 13 * * python ~/scripts/database-reports/directstubs.py > /dev/null
0 16 * * 4 python ~/scripts/database-reports/unusedstubtemplates.py > /dev/null
# TEMPLATES
0 12 15 * * python ~/scripts/database-reports/epontemps.py > /dev/null
5 20 * * 4 python ~/scripts/database-reports/templatedisambigs.py > /dev/null
0 15 8,22 * * python ~/scripts/database-reports/mosttransclusions.py > /dev/null
25 15 * * 4 python ~/scripts/database-reports/deletedtrans.py > /dev/null
20 15 * * 4 python ~/scripts/database-reports/transusertemps.py > /dev/null
5 15 * * 4 python ~/scripts/database-reports/uncattemps.py > /dev/null
35 15 * * 4 python ~/scripts/database-reports/unprotectedtemps.py > /dev/null
0 15 * * 4 python ~/scripts/database-reports/unusedtemplates.py > /dev/null
10 15 * * 4 python ~/scripts/database-reports/usertempreds.py > /dev/null
# USERS
0 1 * * 1,4 python ~/scripts/database-reports/confirmedusers.py > /dev/null
45 15 * * 3 python ~/scripts/database-reports/blankanontalks.py > /dev/null
0 15 6,20 * * python ~/scripts/database-reports/blockeduserrights.py > /dev/null
0 15 6,20 * * python ~/scripts/database-reports/inactiveuserrights.py > /dev/null
30 15 * * 3 python ~/scripts/database-reports/anononlyanons.py > /dev/null
0 15 * * 3 python ~/scripts/database-reports/noactionuserpages.py > /dev/null
0 15 * * 3 python ~/scripts/database-reports/noactionusertalks.py > /dev/null
# MISCELLANEOUS
30 4 * * 3 python ~/scripts/tswiki/wikiassignments.py > /dev/null
45 4 * * 3 python ~/scripts/misc/editcount.py > /dev/null
0 5 * * 1 python ~/scripts/misc/long-feats.py > /dev/null
0 5 * * 1 python ~/scripts/misc/length-gas.py > /dev/null
0 5 14,28 * * python ~/scripts/misc/wikiprojvideo.py > /dev/null
0 5 1 * * python ~/scripts/misc/wikiprojessaycat.py > /dev/null
0 2 10 * * python ~/scripts/misc/wikiprojstubs.py > /dev/null
0 0,6,12,18 * * * python ~/scripts/misc/yanker.py > /dev/null
*/30 * * * * python ~/scripts/misc/unwatched-bios-count-generator.py > /dev/null
50 14 * * * nice -n 19 python ~/scripts/misc/page-creators.py
30 15 * * 3 python ~/scripts/misc/articlecount.py > /dev/null
30 0 * * * python ~/scripts/misc/revdelactions.py > /dev/null
Adding a report
- Create file
- $ git add
- $ git commit
- $ git push origin master
- $ git pull
- Run report
- Add entry to WP:DBR
- Add entry to crontab
- $ synctab
- Create configuration subpage
- Update /Announcements