# -*- coding: UTF8 -*-
"""
    MoinMoin - USer-EMail-LIst

    Creates an email link to contact all wiki users.

    @copyright: 2013-2014 Dirk Alders <d.aldersr@arcor.de>,
    @license: GNU GPL, see COPYING for details.
"""

from MoinMoin import user


class Macro:
    all = 1
    active = 2
    name = {1: 'All Users', 2: 'Active Users'}

    def __init__(self, macro, needle):
        self.request = macro.request
        self.formatter = self.request.formatter

    def do(self):
        html = self.email_list(self.active)
        html += ', '
        html += self.email_list(self.all)
        html += '<br>\n'
        self.request.write(self.formatter.rawHTML(html))
        return ''

    def email_list(self, list_type):
        rv = '<a class="mailto" href="mailto:'
        for uid in user.getUserList(self.request):
            if user.User(self.request, uid).disabled == 0 or list_type == self.all:
                rv += user.User(self.request, uid).email + ', '
        rv = rv[:-2] + '">%s</a>' % self.name[list_type]
        return rv


def execute(macro, needle):
    return Macro(macro, needle).do()
