Example #1
0
    def add_or_update(user_id, post_id, kind):
        '''
        Create the record if new, else update it.
        '''

        rec = MUsage.query_by_signature(user_id, post_id)
        cate_rec = MInfor2Catalog.get_first_category(post_id)
        if cate_rec:
            cat_id = cate_rec.tag_id
        else:
            return False

        if rec.count() > 0:
            logger.info('Usage update: {uid}'.format(uid=post_id))
            rec = rec.get()
            query = TabUsage.update(kind=kind).where(TabUsage.uid == rec.uid)
            query.execute()
            MUsage.count_increate(rec.uid, cat_id, rec.count)
        else:
            logger.info('Usage create: {uid}'.format(uid=post_id))
            TabUsage.create(
                uid=tools.get_uuid(),
                post_id=post_id,
                user_id=user_id,
                count=1,
                tag_id=cat_id,
                timestamp=int(time.time()),
                kind=kind,
            )
Example #2
0
    def delete(uid):
        '''
        Delete by uid
        :param uid:
        :return:
        '''

        q_u1 = TabPostHist.delete().where(TabPostHist.post_id == uid)
        q_u1.execute()
        q_u2 = TabRel.delete().where(TabRel.post_f_id == uid
                                     or TabRel.post_t_id == uid)
        q_u2.execute()
        q_u3 = TabCollect.delete().where(TabCollect.post_id == uid)
        q_u3.execute()
        q_u4 = TabPost2Tag.delete().where(TabPost2Tag.post_id == uid)
        q_u4.execute()
        q_u5 = TabUsage.delete().where(TabUsage.post_id == uid)
        q_u5.execute()

        reply_arr = []
        for reply in TabUser2Reply.select().where(
                TabUser2Reply.reply_id == uid):
            reply_arr.append(reply.reply_id.uid)

        q_u6 = TabUser2Reply.delete().where(TabUser2Reply.reply_id == uid)
        q_u6.execute()

        for replyid in reply_arr:
            TabReply.delete().where(TabReply.uid == replyid).execute()

        q_u7 = TabEvaluation.delete().where(TabEvaluation.post_id == uid)
        q_u7.execute()
        q_u8 = TabRating.delete().where(TabRating.post_id == uid)
        q_u8.execute()
        return MHelper.delete(TabPost, uid)
Example #3
0
 def query_by_post(postid):
     '''
     Query records by post.
     '''
     return TabUsage.select().where(
         TabUsage.post_id == postid
     )
Example #4
0
 def count_increate(rec, cat_id, num):
     entry = TabUsage.update(
         timestamp=int(time.time()),
         count=num + 1,
         tag_id=cat_id,
     ).where(TabUsage.uid == rec)
     entry.execute()
Example #5
0
 def query_recent_by_cat(user_id, cat_id, num):
     return TabUsage.select().where(
         (TabUsage.tag_id == cat_id) &
         (TabUsage.user_id == user_id)
     ).order_by(
         TabUsage.timestamp.desc()
     ).limit(num)
Example #6
0
 def query_most(user_id, kind, num):
     return TabUsage.select(
         TabUsage, TabPost.title.alias('post_title')).join(
             TabPost, on=(TabUsage.post_id == TabPost.uid
                          )).where((TabUsage.user_id == user_id)
                                   & (TabUsage.kind == kind)).order_by(
                                       TabUsage.count.desc()).limit(num)
Example #7
0
 def query_recent(user_id, kind, num=10):
     return TabUsage.select(
         TabUsage, TabPost.title.alias('post_title')).join(
             TabPost, on=(TabUsage.post_id == TabPost.uid
                          )).where((TabUsage.user_id == user_id)
                                   & (TabUsage.kind == kind)
                                   & (TabPost.valid == 1)).order_by(
                                       TabUsage.timestamp.desc()).limit(num)
Example #8
0
 def query_by_signature(user_id, sig):
     return TabUsage.select().where(
         (TabUsage.post_id == sig) &
         (TabUsage.user_id == user_id)
     )
Example #9
0
 def query_random(limit=6):
     return TabUsage.select().order_by(peewee.fn.Random()).limit(limit)
Example #10
0
 def get_all():
     return TabUsage.select().order_by('count')
Example #11
0
 def update_field(uid, post_id=None):
     if post_id:
         entry = TabUsage.update(
             post_id=post_id
         ).where(TabUsage.uid == uid)
         entry.execute()