mirror of
https://gitee.com/ledc/IYUUAutoReseed
synced 2025-08-24 15:04:50 +00:00
Compare commits
6 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
de41bc0131 | ||
|
6b83e9081b | ||
|
87f06ec5c4 | ||
|
8a051d4d1f | ||
|
0e32e625a4 | ||
|
a09dacbd20 |
@@ -11,7 +11,7 @@ use IYUU\Library\Table;
|
||||
class AutoReseed
|
||||
{
|
||||
// 版本号
|
||||
const VER = '1.8.6';
|
||||
const VER = '1.9.1';
|
||||
// RPC连接
|
||||
private static $links = [];
|
||||
// 客户端配置
|
||||
@@ -106,7 +106,7 @@ class AutoReseed
|
||||
foreach ($list as $value) {
|
||||
echo $value.PHP_EOL;
|
||||
}
|
||||
$res = self::$curl->get(self::$apiUrl.self::$endpoints['sites'].'?sign='.Oauth::getSign());
|
||||
$res = self::$curl->get(self::$apiUrl.self::$endpoints['sites'].'?sign='.Oauth::getSign().'&version='.self::VER);
|
||||
$rs = json_decode($res->response, true);
|
||||
$sites = isset($rs['data']['sites']) && $rs['data']['sites'] ? $rs['data']['sites'] : false;
|
||||
// 数据写入本地
|
||||
@@ -277,7 +277,7 @@ class AutoReseed
|
||||
// 支持站点数量
|
||||
self::$wechatMsg['sitesCount'] = count(self::$sites);
|
||||
$sites = self::$sites;
|
||||
// 按客户端循环辅种 开始
|
||||
// 遍历客户端 开始
|
||||
foreach (self::$links as $k => $v) {
|
||||
if (empty($v)) {
|
||||
echo "clients_".$k." 用户名或密码未配置,已跳过".PHP_EOL.PHP_EOL;
|
||||
@@ -331,13 +331,11 @@ class AutoReseed
|
||||
echo '-----辅种失败,原因:' .$errmsg.PHP_EOL.PHP_EOL;
|
||||
continue;
|
||||
}
|
||||
// 当前客户端可辅种数据
|
||||
// 遍历当前客户端可辅种数据
|
||||
foreach ($reseed as $info_hash => $vv) {
|
||||
// 当前种子哈希对应的目录
|
||||
$downloadDir = $infohash_Dir[$info_hash];
|
||||
foreach ($vv['torrent'] as $id => $value) {
|
||||
$_url = $url = '';
|
||||
$download_page = $details_url = '';
|
||||
// 匹配的辅种数据累加
|
||||
self::$wechatMsg['reseedCount']++;
|
||||
// 站点id
|
||||
@@ -355,13 +353,15 @@ class AutoReseed
|
||||
self::setNotify($siteName, $sid, $torrent_id);
|
||||
// 页面规则
|
||||
$download_page = str_replace('{}', $torrent_id, $sites[$sid]['download_page']);
|
||||
$_url = 'https://' .$sites[$sid]['base_url']. '/' .$download_page;
|
||||
// 协议
|
||||
$protocol = $sites[$sid]['is_https'] == 0 ? 'http://' : 'https://';
|
||||
$_url = $protocol . $sites[$sid]['base_url']. '/' .$download_page;
|
||||
|
||||
/**
|
||||
* 前置检测
|
||||
*/
|
||||
// passkey检测
|
||||
if (empty($configALL[$siteName]['passkey'])) {
|
||||
// 配置与passkey检测
|
||||
if (empty($configALL[$siteName]) || empty($configALL[$siteName]['passkey'])) {
|
||||
//echo '-------因当前' .$siteName. "站点未设置passkey,已跳过!!".PHP_EOL.PHP_EOL;
|
||||
self::$wechatMsg['reseedSkip']++;
|
||||
continue;
|
||||
@@ -406,19 +406,47 @@ class AutoReseed
|
||||
wlog('clients_'.$k.PHP_EOL.$downloadDir.PHP_EOL.$_url.PHP_EOL.PHP_EOL, $siteName);
|
||||
continue;
|
||||
}
|
||||
// 操作站点流控的配置
|
||||
if (isset($configALL[$siteName]['limitRule']) && $configALL[$siteName]['limitRule']) {
|
||||
$limitRule = $configALL[$siteName]['limitRule'];
|
||||
if (isset($limitRule['count']) && isset($limitRule['sleep'])) {
|
||||
if ($limitRule['count'] <= 0) {
|
||||
echo '-------当前站点辅种数量已满足规则,保障账号安全已跳过:'.$_url.PHP_EOL.PHP_EOL;
|
||||
self::$wechatMsg['reseedPass']++;
|
||||
continue;
|
||||
} else {
|
||||
// 异步间隔流控算法:各站独立、执行时间最优
|
||||
$lastTime = isset($limitRule['time']) ? $limitRule['time'] : 0; // 最近一次辅种成功的时间
|
||||
if ($lastTime) {
|
||||
$interval = time() - $lastTime; // 间隔时间
|
||||
if ($interval < $limitRule['sleep']) {
|
||||
$t = $limitRule['sleep'] - $interval + mt_rand(1,5);
|
||||
do {
|
||||
echo microtime(true)." 为账号安全,辅种进程休眠 {$t} 秒后继续...".PHP_EOL;
|
||||
sleep(1);
|
||||
} while (--$t > 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
echo '-------当前站点流控规则错误,缺少count或sleep参数!请重新配置!'.$_url.PHP_EOL.PHP_EOL;
|
||||
self::$wechatMsg['reseedPass']++;
|
||||
continue;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* 种子URL组合方式区分
|
||||
*/
|
||||
$url = self::getTorrentUrl($siteName, $_url);
|
||||
$reseedPass = false;
|
||||
$reseedPass = false; // 标志:跳过辅种
|
||||
// 特殊站点:种子元数据推送给下载器
|
||||
switch ($siteName) {
|
||||
case 'hdchina':
|
||||
$cookie = isset($configALL[$siteName]['cookie']) ? $configALL[$siteName]['cookie'] : '';
|
||||
$cookie = $configALL[$siteName]['cookie'];
|
||||
$userAgent = $configALL['default']['userAgent'];
|
||||
// 拼接URL
|
||||
$details_page = str_replace('{}', $value['torrent_id'], 'details.php?id={}&hit=1');
|
||||
$details_url = 'https://' .$sites[$sid]['base_url']. '/' .$details_page;
|
||||
$details_url = $protocol .$sites[$sid]['base_url']. '/' .$details_page;
|
||||
print "种子详情页:".$details_url.PHP_EOL;
|
||||
$details_html = download($details_url, $cookie, $userAgent);
|
||||
if (empty($details_html)) {
|
||||
@@ -429,30 +457,31 @@ class AutoReseed
|
||||
sleep(1);
|
||||
} while (--$t > 0);
|
||||
$configALL[$siteName]['cookie'] = '';
|
||||
// 标志:跳过辅种
|
||||
$reseedPass = true;
|
||||
break;
|
||||
}
|
||||
if (strpos($details_html, '没有该ID的种子') != false) {
|
||||
echo '种子已被删除!'.PHP_EOL;
|
||||
self::sendNotify('404');
|
||||
// 标志:跳过辅种
|
||||
self::sendNotify('404');
|
||||
$reseedPass = true;
|
||||
break;
|
||||
}
|
||||
// 提取种子下载地址
|
||||
$offset = strpos($details_html, str_replace('{hash}', '', $sites[$sid]['download_page']));
|
||||
if ($offset === false) {
|
||||
echo 'cookie已过期,请更新后重新辅种!'.PHP_EOL;
|
||||
$reseedPass = true;
|
||||
break;
|
||||
}
|
||||
// 提取种子下载地址
|
||||
$download_page = str_replace('{}', '', $sites[$sid]['download_page']);
|
||||
$offset = strpos($details_html, $download_page);
|
||||
$urlTemp = substr($details_html, $offset, 50);
|
||||
// 种子地址
|
||||
$_url = substr($urlTemp, 0, strpos($urlTemp, '">'));
|
||||
if (empty($_url)) {
|
||||
$download_page = substr($urlTemp, 0, strpos($urlTemp, '">'));
|
||||
if (empty($download_page)) {
|
||||
echo '未知错误,未提取到种子URL,请联系脚本作者!'.PHP_EOL;
|
||||
// 标志:跳过辅种
|
||||
$reseedPass = true;
|
||||
break;
|
||||
}
|
||||
$_url = 'https://' .$sites[$sid]['base_url']. '/' . $_url;
|
||||
$_url = $protocol . $sites[$sid]['base_url']. '/' . $download_page;
|
||||
print "种子下载页:".$_url.PHP_EOL;
|
||||
$url = download($_url, $cookie, $userAgent);
|
||||
#p($url);
|
||||
@@ -466,7 +495,6 @@ class AutoReseed
|
||||
} while (--$t > 0);
|
||||
ff($siteName. '站点,辅种时触发第一次下载提示!');
|
||||
self::$noReseed[] = 'hdchina';
|
||||
// 标志:跳过辅种
|
||||
$reseedPass = true;
|
||||
}
|
||||
if (strpos($url, '系统检测到过多的种子下载请求') != false) {
|
||||
@@ -474,12 +502,11 @@ class AutoReseed
|
||||
ff($siteName. '站点,辅种时触发人机验证!');
|
||||
$configALL[$siteName]['limit'] = 1;
|
||||
self::$noReseed[] = 'hdchina';
|
||||
// 标志:跳过辅种
|
||||
$reseedPass = true;
|
||||
}
|
||||
break;
|
||||
case 'hdcity':
|
||||
$cookie = isset($configALL[$siteName]['cookie']) ? $configALL[$siteName]['cookie'] : '';
|
||||
$cookie = $configALL[$siteName]['cookie'];
|
||||
$userAgent = $configALL['default']['userAgent'];
|
||||
print "种子:".$_url.PHP_EOL;
|
||||
if (isset($configALL[$siteName]['cuhash'])) {
|
||||
@@ -487,14 +514,14 @@ class AutoReseed
|
||||
# code...
|
||||
} else {
|
||||
// 获取cuhash
|
||||
$html = download('https://' .$sites[$sid]['base_url']. '/pt', $cookie, $userAgent);
|
||||
$html = download($protocol .$sites[$sid]['base_url']. '/pt', $cookie, $userAgent);
|
||||
// 提取种子下载地址
|
||||
$offset = strpos($html, 'cuhash=');
|
||||
$len = strlen('cuhash=');
|
||||
$cuhashTemp = substr($html, $offset+$len, 40);
|
||||
$configALL[$siteName]['cuhash'] = substr($cuhashTemp, 0, strpos($cuhashTemp, '"'));
|
||||
}
|
||||
$url = $_url."&cuhash=". $configALL[$siteName]['cuhash'];
|
||||
$url = str_replace('{cuhash}', $configALL[$siteName]['cuhash'], $_url);
|
||||
// 城市下载种子时会302转向
|
||||
$url = download($url, $cookie, $userAgent);
|
||||
if (strpos($url, 'Non-exist torrent id!') != false) {
|
||||
@@ -533,6 +560,14 @@ class AutoReseed
|
||||
$log = 'clients_'.$k.PHP_EOL.$downloadDir.PHP_EOL.$url.PHP_EOL.PHP_EOL;
|
||||
if ($ret) {
|
||||
// 成功的种子
|
||||
// 操作流控参数
|
||||
if (isset($configALL[$siteName]['limitRule']) && $configALL[$siteName]['limitRule']) {
|
||||
$limitRule = $configALL[$siteName]['limitRule'];
|
||||
if ($limitRule['count']) {
|
||||
$configALL[$siteName]['limitRule']['count']--;
|
||||
$configALL[$siteName]['limitRule']['time'] = time();
|
||||
}
|
||||
}
|
||||
wlog($log, $value['info_hash'], self::$cacheHash);
|
||||
wlog($log, 'reseedSuccess');
|
||||
// 成功累加
|
||||
@@ -556,6 +591,7 @@ class AutoReseed
|
||||
private static function move()
|
||||
{
|
||||
global $configALL;
|
||||
//遍历客户端
|
||||
foreach (self::$links as $k => $v) {
|
||||
if (self::$move[0] == $k) {
|
||||
echo "clients_".$k."是目标转移客户端,避免冲突,已跳过!".PHP_EOL.PHP_EOL;
|
||||
@@ -578,12 +614,16 @@ class AutoReseed
|
||||
echo "clients_".$k." 全部转移成功,本次无需转移!".PHP_EOL.PHP_EOL;
|
||||
continue;
|
||||
}
|
||||
// 循环转移做种客户端
|
||||
foreach ($infohash_Dir as $info_hash => $downloadDir) {
|
||||
//遍历当前客户端种子
|
||||
foreach ($infohash_Dir as $info_hash => $downloadDir) {
|
||||
// 调用路径过滤
|
||||
if (self::pathFilter($downloadDir)) {
|
||||
continue;
|
||||
}
|
||||
// 做种实际路径与相对路径之间互转
|
||||
echo '转换前:'.$downloadDir.PHP_EOL;
|
||||
$downloadDir = self::pathReplace($downloadDir);
|
||||
echo '转换后:'.$downloadDir.PHP_EOL;
|
||||
echo '转换后:'.$downloadDir.PHP_EOL;
|
||||
if (is_null($downloadDir)) {
|
||||
echo 'IYUU自动转移做种客户端--使用教程 https://www.iyuu.cn/archives/351/'.PHP_EOL;
|
||||
die("全局配置的move数组内,路径转换参数配置错误,请重新配置!!!".PHP_EOL);
|
||||
@@ -680,7 +720,7 @@ class AutoReseed
|
||||
global $configALL;
|
||||
$type = $configALL['default']['move']['type'];
|
||||
$pathArray = $configALL['default']['move']['path'];
|
||||
$path = rtrim($path, DIRECTORY_SEPARATOR); // 提高Windows转移兼容性
|
||||
$path = rtrim($path, DIRECTORY_SEPARATOR); // 提高Windows转移兼容性
|
||||
switch ($type) {
|
||||
case 1: // 减
|
||||
foreach ($pathArray as $key => $val) {
|
||||
@@ -709,36 +749,97 @@ class AutoReseed
|
||||
}
|
||||
return null;
|
||||
}
|
||||
/**
|
||||
* 处理转移种子时所设置的过滤器、选择器
|
||||
* @return bool true 过滤 | false 不过滤
|
||||
*/
|
||||
private static function pathFilter(&$path = '')
|
||||
{
|
||||
global $configALL;
|
||||
$path = rtrim($path, DIRECTORY_SEPARATOR); // 提高Windows转移兼容性
|
||||
// 转移过滤器、选择器 David/2020年7月11日
|
||||
$path_filter = isset($configALL['default']['move']['path_filter']) && !empty($configALL['default']['move']['path_filter']) ? $configALL['default']['move']['path_filter'] : null;
|
||||
$path_selector = isset($configALL['default']['move']['path_selector']) && !empty($configALL['default']['move']['path_selector']) ? $configALL['default']['move']['path_selector'] : null;
|
||||
if (\is_null($path_filter) && \is_null($path_selector)) {
|
||||
return false;
|
||||
}
|
||||
elseif (\is_null($path_filter)) {
|
||||
//选择器
|
||||
if (\is_array($path_selector)) {
|
||||
foreach ($path_selector as $pathName) {
|
||||
if (strpos($path, $pathName)===0) { // 没用$path == $key判断,是为了提高兼容性
|
||||
return false;
|
||||
}
|
||||
}
|
||||
echo '已跳过!转移选择器未匹配到:'.$path.PHP_EOL;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
elseif (\is_null($path_selector)) {
|
||||
//过滤器
|
||||
if (\is_array($path_filter)) {
|
||||
foreach ($path_filter as $pathName) {
|
||||
if (strpos($path, $pathName)===0) { // 没用$path == $key判断,是为了提高兼容性
|
||||
echo '已跳过!转移过滤器匹配到:'.$path.PHP_EOL;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
} else {
|
||||
//同时设置过滤器、选择器
|
||||
if (\is_array($path_selector) && \is_array($path_filter)) {
|
||||
//先过滤器
|
||||
foreach ($path_filter as $pathName) {
|
||||
if (strpos($path, $pathName)===0) {
|
||||
echo '已跳过!转移过滤器匹配到:'.$path.PHP_EOL;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
//后选择器
|
||||
foreach ($path_selector as $pathName) {
|
||||
if (strpos($path, $pathName)===0) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
echo '已跳过!转移选择器未匹配到:'.$path.PHP_EOL;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取站点种子的URL
|
||||
* @param string $site
|
||||
* @param string $_url
|
||||
* @return string
|
||||
*/
|
||||
private static function getTorrentUrl($site = '', $_url = '')
|
||||
{
|
||||
global $configALL;
|
||||
switch ($site) {
|
||||
case 'ttg':
|
||||
$url = $_url."/". $configALL[$site]['passkey'];
|
||||
break;
|
||||
case 'm-team':
|
||||
case 'moecat':
|
||||
case 'hdbd':
|
||||
$ip_type = '';
|
||||
if (isset($configALL[$site]['ip_type'])) {
|
||||
$ip_type = $configALL[$site]['ip_type'] == 'ipv6' ? '&ipv6=1' : '';
|
||||
// 兼容旧配置
|
||||
if (isset($configALL[$site]['passkey']) && $configALL[$site]['passkey']) {
|
||||
if (!isset($configALL[$site]['url_replace'])) {
|
||||
$configALL[$site]['url_replace'] = array('{passkey}' => $configALL[$site]['passkey']);
|
||||
}
|
||||
if (!isset($configALL[$site]['url_join'])) {
|
||||
$configALL[$site]['url_join'] = array();
|
||||
if (in_array($site, array('m-team','mocat','hdbd'))) {
|
||||
if (isset($configALL[$site]['ip_type'])) {
|
||||
$configALL[$site]['url_join'][] = $configALL[$site]['ip_type'].'=1';
|
||||
}
|
||||
$configALL[$site]['url_join'][] = 'https=1';
|
||||
}
|
||||
$url = $_url."&passkey=". $configALL[$site]['passkey'] . $ip_type. "&https=1";
|
||||
break;
|
||||
case 'dicmusic':
|
||||
$_url = str_replace('{torrent_pass}', $configALL[$site]['passkey'], $_url);
|
||||
$url = str_replace('{authkey}', $configALL[$site]['authkey'], $_url);
|
||||
break;
|
||||
default:
|
||||
if (strpos($_url,'{passkey}') !== false) {
|
||||
$url = str_replace('{passkey}', $configALL[$site]['passkey'], $_url);
|
||||
} else {
|
||||
$url = $_url."&passkey=". $configALL[$site]['passkey'];
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
// 通用操作:替换
|
||||
if (isset($configALL[$site]['url_replace']) && $configALL[$site]['url_replace']) {
|
||||
$url = strtr($_url, $configALL[$site]['url_replace']);
|
||||
}
|
||||
// 通用操作:拼接
|
||||
if (isset($configALL[$site]['url_join']) && $configALL[$site]['url_join']) {
|
||||
$url = $url.(strpos($url, '?') === false ? '?' : '&').implode('&',$configALL[$site]['url_join']);
|
||||
}
|
||||
return $url;
|
||||
}
|
||||
@@ -758,7 +859,7 @@ class AutoReseed
|
||||
$desp .= '**重复:'.self::$wechatMsg['reseedRepeat']. '** [客户端已做种]' .$br;
|
||||
$desp .= '**跳过:'.self::$wechatMsg['reseedSkip']. '** [未设置passkey]' .$br;
|
||||
$desp .= '**忽略:'.self::$wechatMsg['reseedPass']. '** [成功添加存在缓存]' .$br;
|
||||
$desp .= $br.'**如需重新辅种,请删除:./torrent/cachehash 内的所有辅种缓存。**'.$br;
|
||||
$desp .= $br.'**如需重新辅种,请删除 ./torrent/cachehash 内的所有辅种缓存。**'.$br;
|
||||
$desp .= '*此消息将在3天后过期*。';
|
||||
return ff($text, $desp);
|
||||
}
|
||||
|
@@ -56,6 +56,8 @@ return array(
|
||||
// 当前路径 => 目标路径
|
||||
'/downloads' => '/volume1',
|
||||
),
|
||||
'path_filter'=> array(), //转移过滤器:不转移此路径内文件
|
||||
'path_selector' => array(), //转移选择器:只转移此路径内文件(为空时,全转移) 【优先级:过滤器 > 选择器】
|
||||
'paused' => 0, //转移成功,自动开始任务:0开始,1暂停
|
||||
'skip_check' => 0, //转移成功,跳校验:0不跳、1跳校验
|
||||
'delete_torrent' => 0, //转移成功,删除当前做种:0不删除、1删除
|
||||
@@ -109,6 +111,11 @@ return array(
|
||||
'max' => '280GB',
|
||||
),
|
||||
),
|
||||
'url_replace' => array(),
|
||||
'url_join' => array(
|
||||
//'ipv6=1', // 种子Tracker的IP地址选择 可选:ipv4,ipv6
|
||||
//'https=1',
|
||||
),
|
||||
),
|
||||
// hddolby
|
||||
'hddolby' => array(
|
||||
@@ -117,6 +124,8 @@ return array(
|
||||
// 如果需要自动辅种,必须配置
|
||||
'passkey' => '',
|
||||
'id' => 0, // 用户ID(不是用户名)
|
||||
'url_replace' => array(),
|
||||
'url_join' => array(),
|
||||
),
|
||||
// hdhome
|
||||
'hdhome' => array(
|
||||
@@ -125,6 +134,8 @@ return array(
|
||||
// 如果需要自动辅种,必须配置
|
||||
'passkey' => '',
|
||||
'id' => 0, // 用户ID(不是用户名)
|
||||
'url_replace' => array(),
|
||||
'url_join' => array(),
|
||||
),
|
||||
// PTHome
|
||||
'pthome' => array(
|
||||
@@ -133,6 +144,8 @@ return array(
|
||||
// 如果需要自动辅种,必须配置
|
||||
'passkey' => '',
|
||||
'id' => 0, // 用户ID(不是用户名)
|
||||
'url_replace' => array(),
|
||||
'url_join' => array(),
|
||||
),
|
||||
// MoeCat
|
||||
'moecat' => array(
|
||||
@@ -141,8 +154,11 @@ return array(
|
||||
// 如果需要自动辅种,必须配置
|
||||
'passkey' => '',
|
||||
'id' => 0, // 用户ID(不是用户名)
|
||||
// 种子Tracker的IP地址选择 可选:ipv4,ipv6
|
||||
'ip_type' => 'ipv4',
|
||||
'url_replace' => array(),
|
||||
'url_join' => array(
|
||||
//'ipv6=1', // 种子Tracker的IP地址选择 可选:ipv4,ipv6
|
||||
//'https=1',
|
||||
),
|
||||
),
|
||||
// m-team
|
||||
'm-team' => array(
|
||||
@@ -150,8 +166,11 @@ return array(
|
||||
'cookie' => 'tp=',
|
||||
// 15.m-team的passkey 【必须配置】
|
||||
'passkey' => '',
|
||||
// 种子Tracker的IP地址选择 可选:ipv4,ipv6
|
||||
'ip_type' => 'ipv4',
|
||||
'url_replace' => array(),
|
||||
'url_join' => array(
|
||||
//'ipv6=1', // 种子Tracker的IP地址选择 可选:ipv4,ipv6
|
||||
'https=1',
|
||||
),
|
||||
'clients' => array(
|
||||
array(
|
||||
'type' => 'transmission', // 支持:transmission、qBittorrent
|
||||
@@ -176,6 +195,8 @@ return array(
|
||||
'cookie' => '',
|
||||
// 如果需要自动辅种,必须配置
|
||||
'passkey' => '',
|
||||
'url_replace' => array(),
|
||||
'url_join' => array(),
|
||||
'workingMode' => 1,
|
||||
'watch' => '',
|
||||
'filter' => array(
|
||||
@@ -191,6 +212,8 @@ return array(
|
||||
'cookie' => '',
|
||||
// 如果需要自动辅种,必须配置
|
||||
'passkey' => '',
|
||||
'url_replace' => array(),
|
||||
'url_join' => array(),
|
||||
),
|
||||
// tjupt
|
||||
'tjupt' => array(
|
||||
@@ -198,6 +221,8 @@ return array(
|
||||
'cookie' => '',
|
||||
// 如果需要自动辅种,必须配置
|
||||
'passkey' => '',
|
||||
'url_replace' => array(),
|
||||
'url_join' => array(),
|
||||
),
|
||||
// btschool
|
||||
'btschool' => array(
|
||||
@@ -205,6 +230,8 @@ return array(
|
||||
'cookie' => '',
|
||||
// 如果需要自动辅种,必须配置
|
||||
'passkey' => '',
|
||||
'url_replace' => array(),
|
||||
'url_join' => array(),
|
||||
),
|
||||
// HDSky
|
||||
'hdsky' => array(
|
||||
@@ -212,6 +239,12 @@ return array(
|
||||
'cookie' => '',
|
||||
// 如果需要自动辅种,必须配置
|
||||
'passkey' => '',
|
||||
'limitRule' => array(
|
||||
'count' => 50, // 每次辅种50个
|
||||
'sleep' => 15, // 最少休眠15秒
|
||||
),
|
||||
'url_replace' => array(),
|
||||
'url_join' => array(),
|
||||
),
|
||||
// TorrentCCF
|
||||
'torrentccf' => array(
|
||||
@@ -219,6 +252,8 @@ return array(
|
||||
'cookie' => '',
|
||||
// 如果需要自动辅种,必须配置
|
||||
'passkey' => '',
|
||||
'url_replace' => array(),
|
||||
'url_join' => array(),
|
||||
),
|
||||
// PTMSG
|
||||
'ptmsg' => array(
|
||||
@@ -226,6 +261,8 @@ return array(
|
||||
'cookie' => '',
|
||||
// 如果需要自动辅种,必须配置
|
||||
'passkey' => '',
|
||||
'url_replace' => array(),
|
||||
'url_join' => array(),
|
||||
),
|
||||
// totheglory
|
||||
'ttg' => array(
|
||||
@@ -234,6 +271,8 @@ return array(
|
||||
// 如果需要自动辅种,必须配置
|
||||
'passkey' => '',
|
||||
// 如果需要rss订阅,必须配置
|
||||
'url_replace' => array(),
|
||||
'url_join' => array(),
|
||||
'rss' => '',
|
||||
),
|
||||
// nanyangpt
|
||||
@@ -242,6 +281,8 @@ return array(
|
||||
'cookie' => '',
|
||||
// 如果需要自动辅种,必须配置
|
||||
'passkey' => '',
|
||||
'url_replace' => array(),
|
||||
'url_join' => array(),
|
||||
),
|
||||
// springsunday.net
|
||||
'ssd' => array(
|
||||
@@ -249,6 +290,8 @@ return array(
|
||||
'cookie' => '',
|
||||
// 如果需要自动辅种,必须配置
|
||||
'passkey' => '',
|
||||
'url_replace' => array(),
|
||||
'url_join' => array(),
|
||||
),
|
||||
// yingk
|
||||
'yingk' => array(
|
||||
@@ -256,6 +299,8 @@ return array(
|
||||
'cookie' => '',
|
||||
// 如果需要自动辅种,必须配置
|
||||
'passkey' => '',
|
||||
'url_replace' => array(),
|
||||
'url_join' => array(),
|
||||
),
|
||||
// hdcity
|
||||
'hdcity' => array(
|
||||
@@ -263,6 +308,8 @@ return array(
|
||||
'cookie' => '',
|
||||
// 如果需要自动辅种,必须配置cuhash
|
||||
'passkey' => '',
|
||||
'url_replace' => array(),
|
||||
'url_join' => array(),
|
||||
),
|
||||
// 52pt.site
|
||||
'52pt' => array(
|
||||
@@ -270,6 +317,8 @@ return array(
|
||||
'cookie' => '',
|
||||
// 如果需要自动辅种,必须配置
|
||||
'passkey' => '',
|
||||
'url_replace' => array(),
|
||||
'url_join' => array(),
|
||||
),
|
||||
// brobits
|
||||
'brobits' => array(
|
||||
@@ -277,6 +326,8 @@ return array(
|
||||
'cookie' => '',
|
||||
// 如果需要自动辅种,必须配置
|
||||
'passkey' => '',
|
||||
'url_replace' => array(),
|
||||
'url_join' => array(),
|
||||
),
|
||||
// beitai
|
||||
'beitai' => array(
|
||||
@@ -284,6 +335,8 @@ return array(
|
||||
'cookie' => '',
|
||||
// 如果需要自动辅种,必须配置
|
||||
'passkey' => '',
|
||||
'url_replace' => array(),
|
||||
'url_join' => array(),
|
||||
),
|
||||
// eastgame
|
||||
'eastgame' => array(
|
||||
@@ -291,6 +344,8 @@ return array(
|
||||
'cookie' => '',
|
||||
// 如果需要自动辅种,必须配置
|
||||
'passkey' => '',
|
||||
'url_replace' => array(),
|
||||
'url_join' => array(),
|
||||
),
|
||||
// soulvoice
|
||||
'soulvoice' => array(
|
||||
@@ -298,6 +353,8 @@ return array(
|
||||
'cookie' => '',
|
||||
// 如果需要自动辅种,必须配置
|
||||
'passkey' => '',
|
||||
'url_replace' => array(),
|
||||
'url_join' => array(),
|
||||
),
|
||||
// chdbits
|
||||
'chdbits' => array(
|
||||
@@ -305,6 +362,8 @@ return array(
|
||||
'cookie' => '',
|
||||
// 如果需要自动辅种,必须配置
|
||||
'passkey' => '',
|
||||
'url_replace' => array(),
|
||||
'url_join' => array(),
|
||||
),
|
||||
// leaguehd
|
||||
'leaguehd' => array(
|
||||
@@ -312,6 +371,8 @@ return array(
|
||||
'cookie' => '',
|
||||
// 如果需要自动辅种,必须配置
|
||||
'passkey' => '',
|
||||
'url_replace' => array(),
|
||||
'url_join' => array(),
|
||||
),
|
||||
// ptsbao
|
||||
'ptsbao' => array(
|
||||
@@ -319,6 +380,8 @@ return array(
|
||||
'cookie' => '',
|
||||
// 如果需要自动辅种,必须配置
|
||||
'passkey' => '',
|
||||
'url_replace' => array(),
|
||||
'url_join' => array(),
|
||||
),
|
||||
// hdchina
|
||||
'hdchina' => array(
|
||||
@@ -326,6 +389,8 @@ return array(
|
||||
'cookie' => '',
|
||||
// 如果需要自动辅种,必须配置
|
||||
'passkey' => '',
|
||||
'url_replace' => array(),
|
||||
'url_join' => array(),
|
||||
),
|
||||
// hdarea
|
||||
'hdarea' => array(
|
||||
@@ -333,6 +398,8 @@ return array(
|
||||
'cookie' => '',
|
||||
// 如果需要自动辅种,必须配置
|
||||
'passkey' => '',
|
||||
'url_replace' => array(),
|
||||
'url_join' => array(),
|
||||
),
|
||||
// hdtime
|
||||
'hdtime' => array(
|
||||
@@ -340,6 +407,8 @@ return array(
|
||||
'cookie' => '',
|
||||
// 如果需要自动辅种,必须配置
|
||||
'passkey' => '',
|
||||
'url_replace' => array(),
|
||||
'url_join' => array(),
|
||||
),
|
||||
// 1ptba
|
||||
'1ptba' => array(
|
||||
@@ -347,6 +416,8 @@ return array(
|
||||
'cookie' => '',
|
||||
// 如果需要自动辅种,必须配置
|
||||
'passkey' => '',
|
||||
'url_replace' => array(),
|
||||
'url_join' => array(),
|
||||
),
|
||||
// hd4fans
|
||||
'hd4fans' => array(
|
||||
@@ -354,6 +425,8 @@ return array(
|
||||
'cookie' => '',
|
||||
// 如果需要自动辅种,必须配置
|
||||
'passkey' => '',
|
||||
'url_replace' => array(),
|
||||
'url_join' => array(),
|
||||
),
|
||||
// hddisk.life
|
||||
'hdbug' => array(
|
||||
@@ -361,6 +434,8 @@ return array(
|
||||
'cookie' => '',
|
||||
// 如果需要自动辅种,必须配置
|
||||
'passkey' => '',
|
||||
'url_replace' => array(),
|
||||
'url_join' => array(),
|
||||
),
|
||||
// opencd皇后
|
||||
'opencd' => array(
|
||||
@@ -368,6 +443,8 @@ return array(
|
||||
'cookie' => '',
|
||||
// 如果需要自动辅种,必须配置
|
||||
'passkey' => '',
|
||||
'url_replace' => array(),
|
||||
'url_join' => array(),
|
||||
),
|
||||
// hdstreet
|
||||
'hdstreet' => array(
|
||||
@@ -375,6 +452,8 @@ return array(
|
||||
'cookie' => '',
|
||||
// 如果需要自动辅种,必须配置
|
||||
'passkey' => '',
|
||||
'url_replace' => array(),
|
||||
'url_join' => array(),
|
||||
),
|
||||
// joyhd
|
||||
'joyhd' => array(
|
||||
@@ -382,6 +461,8 @@ return array(
|
||||
'cookie' => '',
|
||||
// 如果需要自动辅种,必须配置
|
||||
'passkey' => '',
|
||||
'url_replace' => array(),
|
||||
'url_join' => array(),
|
||||
),
|
||||
// dmhy幼儿园
|
||||
'dmhy' => array(
|
||||
@@ -389,6 +470,8 @@ return array(
|
||||
'cookie' => '',
|
||||
// 如果需要自动辅种,必须配置
|
||||
'passkey' => '',
|
||||
'url_replace' => array(),
|
||||
'url_join' => array(),
|
||||
),
|
||||
// hdu
|
||||
'upxin' => array(
|
||||
@@ -396,6 +479,8 @@ return array(
|
||||
'cookie' => '',
|
||||
// 如果需要自动辅种,必须配置
|
||||
'passkey' => '',
|
||||
'url_replace' => array(),
|
||||
'url_join' => array(),
|
||||
),
|
||||
// oshen
|
||||
'oshen' => array(
|
||||
@@ -403,6 +488,8 @@ return array(
|
||||
'cookie' => '',
|
||||
// 如果需要自动辅种,必须配置
|
||||
'passkey' => '',
|
||||
'url_replace' => array(),
|
||||
'url_join' => array(),
|
||||
),
|
||||
// discfan港知堂
|
||||
'discfan' => array(
|
||||
@@ -410,6 +497,8 @@ return array(
|
||||
'cookie' => '',
|
||||
// 如果需要自动辅种,必须配置
|
||||
'passkey' => '',
|
||||
'url_replace' => array(),
|
||||
'url_join' => array(),
|
||||
),
|
||||
// hdzone
|
||||
'hdzone' => array(
|
||||
@@ -417,6 +506,8 @@ return array(
|
||||
'cookie' => '',
|
||||
// 如果需要自动辅种,必须配置
|
||||
'passkey' => '',
|
||||
'url_replace' => array(),
|
||||
'url_join' => array(),
|
||||
),
|
||||
// nicept老师
|
||||
'nicept' => array(
|
||||
@@ -424,6 +515,8 @@ return array(
|
||||
'cookie' => '',
|
||||
// 如果需要自动辅种,必须配置
|
||||
'passkey' => '',
|
||||
'url_replace' => array(),
|
||||
'url_join' => array(),
|
||||
),
|
||||
// hdbd伊甸园
|
||||
'hdbd' => array(
|
||||
@@ -431,6 +524,11 @@ return array(
|
||||
'cookie' => '',
|
||||
// 如果需要自动辅种,必须配置
|
||||
'passkey' => '',
|
||||
'url_replace' => array(),
|
||||
'url_join' => array(
|
||||
//'ipv6=1', // 种子Tracker的IP地址选择 可选:ipv4,ipv6
|
||||
//'https=1',
|
||||
),
|
||||
),
|
||||
// byr北邮
|
||||
'byr' => array(
|
||||
@@ -438,6 +536,8 @@ return array(
|
||||
'cookie' => '',
|
||||
// 如果需要自动辅种,必须配置
|
||||
'passkey' => '',
|
||||
'url_replace' => array(),
|
||||
'url_join' => array(),
|
||||
),
|
||||
// CCFBits
|
||||
'ccfbits' => array(
|
||||
@@ -445,6 +545,8 @@ return array(
|
||||
'cookie' => '',
|
||||
// 如果需要自动辅种,必须配置
|
||||
'passkey' => '',
|
||||
'url_replace' => array(),
|
||||
'url_join' => array(),
|
||||
),
|
||||
// hdbits
|
||||
'hdbits' => array(
|
||||
@@ -452,6 +554,8 @@ return array(
|
||||
'cookie' => '',
|
||||
// 如果需要自动辅种,必须配置
|
||||
'passkey' => '',
|
||||
'url_replace' => array(),
|
||||
'url_join' => array(),
|
||||
),
|
||||
// PTPBD
|
||||
'ptpbd' => array(
|
||||
@@ -459,6 +563,8 @@ return array(
|
||||
'cookie' => '',
|
||||
// 如果需要自动辅种,必须配置
|
||||
'passkey' => '',
|
||||
'url_replace' => array(),
|
||||
'url_join' => array(),
|
||||
),
|
||||
// HD-T
|
||||
'hd-torrents' => array(
|
||||
@@ -466,6 +572,8 @@ return array(
|
||||
'cookie' => '',
|
||||
// 如果需要自动辅种,必须配置
|
||||
'passkey' => '',
|
||||
'url_replace' => array(),
|
||||
'url_join' => array(),
|
||||
),
|
||||
// skyeysnow天雪
|
||||
'skyeysnow' => array(
|
||||
@@ -473,6 +581,8 @@ return array(
|
||||
'cookie' => '',
|
||||
// 如果需要自动辅种,必须配置
|
||||
'passkey' => '',
|
||||
'url_replace' => array(),
|
||||
'url_join' => array(),
|
||||
),
|
||||
// pt.sjtu葡萄
|
||||
'pt' => array(
|
||||
@@ -480,6 +590,8 @@ return array(
|
||||
'cookie' => '',
|
||||
// 如果需要自动辅种,必须配置
|
||||
'passkey' => '',
|
||||
'url_replace' => array(),
|
||||
'url_join' => array(),
|
||||
),
|
||||
// hdroute
|
||||
'hdroute' => array(
|
||||
@@ -487,6 +599,8 @@ return array(
|
||||
'cookie' => '',
|
||||
// 如果需要自动辅种,必须配置
|
||||
'passkey' => '',
|
||||
'url_replace' => array(),
|
||||
'url_join' => array(),
|
||||
),
|
||||
// haidan
|
||||
'haidan' => array(
|
||||
@@ -494,6 +608,8 @@ return array(
|
||||
'cookie' => '',
|
||||
// 如果需要自动辅种,必须配置
|
||||
'passkey' => '',
|
||||
'url_replace' => array(),
|
||||
'url_join' => array(),
|
||||
),
|
||||
// hdfans
|
||||
'hdfans' => array(
|
||||
@@ -501,6 +617,8 @@ return array(
|
||||
'cookie' => '',
|
||||
// 如果需要自动辅种,必须配置
|
||||
'passkey' => '',
|
||||
'url_replace' => array(),
|
||||
'url_join' => array(),
|
||||
),
|
||||
// 配置结束,后面的一行不能删除,必须保留!!!
|
||||
);
|
||||
|
14
wiki/公告栏.md
14
wiki/公告栏.md
@@ -1,5 +1,19 @@
|
||||
# 公告栏
|
||||
|
||||
### 2020年7月12日19:34:03
|
||||
|
||||
【新增功能】v1.9.0
|
||||
转移过滤器、选择器;可以只转移指定路径的种子,也可以排除指定路径的种子,按需转移。
|
||||
【升级方法】
|
||||
1.主脚本可以通过git pull,或覆盖更新;
|
||||
2.然后对照最新config.sample.php,把59行,60行,手动加入到你的config.php对应位置。
|
||||
|
||||
【重要提醒】域名部署SSL证书,接口域名支持双协议访问http/https,如下:
|
||||
|
||||
https://api.iyuu.cn
|
||||
|
||||
http://api.iyuu.cn
|
||||
|
||||
### 2020年4月10日17:43:50
|
||||
|
||||
针对多合作站点绑定的优化!
|
||||
|
Reference in New Issue
Block a user