#!/usr/local/bin/python
from mailmanclient import Client
import os
import sys

CORE_URI = os.environ.get('MAILMAN_CORE_URI', 'http://mailman-core:8001/3.1')
CORE_USER = os.environ.get('MAILMAN_REST_USER', 'restadmin')
CORE_PASS = os.environ.get('MAILMAN_REST_PASSWORD', 'restpass')

client = Client(CORE_URI, CORE_USER, CORE_PASS)

ml_fqdn = sys.argv[1]
ml = client.get_list(ml_fqdn)

current_members = ml.members
new_member_list = []

for member_email in sys.stdin:
    print("Received {}".format(member_email))
    new_member_list.append(member_email)

for member_email in current_members:
    if member_email not in new_member_list:
        print("Intend to unsubscribe {}".format(member_email))
        ml.unsubscribe(member_email)

for member_email in new_member_list:
    if member_email not in current_members:
        print("Intend to subscribe {}".format(member_email))
        ml.subscribe(member_email, pre_verified=True, pre_confirmed=True, 
                     pre_approved=True)