class ConstantContact: LIST_GENERAL = 'http://api.constantcontact.com/ws/customers/1widget/lists/1' LIST_PAID = 'http://api.constantcontact.com/ws/customers/1widget/lists/2' CC_KEY = '810b6a4c-9374-46a4-a6bf-06f3549c7450' CC_USERNAME = '******' CC_PASSWORD = '******' def __init__(self): self.mConnection = CTCTConnection(ConstantContact.CC_KEY, ConstantContact.CC_USERNAME, ConstantContact.CC_PASSWORD) def __unicode__(self): return self.cc_key def signup(self, email): params = {'email_address': email, 'opt_in_source': 'ACTION_BY_CONTACT', 'contact_lists': [self.LIST_GENERAL] } return self.__add_contact(params) def paid(self, email): params = {'email_address': email, 'contact_lists': [self.LIST_PAID] } return self.__add_contact(params) def get_lists(self): return self.mConnection.get_contact_lists() def __add_contact(self, params): if (settings.DEBUG): return self.mConnection.get_xml(params) else: return self.mConnection.create_contact(params)
def handle(self, *args, **options): ##### GENERATE A BULK EXPORT ##### # Set up CC connection cnx = CTCTConnection(API_KEY, USER, PASSWORD) # GENERATE EXPORT ACTIVITY FOR ACTIVE CONTACTS active_list_uri = 'http://api.constantcontact.com/ws/%s/lists/active' % USER # Create an export activity as a csv file activity_uri = cnx.create_activity(type='EXPORT_CONTACTS', lists=[active_list_uri], data={'fileType': 'TXT'}) activity_id = activity_uri.rpartition('/')[-1] # Check the activity status activity = cnx.get_activity(activity_id) # Load Bulk Export Activity load_activity(activity) #### TRY IMPORTING BULK EXPORT #### # retry download up to 5 times over 10 minuteS retries = 5 outcome = 'failed' while retries > 0 and outcome == 'failed': activity = cnx.get_activity(activity_id) activity_status = activity['status'] if activity_status == 'COMPLETE': #TODO:emails = fetch_bulk_contacts_export(activity_id) #TODO: sync_bulk_contacts(emails) outcome = 'succeeded' else: retries -= 1 time.sleep(120) #TODO: Log this print 'Data load %s for activity_id: %s' % (outcome, activity_id)
def handle(self, *args, **options): ##### GENERATE A BULK EXPORT ##### # Set up CC connection cnx = CTCTConnection(API_KEY, USER, PASSWORD) # GENERATE EXPORT ACTIVITY FOR ACTIVE CONTACTS active_list_uri = "http://api.constantcontact.com/ws/%s/lists/active" % USER # Create an export activity as a csv file activity_uri = cnx.create_activity(type="EXPORT_CONTACTS", lists=[active_list_uri], data={"fileType": "TXT"}) activity_id = activity_uri.rpartition("/")[-1] # Check the activity status activity = cnx.get_activity(activity_id) # Load Bulk Export Activity load_activity(activity) #### TRY IMPORTING BULK EXPORT #### # retry download up to 5 times over 10 minuteS retries = 5 outcome = "failed" while retries > 0 and outcome == "failed": activity = cnx.get_activity(activity_id) activity_status = activity["status"] if activity_status == "COMPLETE": # TODO:emails = fetch_bulk_contacts_export(activity_id) # TODO: sync_bulk_contacts(emails) outcome = "succeeded" else: retries -= 1 time.sleep(120) # TODO: Log this print "Data load %s for activity_id: %s" % (outcome, activity_id)
def __init__(self): self.mConnection = CTCTConnection(ConstantContact.CC_KEY, ConstantContact.CC_USERNAME, ConstantContact.CC_PASSWORD)