From ce65b5d1ff6ab07d3424ebcaa97957949abf35f4 Mon Sep 17 00:00:00 2001 From: IYUU Date: Fri, 31 Jan 2020 01:07:06 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A7=84=E8=8C=83=E6=8D=A2=E8=A1=8C=E7=AC=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/AutoReseed.php | 127 +++++++++++++++++++++++---------------------- 1 file changed, 64 insertions(+), 63 deletions(-) diff --git a/app/AutoReseed.php b/app/AutoReseed.php index f4a7583..0e19f53 100644 --- a/app/AutoReseed.php +++ b/app/AutoReseed.php @@ -77,7 +77,7 @@ class AutoReseed */ public static $ExitCode = 0; /** - * 客户端转移做种 状态码[请把transmission配置为第一个客户端] + * 客户端转移做种 * @var array */ public static $move = null; @@ -105,7 +105,7 @@ class AutoReseed self::ShowTableSites(); global $configALL; self::$clients = isset($configALL['default']['clients']) && $configALL['default']['clients'] ? $configALL['default']['clients'] : array(); - echo "程序正在初始化运行参数... \n"; + echo "程序正在初始化运行参数... ".PHP_EOL; // 递归删除上次历史记录 IFile::rmdir(self::$cacheDir, true); // 建立目录 @@ -128,12 +128,12 @@ class AutoReseed $list[] = 'gitee 源码仓库:https://gitee.com/ledc/IYUUAutoReseed'; $list[] = 'github源码仓库:https://github.com/ledccn/IYUUAutoReseed'; $list[] = '教程:https://gitee.com/ledc/IYUUAutoReseed/tree/master/wiki'; - $list[] = "QQ群:859882209 【IYUU自动辅种交流】 \n"; + $list[] = "QQ群:859882209 【IYUU自动辅种交流】".PHP_EOL; foreach ($list as $key => $value) { echo $value.PHP_EOL; } // 发起请求 - echo "正在连接IYUUAutoReseed服务器,查询支持列表…… \n"; + echo "正在连接IYUUAutoReseed服务器,查询支持列表…… ".PHP_EOL; $curl = new Curl(); $curl->setOpt(CURLOPT_SSL_VERIFYPEER, false); // 禁止验证证书 $curl->setOpt(CURLOPT_SSL_VERIFYHOST, false); // 不检查证书 @@ -182,7 +182,7 @@ class AutoReseed // 跳过未配置的客户端 if (empty($v['username']) || empty($v['password'])) { unset(self::$clients[$k]); - echo "clients_".$k." 用户名或密码未配置,已跳过 \n\n"; + echo "clients_".$k." 用户名或密码未配置,已跳过".PHP_EOL.PHP_EOL; continue; } try { @@ -235,11 +235,11 @@ class AutoReseed $result = self::$links[$k]['rpc']->get($ids, $fields); if (empty($result->result) || $result->result != 'success') { // 获取种子列表 失败 - echo "获取种子列表失败,原因可能是transmission暂时无响应,请稍后重试! \n"; + echo "获取种子列表失败,原因可能是transmission暂时无响应,请稍后重试!".PHP_EOL; break; } if (empty($result->arguments->torrents)) { - echo "未获取到数据,请多多保种,然后重试! \n"; + echo "未获取到数据,请多多保种,然后重试!".PHP_EOL; break; } // 对象转数组 @@ -247,7 +247,7 @@ class AutoReseed // 过滤,只保留正常做种 $res = array_filter($res, "filterStatus"); if (empty($res)) { - echo "未获取到需要辅种的数据,请多多保种,然后重试! \n"; + echo "未获取到需要辅种的数据,请多多保种,然后重试!".PHP_EOL; break; } // 提取数组:hashString @@ -273,13 +273,13 @@ class AutoReseed $result = self::$links[$k]['rpc']->torrentList(); $res = json_decode($result, true); if (empty($res)) { - echo "未获取到数据,请多多保种,然后重试! \n"; + echo "未获取到数据,请多多保种,然后重试!".PHP_EOL; break; } // 过滤,只保留正常做种 $res = array_filter($res, "qbfilterStatus"); if (empty($res)) { - echo "未获取到需要辅种的数据,请多多保种,然后重试! \n"; + echo "未获取到需要辅种的数据,请多多保种,然后重试!".PHP_EOL; break; } // 提取数组:hashString @@ -302,12 +302,12 @@ class AutoReseed #p(self::$links[$k]['hash']);exit; break; default: - echo '[ERROR] '.$v['type']; + echo '[get ERROR] '.$v['type'] . PHP_EOL; exit(1); break; } } catch (\Exception $e) { - echo '[ERROR] ' . $e->getMessage() . PHP_EOL; + echo '[get ERROR] ' . $e->getMessage() . PHP_EOL; exit(1); } } @@ -347,17 +347,18 @@ class AutoReseed $name = $result->arguments->torrent_added->name; } if ($is_url) { - print "种子:".$torrent. "\n"; + print "种子:".$torrent . PHP_EOL; } - print "********RPC添加下载任务成功 [{$result->result}] (id=$id) \n"; - print "名字:".$name."\n\n"; + print "名字:".$name . PHP_EOL; + print "********RPC添加下载任务成功 [{$result->result}] (id=$id)".PHP_EOL.PHP_EOL; + return true; } else { $errmsg = isset($result->result) ? $result->result : '未知错误,请稍后重试!'; if ($is_url) { - print "种子:".$torrent. "\n"; + print "种子:".$torrent . PHP_EOL; } - print "-----RPC添加种子任务,失败 [{$errmsg}] \n\n"; + print "-----RPC添加种子任务,失败 [{$errmsg}]" . PHP_EOL.PHP_EOL; } break; case 'qBittorrent': @@ -371,13 +372,13 @@ class AutoReseed $result = self::$links[$rpcKey]['rpc']->add_metainfo($torrent, $save_path, $extra_options); // 种子元数据添加下载任务 } if ($is_url) { - print "种子:".$torrent. "\n"; + print "种子:".$torrent.PHP_EOL; } if ($result === 'Ok.') { - print "********RPC添加下载任务成功 [{$result}] \n\n"; + print "********RPC添加下载任务成功 [{$result}]".PHP_EOL.PHP_EOL; return true; } else { - print "-----RPC添加种子任务,失败 [{$result}] \n\n"; + print "-----RPC添加种子任务,失败 [{$result}]".PHP_EOL.PHP_EOL; } break; default: @@ -425,17 +426,17 @@ class AutoReseed } } // 发起请求 - echo "正在提交辅种信息…… \n"; + echo "正在提交辅种信息……".PHP_EOL; $res = self::$curl->post(self::$apiUrl . self::$endpoints['reseed'], $hashArray); $resArray = json_decode($res->response, true); // 写返回日志 wlog($resArray, 'reseed'); // 判断返回值 if (isset($resArray['errmsg']) && ($resArray['errmsg'] == 'ok')) { - echo "辅种信息提交成功!!! \n\n"; + echo "辅种信息提交成功!!!".PHP_EOL.PHP_EOL; } else { $errmsg = isset($resArray['errmsg']) ? $resArray['errmsg'] : '远端服务器无响应,请稍后重试!'; - echo '-----辅种失败,原因:' .$errmsg. " \n\n"; + echo '-----辅种失败,原因:' .$errmsg.PHP_EOL.PHP_EOL; exit(1); } // 可辅种站点信息 @@ -446,7 +447,7 @@ class AutoReseed // 按客户端循环辅种 开始 foreach (self::$links as $k => $v) { if (empty($resArray['clients_'.$k])) { - echo "clients_".$k."没有查询到可辅种数据 \n\n"; + echo "clients_".$k."没有查询到可辅种数据".PHP_EOL.PHP_EOL; continue; } $reseed = $infohash_Dir = array(); @@ -470,43 +471,43 @@ class AutoReseed // 页面规则 $download_page = str_replace('{}', $value['torrent_id'], $sites[$sitesID]['download_page']); $_url = 'https://' .$sites[$sitesID]['base_url']. '/' .$download_page; - echo "clients_".$k."正在辅种... {$siteName} \n"; + echo "clients_".$k."正在辅种... {$siteName}".PHP_EOL; /** * 前置检测 */ // passkey检测 if (empty($configALL[$siteName]['passkey'])) { - echo '-------因当前' .$siteName. "站点未设置passkey,已跳过!! \n\n"; + echo '-------因当前' .$siteName. "站点未设置passkey,已跳过!!".PHP_EOL.PHP_EOL; self::$wechatMsg['reseedSkip']++; continue; } // cookie检测 if ( in_array($siteName, self::$cookieCheck) && empty($configALL[$siteName]['cookie']) ) { - echo '-------因当前' .$siteName. '站点未设置cookie,已跳过!!' . "\n\n"; + echo '-------因当前' .$siteName. '站点未设置cookie,已跳过!!' .PHP_EOL.PHP_EOL; self::$wechatMsg['reseedSkip']++; continue; } // 流控检测 if ( isset($configALL[$siteName]['limit']) ) { - echo "-------因当前" .$siteName. "站点触发流控,已跳过!! {$_url} \n\n"; + echo "-------因当前" .$siteName. "站点触发流控,已跳过!! {$_url}".PHP_EOL.PHP_EOL; // 流控日志 if ($siteName == 'hdchina') { $details_page = str_replace('{}', $value['torrent_id'], 'details.php?id={}&hit=1'); $_url = 'https://' .$sites[$sitesID]['base_url']. '/' .$details_page; } - wlog('clients_'.$k."\n".$downloadDir."\n"."-------因当前" .$siteName. "站点触发流控,已跳过!! {$_url} \n\n", 'reseedLimit'); + wlog('clients_'.$k.PHP_EOL.$downloadDir.PHP_EOL."-------因当前" .$siteName. "站点触发流控,已跳过!! {$_url}".PHP_EOL.PHP_EOL, 'reseedLimit'); self::$wechatMsg['reseedSkip']++; continue; } // 重复做种检测 if ( isset($value['info_hash']) && isset($infohash_Dir[$value['info_hash']]) ) { - echo '-------与客户端现有种子重复:'.$_url."\n\n"; + echo '-------与客户端现有种子重复:'.$_url.PHP_EOL.PHP_EOL; self::$wechatMsg['reseedRepeat']++; continue; } // 历史添加检测 if ( is_file(self::$cacheHash . $value['info_hash'].'.txt') ) { - echo '-------当前种子上次辅种已成功添加,已跳过! '.$_url."\n\n"; + echo '-------当前种子上次辅种已成功添加,已跳过! '.$_url.PHP_EOL.PHP_EOL; self::$wechatMsg['reseedPass']++; continue; } @@ -530,7 +531,7 @@ class AutoReseed $details_page = str_replace('{}', $value['torrent_id'], 'details.php?id={}&hit=1'); $details_url = 'https://' .$sites[$sitesID]['base_url']. '/' .$details_page; $details_html = download($details_url, $cookie, $userAgent); - print "种子详情页:".$details_url. "\n"; + print "种子详情页:".$details_url.PHP_EOL; // 提取种子下载地址 $download_page = str_replace('{}', '', $sites[$sitesID]['download_page']); $offset = strpos($details_html, $download_page); @@ -538,10 +539,10 @@ class AutoReseed // 种子地址 $_url = substr($urlTemp, 0, strpos($urlTemp, '">')); $_url = 'https://' .$sites[$sitesID]['base_url']. '/' . $_url; - print "种子下载页:".$_url. "\n"; + print "种子下载页:".$_url.PHP_EOL; $url = download($_url, $cookie, $userAgent); if (strpos($url, '系统检测到过多的种子下载请求') != false) { - echo "当前站点触发人机验证,已加入排除列表 \n"; + echo "当前站点触发人机验证,已加入排除列表".PHP_EOL; ff($siteName. '站点,辅种时触发人机验证!'); $configALL[$siteName]['limit'] = 1; self::$noReseed[] = 'hdchina'; @@ -550,7 +551,7 @@ class AutoReseed case 'hdcity': $cookie = isset($configALL[$siteName]['cookie']) ? $configALL[$siteName]['cookie'] : ''; $userAgent = $configALL['default']['userAgent']; - print "种子:".$_url. "\n"; + print "种子:".$_url.PHP_EOL; if (isset($configALL[$siteName]['cuhash'])) { // 已获取cuhash # code... @@ -590,14 +591,14 @@ class AutoReseed // 添加成功的种子,以infohash为文件名,写入缓存 if ($ret) { // 成功的种子 - wlog($url."\n", $value['info_hash'], self::$cacheHash); - wlog($url."\n", 'reseedSuccess'); + wlog($url.PHP_EOL, $value['info_hash'], self::$cacheHash); + wlog($url.PHP_EOL, 'reseedSuccess'); // 成功累加 self::$wechatMsg['reseedSuccess']++; continue; } else { // 失败的种子 - wlog($url."\n", 'reseedError'); + wlog($url.PHP_EOL, 'reseedError'); // 失败累加 self::$wechatMsg['reseedError']++; continue; @@ -606,7 +607,7 @@ class AutoReseed /** * 不辅种 */ - echo '-------已跳过不辅种的站点:'.$_url."\n\n"; + echo '-------已跳过不辅种的站点:'.$_url.PHP_EOL.PHP_EOL; // 按站点规范日志内容 switch ($siteName) { case 'hdchina': @@ -619,7 +620,7 @@ class AutoReseed break; } // 写入日志文件,供用户手动辅种 - wlog('clients_'.$k."\n".$downloadDir."\n".$url."\n".$details_url."\n\n", $siteName); + wlog('clients_'.$k.PHP_EOL.$downloadDir.PHP_EOL.$url.PHP_EOL.$details_url.PHP_EOL.PHP_EOL, $siteName); } } } @@ -635,17 +636,17 @@ class AutoReseed // 前置过滤:2020年1月26日15:52:41 self::hashFilter($hashArray['hash']); // 发起请求 - echo "正在提交转移信息…… \n"; + echo "正在提交转移信息……".PHP_EOL; $res = self::$curl->post(self::$apiUrl . self::$endpoints['move'], $hashArray); $resArray = json_decode($res->response, true); // 写日志 wlog($resArray, 'move'); // 判断返回值 if (isset($resArray['errmsg']) && ($resArray['errmsg'] == 'ok')) { - echo "转移数据返回:成功!!! \n\n"; + echo "转移数据返回:成功!!!".PHP_EOL.PHP_EOL; } else { $errmsg = isset($resArray['errmsg']) ? $resArray['errmsg'] : '远端服务器无响应,请稍后重试!'; - echo '-----转移请求失败,原因:' .$errmsg. " \n\n"; + echo '-----转移请求失败,原因:' .$errmsg.PHP_EOL.PHP_EOL; exit(1); } // 可辅种站点信息 @@ -655,11 +656,11 @@ class AutoReseed // 按客户端移动 开始 foreach (self::$links as $k => $v) { if (self::$move!=null && self::$move[0] == $k){ - echo "clients_".$k."是目标转移客户端,避免冲突,已跳过! \n\n"; + echo "clients_".$k."是目标转移客户端,避免冲突,已跳过!".PHP_EOL.PHP_EOL; continue; } if (empty($resArray['clients_'.$k])) { - echo "clients_".$k."没有查询到可转移数据 \n\n"; + echo "clients_".$k."没有查询到可转移数据".PHP_EOL.PHP_EOL; continue; } $infohash_Dir = $move = array(); @@ -681,43 +682,43 @@ class AutoReseed // 页面规则 $download_page = str_replace('{}', $value['torrent_id'], $sites[$sitesID]['download_page']); $_url = 'https://' .$sites[$sitesID]['base_url']. '/' .$download_page; - echo "clients_".$k."正在转移... {$siteName} \n"; + echo "clients_".$k."正在转移... {$siteName}".PHP_EOL; /** * 前置检测 */ // passkey检测 if (empty($configALL[$siteName]['passkey'])) { - echo '-------因当前' .$siteName. "站点未设置passkey,已跳过!! \n\n"; + echo '-------因当前' .$siteName. "站点未设置passkey,已跳过!!".PHP_EOL.PHP_EOL; #self::$wechatMsg['reseedSkip']++; continue; } // cookie检测 if ( in_array($siteName, self::$cookieCheck) && empty($configALL[$siteName]['cookie']) ) { - echo '-------因当前' .$siteName. '站点未设置cookie,已跳过!!' . "\n\n"; + echo '-------因当前' .$siteName. '站点未设置cookie,已跳过!!' .PHP_EOL.PHP_EOL; #self::$wechatMsg['reseedSkip']++; continue; } // 流控检测 if ( isset($configALL[$siteName]['limit']) ) { - echo "-------因当前" .$siteName. "站点触发流控,已跳过!! {$_url} \n\n"; + echo "-------因当前" .$siteName. "站点触发流控,已跳过!! {$_url}".PHP_EOL.PHP_EOL; // 流控日志 if ($siteName == 'hdchina') { $details_page = str_replace('{}', $value['torrent_id'], 'details.php?id={}&hit=1'); $_url = 'https://' .$sites[$sitesID]['base_url']. '/' .$details_page; } - wlog('clients_'.$k."\n".$downloadDir."\n"."-------因当前" .$siteName. "站点触发流控,已跳过!! {$_url} \n\n", 'MoveLimit'); + wlog('clients_'.$k.PHP_EOL.$downloadDir.PHP_EOL."-------因当前" .$siteName. "站点触发流控,已跳过!! {$_url}".PHP_EOL.PHP_EOL, 'MoveLimit'); #self::$wechatMsg['reseedSkip']++; continue; } // 历史转移检测 if ( is_file(self::$cacheMove . $info_hash.'.txt') ) { - echo '-------当前种子上次已成功转移,已跳过! '.$_url."\n\n"; + echo '-------当前种子上次已成功转移,已跳过! '.$_url.PHP_EOL.PHP_EOL; #self::$wechatMsg['reseedPass']++; continue; } // 不转移的站点检测 if ( in_array($siteName, self::$noMove) ) { - echo '-------已跳过不转移的站点 ' .$siteName. '!! ' . "\n\n"; + echo '-------已跳过不转移的站点 ' .$siteName. '!! ' .PHP_EOL.PHP_EOL; #self::$wechatMsg['reseedSkip']++; continue; } @@ -737,7 +738,7 @@ class AutoReseed $details_page = str_replace('{}', $value['torrent_id'], 'details.php?id={}&hit=1'); $details_url = 'https://' .$sites[$sitesID]['base_url']. '/' .$details_page; $details_html = download($details_url, $cookie, $userAgent); - print "种子详情页:".$details_url. "\n"; + print "种子详情页:".$details_url.PHP_EOL; // 提取种子下载地址 $download_page = str_replace('{}', '', $sites[$sitesID]['download_page']); $offset = strpos($details_html, $download_page); @@ -745,10 +746,10 @@ class AutoReseed // 种子地址 $_url = substr($urlTemp, 0, strpos($urlTemp, '">')); $_url = 'https://' .$sites[$sitesID]['base_url']. '/' . $_url; - print "种子下载页:".$_url. "\n"; + print "种子下载页:".$_url.PHP_EOL; $url = download($_url, $cookie, $userAgent); if (strpos($url, '系统检测到过多的种子下载请求') != false) { - echo "当前站点触发人机验证,已加入排除列表 \n"; + echo "当前站点触发人机验证,已加入排除列表".PHP_EOL; ff($siteName. '站点,辅种时触发人机验证!'); $configALL[$siteName]['limit'] = 1; } @@ -756,7 +757,7 @@ class AutoReseed case 'hdcity': $cookie = isset($configALL[$siteName]['cookie']) ? $configALL[$siteName]['cookie'] : ''; $userAgent = $configALL['default']['userAgent']; - print "种子:".$_url. "\n"; + print "种子:".$_url.PHP_EOL; if (isset($configALL[$siteName]['cuhash'])) { // 已获取cuhash # code... @@ -777,11 +778,11 @@ class AutoReseed // 默认站点:推送给下载器种子URL链接 break; } - echo "种子URL已推送给下载器,下载器正在下载种子... \n"; + echo "种子URL已推送给下载器,下载器正在下载种子...".PHP_EOL; // 实际路径与相对路径之间互转 $downloadDir = self::pathReplace($downloadDir); if ( is_null($downloadDir) ) { - die("全局配置的move数组内,type配置错误,请重新配置!!! \n"); + die("全局配置的move数组内,type配置错误,请重新配置!!!".PHP_EOL); } $ret = false; // 把拼接的种子URL,推送给下载器 @@ -803,14 +804,14 @@ class AutoReseed */ if ($ret) { // 转移成功的种子,以infohash为文件名,写入缓存 - wlog($url."\n", $info_hash, self::$cacheMove); - wlog($url."\n", 'MoveSuccess'); + wlog($url.PHP_EOL, $info_hash, self::$cacheMove); + wlog($url.PHP_EOL, 'MoveSuccess'); // 成功累加 #self::$wechatMsg['reseedSuccess']++; continue; } else { // 失败的种子 - wlog($url."\n", 'MoveError'); + wlog($url.PHP_EOL, 'MoveError'); // 失败累加 #self::$wechatMsg['reseedError']++; continue; @@ -829,7 +830,7 @@ class AutoReseed if (empty($data)) continue; foreach ($data as $key => $info_hash) { if ( is_file(self::$cacheMove . $info_hash.'.txt') ) { - echo '-------当前种子上次已成功转移,前置过滤已跳过! ' . "\n\n"; + echo '-------当前种子上次已成功转移,前置过滤已跳过! ' .PHP_EOL.PHP_EOL; unset($data[$key]); } } @@ -909,7 +910,7 @@ class AutoReseed */ public static function wechatMessage() { - $br = "\r\n"; + $br = PHP_EOL; $text = 'IYUU自动辅种-统计报表'; $desp = '总做种:'.self::$wechatMsg['hashCount'] . ' [客户端正在做种的hash总数]' .$br; $desp .= '返回数据:'.self::$wechatMsg['reseedCount']. ' [服务器返回的可辅种数据]' .$br;