예제 #1
0
 def tags(self):
     tags = db_session.query(Tag).order_by(Tag.tag).all()
     tags_count = []
     for t in tags:
         tags_count.append({
             'tag':
             t.tag,
             'count':
             db_session.query((quote_tags.c.tag_id).label('tag')).filter(
                 'tag == %s' % (t.id)).count()
         })
     return tags_count
예제 #2
0
 def search(self, query, limit, offset):
     q = '%' + query + '%'
     body_like = Quote.body.like(q)
     tag_like = Tag.tag.like(q)
     quotes = db_session.query(Quote).join(Quote.tags).filter(
         or_(tag_like, body_like)).order_by(
             Quote.id).limit(limit).offset(offset).all()
     return quotes
예제 #3
0
파일: db.py 프로젝트: Ramblurr/pyqdb
    def _vote(self, id, ip, type):
        quote = self.get(id)

        voter = Voter(ip)
        vote = Vote(type)
        vote.quote_id = id
        vote.voter_id = voter.id
        vote.type = type

        result = db_session.query(Vote).filter_by(quote_id=id).filter_by(voter_id=voter.id).first()
        if not result is None:
            return False

        voter.votes.append( vote )
        if type == 'up':
            quote.up_votes += 1
        elif type == 'down':
            quote.down_votes += 1

        db_session.commit()
        return quote
예제 #4
0
    def _vote(self, id, ip, type):
        quote = self.get(id)

        voter = Voter(ip)
        vote = Vote(type)
        vote.quote_id = id
        vote.voter_id = voter.id
        vote.type = type

        result = db_session.query(Vote).filter_by(quote_id=id).filter_by(
            voter_id=voter.id).first()
        if not result is None:
            return False

        voter.votes.append(vote)
        if type == 'up':
            quote.up_votes += 1
        elif type == 'down':
            quote.down_votes += 1

        db_session.commit()
        return quote
예제 #5
0
 def latest(self, limit, offset):
     quotes = db_session.query(Quote).order_by(
         Quote.id.desc()).limit(limit).offset(offset).all()
     return quotes
예제 #6
0
 def get(self, id):
     quote = db_session.query(Quote).filter_by(id=id).first()
     return quote
예제 #7
0
 def count(self):
     return db_session.query(Quote).count()
예제 #8
0
파일: db.py 프로젝트: Ramblurr/pyqdb
 def latest(self, limit, offset):
     quotes = db_session.query(Quote).order_by(Quote.id.desc()).limit(limit).offset(offset).all()
     return quotes
예제 #9
0
파일: db.py 프로젝트: Ramblurr/pyqdb
 def count(self):
     return db_session.query(Quote).count()
예제 #10
0
파일: db.py 프로젝트: Ramblurr/pyqdb
 def tag(self, tag, limit, offset):
     quotes = db_session.query(Quote).join(Quote.tags).filter(Quote.tags.contains(Tag(tag))).order_by(Quote.id.desc()).limit(limit).offset(offset).all()
     return quotes
예제 #11
0
파일: db.py 프로젝트: Ramblurr/pyqdb
 def tag_count(self, tag):
     return db_session.query(Quote).join(Quote.tags).filter(Quote.tags.contains(Tag(tag))).count()
예제 #12
0
파일: db.py 프로젝트: Ramblurr/pyqdb
 def tags(self):
     tags = db_session.query(Tag).order_by(Tag.tag).all()
     tags_count = []
     for t in tags:
         tags_count.append( { 'tag': t.tag, 'count': db_session.query((quote_tags.c.tag_id).label('tag')).filter('tag == %s' %(t.id)).count()} )
     return tags_count
예제 #13
0
파일: db.py 프로젝트: Ramblurr/pyqdb
 def random(self, limit):
     quotes = db_session.query(Quote).order_by(func.random()).limit(limit)
     return quotes
예제 #14
0
파일: db.py 프로젝트: Ramblurr/pyqdb
 def top(self, limit, offset):
     quotes = db_session.query(Quote,(Quote.up_votes-Quote.down_votes).label('sum')).order_by(desc('sum')).limit(limit).offset(offset).all()
     quotes = [t[0] for t in quotes]
     return quotes
예제 #15
0
 def top(self, limit, offset):
     quotes = db_session.query(
         Quote, (Quote.up_votes - Quote.down_votes).label('sum')).order_by(
             desc('sum')).limit(limit).offset(offset).all()
     quotes = [t[0] for t in quotes]
     return quotes
예제 #16
0
파일: db.py 프로젝트: Ramblurr/pyqdb
 def search(self, query, limit, offset):
     q = '%' + query + '%'
     body_like = Quote.body.like(q)
     tag_like = Tag.tag.like(q)
     quotes = db_session.query(Quote).join(Quote.tags).filter(or_(tag_like,body_like)).order_by(Quote.id).limit(limit).offset(offset).all()
     return quotes
예제 #17
0
 def random(self, limit):
     quotes = db_session.query(Quote).order_by(func.random()).limit(limit)
     return quotes
예제 #18
0
 def tag_count(self, tag):
     return db_session.query(Quote).join(Quote.tags).filter(
         Quote.tags.contains(Tag(tag))).count()
예제 #19
0
 def tag(self, tag, limit, offset):
     quotes = db_session.query(Quote).join(Quote.tags).filter(
         Quote.tags.contains(Tag(tag))).order_by(
             Quote.id.desc()).limit(limit).offset(offset).all()
     return quotes
예제 #20
0
파일: db.py 프로젝트: Ramblurr/pyqdb
 def get(self, id):
     quote = db_session.query(Quote).filter_by(id=id).first()
     return quote