update_feed.py 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
  1. # -*- coding: utf-8 -*-
  2. import time
  3. from playwright.sync_api import sync_playwright
  4. import psycopg2
  5. def run(playwright):
  6. browser = playwright.webkit.launch(headless=True)
  7. context = browser.new_context()
  8. page = context.new_page()
  9. page.goto('https://rss.erhe.top/')
  10. page.fill('#username', 'toor')
  11. page.fill('#passwordPlain', '!QAZ2wsx+0913')
  12. page.click('#loginButton')
  13. time.sleep(4)
  14. try:
  15. page.goto('https://rss.erhe.top/i/?c=feed&a=actualize')
  16. title = page.title()
  17. print(f'{title} 更新成功')
  18. except Exception as e:
  19. print(f'更新失败 {str(e)}')
  20. time.sleep(1)
  21. context.close()
  22. browser.close()
  23. print('rss订阅源更新完成')
  24. def check_data_count():
  25. # 数据库连接参数
  26. db_params = {
  27. 'dbname': 'freshrss',
  28. 'user': 'freshrss',
  29. 'password': 'freshrss',
  30. 'host': 'erhe.top',
  31. 'port': '20788'
  32. }
  33. # SQL 查询语句
  34. query = 'SELECT COUNT(*) FROM freshrss_toor_entry;'
  35. try:
  36. # 建立数据库连接
  37. conn = psycopg2.connect(**db_params)
  38. # 创建 cursor 对象
  39. cur = conn.cursor()
  40. # 执行 SQL 查询
  41. cur.execute(query)
  42. # 获取查询结果
  43. records = cur.fetchall()
  44. count_num = records[0][0]
  45. print(f'\n\nfreshrss_toor_entry 表共有数据数量为: {count_num}')
  46. except psycopg2.Error as e:
  47. print(f"Database error: {e}")
  48. conn.rollback()
  49. except Exception as e:
  50. print(f"An error occurred: {e}")
  51. finally:
  52. # 关闭 cursor 和连接
  53. if 'cur' in locals():
  54. cur.close()
  55. if 'conn' in locals():
  56. conn.close()
  57. def read_ids():
  58. ids = []
  59. # 数据库连接参数
  60. db_params = {
  61. 'dbname': 'freshrss',
  62. 'user': 'freshrss',
  63. 'password': 'freshrss',
  64. 'host': 'erhe.top',
  65. 'port': '20788'
  66. }
  67. # SQL 查询语句
  68. query = 'SELECT id, url FROM freshrss_toor_feed order by id ASC;'
  69. try:
  70. # 建立数据库连接
  71. conn = psycopg2.connect(**db_params)
  72. # 创建 cursor 对象
  73. cur = conn.cursor()
  74. # 执行 SQL 查询
  75. cur.execute(query)
  76. # 获取查询结果
  77. records = cur.fetchall()
  78. for record in records:
  79. id, url = record
  80. print(id, url)
  81. ids.append(id)
  82. except psycopg2.Error as e:
  83. print(f"Database error: {e}")
  84. conn.rollback()
  85. except Exception as e:
  86. print(f"An error occurred: {e}")
  87. finally:
  88. # 关闭 cursor 和连接
  89. if 'cur' in locals():
  90. cur.close()
  91. if 'conn' in locals():
  92. conn.close()
  93. if ids:
  94. return ids
  95. else:
  96. return None
  97. if __name__ == '__main__':
  98. ids = read_ids()
  99. if not ids:
  100. print('未获取到订阅源id, 程序退出')
  101. exit(0)
  102. # with sync_playwright() as playwright:
  103. # run(playwright)
  104. #
  105. # check_data_count()