from risotto.utils import multi_function as _multi_function
from itertools import chain

@_multi_function
def mailman_emails(lists, domain):
    ret = []
    for lst in lists:
        for suffix in [None, 'bounces(\+.*)?', 'confirm(\+.*)?', 'join', 'leave', 'owner', 'request', 'subscribe', 'unsubscribe']:
            if suffix:
                lst_name = lst + '-' + suffix
            else:
                lst_name = lst
            ret.append(lst_name + '@' + domain)
    return ret


@_multi_function
def mailman_concat(lists):
    # list of lists to a single list
    return list(chain(*lists))