package cn.******.*****.***.*******;
import java.io.BufferedReader;
import java.io.File;
import java.io.IOException;
import java.io.InputStreamReader;
import java.nio.charset.Charset;
/**
* 修改web
* 修改type
* 修改version
* 修改kinleStr
* 修改download参数一盘符
*
*/
public class tsDown {
static String kinleStr[] = {"", ".m3u8.", "-"};
static String version[] = {"v1", "v2", "v3"};
static String type[] = {"mp4", "ts", "video"};
static String web = ".*****.com/";
public static void main(String[] args) throws IOException {
downloadTS("F",101,800,"8e19e9a74b",1,400,2);
}
/**
* 葫芦娃、葫芦娃、合体
* @param souPath 源路径
* @param tarPath 目标路径
* @param newFileName 合成文件名
*/
public static void synthesisTemp(String souPath,String tarPath,String newFileName){
/* 合成TS文件*/
//synthesisTemp(path + code,path,code);
if(newFileName.equals("")){ //如果为空,则默认获取文件名文文件夹名
}
execCMD("copy /b "+souPath+"\\*.ts "+tarPath+newFileName+".ts");
System.out.println("copy /b "+souPath+"\\*.ts "+tarPath+newFileName+".ts");
System.out.println("合成完成!");
}
/**
* 我种下一个苹果,终于得到一堆
* @param pan
* @param indexMain
* @param indexSub
* @param code
* @param number
* @param indexMax
* @param verNum
* @throws IOException
*/
private static void downloadTS(String pan,int indexMain,int indexSub,String code,int number,int indexMax, int verNum) throws IOException{
createFolder(code);
int n = 0;
if(number!=0){
n = number;
}
//下载执行体
for(;n<indexMax+1;n++){
//判断文件是否存在,即下载中或下载成功
File fileExists = new File(pan+":\\"+code+"\\"+code + kinleStr[verNum] + num(n)
+ kinleStr[verNum]
+ code + kinleStr[verNum] + num(n) +".ts");
if(noExists(fileExists)){
String tempZeroNumber = num(n); //初始化 临时变量体零数
//规则 .m3u8.
if(kinleStr[verNum].equals(".m3u8.")){
if(n==0 || n==number)System.out.println("以\".\"为规则,执行下载体");
String resp = execCMD("dl "
+ "--exec \"move {} "
+pan+":\\"
+code+"\\{}\" http://" + version[verNum] + web + type[verNum] + "/"
+indexMain+"/"
+indexSub+"/"
+code+kinleStr[verNum]
+n+".ts");
}
//规则 -
if(kinleStr[verNum].equals("-")){
if(n==0 || n==number) System.out.println("以\"-\"为规则,执行下载体.(" + (n==0 || n==number) + ")");
String resp = execCMD("dl "
+ "--exec \"move {} "+pan+":\\"
+code+"\\{}\" http://" + version[verNum] + web + type[verNum] + "/"
+indexMain+"/"
+indexSub+"/"
+code+kinleStr[verNum]
+tempZeroNumber+".ts");
}
//判断文件是否存在,即下载中或下载成功
File fileDownSucc = new File(pan+":\\"+code+"\\"+code + kinleStr[verNum] + tempZeroNumber
+ kinleStr[verNum]
+ code + kinleStr[verNum] + tempZeroNumber +".ts");
if(!fileDownSucc.exists()){
System.err.println("正在执行(已执行"+n+"次),已完成 "+((float)n/indexMax*100)+"%"+", 下载失败:"+ code+kinleStr[verNum] +tempZeroNumber+".ts");
n--;
}else {
System.out.println("正在执行(已执行" + n + "次),已完成 " + ((float) n / indexMax * 100) + "%");
}
}
} //循环结束
System.out.println("下载结束! ");
}
/**
* 看什么看,编号而已
* @param n
* @return
*/
private static String num(int n){
if(n>999) return "0"+n;
else if(n>99) return "00"+n;
else if(n>9) return "000"+n;
else if(n>-1) return "0000"+n;
else return "系统异常";
}
/**
* 看一下文件是不是不在
* @param file 给我地址啊,要不然怎么约会?
* @return 如果不在,返回true;如果在,返回false
*/
private static boolean noExists(File file){
if(file.exists()){
System.out.println("该文件已存在,跳过...");
return false;
}else{
return true;
}
}
/**
* 我可不可以横道夺爱?
* @param indexMain 哪个省份
* @param indexSub 哪个城市
* @param folder 欲横道夺爱的人
* @param number 到底要不到中间插一脚?
* @param indexMax 这个世界人口就这么多
* @throws IOException
*/
public static void downloadTS(int indexMain,int indexSub,String folder,int number,int indexMax, String kinleStr, String version, String type) throws IOException{
//downloadTS(101,800,code,1,400,2);
//downloadTS(65,896,code,0,400,"-","v3","video");
createFolder(folder);
int n = 0;
if(number!=0){
n = number;
}
//下载执行体
for(;n<indexMax+1;n++){
System.out.println("正在执行(已执行"+n+"次),已完成 "+((float)n/indexMax*100)+"%");
if(kinleStr.equals(".")){
if(n==0 || n==number){System.out.println("以\".\"为规则,执行下载体");}
String resp = execCMD("dl "
+ "--exec \"move {} H:\\"
+folder+"\\{}\" http://" + version + web + type + "/"
+indexMain+"/"
+indexSub+"/"
+folder+".m3u8."
+n+".ts");
System.out.println(resp);
}
if(kinleStr.equals("-")){
String tempZeroNumber = ""; //初始化 临时变量体零数
if(n==0 || n==number){System.out.println("以\"-\"为规则,执行下载体.(" + (n==0 || n==number) + ")");}
tempZeroNumber=num(n);
String resp = execCMD("dl "
+ "--exec \"move {} H:\\"
+folder+"\\{}\" http://" + version + web + type + "/"
+indexMain+"/"
+indexSub+"/"
+folder+kinleStr
+tempZeroNumber+".ts");
System.out.println(resp);
}
}
//下载结束提示语
System.out.println("下载结束! ");
}
/**
* 男孩纸生个宝宝不过分吧?
* @param folder
* @throws IOException
*/
private static boolean createFolder(String folder) throws IOException{
File file = new File("F:\\"+folder);
System.out.println("F:\\"+folder);
if(!file.exists()){
file.mkdir();
System.out.println("文件夹"+folder+"创建成功");
return true;
}else{
System.out.println("文件夹"+folder+"已经存在");
return false;
}
}
/**
* 不检查DNA
* @param command
* @return 返回字符串
*/
private static String execCMD(String command) {
StringBuilder sb =new StringBuilder();
try {
Process process=Runtime.getRuntime().exec(command);
BufferedReader bufferedReader=new BufferedReader(new InputStreamReader(process.getInputStream()));
String line;
while((line=bufferedReader.readLine())!=null)
{
sb.append(line+"\n");
}
} catch (Exception e) {
return e.toString();
}
return sb.toString();
}
/**
* 检查DNA
* @param command
* @param encode
* @return
*/
private static String execCMD(String command,String encode) {
StringBuilder sb =new StringBuilder();
try {
// 执行ping命令
Process process = Runtime.getRuntime().exec(command);
BufferedReader br = new BufferedReader(new InputStreamReader(process.getInputStream(), Charset.forName(encode)));
String line = null;
while ((line = br.readLine()) != null) {
//System.out.println(line);
sb.append(line+"\n");
}
} catch (IOException e) {
e.printStackTrace();
}
return sb.toString();
}
}
Java下载-3
最新推荐文章于 2022-12-05 09:41:25 发布