code: def vote(self, upvote, id, remote_addr):
          
  
          rv = self.db.execute(
              'SELECT likes, dislikes, voters FROM comments WHERE id=?', (id, )) \
              .fetchone()
  
          if rv is None:
              return None
  
          likes, dislikes, voters = rv
          if likes + dislikes >= 142:
              return {'likes': likes, 'dislikes': dislikes}
  
          bf = Bloomfilter(bytearray(voters), likes + dislikes)
          if remote_addr in bf:
              return {'likes': likes, 'dislikes': dislikes}
  
          bf.add(remote_addr)
          self.db.execute([
              'UPDATE comments SET',
              '    likes = likes + 1,' if upvote else 'dislikes = dislikes + 1,',
              '    voters = ?'
              'WHERE id=?;'], (buffer(bf.array), id))
  
          if upvote:
              return {'likes': likes + 1, 'dislikes': dislikes}
          return {'likes': likes, 'dislikes': dislikes + 1}
docs: +1 a given comment. Returns the new like count (may not change because
          the creater can't vote on his/her own comment and multiple votes from the
          same ip address are ignored as well).