lahwaacz / wiki-scripts

Framework for writing bots, maintenance scripts or performing data analysis on wikis powered by MediaWiki
http://lahwaacz.github.io/wiki-scripts/
GNU General Public License v3.0
27 stars 12 forks source link

Support new user groups #53

Closed kynikos closed 5 years ago

kynikos commented 5 years ago

https://github.com/archlinux/archwiki/pull/20

I couldn't think of a better solution for the moment, at least it works, we have to ridiscuss the system messages and user-group wiki pages anyway...

I'm pretty sure also the tests need updating (and that's it I think), but I didn't get that far.

lahwaacz commented 5 years ago

I created a central wiki page describing the roles and access levels, because I don't want to maintain dozens of separate pages for each group. For the statistics page, we can either link there explicitly or create redirects.

There are several options for the table:

If the "Groups"/"Roles"/"Access levels" in the table header link to the central page, then the table cells could be plain text, which would be simpler/shorter.

lahwaacz commented 5 years ago

I think your changes correspond to what we ended up doing on the wiki, so I'll merge this. The only problem which remains is the links like [[ArchWiki:Bureaucrats|bureaucrat]], which should point to some existing page - which do you think would be the best?

kynikos commented 5 years ago

Well, with the changes that we've made, and new articles created since I submitted this patch, I think we can improve it further, I'd try with the following map (no point in submitting a new commit until we agree):

    GRPTRANSL = {
        # Access levels
        "*": lambda groups: "",
        "autoconfirmed": lambda groups: "",
        "user": lambda groups: "",
        "checkuser": lambda groups: "",
        "bureaucrat": lambda groups: "[[ArchWiki:Bureaucrats|bureaucrat]]",
        "sysop": lambda groups: "",
        "cosysop": lambda groups: "",
        "bot": lambda groups: "[[ArchWiki:Bots|bot]]",

        # User roles
        "maintainer": lambda groups: 'sysop' in groups and "[[ArchWiki:Administrators|administrator]]" or "[[ArchWiki:Maintainers|maintainer]]",
        "archdev": lambda groups: "[[Roles|developer]]",
        "archtu": lambda groups: "[[Trusted Users|trusted_user]]",
        "archstaff": lambda groups: "[[Roles|staff]]",
        "translator": lambda groups: "[[ArchWiki:Translators|translator]]",
    }

You're probably familiar with my love for redirects, [[ArchWiki:Bureaucrats|bureaucrat]] can point to [[ArchWiki:Maintenance Team]] for me, and [[ArchWiki:Translators|translator]] to [[Roles]] until we think of something better.

Then in the table I'd rename the "Groups" column to "Roles", and I'd explain in the legend that it doesn't list the [[ArchWiki:Access levels and roles|roles]] literally, but a human-readable representation ("archdev" => "developer" etc.).

(...and thanks for your new maintainer-sorting script, I haven't been able to test it yet, will try in the weekend)

lahwaacz commented 5 years ago

Looks good! I'd use [[Trusted Users|trusted user]] though, to make it human-readable. Or even [[Trusted Users|Trusted User]] to make it less ambiguous; other links can be capitalized for consistency as well.

kynikos commented 5 years ago

Cool, I was worried that using two space-separated words for a single role would look a bit strange, but I've tried it and it does look nice after all, including the capitalized versions, so that's what I've repushed here, I don't have any other changes to make.

lahwaacz commented 5 years ago

Merged, thanks!