Esempio n. 1
0
File: site.py Progetto: UndeRus/bnw
    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,
            })
Esempio n. 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,
            })
Esempio n. 3
0
File: site.py Progetto: stiletto/bnw
    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,
            })
Esempio n. 4
0
File: site.py Progetto: UndeRus/bnw
    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,
            })
Esempio n. 5
0
File: site.py Progetto: stiletto/bnw
    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,
            })