本文整理汇总了Python中announcer.model.Subscription.find_by_sids_and_class方法的典型用法代码示例。如果您正苦于以下问题:Python Subscription.find_by_sids_and_class方法的具体用法?Python Subscription.find_by_sids_and_class怎么用?Python Subscription.find_by_sids_and_class使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类announcer.model.Subscription
的用法示例。
在下文中一共展示了Subscription.find_by_sids_and_class方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: matches
# 需要导入模块: from announcer.model import Subscription [as 别名]
# 或者: from announcer.model.Subscription import find_by_sids_and_class [as 别名]
def matches(self, event):
if event.realm != "ticket":
return
if event.category not in ('created', 'changed', 'attachment added'):
return
ticket = event.target
if not ticket['reporter'] or ticket['reporter'] == 'anonymous':
return
if re.match(r'^[^@][email protected]+', ticket['reporter']):
sid, auth, addr = None, 0, ticket['reporter']
else:
sid, auth, addr = ticket['reporter'], 1, None
# Default subscription
for s in self.default_subscriptions():
yield (s[0], s[1], sid, auth, addr, None,
s[2], s[3])
if sid:
klass = self.__class__.__name__
for s in Subscription.find_by_sids_and_class(self.env,
((sid,auth),), klass):
yield s.subscription_tuple()
示例2: matches
# 需要导入模块: from announcer.model import Subscription [as 别名]
# 或者: from announcer.model.Subscription import find_by_sids_and_class [as 别名]
def matches(self, event):
if event.realm != 'ticket':
return
if event.category not in ('created', 'changed', 'attachment added'):
return
klass = self.__class__.__name__
cc = event.target['cc'] or ''
sids = set()
for chunk in re.split('\s|,', cc):
chunk = chunk.strip()
if not chunk or chunk.startswith('@'):
continue
if re.match(r'^[^@][email protected]+', chunk):
sid, auth, addr = None, 0, chunk
else:
sid, auth, addr = chunk, 1, None
# Default subscription
for s in self.default_subscriptions():
yield (s[0], s[1], sid, auth, addr, None, s[2], s[3])
if sid:
sids.add((sid, auth))
for s in Subscription.find_by_sids_and_class(self.env, sids, klass):
yield s.subscription_tuple()
示例3: matches
# 需要导入模块: from announcer.model import Subscription [as 别名]
# 或者: from announcer.model.Subscription import find_by_sids_and_class [as 别名]
def matches(self, event):
if event.realm != 'ticket':
return
if event.category not in ('created', 'changed', 'attachment added'):
return
ticket = event.target
try:
component = model.Component(self.env, ticket['component'])
if not component.owner:
return
if re.match(r'^[^@][email protected]+', component.owner):
sid, auth, addr = None, 0, component.owner
else:
sid, auth, addr = component.owner, 1, None
# Default subscription
for s in self.default_subscriptions():
yield s[0], s[1], sid, auth, addr, None, s[2], s[3]
if sid:
klass = self.__class__.__name__
for s in Subscription.find_by_sids_and_class(self.env,
((sid, auth),),
klass):
yield s.subscription_tuple()
except:
self.log.debug("Component for ticket (%s) not found",
ticket['id'])
示例4: matches
# 需要导入模块: from announcer.model import Subscription [as 别名]
# 或者: from announcer.model.Subscription import find_by_sids_and_class [as 别名]
def matches(self, event):
if event.realm != "ticket":
return
if event.category not in ("changed", "created", "attachment added"):
return
klass = self.__class__.__name__
ticket = event.target
sids = set()
for field in self.custom_cc_fields:
subs = ticket[field] or ""
for chunk in re.split("\s|,", subs):
chunk = chunk.strip()
if not chunk or chunk.startswith("@"):
continue
if re.match(r"^[^@][email protected]+", chunk):
sid, auth, addr = None, None, chunk
else:
sid, auth, addr = chunk, True, None
# Default subscription
for s in self.default_subscriptions():
yield (s[0], s[1], sid, auth, addr, None, s[3], s[4])
if sid:
sids.add((sid, auth))
for i in Subscription.find_by_sids_and_class(self.env, sids, klass):
yield i.subscription_tuple()
示例5: matches
# 需要导入模块: from announcer.model import Subscription [as 别名]
# 或者: from announcer.model.Subscription import find_by_sids_and_class [as 别名]
def matches(self, event):
if event.realm != "ticket":
return
if event.category not in ('created', 'changed', 'attachment added'):
return
ticket = event.target
if (not ticket['owner'] or ticket['owner'] == 'anonymous') and \
not 'owner' in event.changes:
return
sid = sid_old = None
if ticket['owner'] and ticket['owner'] != 'anonymous':
if re.match(r'^[^@][email protected]+', ticket['owner']):
sid, auth, addr = None, 0, ticket['owner']
else:
sid, auth, addr = ticket['owner'], 1, None
if 'owner' in event.changes:
previous_owner = event.changes['owner']
if re.match(r'^[^@][email protected]+', previous_owner):
sid_old, auth_old, addr_old = None, 0, previous_owner
else:
sid_old, auth_old, addr_old = previous_owner, 1, None
# Default subscription
for s in self.default_subscriptions():
if sid:
yield (s[0], s[1], sid, auth, addr, None, s[2], s[3])
if sid_old:
yield (s[0], s[1], sid_old, auth_old, addr_old, None, s[2],
s[3])
if sid:
klass = self.__class__.__name__
for s in Subscription.find_by_sids_and_class(self.env,
((sid, auth),), klass):
yield s.subscription_tuple()
if sid_old:
klass = self.__class__.__name__
for s in Subscription.find_by_sids_and_class(self.env,
((sid_old, auth_old),), klass):
yield s.subscription_tuple()
示例6: matches
# 需要导入模块: from announcer.model import Subscription [as 别名]
# 或者: from announcer.model.Subscription import find_by_sids_and_class [as 别名]
def matches(self, event):
if event.realm != 'blog':
return
if event.category not in ('post changed', 'post deleted',
'comment created', 'comment changed',
'comment deleted'):
return
sids = ((event.blog_post.author, 1),)
klass = self.__class__.__name__
for i in Subscription.find_by_sids_and_class(self.env, sids, klass):
yield i.subscription_tuple()