def respond(self, club=None, tag=None): f = [("date", -1)] user = yield self.get_auth_user() regions = self.regions() req = BnwWebRequest(user, regions) page = get_page(self) qdict = {} if tag: tag = tornado.escape.url_unescape(tag, plus=False) qdict['tags'] = tag if club: club = tornado.escape.url_unescape(club, plus=False) qdict['clubs'] = club result = yield cmd_show(req, page=str(page), club=club, tag=tag, use_bl=True) if not result['ok']: self.set_status(400) defer.returnValue(result['desc']) hasmes = yield is_hasmes(qdict, page) uc = (yield objs.User.count()) format = self.get_argument("format", "") active = int( (yield objs.User.count({'last_activity': { '$gt': time.time() - 30 * 60 }}))) self.set_header("Cache-Control", "max-age=1") if format == 'rss': self.set_header("Content-Type", 'application/rss+xml; charset=UTF-8') if self.request.protocol == "https": base = bnw.core.base.get_https_webui_base() else: base = bnw.core.base.get_http_webui_base() defer.returnValue( rss.message_feed(result['messages'], link=base, title='Коллективное бессознательное BnW')) else: tagres = yield cmd_tags(req) toptags = tagres['tags'] if tagres['ok'] else [] result['messages'].reverse() defer.returnValue({ 'messages': result['messages'], 'toptags': toptags, 'users_count': int(uc), 'active': active, 'page': page, 'tag': tag, 'club': club, 'hasmes': hasmes, })
def respond(self, club=None, tag=None): f = [("date", -1)] user = yield self.get_auth_user() page = get_page(self) qdict = {} if tag: tag = tornado.escape.url_unescape(tag, plus=False) qdict['tags'] = tag if club: club = tornado.escape.url_unescape(club, plus=False) qdict['clubs'] = club if user: bl = [] for e in user.get('blacklist', []): if e[0] == 'user': bl.append(e[1]) if bl: qdict['user'] = {'$nin': bl} messages = list((yield objs.Message.find_sort(qdict, sort=f, limit=20, skip=20 * page))) hasmes = yield is_hasmes(qdict, page) uc = (yield objs.User.count()) format = self.get_argument("format", "") active = int((yield objs.User.count({'last_activity': {'$gt': time.time()-30*60}}))) self.set_header("Cache-Control", "max-age=1") if format == 'rss': self.set_header( "Content-Type", 'application/rss+xml; charset=UTF-8') if self.request.protocol == "https": base = bnw.core.base.get_https_webui_base() else: base = bnw.core.base.get_http_webui_base() defer.returnValue( rss.message_feed( messages, link=base, title='Коллективное бессознательное BnW')) elif format == 'json': json_messages = [message.filter_fields() for message in messages] defer.returnValue(json.dumps(json_messages, ensure_ascii=False)) else: req = BnwWebRequest((yield self.get_auth_user())) tagres = yield cmd_tags(req) toptags = tagres['tags'] if tagres['ok'] else [] defer.returnValue({ 'messages': messages, 'toptags': toptags, 'users_count': int(uc), 'active': active, 'page': page, 'tag': tag, 'club': club, 'hasmes': hasmes, })
def respond(self, club=None, tag=None): f = [("date", -1)] user = yield self.get_auth_user() regions = self.regions() req = BnwWebRequest(user, regions) page = get_page(self) qdict = {} if tag: tag = tornado.escape.url_unescape(tag, plus=False) qdict['tags'] = tag if club: club = tornado.escape.url_unescape(club, plus=False) qdict['clubs'] = club result = yield cmd_show(req, page=str(page), club=club, tag=tag, use_bl=True) if not result['ok']: self.set_status(400) defer.returnValue(result['desc']) hasmes = yield is_hasmes(qdict, page) uc = (yield objs.User.count()) format = self.get_argument("format", "") active = int((yield objs.User.count({'last_activity': {'$gt': time.time()-30*60}}))) self.set_header("Cache-Control", "max-age=1") if format == 'rss': self.set_header( "Content-Type", 'application/rss+xml; charset=UTF-8') if self.request.protocol == "https": base = bnw.core.base.get_https_webui_base() else: base = bnw.core.base.get_http_webui_base() defer.returnValue( rss.message_feed( result['messages'], link=base, title='Коллективное бессознательное BnW')) else: tagres = yield cmd_tags(req) toptags = tagres['tags'] if tagres['ok'] else [] result['messages'].reverse() defer.returnValue({ 'messages': result['messages'], 'toptags': toptags, 'users_count': int(uc), 'active': active, 'page': page, 'tag': tag, 'club': club, 'hasmes': hasmes, })
def respond(self, username, reco=None, tag=None): _ = yield self.get_auth_user() f = [("date", -1)] user = (yield objs.User.find_one({'name': username})) page = get_page(self) if reco == "recommendations": qdict = {'recommendations': username} elif reco == "all": qdict = { '$or': [{ 'user': username }, { 'recommendations': username }] } else: qdict = {'user': username} if tag: tag = tornado.escape.url_unescape(tag) qdict['tags'] = tag messages = list((yield objs.Message.find_sort(qdict, sort=f, limit=20, skip=20 * page))) for message in messages: replace_banned(self.regions(), message) hasmes = yield is_hasmes(qdict, page) format = self.get_argument("format", "") if format == 'rss': self.set_header("Content-Type", 'application/rss+xml; charset=UTF-8') defer.returnValue( rss.message_feed(messages, link=widgets.user_url(username), title='Поток сознания @%s' % username)) elif format == 'json': json_messages = [message.filter_fields() for message in messages] defer.returnValue(json.dumps(json_messages, ensure_ascii=False)) else: self.set_header("Cache-Control", "max-age=1") defer.returnValue({ 'username': username, 'user': user, 'messages': messages, 'page': page, 'tag': tag, 'hasmes': hasmes, })
def respond(self, username, reco=None, tag=None): _ = yield self.get_auth_user() f = [("date", -1)] user = (yield objs.User.find_one({'name': username})) page = get_page(self) if reco == "recommendations": qdict = {'recommendations': username} elif reco == "all": qdict = {'$or': [{'user': username}, { 'recommendations': username}]} else: qdict = {'user': username} if tag: tag = tornado.escape.url_unescape(tag) qdict['tags'] = tag messages = list((yield objs.Message.find_sort(qdict, sort=f, limit=20, skip=20 * page))) for message in messages: replace_banned(self.regions(), message) hasmes = yield is_hasmes(qdict, page) format = self.get_argument("format", "") if format == 'rss': self.set_header( "Content-Type", 'application/rss+xml; charset=UTF-8') defer.returnValue(rss.message_feed(messages, link=widgets.user_url(username), title='Поток сознания @%s' % username)) elif format == 'json': json_messages = [message.filter_fields() for message in messages] defer.returnValue(json.dumps(json_messages, ensure_ascii=False)) else: self.set_header("Cache-Control", "max-age=1") defer.returnValue({ 'username': username, 'user': user, 'messages': messages, 'page': page, 'tag': tag, 'hasmes': hasmes, })