= Week 1 (25th May - 31st May) =
- Created minimum viable product (work continuing at https://gerrit.wikimedia.org/r/#/c/214303/)
- Extension uses 3 checks to evaluate pages: a) ratio of external links to words, b) number of repeated external links, c) whether the page is new or not.
- These pages are listed on the Special:SmiteSpam page and can be deleted by selecting the corresponding checkbox and hitting "Delete selected".
- Tests set up for jenkins to run on new patch submission
- Some significant issues:
- A lot of the logic from WikiPage.php is being duplicated in SSWikiPage.php, I need to figure out a way to use the existing logic.
- I'm not sure I'm using i18n messages correctly yet, but everything is still heavily under development, so I hope I'll be able to clean that up later.
- The view to delete the pages is very rudimentary, just a table and checkboxes. The final version must, obviously, include some filtering and sorting features.
- The tests are still not too useful on real spam. The most important test, I think, will be the one that deals with checking how much wikitext is being used. I would love suggestions on implementing that test.
- The values returned by the checks are rather arbitrary, a convention/standard needs to be decided.
= Week 2 (1st June - 7th June)
- Updated minimum viable product. In another patch set or two, it will be merged and future development will continue as separate tasks and patches.
- Deleted about ~100 lines of code after they were identified as duplicating functionality of classes already implemented in core, such as `WikiPage`, `Title` and `Revision`.
- Added `smitespam-` prefix to i18n messages and converted a few more hardcoded strings to use i18n messages instead.
- Changed some class structure and names
- Lessons learnt:
- A lot of work has already gone into implementing classes for MediaWiki core and almost every functionality can be satisfied by them. Do not forget to check once if what you're trying to implement has already been implemented.
- The efficiency of the extension is probably not the primary concern, the ease of use of the deletion interface is.
- Note that a lot of the functionality needs to be moved to use `Job`s in later patches.