Extension talk:MassMessage

Jump to navigation Jump to search

About this board

Incoherent instructions - lists should be lists of users according to the extension description

6
Hoggle42 (talkcontribs)

Why are all the instructions talking about lists of pages when the extension description clearly says "The MassMessage extension allows a user to send a message to a list of users"?

How does sending a message to a page manifest itself? Are you tagging some extra content onto the page? How can a page respond to a message?

Is this a language/translation problem?

Can someone fill in this gaping hole in explaining what this extension actually does?

Whatamidoing (WMF) (talkcontribs)

The tool posts messages on a list of pages. Usually, those "pages" are specifically "user talk pages". However, they could be other kinds of pages, like Village pump pages or WikiProject pages.

Wctaiwan (talkcontribs)

I've changed the description to say pages instead of users.

Hoggle42 (talkcontribs)

ok, thank you - so it doesn't do what I thought it did and send out mass emails.

Tosfos (talkcontribs)
Reply to "Incoherent instructions - lists should be lists of users according to the extension description"

Unescaped language links - what to do?

10
Summary by Quiddity (WMF)

Filed as phab:T150225

Peteforsyth (talkcontribs)

I'm getting "Warning: There are unescaped language links in your message." This is for delivery of the Signpost, so it's a bunch of code -- I don't see links in wikitext. The only language code I see is this one:

<div lang="en" dir="ltr"

This help page does not explain what the problem is with wikitext (what to do if you get the error) -- but I think my problem is even deeper than that. Any ideas? -Pete F (talk) 16:59, 4 November 2016 (UTC)

Quiddity (WMF) (talkcontribs)
Peteforsyth (talkcontribs)

I'm using the manual process at that link. (Sorry for not including it, but good job finding it!) Our automated process has been broken for several months, I believe because our bot or templates were unable to handle some updates to MediaWiki.

Here's the code: <div lang="en" dir="ltr" class="mw-content-ltr"><div style="-moz-column-count:2; -webkit-column-count:2; column-count:2;"> {{Wikipedia:Wikipedia Signpost/2016-XX-XX}} </div><!--Volume 12, Issue XX--> <div class="hlist" style="margin-top:10px; font-size:90%; padding-left:5px; font-family:Georgia, Palatino, Palatino Linotype, Times, Times New Roman, serif;"> * '''[[Wikipedia:Wikipedia Signpost|Read this Signpost in full]]''' * [[Wikipedia:Wikipedia Signpost/Single/2016-xx-xx|Single-page]] * [[Wikipedia:Wikipedia Signpost/Subscribe|Unsubscribe]] * [[User:MediaWiki message delivery|MediaWiki message delivery]] ([[User talk:MediaWiki message delivery|talk]]) ~~~~~ </div></div>

I did send it, and did not notice any problems. Here is an example of the output: https://en.wikipedia.org/w/index.php?title=User_talk:Peteforsyth&diff=747840030&oldid=747638885

Quiddity (WMF) (talkcontribs)

Does this mean you've resolved the issue? (I assume so, as my copy was delivered!)

If so, did you change/fix something in particular? (I.e. anything that should be noted in the Signpost publication docs, or, anything that should be noted in the MassMessage help docs)

Re: Signposts's automated system not working - Have you asked Jarry1250 for help? (he's the tool's maintainer, but I can't see any related questions about it in his talkpage archives or his recent (750) contributions.)

Peteforsyth (talkcontribs)

No, I have not resolved it -- I just took the chance that it would be OK, and I think I got away with something this time. But I suspect this will come up every time we publish going forward; I'd like to either (a) know for sure that it's not a problem, so I can put it in the docs that we can ignore it, or (b) fix the problem (obviously preferable!)

Thank you for pointing me to Jarry1250. I will certainly reach out to him, but not immediately; we have some personnel issues to resolve internally first, and I want to be sure we have the right technical skills "in house" at the Signpost first, before we go seeking advice or help that we might not be equipped to make use of. But regardless, very happy to know who to ask! -Pete F (talk) 22:53, 4 November 2016 (UTC)

Peteforsyth (talkcontribs)

Also -- apart from my specific issue -- I think the main page here could benefit from a little more detail on the "unescaped language links" item.

Peteforsyth (talkcontribs)

Quiddity (WMF), can you think of anywhere else I can ask? Should I create a Phabricator ticket, perhaps?

Quiddity (WMF) (talkcontribs)

Ah, the documentation explains the message at Help:Extension:MassMessage#Input_checking (note, the Help: page, not the extension page, although that talkpage redirects here).

However, I'm not sure what the problem was in your case... The pasted code doesn't contain any interwiki links misformatted as interlanguage links (unescaped language links), and I can't figure out how w:en:Wikipedia:Wikipedia Signpost/2016-11-04 would have caused any problems...

Oh... I wonder if it's due to the [[Wikipedia:...]] ? (which would work differently on other wikis, linking to Enwiki per Special:Interwiki, instead of the namespace itself, and hence potentially warrant triggering a warning like this).

I'll ask a dev, and if necessary file a task.

Quiddity (WMF) (talkcontribs)

My guess was incorrect, but there was a bug. It's been filed as phab:T150225. Just ignore the warning for now. Thanks for the nudge to look again. :-)

Legoktm (talkcontribs)
Reply to "Unescaped language links - what to do?"
Nemo bis (talkcontribs)

The term "bot" is improperly interpreted by too many users. I suggest to replace it with something that makes it clearer how it's a MediaWiki feature, as we did with the earlier accounts for automated edits (e.g. "MediaWiki default"): for instance "MediaWiki message delivery" or something. Bonus points if it's language-neutral.

Romaine (talkcontribs)

Agree with Nemo, I noticed that several projects have blocked MediaWiki bots. Romaine (talk) 02:35, 2 November 2013 (UTC)

Legoktm (talkcontribs)
Seb35 (talkcontribs)

It should be noted that this name will appear in the Notifications box, so it’s probably better to localize it, probably better before deployment (I don’t know how MediaWiki would react if the MassMessage username is changed).

Related to that, I find quite counterintuitive to receive the mass-messages from a system account (this behaviour existed with EdwardBot), since the Notifications box will say "Mediawiki message delivery left a message on your talk page"; it would be more intuitive to see "Legoktm left a message on your talk page", or something like "Mediwiki message delivery (on behalf of Legoktm) left a message on your talk page". Just an opinion, I will perhaps open a bug instead of this page.

Nemo bis (talkcontribs)

What's the notifications box? ;) I think you missed some discussions on wikitech-l etc.: this extension is currently designed for the standard MediaWiki behaviour because it was just impossible to do otherwise; other extensions trying to do shinier things will need some work to improve the interaction (e.g. fetch the name used from the signature rather than from history, or provide a way for this extension to set it).

As for localisation of MediaWiki script's names, it would be nice but a way to do it has not yet invented as far as I know.

Quiddity (talkcontribs)

The Echo notifications box (flyout & special page, and also the email if enabled) displays the name of the user who left a message on our talkpages.

I think Seb35 is asking for 1 of 2 potential features in MassMessage, namely:

  • A field where the user who is sending the massmessage can put their username, which will somehow be added to the Notifications about a new talkpage message.
    • (Not currently possible, but would be an Echo bug/feature if anything. I agree it could be useful)
  • A way to translate the username, for non-English languages.
    • (As Nemo said, this is not possible)
Background, current setup

If we add a (4tilde) signature to a MassMessage, it comes out as:

[[User:MediaWiki message delivery|MediaWiki message delivery]] ([[User talk:MediaWiki message delivery|talk]]) 19:31, 17 November 2013 (UTC)

Currently, the name of the user sending the massmessage is included, but only as a hidden comment at the very end. Eg:

<!-- Message sent by User:Quiddity@testwiki using the list at http://test.wikipedia.org/wiki/User_talk:Quiddity/MMtestlist -->

Suggestions
  1. A reminder (in the Special:MassMMessage interface) to add our own name in wikitext, if we want it visible at the end of the message.
  2. I think changing the auto-generated "signature" section, might be a good idea. Match the format that many "Global message delivery" messages currently use. I.E. Include links for:
  • About
  • Un/Subscribe
  • User sending
  • Account that was used to send ("User:MediaWiki message delivery")

Eg. The Signpost would end with:

About · Unsubscribe · Distributed on behalf of The ed17 by MediaWiki message delivery 21:30, 17 November 2013 (UTC)

This would help standardize (and improve the possibility of translating) the various elements that are currently erratically included, eg the 3 messages visible here and below all use a different layout and wording.

Seb35 (talkcontribs)

For the name of the user who is sending the massmessage, I wondered why choose a system account instead of the real massmessage sender user (this is a design question); I understand a point is the sender could possibly be non-existant on the receiving wiki (apart wikis belonging to a same CentralAuth system).

In the case this is a system account which delivers the message, my original point was indeed the name displayed in the notification box of Echo. I quickly checked the Echo code, and I guess it is currently not possible to display another name in place of the real user (here MediaWiki message delivery), because there is only one User object in the EchoEvent object and no "on-behalf-of" user and the EchoEvent::BeforeEchoEventInsert hook cannot change the underlying object. So if it would be useful for MassMessage (I think so), a feature request should be filled for Echo.

Quiddity, about your proposition of standardizing the footer, I think it would be really useful for translation purposes. I think it could be already possible by removing the comment markup of MediaWiki:Massmessage-hidden-comment, although this message was not originally intended to be viewed by the user.

Legoktm (talkcontribs)

I originally designed the extension to be as close to how m:User:EdwardsBot currently functions as possible.

I had looked into this earlier, but even if the person sending the message had an account everywhere, there is a bot flag logic issue (bugzilla:33461) that prevents edits from being flagged as a bot.

Legoktm (talkcontribs)

The reason 4 tildes use the bot's username is purely technical. We simply post the exact wikitext you enter to the API, which is transformed using the bot's context.

I think un/subscribe links, who was sending it, etc should all be localized on the wiki that is utilizing the tool. I imagine meta will do this since it's now reasonably easy to do so.

Seb35 (talkcontribs)

For the localisation of the MediaWiki script’s names, I initially thought to change the variable $wgMassMessageAccountUsername per-wiki/language, but it’s probably a very bad idea. Your idea of some localisation only in the history/notification box/etc. without changing the core usernames is probably better.

Legoktm (talkcontribs)

An initial version of the extension had a localized username, but after discussing this with Siebrand at Wikimania, I switched it to use just one username. There was a security issue in my implementation, but it also didn't make sense in a "global" environment like the WMF has with CentralAuth.

I have filed bugzilla:57234 to discuss sending a more specific Echo notifications, this can include a better username and message content.

This post was hidden by Quiddity (history)
This post was hidden by Mainframe98 (history)
Reply to "Default account name"
Wctaiwan (talkcontribs)
List view with in-place editing

I have been working on improving how delivery lists are stored and managed as a Google Summer of Code student. Currently, I have completed the new backend, an interface for creating delivery lists (and importing from the current format), a basic interface for editing raw list content, an API for adding / removing target pages, and a list view that supports in-place removal and addition of pages. I will also create a UI for adding / removing multiple pages simultaneously and write tests for the features I've implemented. You can track my progress here. Please feel free to raise any questions or suggestions. Thanks.

Reply to "GSoC project update"

Help re. Error: You do not have permission to create a list with this title.

3
Loonybomber (talkcontribs)

Are there any special requirements for a mass message delivery list title? I keep running into this "You do not have permission to create a list with this title" error message when using the Create Mass Message Delivery List on the special pages.

I'm using mw 1.25.1 w/ semantic. My LocalSettings.php does not have any references to $wgContentHandlerUseDB so I assume that I have not explicitly set this to false. My MassMessage settings are as follows:

wfLoadExtension( 'MassMessage' );
# When posting messages, only post them in the specified namespaces. 
$wgNamespacesToPostIn = array( NS_VOL, NS_VOL_TALK, NS_PROJECTS, NS_PROJECTS_TALK, NS_HMS_MEMBERS, NS_HMS_MEMBERS_TALK, NS_USER_TALK );
$wgNamespacesToConvert = array( NS_USER => NS_USER_TALK );
$wgMassMessageAccountUsername = 'HMS_Messager';

I am using custom namespaces and do have a PROJECTS namespace as well as a PROJECT namespace. I'm using LockDown, but not on those namespaces.

I am the administrator. I do have permission to send MassMessages. I don't see that there's a permission for creating lists. I have not tried to use a list that I have manually created . . . what's the protocol that people are using for storing lists ... where is a good place to create a MassMessage list?

Do MassMessage lists need to be saved in a particular namespace and require a namespace in the title?

Thanks in advance,


(signed automatically by the system)

Wctaiwan (talkcontribs)

Hi. To be able to create delivery lists, you need to have the "editcontentmodel" user right, which is not granted to any user group (including sysops) by default at the moment. We hope to make it so that sysops are granted the right by default soon, but for now you can work around the issue by adding

$wgGroupPermissions['sysop']['editcontentmodel'] = true;

to your LocalSettings.php. I've updated the documentation to clarify. Sorry about the confusion.

Reply to "Help re. Error: You do not have permission to create a list with this title."
The ed17 (talkcontribs)
Legoktm (talkcontribs)

Be bold! Is there anything specific you find confusing about the instructions?

MZMcBride (talkcontribs)

I think it would help if we linked to a live example distribution list using {{#target:foo}} syntax. Maybe a list on the English Wikipedia that's been converted?

Qgil-WMF (talkcontribs)

I have added a link to a real list page (Tech News)

This post was posted by Qgil-WMF, but signed as Qgil.

Reply to "Creating a page list"
Guy Macon (talkcontribs)

At https://en.wikipedia.org/wiki/Special:Log/massmessage there are a number of entries in the form

"Delivery of "X" to User talk:Example was skipped because target has opted-out of message delivery"

When I opted out of message delivery, I expected to be left alone, not to see a notice in my watchlist every time a message delivery was skipped.

An obvious fix would be to replace "User talk:Example" with "Example's talk page" in the notices.

Reply to "Mass Message Log"
Bmrberlin (talkcontribs)

After trying to install, copying the required files to the directory MassMessage and changing the LocalSetting.php my Wiki at www.rockinberlin.de stopped working completely! Parameters:

  1. Extension MassMessage einschalten

$wgAllowGlobalMessaging = true; $wgMassMessageAccountUsername = 'Admin'; $wgNamespacesToPostIn = array( NS_PROJECT ); require_once( "$IP/extensions/MassMessage/MassMessage.php;

Any Idea? Or is there a site to see an example of the extension working?

Legoktm (talkcontribs)

Is that exactly what you typed in? It looks like you have a typo. The following should work.

# Extension  MassMessage einschalten
require_once( "$IP/extensions/MassMessage/MassMessage.php" );
$wgAllowGlobalMessaging = true;
$wgMassMessageAccountUsername = 'Admin';
$wgNamespacesToPostIn = array( NS_PROJECT );

You were missing the final closing parenthesis and quote mark on the last line.

Also, the configuration variables have to be specified after you "require_once" the extension, otherwise they'll be replaced by the defaults.

Bmrberlin (talkcontribs)

Thank you Lego,

It's the first time someone cares about some problem of mine in this 'community'. I tried your configuration and mediawiki stops working just the same.

Legoktm (talkcontribs)

Have you placed the "MassMessage" folder into the correct directory (inside the "extensions" folder)? What happens if you comment out the line that starts with "require_once"?

Also, you can try enabling everything listed in Manual:How to debug, and check your apache/web server logs for hints.

Bmrberlin (talkcontribs)

Thank you Lego,

The folder is placed correctly and if I put a comment character at the require line, that means the extension will not be used, everything works. I will just not use this extension, like many others.

Best Regards

Legoktm (talkcontribs)

That's a bummer :(

I suspect your problem is that you placed MassMessage into the wrong directory. I would recommend using eval.php with:

echo "$IP/extensions/MassMessage";

and make sure that directory in fact exists and is where you placed the extension.

Bmrberlin (talkcontribs)

Hello Lego,

I'm used to the oldfashioned style of programming. When I put a new function into an application, I would write some exit routines, to put out some error messages, if something is missing or goes wrong, but keep the applicaton alive and running.

Best Regards

Legoktm (talkcontribs)

If you want that, change the "require_once" part into "include" and it will spit out warnings rather than dying.

Bmrberlin (talkcontribs)

If I use the include statement, I get these warnings:

Warning: array_shift() expects parameter 1 to be array, null given in /home/www/web64951/html/extensions/MetaKeywords/MetaKeywords.php on line 47

Warning: array_unshift() expects parameter 1 to be array, null given in /home/www/web64951/html/extensions/MetaKeywords/MetaKeywords.php on line 52

Best Regards

Legoktm (talkcontribs)

That sounds like you have another configuration problem.

But does MassMessage start working if you use include?

Bmrberlin (talkcontribs)

As you might have noticed, Lego, those warnings are from the MetaKeywords extension and they do not affect the wiki at all. The MassMessage seems not to be present. Is there some place to look for? Are you aware, that my wiki is running with the German Version?

Best Regards

Reply to "Stops Wiki Version 1.22.6"

Incompatible with existing recipient list format

8
Tbayer (WMF) (talkcontribs)

So the format for entries in a recipient list ({{#target:Project:Noticeboard|en.wikipedia.org}}) differs from that used for EdwardsBot/Global Message Delivery.

For those recipient lists that use the Target template on Meta, Kunal appears to have just fixed this, thankfully, by editing that template (after this issue had earlier today caused me to abandon an attempt to migrate from GMD to MM with one of the messages I'm sending out regularly). This fix hopefully enables most of the existing recipient lists under m:Global message delivery/Targets to be used for both MM and GMD. But if I'm informed correctly, there are a lot of other recipients lists around which don't use the Target template and will therefore be broken, e.g. the Signpost's or that of the Bugle. Also, I seem to recall that EdwardsBot can take a category as recipient list.

I had been under the impression that backward compatibility with EdwardsBot/Global Message Delivery was a development goal for MassMessage, but maybe I haven't been following the discussions closely enough.

Regards,

Legoktm (talkcontribs)

The parserfunction is one of the few places where backwards compatibility was broken. The main design constraint for this was supporting global messages in a not-super-complicated way.

External links and interwiki links didn't work cleanly, so the easiest way to have users add structured data to a page was with a parser function. For local deliveries we could have added in allowing "User:"/"User talk:" links to work, however it would be a weird user experience if that worked on enwiki, but you had to use a special format to make it work on Meta. The parser function also enables us to display errors if a user provides invalid input.

For migrating existing lists, it should be possible to fix most of them with a simple find/replace regex. Ideally there should be some kind of wrapper template so that in case the backend does switch in the future, migrating will be less painful.

Tbayer (WMF) (talkcontribs)

OK, these sound like good reasons - I'm unfamiliar with the problems that ruled out interwiki links as solution, but I'm not questioning the decision to go with the parser function. And I don't have strong feelings about the category feature (never used it myself).

My main point is that the need for this conversion work and (possibly) the removal of the category feature should have been communicated more clearly when announcing MM as a replacement for GMD and EdwardsBot, redirecting pages etc.

And +1 for the wrapper template idea.

Legoktm (talkcontribs)

I was a bit surprised that I had not included the category feature, so I looked and it seems like MZ removed it about a year ago, which is why it never got into my list of features for MassMessage.

MZMcBride (talkcontribs)

The category feature got removed because it was a maintenance burden and it had little use. It's probably a reasonable enhancement request for MassMessage, but we'll need to think carefully about the user interface and a few other components.

Legoktm (talkcontribs)
MZMcBride (talkcontribs)

Parser functions generally use {{foo:bar}} (or {{#foo:bar}}) while MediaWiki page templates generally use {{foo|bar}}. It's a subtle distinction, but it was unavoidable breaking change given outside constraints. Interwiki syntax would've been nice to use, but it presents a lot of headaches when trying to pull the data out.

As Lego notes, a simple find and replace should be fine for local lists. An edit or two to m:Template:Target will likely suffice for global message delivery. Fortunately only two wikis will need any help and I hope anyone who gets stuck will know to ask for help at m:Talk:MassMessage.

Tbayer (WMF) (talkcontribs)
Reply to "Incompatible with existing recipient list format"
Quiddity (talkcontribs)

Re: $wgNamespacesToPostIn = array( NS_PROJECT, NS_USER_TALK ); - I'd suggest changing that, if it's the default example that gets installed, to include NS_PROJECT_TALK, as messages are often sent to WikiProject talkpages.

Future-feature-request: Perhaps the "Preview" could give an indication if any of the #targets are going to be converted?

(I've updated the Help:Extension:MassMessage#Creating a page list guide to specifically note that "Any messages targeted to "User:Foo" will be automatically converted/sent to "User talk:Foo" - but you might want to rewrite it.)

Other than that, my tests at testwiki went great :)

Legoktm (talkcontribs)

I wonder if we should just enable all talk pages by default. The namespace restriction was mainly so that the bot doesn't accidentally (or maliciously) dump messages

There's currently a bug somewhere for displaying more information on preview, but we can only show namespace switching if the target is on a local wiki.

Thanks for updating the help page!

Whatamidoing (WMF) (talkcontribs)

as messages are often sent to WikiProject talkpages

...on the English Wikipedia. WikiProjects don't really exist anywhere else. (I've no objection to including both.)

Reply to "Namespaces"