示例#1
0
 def push_fav(self, dict_info):
     url = dict_info.get('url', '')
     data_id = dict_info.get('id')
     title = dict_info.get('title')
     # f = Fav(url, '735b3e76-e7f5-462c-84d0-bb1109bcd7dd', '')
     f = Fav(url, 'f082258a-fd9a-4713-98a0-d85fa838f019', '')
     f.get_content()
     redis_obj.sadd('zhihu_zhuanlan_id', data_id)
     InstaPushNotify.notify(title, type_info=2)
示例#2
0
    def get_list(self):
        r = s.get(self.fav_url, headers=self.headers)
        # print r.content
        # print r.headers
        # print r.url
        # print r.status_code
        res_json = r.json()
        paging = res_json.get('paging', {})
        next_url = paging.get('next', '')
        data_list = res_json.get('data', [])

        for answer in data_list:
            question = answer.get('question', {})
            title = question.get('title', '')
            id = int(answer.get('id', ''))
            url = answer.get('url', '')
            if title and id > 0 and url:
                find_queue = session.query(CollectionQueue).filter(CollectionQueue.answer_id == id).first()
                if not find_queue:
                    self.check_num += 1
                    web_url = 'http://www.zhihu.com/question/20070065/answer/%s' % id
                    cq = CollectionQueue()
                    cq.fav_id = self.fav_id
                    cq.title = title
                    cq.api_url = url
                    cq.web_url = web_url
                    cq.answer_id = id
                    cq.add_time = int(time.time())
                    session.add(cq)
                    session.commit()
                    session.close()

                    sqs_body = {
                        'api_url':url,
                        'parent_note':self.parent_note,
                        'answer_id':cq.answer_id
                    }
                    m = Message()
                    m.set_body(json.dumps(sqs_body))
                    zhihufav_sqs.write(m)

                else:
                    if find_queue.fav_id == 0:
                        find_queue.fav_id = self.fav_id
                        session.commit()
                    print("[Find Queue] %s" % url)


        if len(data_list):
            self.check_page = self.check_page - 1
            self.fav_url = next_url
            if self.force:
                print("force next url %s" % next_url)
                return self.get_list()

            elif self.check_page > 0:
                print("start next url %s" % next_url)
                return self.get_list()


        title = self.title
        num = self.check_num
        if num > 0:
            InstaPushNotify.notify(title, str(num))