本文整理汇总了Python中r2.models.subreddit.Subreddit._by_fullname方法的典型用法代码示例。如果您正苦于以下问题:Python Subreddit._by_fullname方法的具体用法?Python Subreddit._by_fullname怎么用?Python Subreddit._by_fullname使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类r2.models.subreddit.Subreddit
的用法示例。
在下文中一共展示了Subreddit._by_fullname方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: set_recent_reddits
# 需要导入模块: from r2.models.subreddit import Subreddit [as 别名]
# 或者: from r2.models.subreddit.Subreddit import _by_fullname [as 别名]
def set_recent_reddits():
names = read_user_cookie('recent_reddits')
c.recent_reddits = []
if names:
names = filter(None, names.split(','))
c.recent_reddits = Subreddit._by_fullname(names, data = True,
return_dict = False)
示例2: set_recent_reddits
# 需要导入模块: from r2.models.subreddit import Subreddit [as 别名]
# 或者: from r2.models.subreddit.Subreddit import _by_fullname [as 别名]
def set_recent_reddits():
names = read_user_cookie("recent_reddits")
c.recent_reddits = []
if names:
names = filter(None, names.strip("[]").split(","))
try:
c.recent_reddits = Subreddit._by_fullname(names, data=True, return_dict=False)
except NotFound:
pass
示例3: set_recent_reddits
# 需要导入模块: from r2.models.subreddit import Subreddit [as 别名]
# 或者: from r2.models.subreddit.Subreddit import _by_fullname [as 别名]
def set_recent_reddits():
names = read_user_cookie('recent_reddits')
c.recent_reddits = []
if names:
try:
names = filter(None, names.split(','))
srs = Subreddit._by_fullname(names, data = True,
return_dict = False)
# Ensure all the objects returned are Subreddits. Due to the nature
# of _by_fullname its possible to get any type back
c.recent_reddits = filter(lambda x: isinstance(x, Subreddit), names)
except:
pass
示例4: to_serializable
# 需要导入模块: from r2.models.subreddit import Subreddit [as 别名]
# 或者: from r2.models.subreddit.Subreddit import _by_fullname [as 别名]
def to_serializable(self, authors_dict=None, entity=None,
all_messages=False, current_user=None):
# Lookup authors if they are not passed
if not authors_dict:
from r2.models import Account
authors_dict = Account._byID(
set(self.author_ids) | set(self.mod_action_account_ids),
return_dict=True)
# Lookup entity if it is not passed
if not entity:
entity = Subreddit._by_fullname(self.owner_fullname)
serializable_authors = []
for message in self.messages:
author = authors_dict.get(message.author_id)
serializable_authors.append(
to_serializable_author(author, entity,
current_user,
is_hidden=message.is_author_hidden)
)
last_unread = getattr(self, 'last_unread', None)
if last_unread is not None:
last_unread = last_unread.isoformat()
parsed_last_user_update = None
parsed_last_mod_update = None
min_tz_aware_datetime = datetime.min.replace(tzinfo=g.tz)
if self.last_user_update != min_tz_aware_datetime:
parsed_last_user_update = self.last_user_update.isoformat()
if self.last_mod_update != min_tz_aware_datetime:
parsed_last_mod_update = self.last_mod_update.isoformat()
result_dict = {
'state': self.state,
'lastUpdated': self.last_updated.isoformat(),
'lastUserUpdate': parsed_last_user_update,
'lastModUpdate': parsed_last_mod_update,
'lastUnread': last_unread,
'isInternal': self.is_internal,
'isAuto': self.is_auto,
'numMessages': self.num_messages,
'owner': {
'id': self.owner_fullname,
'type': entity._type_name,
'displayName': entity.name
},
'isHighlighted': self.is_highlighted,
'id': to36(self.id),
'subject': self.subject,
'authors': serializable_authors,
}
if all_messages:
for mod_action in self.mod_actions:
author = authors_dict.get(mod_action.account_id)
serializable_authors.append(
to_serializable_author(author, entity,
current_user,
is_hidden=False)
)
result_dict.update({
'objIds': self.ordered_msg_and_action_ids,
'messages': {
to36(message.id): message.to_serializable(
entity,
authors_dict.get(message.author_id),
current_user
)
for message in self.messages
},
'modActions': {
to36(mod_action.id): mod_action.to_serializable()
for mod_action in self.mod_actions
}
})
else:
result_dict.update({
'objIds': [
{'key': 'messages', 'id': to36(self.messages[0].id)}
]
})
return result_dict
示例5: add_message
# 需要导入模块: from r2.models.subreddit import Subreddit [as 别名]
# 或者: from r2.models.subreddit.Subreddit import _by_fullname [as 别名]
def add_message(self, author, body,
is_author_hidden=False,
is_internal=False):
"""Add a new message to the conversation."""
sr = Subreddit._by_fullname(self.owner_fullname)
# if the conversation is internal, make the message
# an internal message
if self.is_internal:
is_internal = True
message = ModmailMessage(
self, author, body, is_author_hidden, is_internal)
Session.add(message)
self.num_messages += 1
is_first_message = (self.num_messages == 1)
if sr.is_moderator_with_perms(author, 'mail'):
# Check if a mod who is not the original author of the
# conversation is responding and if so change the state
# of the conversation to 'inprogress'. Internal
# conversations also should not change state to 'inprogress'.
# Lastly if a conversation is 'archived' change the state
# to 'inprogress' regardless if the mod has participated or not
if (not self.is_internal and
not is_first_message and
(author._id not in self.author_ids or
self.state == self.STATE['archived'])):
self.state = self.STATE['inprogress']
self.last_mod_update = message.date
else:
# Set the state to 'inprogress' only if a mod has responded
# with a message in the conversation already and the conversation
# is not already in an 'inprogress' state.
if (self.last_mod_update is not None and
(self.last_mod_update !=
datetime.min.replace(tzinfo=g.tz)) and
self.state != self.STATE['inprogress']):
self.state = self.STATE['inprogress']
self.last_user_update = message.date
try:
Session.commit()
except Exception as e:
g.log.error('Failed to save message: {}'.format(e))
Session.rollback()
raise
update_sr_mods_modmail_icon(sr)
# create unread records for all except the author of
# the newly created message
ModmailConversationUnreadState.create_unreads(
self.id,
list((set(sr.moderators) | set(self.author_ids)) -
set([author._id]))
)
return message