Browse Source

更新 自动刷新 rss 订阅源

jack 1 year ago
parent
commit
47815eacd1
3 changed files with 150 additions and 0 deletions
  1. 1 0
      .gitignore
  2. 88 0
      base/update_feed.py
  3. 61 0
      test/change_rsshub_to_erhe.py

+ 1 - 0
.gitignore

@@ -25,6 +25,7 @@ var/
 .installed.cfg
 *.egg
 .idea/*
+xml_files/
 
 # PyInstaller
 #  Usually these files are written by a python script from a template

+ 88 - 0
base/update_feed.py

@@ -0,0 +1,88 @@
+# -*- coding: utf-8 -*-
+
+import time
+from playwright.sync_api import sync_playwright
+import psycopg2
+
+
+def run(playwright):
+    browser = playwright.webkit.launch(headless=True)
+
+    context = browser.new_context()
+
+    page = context.new_page()
+
+    page.goto('https://rss.erhe.top/')
+
+    page.fill('#username', 'toor')
+
+    page.fill('#passwordPlain', '!QAZ2wsx+0913')
+
+    page.click('#loginButton')
+
+    time.sleep(4)
+
+    for i in range(1, 300):
+        try:
+            page.goto(f'https://rss.erhe.top/i/?c=feed&a=actualize&id={i}')
+            title = page.title()
+            if '首页' in title:
+                continue
+            print(f'{title} 更新成功')
+        except Exception as e:
+            print(f'{i} 更新失败')
+
+        time.sleep(1)
+
+    context.close()
+    browser.close()
+    print('rss订阅源更新完成')
+
+
+def check_data_count():
+    # 数据库连接参数
+    db_params = {
+        'dbname': 'freshrss',
+        'user': 'freshrss',
+        'password': 'freshrss',
+        'host': 'erhe.top',
+        'port': '20788'
+    }
+
+    # SQL 查询语句
+    query = 'SELECT COUNT(*) FROM freshrss_toor_entry;'
+
+    try:
+        # 建立数据库连接
+        conn = psycopg2.connect(**db_params)
+
+        # 创建 cursor 对象
+        cur = conn.cursor()
+
+        # 执行 SQL 查询
+        cur.execute(query)
+
+        # 获取查询结果
+        records = cur.fetchall()
+
+        count_num = records[0][0]
+        print(f'\n\nfreshrss_toor_entry 表共有数据数量为: {count_num}')
+
+    except psycopg2.Error as e:
+        print(f"Database error: {e}")
+        conn.rollback()
+    except Exception as e:
+        print(f"An error occurred: {e}")
+    finally:
+        # 关闭 cursor 和连接
+        if 'cur' in locals():
+            cur.close()
+        if 'conn' in locals():
+            conn.close()
+
+
+if __name__ == '__main__':
+    with sync_playwright() as playwright:
+        run(playwright)
+
+    check_data_count()

+ 61 - 0
test/change_rsshub_to_erhe.py

@@ -0,0 +1,61 @@
+import psycopg2
+
+# 数据库连接参数
+db_params = {
+    'dbname': 'freshrss',
+    'user': 'freshrss',
+    'password': 'freshrss',
+    'host': 'erhe.top',
+    'port': '20788'
+}
+
+# SQL 查询语句
+query = 'SELECT id, url FROM freshrss_toor_feed;'
+
+try:
+    # 建立数据库连接
+    conn = psycopg2.connect(**db_params)
+
+    # 创建 cursor 对象
+    cur = conn.cursor()
+
+    # 执行 SQL 查询
+    cur.execute(query)
+
+    # 获取查询结果
+    records = cur.fetchall()
+
+    # 遍历查询结果
+    for record in records:
+        id, url = record
+
+        # 替换 rsshub.app 为 rsshub.erhe.top
+        if 'rsshub.app' in url:
+            url = url.replace('rsshub.app', 'rsshub.erhe.top')
+
+        # 如果不包含 #force_feed,则在末尾加上
+        if '#force_feed' not in url:
+            url += '#force_feed'
+
+        # 更新 SQL 语句
+        update_query = 'UPDATE freshrss_toor_feed SET url = %s WHERE id = %s;'
+
+        # 执行更新操作
+        cur.execute(update_query, (url, id))
+
+    # 提交事务
+    conn.commit()
+
+    print("Data updated successfully.")
+
+except psycopg2.Error as e:
+    print(f"Database error: {e}")
+    conn.rollback()
+except Exception as e:
+    print(f"An error occurred: {e}")
+finally:
+    # 关闭 cursor 和连接
+    if 'cur' in locals():
+        cur.close()
+    if 'conn' in locals():
+        conn.close()