From Meta, a Wikimedia project coordination wiki
Jump to: navigation, search

This is the userpage of COIBot, a Conflict-of-Interest recognition bot operated by User:Beetstra (en:User:Beetstra) (and co-operated by several users on linkfeed IRC channels.)

This account does NOT edit in mainspace, template space, or whereever, it will only edit in this userspace. If it edits outside that space, please block it immediately.

What is COIBot[edit]

COIBot is a bot that attempts to recognise conflict of interest edits by comparing the username of a user with the link that is added to a page, and by comparing the username of the user with the name of the page that is edited. It reads from one or more link-addition feed(s) on IRC, and reports to the channel the information was read from

  • Links are read from #wikipedia-en-spam and #wikimedia-swmt), reported to (#wikipedia-spam-t).
  • Page-edits are read from #en.wikipedia, reported to #wikipedia-en-spam.

It also builds up a record of possible conflicts of interest in a MySQL database.

When operators see a confirmed COI on a monitored mediawiki project, they can also add links between usernames and recognition strings. When users accidentaly have a large overlap between username and a link, that link can be whitelisted so that a user does not get reported.

It reports to User:COIBot/COIReports.

For a recent example of the code, see User:COIBot/COIBot


COIBot will automatically regenerate LinkReports if it encounters another addition of the domain. It can however be blocked to save reports for certain domains. For this you need to go to an IRC-channel where the bot is active (typically #wikipedia-spam-t, but it is active in more channels), and to be a 'trusted' user on the IRC part of COIBot/LWCOIBot (ask IRC user Beetstra, or poke User:Beetstra/en:User:Beetstra).


  • COIBot converts everything to lowercase, so user 'Beetstra' is the same as user 'beetstra' for the bot.
  • is for the bot the same as, but it is not the same as In such cases more rules have to be added to the bot.
  • The whitelisting does not need a reason, but I think it is in this case wise to add the OTRS ticket, as then the IRC users may be able to find the reason as to why it is whitelisted before they consider removing whitelist rules.

  • <username> is the on-wiki username (replace spaces with an underscore; '_')
  • <text> the text the username is linked to (again replace spaces with an underscore).
  • <reason> some reason
  • <domain> the domain, i.e. if the link is "", then the domain is "" (stripped of everything after the domainname, stripped of http:// and stripped of www. and www#. (# is 1-..))
  • <regex> a en:Regex which matches patterns of external links (see the various link blacklists for examples)

Typical things to do:

  • COIBot automagically creates regex rules from the added domain, when they are reported to one of the projects or pages typically working with link pushing and/or Conflict of interest cases, or it adds rules when on-IRC users find a reason to monitor the domain. They are listed in the report ("Link would be caught by rule \bexample\.com on the monitor list. (Some reason)"). You can consider to remove these (there may be more then one, but if they are all the same, they all go in the same deletion):
    • LWCOIBot ml del <regex>
  • COIBot sometimes has blacklist rules (added by an IRC user), which are also listed on top of the report. To remove (e.g. used when known owner of '' is 'Beetstra', which would normally not give an overlap):
    • COIBot bl del <username> <text>
  • Whitelist the user (whatever this user does, COIBot will ignore him, on ALL wikis monitored):
    • COIBot wl add <username> * <reason>
  • Make sure COIBot will not automatigally pick up the domain (those are the monitor rules which state "Automonitor: conflict of interest? (calculated overlap exampleuser <->; diff"):
    • COIBot wl add * <domain> <reason>
  • Block COIBot from saving a domain (when it still has managed to pick it up in some way, or when commanded on IRC to save a report):
    • COIBot wl add ** <domain> <reason>
  • For other commands, ask regulars in the channel, or (although this is incomplete):
    • COIBot help

More info[edit]

Significantly more info is available from en:User:COIBot.