Пример #1
0
    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,
            })
Пример #2
0
    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,
            })
Пример #3
0
    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,
            })