├── README.md ├── cowtransfer_API.php └── main.php /README.md: -------------------------------------------------------------------------------- 1 | # cowtransfer-API 2 | 3 | 奶牛快传 API PHP 4 | 5 | 6 | ```php 7 | /** 8 | * 登录模块 cowtransfer::Login("邮箱","密码") 9 | * 10 | * 需要登录的模块 11 | * 存储大小: cowtransfer::info() 12 | * 查看根目录: cowtransfer::TableOfContents() 13 | * 14 | * 无需登录的模块 15 | * 下载: cowtransfer::Download_file('guid') 16 | * 17 | * 【☢后续更新中☢】 18 | */ 19 | 20 | include "./cowtransfer_API.php"; 21 | use cowtransfer_API\cowtransfer; 22 | 23 | /** 24 | * new 实例 25 | */ 26 | $cowtransfer = new cowtransfer(); 27 | $cowtransfer->Login("433972421@qq.com","12345678"); 28 | $cowtransfer->info(); 29 | $cowtransfer->TableOfContents(); 30 | $cowtransfer->Download_file("1d9e2796-df68-4ce4-a43d-5e8454814445"); 31 | 32 | 33 | /** 34 | * 静态 cowtransfer:: 35 | */ 36 | cowtransfer::Login("433972421@qq.com","12345678"); 37 | cowtransfer::info(); 38 | cowtransfer::TableOfContents(); 39 | cowtransfer::Download_file("1d9e2796-df68-4ce4-a43d-5e8454814445"); 40 | ``` 41 | -------------------------------------------------------------------------------- /cowtransfer_API.php: -------------------------------------------------------------------------------- 1 | 200, 5 | 'success'=>'True', 6 | 'message'=>'Success', 7 | 'data'=>null 8 | ]; 9 | 10 | class cowtransfer{ 11 | private static $header = [ 12 | 'Host: cowtransfer.com', 13 | 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:84.0) Gecko/20100101 Firefox/84.0', 14 | 'Accept: application/json', 15 | 'Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2', 16 | 'Accept-Encoding: gzip, deflate', 17 | 'content-type: application/x-www-form-urlencoded', 18 | 'Origin: https://cowtransfer.com', 19 | 'Connection: close', 20 | 'Referer: https://cowtransfer.com', 21 | 'Cookie: cf-cs-k-20181214=1610272831475; ' 22 | ]; 23 | 24 | 25 | function Login($user,$passwd){ 26 | $config = [ 27 | 'method'=>'POST', 28 | 'url'=>"https://cowtransfer.com/user/emaillogin", 29 | 'body'=>sprintf('email=%s&password=%s',$user,$passwd), 30 | 'login'=>1 31 | ]; 32 | if (preg_match('/remember-me=(.*?);/is',self::Curl($config),$r)) 33 | self::$header[9] = self::$header[9].";remember-me=".$r[1].';'; 34 | $GLOBALS['ResponseBody']['data'] = self::$header; 35 | return $this?($this):( json_encode($GLOBALS['ResponseBody']) ); 36 | } 37 | 38 | function info(){ 39 | $config = [ 40 | 'method'=>'GET', 41 | 'url'=>"https://cowtransfer.com/space/in/info" 42 | ]; 43 | if( strlen(self::$header[9])>40 ){ 44 | $GLOBALS['ResponseBody']['data'] = json_decode(self::Curl($config),true); 45 | return json_encode($GLOBALS['ResponseBody']); 46 | }else{ 47 | $GLOBALS['ResponseBody']['code'] = 1001; 48 | $GLOBALS['ResponseBody']['success'] = False; 49 | $GLOBALS['ResponseBody']['message'] = "请登录账户!"; 50 | return json_encode($GLOBALS['ResponseBody']); 51 | } 52 | } 53 | 54 | function TableOfContents($guid){ 55 | $config = [ 56 | 'method'=>'GET', 57 | 'url'=>sprintf("https://cowtransfer.com//space?guid=%s",$guid?$guid:"")."&page=0&sort=fileName%20asc" 58 | ]; 59 | if( strlen(self::$header[9])>40 ){ 60 | $GLOBALS['ResponseBody']['data'] = json_decode(self::Curl($config),true); 61 | return json_encode($GLOBALS['ResponseBody']); 62 | }else{ 63 | $GLOBALS['ResponseBody']['code'] = 1001; 64 | $GLOBALS['ResponseBody']['success'] = False; 65 | $GLOBALS['ResponseBody']['message'] = "请登录账户!"; 66 | return json_encode($GLOBALS['ResponseBody']); 67 | } 68 | } 69 | 70 | function Download_file($guid){ 71 | $config_NotLoggedIn = [ 72 | 'method'=>'POST', 73 | 'url'=>sprintf("https://cowtransfer.com/transfer/download?guid=%s",$guid) 74 | ]; 75 | $config_SignIn = [ 76 | 'method'=>'GET', 77 | 'url'=>sprintf("https://cowtransfer.com/space/in/file/download?guid=%s",$guid) 78 | ]; 79 | $GLOBALS['ResponseBody']['data'] = json_decode(self::Curl((strlen(self::$header[9])>40)?$config_SignIn:$config_NotLoggedIn),true); 80 | return json_encode($GLOBALS['ResponseBody']); 81 | } 82 | 83 | function Download_Bale(){} 84 | 85 | private function Curl($config){ 86 | $ch = curl_init(); 87 | curl_setopt($ch, CURLOPT_HTTPHEADER,self::$header); 88 | curl_setopt($ch, CURLOPT_URL, $config['url']); 89 | curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 90 | curl_setopt($ch, CURLOPT_HEADER, $config['login']); 91 | if($config['method'] == 'POST'){ 92 | curl_setopt($ch, CURLOPT_POST, true); 93 | curl_setopt($ch, CURLOPT_POSTFIELDS, $config['body']); 94 | } 95 | curl_setopt($ch, CURLOPT_TIMEOUT,5); 96 | curl_setopt($ch, CURLINFO_HEADER_OUT, true); 97 | $data = curl_exec($ch); 98 | $res = curl_getinfo($ch, CURLINFO_HEADER_OUT); 99 | $httpCode = curl_getinfo($ch,CURLINFO_HTTP_CODE); 100 | curl_close($ch); 101 | return $data; 102 | } 103 | 104 | } 105 | 106 | ?> 107 | -------------------------------------------------------------------------------- /main.php: -------------------------------------------------------------------------------- 1 | Login("433972421@qq.com","12345678"); 19 | $cowtransfer->info(); 20 | $cowtransfer->TableOfContents(); 21 | $cowtransfer->Download_file("1d9e2796-df68-4ce4-a43d-5e8454814445"); 22 | 23 | 24 | /** 25 | * 静态 cowtransfer:: 26 | */ 27 | cowtransfer::Login("433972421@qq.com","12345678"); 28 | cowtransfer::info(); 29 | cowtransfer::TableOfContents(); 30 | cowtransfer::Download_file("1d9e2796-df68-4ce4-a43d-5e8454814445"); 31 | 32 | ?> 33 | --------------------------------------------------------------------------------