def create_campaign(self, subject_format, schedule_time = None, time_str = None, template_id = None): mailchimp = MailChimp(settings.MAILCHIMP_API_KEY) campaign_id = mailchimp.campaignCreate( type = 'regular', content = {'html_mid_content00': self.event.description}, segment_opts = {'match': 'all', 'conditions': [{ 'field': 'static_segment', 'op': 'eq', 'value': self.list_segment_id }]}, options = { 'list_id': settings.MAILCHIMP_LIST_ID, 'subject': subject_format.format(event = self.event.name, time = time_str), 'from_email': settings.MAILCHIMP_FROM_EMAIL, 'from_name': settings.MAILCHIMP_FROM_NAME, 'to_email': settings.MAILCHIMP_TO_EMAIL, 'template_id': template_id, } ) if schedule_time != None: try: mailchimp.campaignSchedule(cid = campaign_id, schedule_time = schedule_time) except MailChimpError as error: logger.error("Campaign scheduled in the past: %s" % error.msg) return campaign_id
def create_event_finished_campaigns(self): finished_date = self.event.live_stop_date.replace(tzinfo = timezone(settings.TIME_ZONE)) event_finished_time = self.gmt_timestamp(finished_date) mailchimp = MailChimp(settings.MAILCHIMP_API_KEY) self.campaign_sorry_id = mailchimp.campaignCreate( type = 'regular', content = {'html_mid_content00': self.event.description}, segment_opts = {'match': 'all', 'conditions': [{ 'field': 'static_segment', 'op': 'eq', 'value': self.participated_segment_id }]}, options = { 'list_id': settings.MAILCHIMP_LIST_ID, 'subject': settings.MAILCHIMP_SUBJECTS['finished_sorry_we_missed'], 'from_email': settings.MAILCHIMP_FROM_EMAIL, 'from_name': settings.MAILCHIMP_FROM_NAME, 'to_email': settings.MAILCHIMP_TO_EMAIL, 'template_id': self.event.template_missed_you, } ) self.campaign_thanks_id = mailchimp.campaignCreate( type = 'regular', content = {'html_mid_content00': self.event.description}, segment_opts = {'match': 'all', 'conditions': [ { 'field': 'static_segment', 'op': 'ne', 'value': self.participated_segment_id }, { 'field': 'static_segment', 'op': 'eq', 'value': self.list_segment_id }]}, options = { 'list_id': settings.MAILCHIMP_LIST_ID, 'subject': settings.MAILCHIMP_SUBJECTS['finished_thank_you'], 'from_email': settings.MAILCHIMP_FROM_EMAIL, 'from_name': settings.MAILCHIMP_FROM_NAME, 'to_email': settings.MAILCHIMP_TO_EMAIL, 'template_id': self.event.template_thank_you, } ) try: mailchimp.campaignSchedule(cid = self.campaign_thanks_id, schedule_time = event_finished_time) mailchimp.campaignSchedule(cid = self.campaign_sorry_id, schedule_time = event_finished_time) except MailChimpError as error: logger.error("Campaign scheduled in the past: %s" % error.msg)