Extension:MassMessage/Design

Design notes.


 * http://legoktm.instance-proxy.wmflabs.org/wiki/Special:MassMessage
 * https://gerrit.wikimedia.org/r/#/q/project:mediawiki/extensions/MassMessage,n,z

Bugs

 * Add an .alias.php file. - 76064 ✅
 * Create i18n messages for "messenger" group - 75292
 * Need way to extract links - use interwiki links? - 74941 ❌
 * Need way to send the message - is API the best way?
 * No, we can use the job queue. Use  and it will get executed remotely. --Lego
 * ^ implemented in 74941 76333 ✅
 * Need a way to create an account on each target site, can this be done via update.php? - 74938 ❌
 * Now we don't, we can just create it on demand. --Lego
 * Ability to restart a job that failed for whatever reason
 * localized messages need work
 * post-form submission shouldn't say message was sent; should say message is queued - 75293 ✅
 * page-list is a hyphen abomination
 * Any suggestions?
 * form is ugly
 * message preview collides a bit with form
 * Note that right now it's just a  there. --Leg
 * intro message collides a bit with form
 * Looking at something like Special:Block, there's a distinct border around the form. I'll look to see how this is generated. --Lego
 * It's called a legend apparently, and is a simple-ish fix. Screenshot . --Lego (✅ in 75550)
 * grayed out "send" button is annoying; just don't output it if it can't be used - ✅ in PS7 of 75550
 * use &section=new - 75299
 * This involves using EditPage (see how the API does it ), and it looks much more complicated than the way it currently gets done. Might be worth faking the edit summary. --Lego
 * Fake edit summary in 75276 - ❌
 * status indicator post-form submission
 * how do I know when a delivery has started/stopped/etc.?
 * This is hard because it seems like there's no way to easily check if all the jobs are done via the redis queue. --Lego
 * via Aaron, showJobs.php --group shows counts of current jobs per type. --Lego
 * 76474 adds Special:MassMessageStatus versus 76647 which adds a row to Special:Statistics --Lego
 * on confirmation screen, show spam list targets (or summary of targets or truncated list of targets)
 * on confirmation screen, flag/warn about unclosed tags, unclosed HTML comment, etc.
 * should be a large, scary warning
 * 
 * Preview is in context of the user, ~ will be the user's signature, but when the message is sent, it will be the bot's signature. - 75996 ✅
 * Query to get pagelinks should not be unbounded (look at how refreshlinks2 does it...) -- via MaxSem
 * Since we're using the parser function now, we don't need to worry about this any more

Enhancements

 * Ability for user to provide a page that is translated, and automatically send the message in the wiki's default language.
 * Hrmmmmmm.
 * Some wikis (enwikinews) will try to block the bot since it doesn't respect
 * actual enhancement request here is: provide means of opting out of deliveries
 * (hidden) category is probably sanest implementation -- 78344 depends on core 78343
 * title suggestions for page input list (similar to search field, yay autocomplete)
 * don't require a separate screen to check whether invalid page list was entered (ajax y'all)
 * Do we need a checkbox for global delivery? Just use whatever the input list is and check user-rights 78047