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