change_rsshub_to_erhe.py 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. import psycopg2
  2. # 数据库连接参数
  3. db_params = {
  4. 'dbname': 'freshrss',
  5. 'user': 'freshrss',
  6. 'password': 'freshrss',
  7. 'host': 'erhe.top',
  8. 'port': '20788'
  9. }
  10. # SQL 查询语句
  11. query = 'SELECT id, url FROM freshrss_toor_feed;'
  12. try:
  13. # 建立数据库连接
  14. conn = psycopg2.connect(**db_params)
  15. # 创建 cursor 对象
  16. cur = conn.cursor()
  17. # 执行 SQL 查询
  18. cur.execute(query)
  19. # 获取查询结果
  20. records = cur.fetchall()
  21. # 遍历查询结果
  22. for record in records:
  23. id, url = record
  24. # 替换 rsshub.app 为 rsshub.erhe.top
  25. if 'rsshub.app' in url:
  26. url = url.replace('rsshub.app', 'rsshub.erhe.top')
  27. # 如果不包含 #force_feed,则在末尾加上
  28. if '#force_feed' not in url:
  29. url += '#force_feed'
  30. # 更新 SQL 语句
  31. update_query = 'UPDATE freshrss_toor_feed SET url = %s WHERE id = %s;'
  32. # 执行更新操作
  33. cur.execute(update_query, (url, id))
  34. # 提交事务
  35. conn.commit()
  36. print("Data updated successfully.")
  37. except psycopg2.Error as e:
  38. print(f"Database error: {e}")
  39. conn.rollback()
  40. except Exception as e:
  41. print(f"An error occurred: {e}")
  42. finally:
  43. # 关闭 cursor 和连接
  44. if 'cur' in locals():
  45. cur.close()
  46. if 'conn' in locals():
  47. conn.close()