mirror of
https://gitee.com/ledc/IYUUAutoReseed
synced 2025-08-25 07:24:52 +00:00
Compare commits
3 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
6e4c530128 | ||
|
9d183d742d | ||
|
f5bc84e23d |
@@ -13,7 +13,7 @@ use IYUU\Library\Table;
|
||||
class AutoReseed
|
||||
{
|
||||
// 版本号
|
||||
const VER = '1.6.2';
|
||||
const VER = '1.6.3';
|
||||
// RPC连接
|
||||
private static $links = array();
|
||||
// 客户端配置
|
||||
@@ -73,8 +73,16 @@ class AutoReseed
|
||||
self::$curl = new Curl();
|
||||
self::$curl->setOpt(CURLOPT_SSL_VERIFYPEER, false);
|
||||
self::$curl->setOpt(CURLOPT_SSL_VERIFYHOST, false);
|
||||
|
||||
// 合作站点自动注册鉴权
|
||||
$is_login = Oauth::login(self::$apiUrl . self::$endpoints['login']);
|
||||
if(!$is_login){
|
||||
die('合作站点鉴权配置,请查阅:https://www.iyuu.cn/archives/337/');
|
||||
}
|
||||
|
||||
// 显示支持站点列表
|
||||
self::ShowTableSites();
|
||||
|
||||
self::$clients = isset($configALL['default']['clients']) && $configALL['default']['clients'] ? $configALL['default']['clients'] : array();
|
||||
echo "程序正在初始化运行参数... ".PHP_EOL;
|
||||
// 递归删除上次历史记录
|
||||
@@ -85,8 +93,6 @@ class AutoReseed
|
||||
IFile::mkdir(self::$cacheMove);
|
||||
// 连接全局客户端
|
||||
self::links();
|
||||
// 合作站点自动注册鉴权
|
||||
Oauth::login(self::$apiUrl . self::$endpoints['login']);
|
||||
}
|
||||
/**
|
||||
* 显示支持站点列表
|
||||
@@ -118,6 +124,9 @@ class AutoReseed
|
||||
if (isset($rs['msg']) && $rs['msg']) {
|
||||
die($rs['msg']);
|
||||
}
|
||||
if (isset($rs['errmsg']) && $rs['errmsg']) {
|
||||
die($rs['errmsg']);
|
||||
}
|
||||
die('远端服务器无响应,请稍后再试!!!');
|
||||
}
|
||||
$data = [];
|
||||
@@ -538,14 +547,13 @@ class AutoReseed
|
||||
public static function move()
|
||||
{
|
||||
global $configALL;
|
||||
$sites = self::$sites;
|
||||
foreach (self::$links as $k => $v) {
|
||||
if (self::$move[0] == $k) {
|
||||
echo "clients_".$k."是目标转移客户端,避免冲突,已跳过!".PHP_EOL.PHP_EOL;
|
||||
continue;
|
||||
}
|
||||
echo "正在从下载器 clients_".$k." 获取种子哈希……".PHP_EOL;
|
||||
$hashArray = self::$links[$k]['rpc']->getList($move);
|
||||
$hashArray = self::$links[$k]['rpc']->getList(self::$move);
|
||||
if (empty($hashArray)) {
|
||||
// 失败
|
||||
continue;
|
||||
@@ -567,6 +575,7 @@ class AutoReseed
|
||||
$downloadDir = self::pathReplace($downloadDir);
|
||||
echo '转换后:'.$downloadDir.PHP_EOL;
|
||||
if (is_null($downloadDir)) {
|
||||
echo 'IYUU自动转移做种客户端--使用教程 https://www.iyuu.cn/archives/351/'.PHP_EOL;
|
||||
die("全局配置的move数组内,路径转换参数配置错误,请重新配置!!!".PHP_EOL);
|
||||
}
|
||||
// 种子目录:脚本要能够读取到
|
||||
@@ -587,6 +596,7 @@ class AutoReseed
|
||||
break;
|
||||
case 'qBittorrent':
|
||||
if (empty($path)) {
|
||||
echo 'IYUU自动转移做种客户端--使用教程 https://www.iyuu.cn/archives/351/'.PHP_EOL;
|
||||
die("clients_".$k." 未设置种子的BT_backup目录,无法完成转移!");
|
||||
}
|
||||
$torrentPath = $path .DS. $info_hash . '.torrent';
|
||||
@@ -597,6 +607,7 @@ class AutoReseed
|
||||
break;
|
||||
}
|
||||
if (!is_file($torrentPath)) {
|
||||
echo 'IYUU自动转移做种客户端--使用教程 https://www.iyuu.cn/archives/351/'.PHP_EOL;
|
||||
die("clients_".$k." 的种子文件{$torrentPath}不存在,无法完成转移!");
|
||||
}
|
||||
echo '存在种子:'.$torrentPath.PHP_EOL;
|
||||
|
@@ -18,25 +18,8 @@ class Oauth
|
||||
public static $passkey = '';
|
||||
// 合作站名字
|
||||
public static $site = '';
|
||||
/**
|
||||
* 初始化配置
|
||||
*/
|
||||
public static function init()
|
||||
{
|
||||
global $configALL;
|
||||
foreach (self::$sites as $name) {
|
||||
if (isset($configALL[$name]['passkey']) && $configALL[$name]['passkey'] && isset($configALL[$name]['id']) && $configALL[$name]['id']) {
|
||||
self::$token = self::getSign();
|
||||
self::$user_id = $configALL[$name]['id'];
|
||||
self::$passkey = sha1($configALL[$name]['passkey']); // 避免泄露用户passkey秘钥
|
||||
self::$site = $name;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
echo "-----缺少合作站点登录参数:token, user_id, passkey, site \n";
|
||||
echo "-----当前正在使用测试接口,功能可能会受到限制! \n\n";
|
||||
return false;
|
||||
}
|
||||
// 登录缓存路径
|
||||
public static $SiteLoginCache = ROOT_PATH.DS.'config'.DS.'siteLoginCache_{}.json';
|
||||
/**
|
||||
* 从配置文件内读取爱语飞飞token作为鉴权参数
|
||||
*/
|
||||
@@ -57,22 +40,60 @@ class Oauth
|
||||
* 作用:在服务器端实现微信用户与合作站点用户id的关联
|
||||
* 参数:爱语飞飞token + 合作站点用户id + sha1(合作站点密钥passkey) + 合作站点标识
|
||||
*/
|
||||
public static function login($apiUrl = '')
|
||||
public static function login($apiUrl = '', $sites = array())
|
||||
{
|
||||
$is_oauth = self::init();
|
||||
if ($is_oauth) {
|
||||
$curl = new Curl();
|
||||
$curl->setOpt(CURLOPT_SSL_VERIFYPEER, false);
|
||||
$data = [
|
||||
'token' => self::$token,
|
||||
'id' => self::$user_id,
|
||||
'passkey'=> self::$passkey,
|
||||
'site' => self::$site,
|
||||
];
|
||||
$res = $curl->get($apiUrl, $data);
|
||||
p($res->response);
|
||||
return true;
|
||||
global $configALL;
|
||||
// 云端下发合作的站点标识
|
||||
self::$sites = $sites ? $sites : self::$sites;
|
||||
$ret = false;
|
||||
self::$token = self::getSign();
|
||||
foreach (self::$sites as $name) {
|
||||
if (is_file(str_replace('{}', $name, self::$SiteLoginCache))){
|
||||
// 存在鉴权缓存
|
||||
$ret = true;
|
||||
continue;
|
||||
}
|
||||
if (isset($configALL[$name]['passkey']) && $configALL[$name]['passkey'] && isset($configALL[$name]['id']) && $configALL[$name]['id']) {
|
||||
self::$user_id = $configALL[$name]['id'];
|
||||
self::$passkey = sha1($configALL[$name]['passkey']); // 避免泄露用户passkey秘钥
|
||||
self::$site = $name;
|
||||
|
||||
$curl = new Curl();
|
||||
$curl->setOpt(CURLOPT_SSL_VERIFYPEER, false);
|
||||
$data = [
|
||||
'token' => self::$token,
|
||||
'id' => self::$user_id,
|
||||
'passkey'=> self::$passkey,
|
||||
'site' => self::$site,
|
||||
];
|
||||
$res = $curl->get($apiUrl, $data);
|
||||
p($res->response);
|
||||
|
||||
$rs = json_decode($res->response,true);
|
||||
if (isset($rs['ret']) && $rs['ret'] == 200 && isset($rs['data']['success']) && $rs['data']['success']){
|
||||
self::setSiteLoginCache($name, $rs);
|
||||
$ret = true;
|
||||
}else{
|
||||
$msg = isset($rs['msg']) && $rs['msg'] ? $rs['msg'] : '远端服务器无响应,请稍后重试!';
|
||||
$msg = isset($rs['data']['errmsg']) && $rs['data']['errmsg'] ? $rs['data']['errmsg'] : $msg;
|
||||
echo $msg . PHP_EOL;
|
||||
}
|
||||
} else {
|
||||
echo $name.'合作站点参数配置不完整,请同时填写passkey和用户id。' . PHP_EOL;
|
||||
echo '合作站点鉴权配置,请查阅:https://www.iyuu.cn/archives/337/'. PHP_EOL. PHP_EOL;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
return $ret;
|
||||
}
|
||||
/**
|
||||
* 写鉴权成功配置
|
||||
*/
|
||||
private static function setSiteLoginCache($key = '', $array = [])
|
||||
{
|
||||
$json = json_encode($array, JSON_UNESCAPED_UNICODE);
|
||||
$myfile = str_replace('{}', $key, self::$SiteLoginCache);
|
||||
$file_pointer = @fopen($myfile, "w");
|
||||
$worldsnum = @fwrite($file_pointer, $json);
|
||||
@fclose($file_pointer);
|
||||
}
|
||||
}
|
||||
|
20
init.php
20
init.php
@@ -1,4 +1,24 @@
|
||||
<?php
|
||||
/**
|
||||
|
||||
IIIIIIIIIIYYYYYYY YYYYYYYUUUUUUUU UUUUUUUUUUUUUUUU UUUUUUUU
|
||||
I::::::::IY:::::Y Y:::::YU::::::U U::::::UU::::::U U::::::U
|
||||
I::::::::IY:::::Y Y:::::YU::::::U U::::::UU::::::U U::::::U
|
||||
II::::::IIY::::::Y Y::::::YUU:::::U U:::::UUUU:::::U U:::::UU
|
||||
I::::I YYY:::::Y Y:::::YYY U:::::U U:::::U U:::::U U:::::U
|
||||
I::::I Y:::::Y Y:::::Y U:::::D D:::::U U:::::D D:::::U
|
||||
I::::I Y:::::Y:::::Y U:::::D D:::::U U:::::D D:::::U
|
||||
I::::I Y:::::::::Y U:::::D D:::::U U:::::D D:::::U
|
||||
I::::I Y:::::::Y U:::::D D:::::U U:::::D D:::::U
|
||||
I::::I Y:::::Y U:::::D D:::::U U:::::D D:::::U
|
||||
I::::I Y:::::Y U:::::D D:::::U U:::::D D:::::U
|
||||
I::::I Y:::::Y U::::::U U::::::U U::::::U U::::::U
|
||||
II::::::II Y:::::Y U:::::::UUU:::::::U U:::::::UUU:::::::U
|
||||
I::::::::I YYYY:::::YYYY UU:::::::::::::UU UU:::::::::::::UU
|
||||
I::::::::I Y:::::::::::Y UU:::::::::UU UU:::::::::UU
|
||||
IIIIIIIIII YYYYYYYYYYYYY UUUUUUUUU UUUUUUUUU
|
||||
|
||||
*/
|
||||
// 定义目录
|
||||
defined('ROOT_PATH') or define("ROOT_PATH", __DIR__);
|
||||
define('DS', DIRECTORY_SEPARATOR);
|
||||
|
26
iyuu.php
26
iyuu.php
@@ -1,7 +1,31 @@
|
||||
<?php
|
||||
/**
|
||||
_____ _____ _____ _____
|
||||
/\ \ |\ \ /\ \ /\ \
|
||||
/::\ \ |:\____\ /::\____\ /::\____\
|
||||
\:::\ \ |::| | /:::/ / /:::/ /
|
||||
\:::\ \ |::| | /:::/ / /:::/ /
|
||||
\:::\ \ |::| | /:::/ / /:::/ /
|
||||
\:::\ \ |::| | /:::/ / /:::/ /
|
||||
/::::\ \ |::| | /:::/ / /:::/ /
|
||||
____ /::::::\ \ |::|___|______ /:::/ / _____ /:::/ / _____
|
||||
/\ \ /:::/\:::\ \ /::::::::\ \ /:::/____/ /\ \ /:::/____/ /\ \
|
||||
/::\ \/:::/ \:::\____\ /::::::::::\____\|:::| / /::\____\|:::| / /::\____\
|
||||
\:::\ /:::/ \::/ / /:::/~~~~/~~ |:::|____\ /:::/ /|:::|____\ /:::/ /
|
||||
\:::\/:::/ / \/____/ /:::/ / \:::\ \ /:::/ / \:::\ \ /:::/ /
|
||||
\::::::/ / /:::/ / \:::\ \ /:::/ / \:::\ \ /:::/ /
|
||||
\::::/____/ /:::/ / \:::\ /:::/ / \:::\ /:::/ /
|
||||
\:::\ \ \::/ / \:::\__/:::/ / \:::\__/:::/ /
|
||||
\:::\ \ \/____/ \::::::::/ / \::::::::/ /
|
||||
\:::\ \ \::::::/ / \::::::/ /
|
||||
\:::\____\ \::::/ / \::::/ /
|
||||
\::/ / \::/____/ \::/____/
|
||||
\/____/ ~~ ~~
|
||||
*/
|
||||
|
||||
require_once __DIR__ . '/init.php';
|
||||
echo __FILE__.PHP_EOL;
|
||||
sleep(3);
|
||||
sleep(1);
|
||||
use IYUU\AutoReseed;
|
||||
|
||||
echo microtime(true).' IYUU自动辅种正在初始化...'.PHP_EOL;
|
||||
|
Reference in New Issue
Block a user