| @@ -45,6 +45,8 @@ templates it uses, documented in [[Template:AFC statistics/doc]]. --> | |||||
| <noinclude>{{Documentation|Template:%(pageroot)s/doc}}</noinclude> | <noinclude>{{Documentation|Template:%(pageroot)s/doc}}</noinclude> | ||||
| """ | """ | ||||
| _PER_CHART_LIMIT = 2000 | |||||
| class AFCStatistics(Task): | class AFCStatistics(Task): | ||||
| """A task to generate statistics for WikiProject Articles for Creation. | """A task to generate statistics for WikiProject Articles for Creation. | ||||
| @@ -180,10 +182,17 @@ class AFCStatistics(Task): | |||||
| query = "SELECT * FROM page JOIN row ON page_id = row_id WHERE row_chart = ?" | query = "SELECT * FROM page JOIN row ON page_id = row_id WHERE row_chart = ?" | ||||
| with self.conn.cursor(oursql.DictCursor) as cursor: | with self.conn.cursor(oursql.DictCursor) as cursor: | ||||
| cursor.execute(query, (chart_info['chart_id'],)) | cursor.execute(query, (chart_info['chart_id'],)) | ||||
| for page in cursor.fetchall(): | |||||
| rows = cursor.fetchall() | |||||
| skipped = max(0, len(rows) - _PER_CHART_LIMIT) | |||||
| rows = rows[:_PER_CHART_LIMIT] | |||||
| for page in rows: | |||||
| chart += "\n" + self._compile_chart_row(page) | chart += "\n" + self._compile_chart_row(page) | ||||
| chart += "\n{{" + self.tl_footer + "}}" | |||||
| footer = "{{" + self.tl_footer | |||||
| if skipped: | |||||
| footer += "|skip={}".format(skipped) | |||||
| footer += "}}" | |||||
| chart += "\n" + footer | |||||
| return chart | return chart | ||||
| def _compile_chart_row(self, page): | def _compile_chart_row(self, page): | ||||