diff --git a/README.md b/README.md index 276196d..c908fc6 100644 --- a/README.md +++ b/README.md @@ -2,13 +2,15 @@ Flexget插件,增强对NexusPHP的过滤 过滤条件包括种子优惠信息(free等)、做种者情况、下载者情况 - `注意:本插件为测试版,未经过完全的测试` - +- [站点支持列表](#site) +# de +s ## 运行环境 - 已安装flexget -- python 3.X +- python 3.X [python2解决方案](#py2) ## 安装插件 -1. 下载插件 [nexusphp.py](https://github.com/Juszoe/flexget-nexusphp/releases/download/v0.1/nexusphp.py) +1. 下载插件 [nexusphp.py](https://github.com/Juszoe/flexget-nexusphp/releases) 2. 在Flexget配置文件夹下新建plugins文件夹,例如: ``` ~/.flexget/plugins/ # Linux @@ -110,3 +112,20 @@ tasks: min: 20 download: ~/flexget/torrents/ ``` + +## 常见问题 +#### 我的python版本是2.X如何使用? + +本插件只支持python 3.X版本,请卸载flexget后使用python3重装 +```bash +pip uninstall flexget # 卸载 +pip3 install flexget # 使用pip3安装 +``` +#### 目前支持哪些站点 + +以下站点名使用别称或简称,欢迎反馈更多可用或不可用的站点 +1. 任何未修改关键结构的nexusphp站点 +2. 铂金家 +3. 馒头 +4. nice +5. 菠萝 diff --git a/nexusphp.py b/nexusphp.py index 29824bf..7007f8d 100644 --- a/nexusphp.py +++ b/nexusphp.py @@ -105,7 +105,10 @@ def consider_entry(_entry, _link): "For example: other_fields: - link") futures.append(executor.submit(consider_entry, entry, link)) - concurrent.futures.as_completed(futures) + for f in concurrent.futures.as_completed(futures): + exception = f.exception() + if exception: + raise exception @staticmethod # 解析页面,获取优惠、做种者信息、下载者信息 @@ -149,18 +152,17 @@ def get_peers(table): elif text == '完成': completed_index = i else: - tds = tr.find_all('td') - peers.append({ - 'name': tds[name_index].get_text(), - 'connectable': True if tds[connectable_index].get_text() != '是' else False, - 'uploaded': tds[uploaded_index].get_text(), - 'downloaded': tds[downloaded_index].get_text(), - 'completed': float(tds[completed_index].get_text().strip('%')) / 100 - # 'completed': tds[7].get_text() - }) + tds = tr.find_all('td') + peers.append({ + 'name': tds[name_index].get_text(), + 'connectable': True if tds[connectable_index].get_text() != '是' else False, + 'uploaded': tds[uploaded_index].get_text(), + 'downloaded': tds[downloaded_index].get_text(), + 'completed': float(tds[completed_index].get_text().strip('%')) / 100 + }) except IndexError: pass - except ValueError as e: + except ValueError: pass return peers @@ -178,9 +180,13 @@ def _get_info(task, link, cookie): 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) ' 'Chrome/75.0.3770.142 Safari/537.36' } - detail_page = task.requests.get(link, headers=headers) # 详情 + detail_page = task.requests.get(link, headers=headers, allow_redirects=False) # 详情 peer_url = link.replace('details.php', 'viewpeerlist.php', 1) - peer_page = task.requests.get(peer_url, headers=headers) # peer详情 + peer_page = task.requests.get(peer_url, headers=headers, allow_redirects=False) # peer详情 + + if detail_page.status_code == 302 or peer_page.status_code == 302: + raise plugin.PluginError("Can't access the site. Your cookie may be wrong!") + return NexusPHP.info_from_page(detail_page, peer_page)