def search_user_name(self, prefix, limit=LIMIT):
user_search_history = self.wf.stored_data('recent_users') or []
if prefix.strip() != '':
matched_recent_users = self.wf.filter(prefix, user_search_history)
else:
matched_recent_users = user_search_history
if not self.wf.cached_data_fresh('users_list', 86400):
run_in_background(
'update_users', [
'/usr/bin/python',
self.wf.workflowfile('reviewboard.py'),
'update_users'])
# if is_running('update_users'):
# self.wf.add_item('Updating users', icon=ICON_INFO)
user_caches = self.wf.cached_data('users', max_age=0) or dict()
users_list = self.wf.cached_data('users_list', max_age=0) or set()
if prefix.strip() != '':
matched_cached_users = self.wf.filter(
prefix,
users_list)
else:
matched_cached_users = users_list
# remove duplicated
matched_users = matched_recent_users + [
user
for user in matched_cached_users
if user not in set(matched_recent_users)]
return [
user_caches[user] for user in matched_users[:limit]
]
评论列表
文章目录