コード例 #1
0
 def get_rss_by_url(self, url=''):
     conn, cursor = self.__open()
     try:
         rss = None
         sql = 'SELECT * FROM RSS WHERE URL=? LIMIT 1'
         cursors = cursor.execute(sql, (url,))
         _ = cursors.fetchone()
         rss = RSS(_[1], _[0], _[2], _[3])
     finally:
         self.__close(cursor, conn)
         return rss
コード例 #2
0
 def check_url(self, url):
     rss = RSS()
     try:
         logging.info("请求从网络下载url")
         d = feedparser.parse(url)
         logging.info("解析标题")
         rss.title = d.feed.title
         logging.info("解析链接")
         rss.url = d.feed.title_detail.base
         logging.info("解析最近文章的标题")
         _name = d.entries[0].title
         logging.info("解析最近文章的链接")
         _link = d.entries[0].link
         logging.info("解析最近文章的GUID")
         try:
             _guid = d.entries[0].guid
         except AttributeError:
             logging.info("GUID不存在,使用link代替")
             _guid = _link
         logging.info("解析完成设置标记")
         rss.mark = _guid
         logging.info("状态设置为激活")
         rss.active = True
     except Exception:
         logging.error("生成rss过程中出现错误")
         logging.error("url: {}".format(url))
     finally:
         return rss
コード例 #3
0
    def get_sub_by_chat_id(self, chat_id):
        conn, cursor = self.__open()
        try:
            sub_list = []

            sql = 'SELECT SUB.URL,SUB.NICKNAME,RSS.MARK,RSS.ACTIVE FROM SUB LEFT JOIN RSS ON SUB.URL=RSS.URL WHERE SUB.CHAT_ID=?'
            cursors = cursor.execute(sql, (chat_id,))

            for _ in cursors:
                sub_list.append(RSS(_[1], _[0], _[2], _[3]))
        finally:
            self.__close(cursor, conn)
            return sub_list
コード例 #4
0
 def add_rss(self, rss=RSS()):
     conn, cursor = self.__open()
     try:
         sql = 'SELECT count(*) FROM RSS WHERE URL=? LIMIT 1'
         cursors = cursor.execute(sql, (rss.url,))
         ret = cursors.fetchone()[0]
         if ret == 0:
             sql = 'INSERT INTO RSS(URL,TITLE,MARK) VALUES(?,?,?)'
             cursors = cursor.execute(sql, (rss.url, rss.title, rss.mark))
         elif ret == 1:
             sql = 'UPDATE RSS SET TITLE=?,ACTIVE=1 WHERE URL =?'
             cursors = cursor.execute(sql, (rss.title, rss.url))
         conn.commit()
     finally:
         self.__close(cursor, conn)
コード例 #5
0
 def get_rss_list(self, chat_id=''):
     conn, cursor = self.__open()
     try:
         rss_list = []
         if chat_id != '':
             sql = 'SELECT * FROM RSS WHERE URL IN (SELECT URL FROM SUB WHERE CHAT_ID=?)'
             cursors = cursor.execute(sql, (chat_id,))
         else:
             sql = 'SELECT * FROM RSS WHERE ACTIVE=1 AND URL IN (SELECT URL FROM SUB GROUP BY URL)'
             cursors = cursor.execute(sql)
         for _ in cursors:
             url = _[0]
             title = _[1]
             mark = _[2]
             active = _[3]
             rss_list.append(RSS(title, url, mark, active))
     finally:
         self.__close(cursor, conn)
         return rss_list