├── .gitattributes ├── README.md ├── requirements.txt └── rss.py /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Aria2 的Rss推送 2 | 3 | 基于python3环境,请自行安装环境,python2环境下尚未测试 4 | 5 | 6 | 7 | 目前测试支持的网站的Rss链接: 8 | 9 | [末日资源库](https://share.acgnx.se/) 10 | 11 | [动漫花园](http://dmhy.org/) 12 | 13 | 14 | 15 | 安装依赖 16 | 17 | ``` 18 | pip3 install -r requirements 19 | ``` 20 | 21 | 22 | 23 | 修改 rss.py 中的参数 24 | 25 | 26 | 27 | ### 第一次运行请注释掉 dowmload(url) 这句代码 28 | 29 | ### 第一次运行请注释掉 dowmload(url) 这句代码 30 | 31 | ### 第一次运行请注释掉 dowmload(url) 这句代码 32 | 33 | 否则会向你的aria2提交当前rss的全部任务 34 | 35 | 运行 36 | 37 | ``` 38 | python3 rss.py 39 | ``` 40 | 41 | 42 | 43 | 设定定时运行方面请各显神通 -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | requests==2.22.0 2 | feedparser==5.2.1 -------------------------------------------------------------------------------- /rss.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | import pymysql 3 | import feedparser 4 | import json 5 | import os 6 | import requests 7 | 8 | #第一次运行请注释掉下面 dowmload(url) 这个代码 9 | #第一次运行请注释掉下面 dowmload(url) 这个代码 10 | #第一次运行请注释掉下面 dowmload(url) 这个代码 11 | 12 | 13 | ping_url="https://www.baidu.com/" #heroku app 或 aria2 prc的网址,用于检测aria2是否在线 14 | prc_password="" #prc密码 15 | rpc_url = "http://ip:6800/jsonrpc" #改成自己的aria2 rpc链接 16 | dir="/root/pan/download" #下载地址,末尾不需要 / 17 | 18 | 19 | 20 | def ping(url): 21 | print(f'{url}: Ping!') 22 | html=requests.get(url) 23 | #print(html.status_code) 24 | return html.status_code 25 | 26 | def dowmload(url,title): 27 | down=f"{dir}/{title}" 28 | jsonreq = json.dumps({'jsonrpc': '2.0', 'id': 'qwer', 29 | 'method': 'aria2.addUri', 30 | 'params': [f"token:{prc_password}", [ 31 | url], 32 | { 33 | "dir": down}]}) 34 | 35 | aria = requests.post(url=rpc_url, data=jsonreq, verify=False) 36 | print(aria.text) 37 | 38 | def creat_json(): 39 | if os.path.exists('rss.json')==False: 40 | none_list=[] 41 | with open('rss.json', 'w') as f: 42 | json.dump(none_list, f) 43 | f.close() 44 | 45 | def read_json(): 46 | # 读取存储于json文件中的列表 47 | 48 | with open('rss.json', 'r') as f_obj: 49 | rss_list = json.load(f_obj) 50 | f_obj.close() 51 | return rss_list 52 | 53 | def save(rss_list): 54 | with open('rss.json', 'w') as f_obj: 55 | json.dump(rss_list, f_obj) 56 | f_obj.close() 57 | 58 | if __name__ == '__main__': 59 | creat_json() 60 | rss_list=read_json() 61 | print("开始获取Rss") 62 | rss_url='https://share.acgnx.se/rss-sort-2.xml' #末日资源库网址,可换为动漫花园,之前换过记得是支持的 63 | d = feedparser.parse(rss_url) 64 | print("Rss获取完成") 65 | num=0 66 | 67 | for a in d.entries: 68 | pan = 0 69 | title=str(a["title"]) 70 | title=title.replace("\\"," ").replace("/"," ").replace("&"," ").replace("​","") 71 | title.lstrip() 72 | url=str(a["links"][1]["href"]) 73 | fabu=str(a["authors"][0]["name"]) 74 | for b in rss_list: 75 | if b["url"]==url: 76 | pan=1 77 | 78 | if pan==0: 79 | info_dict={"title":title,"url":url,"fabu":fabu} 80 | 81 | print(f"添加:{info_dict}") 82 | for c in range(3): 83 | if ping(ping_url)==200: 84 | #dowmload(url,title) #第一次运行请注释掉下面 dowmload(url) 这个代码 85 | rss_list.append(info_dict) 86 | break 87 | else: 88 | print("aria2未启动") 89 | 90 | num=num+1 91 | 92 | 93 | 94 | 95 | print("更新%d磁力" % num) 96 | save(rss_list) 97 | --------------------------------------------------------------------------------