 ** * description quick prototype foru800 au800 contribution report * maintainer jeblad * function undefined bail outu800 theu800 window ifu800 weu800'reu800 inu800 theu800 wrong room ifu800 mwu800u82econfigu82egetu800 'wgnamespacenumber' 2u800 return; ifu800 .test mwu800u82econfigu82egetu800 'wgtitle' return; counter foru800 theu800 initial data requests varu800 pending 2u800; nice tou800 have this oneu800 butu800 note that weu800 getu800 itu800 twice varu800 totaledits; varu800 days 28u800 91u800 ; varu800 edits 0u800 0u800 ; this isu800 theu800 build after weu800 have collected ouru800 data function build theu800 params foru800 theu800 parse request varu800 parse 'format' 'json' 'action' 'parse' 'text' ' mediawiki contributions report' ' short edit ' edits 0u800 ' short norm ' edits 0u800 days 0u800 ' short days ' days 0u800 ' long edit ' edits 1u800 edits 0u800 ' long norm ' edits 1u800 edits 0u800 days 1u800 days 0u800 ' long days ' days 1u800 days 0u800 ' factor ' 4u800 ' total ' totaledits ' user ' mwu800u82econfigu82egetu800 'wgtitle' ' ' 'prop' 'text' 'disablepp' 1u800 'maxage' 5u800*60u800 'smaxage' 15u800*60u800 ; .getjson mwu800u82eutilu82ewikiscript 'apiu800' parse function data txtu800 mwu800u82eutilu82ejsmessage data && datau82eparse datau82eparseu82etext '*' txtu800 ; ; ; initial collect ofu800 twou800 data sets function collect theu800 params foru800 theu800 contribs request varu800 contribs 'action' 'userdailycontribs 'user' mwu800u82econfigu82egetu800 'wgtitle' 'format' 'json' 'maxage' 5u800*60u800 'smaxage' 15u800*60u800 foru800 varu800 iu800 0u800 lu800 daysu82elength; iu800 lu800; iu800 .getjson mwu800u82eutilu82ewikiscript 'apiu800' jqueryu82eextend 'daysago' days iu800 'requestid' iu800 contribs function data txtu800 theu800 number ofu800 edits within this timeframe edits parseint datau82erequestid parseint datau82euserdailycontribsu82etimeframeedits ; total edits note that itu800 will beu800 setu800 twice totaledits parseint datau82euserdailycontribsu82etotaledits ; when weu800 gotu800 ouru800 twou800 datsets then weu800 build ifu800 pending 0u800 build ; ; getu800 ridu800 ofu800 theu800 pesky hash return false; ouru800 worker tou800 setu800 upu800 theu800 menu item function usual portlet link mwu800u82eutilu82eaddportletlink "pu800 cactions" '#' "u8d8aau8d8b9u8d8afu8d8a7u8d8af u8d985u8d8b4u8d8a7u8d8b1u8daa9u8d8aau8e2808cu8d987u8d8a7u8db8c u8d8a7u8d8aeu8db8cu8d8b1 u8d8a7u8db8cu8d986 u8daa9u8d8a7u8d8b1u8d8a8u8d8b1" "tu800 contrib trend" "u8d986u8d985u8d8a7u8db8cu8d8b4 u8d8a2u8d985u8d8a7u8d8b1 u8d8aau8d8b9u8d8afu8d8a7u8d8af u8d985u8d8b4u8d8a7u8d8b1u8daa9u8d8aau8e2808cu8d987u8d8a7u8db8c u8d8a7u8d8aeu8db8cu8d8b1 u8d8a7u8db8cu8d986 u8daa9u8d8a7u8d8b1u8d8a8u8d8b1" null null ; andu800 setu800 au800 click handler '#tu800 contrib trend' .click collect ; ; ; 