本文整理汇总了Python中mailsnake.MailSnake.listMembers方法的典型用法代码示例。如果您正苦于以下问题:Python MailSnake.listMembers方法的具体用法?Python MailSnake.listMembers怎么用?Python MailSnake.listMembers使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类mailsnake.MailSnake
的用法示例。
在下文中一共展示了MailSnake.listMembers方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: main
# 需要导入模块: from mailsnake import MailSnake [as 别名]
# 或者: from mailsnake.MailSnake import listMembers [as 别名]
def main(mailchimp_key, list_id, rapleaf_key):
thirty_days_ago = datetime.datetime.now() - datetime.timedelta(days=30)
ms = MailSnake(mailchimp_key)
rapleaf = RapleafApi.RapleafApi(rapleaf_key)
members = ms.listMembers(id=list_id, limit=1500)['data']
active_members = []
for member in members:
member_activity = ms.listMemberActivity(id=list_id, email_address=member['email'])
actions = [action for action in member_activity['data'][0] if action['action'] == 'open']
if actions:
last_action = actions[0]
last_event = datetime.datetime.strptime(last_action['timestamp'], "%Y-%m-%d %H:%M:%S")
if last_event > thirty_days_ago:
active_members.append(member['email'])
age_map = defaultdict(int)
for active_member in active_members:
try:
response = rapleaf.query_by_email(active_member)
age = response.get("age")
age_map[age] += 1
# for k, v in response.iteritems():
# print '%s = %s' % (k, v)
except Exception as e:
print e
for x, y in age_map.iteritems():
print x, y
示例2: update_ticketholders_list
# 需要导入模块: from mailsnake import MailSnake [as 别名]
# 或者: from mailsnake.MailSnake import listMembers [as 别名]
def update_ticketholders_list(self):
ms = MailSnake(app.config['MAILCHIMP_KEY'])
list_id = '5f939ca32a' # Ticketholders 2016
tix = Ticket.query.filter_by(paid=True).join(User).\
group_by(User).with_entities(User).order_by(User.id)
list_members = {member['email'] for member in ms.listMembers(id=list_id, limit=10000)['data']}
current_users = {ticket.email for ticket in tix}
to_remove = list_members - current_users
to_add = current_users - list_members
app.logger.info("Ticketholders list: adding %s addresses, removing %s addresses",
len(to_add), len(to_remove))
res = ms.listBatchUnsubscribe(id=list_id, emails=list(to_remove), send_goodbye=False)
print(res)
to_add_data = [{'EMAIL': email, 'EMAIL_TYPE': 'html'} for email in to_add]
res = ms.listBatchSubscribe(id=list_id, batch=to_add_data,
double_optin=False, update_existing=True)
print(res)