| Line 510: |
Line 510: |
| | mw.hook("wikipage.collapsibleContent").add(updateContent); | | mw.hook("wikipage.collapsibleContent").add(updateContent); |
| | | | |
| − | function showPageSizeWarning() { | + | function addPageStats() { |
| − | var newpp = $(".mw-parser-output").contents().filter(function () { return this.nodeType === 8 && this.data.match(/Post‐expand include size: (\d+)\/(\d+) bytes/); }); | + | if (mw.user.isAnon() || !$('.mw-indicators').length) return; |
| | + | var newpp = $('.mw-parser-output').contents().filter(function () { return this.nodeType === 8 && this.data.match(/Post‐expand include size: (.+?)\/(.+?) bytes/); }); |
| | if (!newpp.length) return; | | if (!newpp.length) return; |
| | newpp = newpp[0].data; | | newpp = newpp[0].data; |
| | + | |
| | + | var time_usage = newpp.match(/Real time usage: (.+?) seconds/) || [0, 0]; |
| | var page_size = newpp.match(/Post‐expand include size: (.+?)\/(.+?) bytes/) || [0, 0, 1]; | | var page_size = newpp.match(/Post‐expand include size: (.+?)\/(.+?) bytes/) || [0, 0, 1]; |
| | + | var lua_memory = newpp.match(/Lua memory usage: (.+?) MB\/(.+?) MB/) || [0, 0, 1]; |
| | var lua_time = newpp.match(/Lua time usage: (.+?)\/(.+?) seconds/) || [0, 0, 1]; | | var lua_time = newpp.match(/Lua time usage: (.+?)\/(.+?) seconds/) || [0, 0, 1]; |
| − | var lua_memory = newpp.match(/Lua memory usage: (.+?) MB\/(.+?) MB/) || [0, 0, 1]; | + | time_usage = Math.round(time_usage[1]) |
| | var page_size_usage = Math.round(100 * +page_size[1] / +page_size[2]); | | var page_size_usage = Math.round(100 * +page_size[1] / +page_size[2]); |
| | + | var lua_memory_usage = Math.round(100 * +lua_memory[1] / +lua_memory[2]); |
| | var lua_time_usage = Math.round(100 * +lua_time[1] / +lua_time[2]); | | var lua_time_usage = Math.round(100 * +lua_time[1] / +lua_time[2]); |
| − | var lua_memory_usage = Math.round(100 * +lua_memory[1] / +lua_memory[2]); | + | |
| − | var style = 'margin-top:5px;margin-bottom:5px;margin-left:auto;margin-right:auto;padding:5px;width:50%;text-align:center'; | + | var reports = []; |
| − | $('#content').prepend('<div id="red-report"></div>');
| + | if (time_usage >= 10) reports.push('<div style="color:darkred">' + time_usage + '+ seconds</div>'); |
| − | $('#content').after('<div id="green-report" style="margin-left:168px"></div>'); | + | else if (time_usage >= 5) reports.push('<div style="color:purple">' + time_usage + '+ seconds</div>'); |
| − | if (lua_time_usage >= 90) { | + | if (page_size_usage >= 90) reports.push('<div style="color:darkred">' + page_size_usage + '% page size</div>'); |
| − | $('#red-report').prepend('<pre style="color:red;' + style + '">Lua time: ' + lua_time_usage + '%</pre>');
| + | else if (page_size_usage >= 50) reports.push('<div style="color:purple">' + page_size_usage + '% page size</div>'); |
| − | } else { | + | if (lua_memory_usage >= 90) reports.push('<div style="color:darkred">' + lua_memory_usage + '% lua memory</div>'); |
| − | $('#green-report').prepend('<pre style="color:green;' + style + '">Lua time: ' + lua_time_usage + '%</pre>');
| + | else if (lua_memory_usage >= 50) reports.push('<div style="color:purple">' + lua_memory_usage + '% lua memory</div>'); |
| − | }
| + | if (lua_time_usage >= 90) reports.push('<div style="color:darkred">' + lua_time_usage + '% lua time</div>'); |
| − | if (lua_memory_usage >= 90) { | + | else if (lua_time_usage >= 50) reports.push('<div style="color:purple">' + lua_time_usage + '% lua time</div>'); |
| − | $('#red-report').prepend('<pre style="color:red;' + style + '">Lua memory: ' + lua_memory_usage + '%</pre>');
| + | |
| − | } else { | + | $('.mw-indicators').prepend('<pre class="page-stats" style="text-align:center;border-radius:10px;padding:10px">' + reports.join('') + '</pre>'); |
| − | $('#green-report').prepend('<pre style="color:green;' + style + '">Lua memory: ' + lua_memory_usage + '%</pre>');
| |
| − | }
| |
| − | if (page_size_usage >= 90) { | |
| − | $('#red-report').prepend('<pre style="color:red;' + style + '">Page size: ' + page_size_usage + '%</pre>');
| |
| − | } else { | |
| − | $('#green-report').prepend('<pre style="color:green;' + style + '">Page size: ' + page_size_usage + '%</pre>');
| |
| − | }
| |
| | } | | } |
| | | | |
| − | showPageSizeWarning(); | + | addPageStats(); |
| | | | |
| | }); | | }); |
| | | | |
| | }(mediaWiki, jQuery)); | | }(mediaWiki, jQuery)); |