本文整理汇总了Python中r2.models.Account.which_emails_are_banned方法的典型用法代码示例。如果您正苦于以下问题:Python Account.which_emails_are_banned方法的具体用法?Python Account.which_emails_are_banned怎么用?Python Account.which_emails_are_banned使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类r2.models.Account
的用法示例。
在下文中一共展示了Account.which_emails_are_banned方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: email_attrs
# 需要导入模块: from r2.models import Account [as 别名]
# 或者: from r2.models.Account import which_emails_are_banned [as 别名]
def email_attrs(self, account_ids, return_dict=True):
account_ids, single = tup(account_ids, True)
accounts = Account._byID(account_ids, data=True, return_dict=False)
rv = {}
canons = {}
aids_by_canon = {} # sounds terrifying
for a in accounts:
attrs = []
rv[a._id] = attrs
if not getattr(a, "email", None):
attrs.append(("gray", "no email specified", "X"))
else:
canon = a.canonical_email()
aids_by_canon.setdefault(canon, [])
aids_by_canon[canon].append(a._id)
verify_str = "verified email: " + canon
if getattr(a, "email_verified", None):
attrs.append(("green", verify_str, "V"))
else:
attrs.append(("gray", "un" + verify_str, "@"))
ban_reasons = Account.which_emails_are_banned(aids_by_canon.keys())
for canon, ban_reason in ban_reasons.iteritems():
if ban_reason:
for aid in aids_by_canon[canon]:
rv[aid].append(("wrong", "banned email " + ban_reason, "B"))
if single:
return rv[account_ids[0]]
elif return_dict:
return rv
else:
return filter(None, (rv.get(i) for i in account_ids))