コード例 #1
0
ファイル: po_view.py プロジェクト: xqk/42qu_github_mirror
    def get(self, zsite_tag_id, n=1):
        tag = ZsiteTag.mc_get(zsite_tag_id)
        zsite_id = self.zsite_id
        user_id = self.current_user_id
        cid = self.cid
        is_self = zsite_id == user_id
        n = int(n)
        total = zsite_tag_cid_count(zsite_tag_id, cid)
        page, limit, offset = page_limit_offset(
            '/tag/%s'%zsite_tag_id + self.page_template,
            total,
            n,
            PAGE_LIMIT
        )

        if n != 1 and offset >= total:
            return self.redirect(self.page_template[:-3])

        po_list = Po.mc_get_list(po_id_list_by_zsite_tag_id_cid(zsite_tag_id, cid, limit, offset))
        self.render(
            cid=cid,
            is_self=is_self,
            total=total,
            li=po_list,
            page=page,
            tag_name=Tag.get(tag.tag_id),
            back_a='/tag/%s'%zsite_tag_id
        )
コード例 #2
0
def site_po_iter(id_list, limit=MAXINT, begin_id=MAXINT):
    id_list = list(merge_iter(id_list, limit, begin_id))
    po_list = Po.mc_get_list(id_list)

    zsite_set = set()

    for i in po_list:
        zsite_set.add(i.zsite_id)
        zsite_set.add(i.user_id)

    zsite_dict = Zsite.mc_get_dict(zsite_set)

    result = []
    pre_zsite_id = None
    m = []

    zsite_set = set()

    if po_list:
        last_id = po_list[-1].id
        for i in po_list:
            if pre_zsite_id != i.zsite_id:
                if pre_zsite_id:
                    result.append([pre_zsite_id, m])
                    zsite_set.add(zsite_dict[pre_zsite_id])
                    m = []
                pre_zsite_id = i.zsite_id

            cid = i.cid
            t = []
            t.append(i.id)
            t.append(cid)

            if cid == CID_WORD:
                t.append(i.htm)
            else:
                t.append(i.name)

            if i.zsite_id != i.user_id:
                user = zsite_dict[i.user_id]
                t.append(user.link)
                t.append(user.name)
            m.append(t)

        result.append([i.zsite_id, m])
        zsite_set.add(zsite_dict[i.zsite_id])
    else:
        last_id = 0

    ico_url_bind_with_default(zsite_set)

    for i in result:
        id = i[0]
        zsite = zsite_dict[id]
        i[0] = [id, zsite.name, zsite.link, zsite.ico]

    return result, last_id
コード例 #3
0
def po_json(user_id, po_id_list, line_width):

    po_id_list = map(int,po_id_list)

    po_list = Po.mc_get_list(po_id_list)

    txt_bind(po_list)

    Zsite.mc_bind(po_list, 'user', 'user_id')
    result = []


    fav_dict = fav_cid_dict(
        user_id,
        po_id_list
    )

    for po in po_list:

        name = po.name
        user = po.user


        name_len = cnenlen(name)
        txt = po.txt

        if txt and name_len < line_width:
            tip = cnenoverflow(txt, line_width-name_len)[0]
        else:
            tip = ''

        id = po.id
        if not user:
            user_id = 0
            user_name = None
        else:
            user_id = user.id
            user_name = None
        result.append((
            id,
            name,
            tip,
#            user_id,
#            user_name,
            fav_dict[id]
        ))
# 0   1       2     3           4               5
# id , name, tip,  author_id , author_name , is_star 
    return result
コード例 #4
0
ファイル: po_json.py プロジェクト: xqk/42qu_github_mirror
def po_json(user_id, po_id_list, line_width):

    po_id_list = map(int, po_id_list)

    po_list = Po.mc_get_list(po_id_list)

    txt_bind(po_list)

    Zsite.mc_bind(po_list, 'user', 'user_id')
    result = []

    fav_dict = fav_cid_dict(user_id, po_id_list)

    for po in po_list:

        name = po.name
        user = po.user

        name_len = cnenlen(name)
        txt = po.txt

        if txt and name_len < line_width:
            tip = cnenoverflow(txt, line_width - name_len)[0]
        else:
            tip = ''

        id = po.id
        if not user:
            user_id = 0
            user_name = None
        else:
            user_id = user.id
            user_name = None
        result.append((
            id,
            name,
            tip,
            #            user_id,
            #            user_name,
            fav_dict[id]))


# 0   1       2     3           4               5
# id , name, tip,  author_id , author_name , is_star
    return result
コード例 #5
0
def buzz_at_list(user_id, limit, offset):
    po_id_list = []
    reply_id_list = []
    user_id_list = []
    id_list = []
    for id, from_id, po_id, reply_id in buzz_at_col_list(user_id, limit, offset):
        id_list.append(id)
        po_id_list.append(po_id)
        reply_id_list.append(reply_id)
        user_id_list.append(from_id)

    from model.zsite import Zsite
    from model.po import Po
    from model.reply import Reply
    return tuple(zip(
        id_list,
        Zsite.mc_get_list(user_id_list),
        Po.mc_get_list(po_id_list),
        Reply.mc_get_list(reply_id_list),
    ))
コード例 #6
0
def po_list_by_buzz_at_user_id(user_id):
    from model.po import Po

    result = BuzzAt.where(
        to_id=user_id, state=BUZZ_AT_SHOW
    ).order_by('id desc').col_list(
        32, 0, 'id, from_id, po_id, reply_id'
    )
    id_list = []
    id2user = defaultdict(list)
    for id, from_id, po_id, reply_id in result:
        po_id_in = po_id in id2user
        if po_id_in or len(id_list)<7:
            if not po_id_in:
                id_list.append(po_id) 
            id2user[po_id].append(from_id)
         
    po_list = Po.mc_get_list(id_list)

    return buzz_po_bind_user(po_list, [
        id2user[i.id] for i in po_list
    ])
コード例 #7
0
ファイル: buzz_reply.py プロジェクト: xqk/42qu_github_mirror
def po_list_by_buzz_reply_user_id(user_id):
    from model.po import Po
    from model.po_pos import po_pos_get_last_reply_id
    from model.reply import Reply
    from model.buzz_po_bind_user import buzz_po_bind_user

    id_list = po_id_list_by_buzz_reply_user_id(user_id)
    po_list = Po.mc_get_list(id_list)

    po_user_id = []
    for i in po_list:
        pos = po_pos_get_last_reply_id(user_id, i.id)
        new_reply_id_list = []
        for reply_id in i.reply_id_list():
            if reply_id > pos:
                new_reply_id_list.append(reply_id)

        user_id_list = []
        for reply in Reply.mc_get_list(reversed(new_reply_id_list)):
            user_id_list.append(reply.user_id)
        po_user_id.append(user_id_list)

    return buzz_po_bind_user(po_list, po_user_id, user_id)
コード例 #8
0
ファイル: rss.py プロジェクト: immissile/42qu_github_mirror
    def get(self):
        self.set_header('Content-Type', 'text/xml; charset=utf-8')

        items = []
        zsite = self.zsite
        id = zsite.id
        rss_title = '%s %s' % (zsite.name, host(id))
        rss_link = 'http:%s/rss' % zsite.link
        pubdate = time()
        rss_desc = motto_get(id)

        limit = 25
        offset = 0
        if zsite.cid == CID_SITE:
            site_po_list = feed_po_list_by_zsite_id(self.current_user_id, id, CID_NOTE, limit, offset)[0]
            po_id_list = []
            for i in site_po_list:
                po_id_list.append(i[1])
            po_list = Po.mc_get_list(po_id_list)
        else:
            po_list = po_view_list(id, CID_NOTE, False, limit, offset)

        for po in po_list:
            d = {}
            author = Zsite.get(po.user_id)
            po_title = po.name
            po_link = 'http:%s/%s' % (zsite.link, po.id)
            tag = tag_by_po_id(id, po.id)[2]
            title = [po_title]
            if tag:
                title.append('#%s#'%tag)
            d['title'] = ' '.join(title)
            d['author'] = author.name
            d['link'] = po_link
            htm = po.htm

            htm = htm.replace('class="PICR"', 'style="float:right;margin-left:14px"')\
                     .replace('class="PICL"', 'style="float:left;margin-right:14px"')\
                     .replace('class="PIC"', 'style="margin:14px auto"')

            desc = [
            """<font face="Verdana,sans-serif" size="3">
<pre style="font-family:Verdana;font-size:14px;white-space:pre-wrap;word-wrap:break-word;line-height:27px;">%s</pre>
""" % htm
            ]
            unit, title = career_current(id)
            desc.append(
                """ <div style="padding:27px 0;text-align:left;font-size:14px;float:left"><a target="_blank" href="%s">"""%author.link
            )

            ico = ico_url(id)
            if ico:
                desc.append(
                    """<img style="float:left;margin-right:28px" src="%s">"""%ico
                )

            desc.append("""<div style="line-height:32px;float:left"><div>%s</div><div style="color:#000">"""%escape(author.name))

            if unit:
                desc.append("""<div>%s</div>"""%escape(unit))

            if title:
                desc.append("""<div>%s</div>"""%escape(title))

            desc.append("""</div></div></a></div>""")
            desc.append('</font>')
            d['desc'] = ''.join(desc)
            d['pubdate'] = format_rfc822_data(po.create_time)
            items.append(d)

        self.render(
            rss_title=rss_title,
            rss_link=rss_link,
            rss_desc=rss_desc,
            pubdate=format_rfc822_data(pubdate),
            items=items,
        )
コード例 #9
0
    def get(self):
        self.set_header('Content-Type', 'text/xml; charset=utf-8')

        items = []
        zsite = self.zsite
        id = zsite.id
        rss_title = '%s %s' % (zsite.name, host(id))
        rss_link = 'http:%s/rss' % zsite.link
        pubdate = time()
        rss_desc = motto_get(id)

        limit = 25
        offset = 0
        if zsite.cid == CID_SITE:
            site_po_list = feed_po_list_by_zsite_id(self.current_user_id, id,
                                                    CID_NOTE, limit, offset)[0]
            po_id_list = []
            for i in site_po_list:
                po_id_list.append(i[1])
            po_list = Po.mc_get_list(po_id_list)
        else:
            po_list = po_view_list(id, CID_NOTE, False, limit, offset)

        for po in po_list:
            d = {}
            author = Zsite.get(po.user_id)
            po_title = po.name
            po_link = 'http:%s/%s' % (zsite.link, po.id)
            tag = tag_by_po_id(id, po.id)[2]
            title = [po_title]
            if tag:
                title.append('#%s#' % tag)
            d['title'] = ' '.join(title)
            d['author'] = author.name
            d['link'] = po_link
            htm = po.htm

            htm = htm.replace('class="PICR"', 'style="float:right;margin-left:14px"')\
                     .replace('class="PICL"', 'style="float:left;margin-right:14px"')\
                     .replace('class="PIC"', 'style="margin:14px auto"')

            desc = [
                """<font face="Verdana,sans-serif" size="3">
<pre style="font-family:Verdana;font-size:14px;white-space:pre-wrap;word-wrap:break-word;line-height:27px;">%s</pre>
""" % htm
            ]
            unit, title = career_current(id)
            desc.append(
                """ <div style="padding:27px 0;text-align:left;font-size:14px;float:left"><a target="_blank" href="%s">"""
                % author.link)

            ico = ico_url(id)
            if ico:
                desc.append(
                    """<img style="float:left;margin-right:28px" src="%s">""" %
                    ico)

            desc.append(
                """<div style="line-height:32px;float:left"><div>%s</div><div style="color:#000">"""
                % escape(author.name))

            if unit:
                desc.append("""<div>%s</div>""" % escape(unit))

            if title:
                desc.append("""<div>%s</div>""" % escape(title))

            desc.append("""</div></div></a></div>""")
            desc.append('</font>')
            d['desc'] = ''.join(desc)
            d['pubdate'] = format_rfc822_data(po.create_time)
            items.append(d)

        self.render(
            rss_title=rss_title,
            rss_link=rss_link,
            rss_desc=rss_desc,
            pubdate=format_rfc822_data(pubdate),
            items=items,
        )