164 lines
6.7 KiB
Java
164 lines
6.7 KiB
Java
package com.yutou.biliapi;
|
|
|
|
import com.alibaba.fastjson2.JSONObject;
|
|
import com.yutou.biliapi.bean.live.SpiBean;
|
|
import com.yutou.biliapi.bean.login.LoginCookieDatabaseBean;
|
|
import com.yutou.biliapi.bean.login.LoginUserDatabaseBean;
|
|
import com.yutou.biliapi.bean.user.UserInfoBean;
|
|
import com.yutou.biliapi.net.BiliLoginNetApiManager;
|
|
import com.yutou.biliapi.databases.BiliBiliLoginDatabase;
|
|
import com.yutou.biliapi.net.BiliUserNetApiManager;
|
|
import com.yutou.common.okhttp.HttpBody;
|
|
import com.yutou.common.okhttp.HttpCallback;
|
|
import com.yutou.common.utils.Log;
|
|
import jakarta.xml.bind.DatatypeConverter;
|
|
import okhttp3.Headers;
|
|
import retrofit2.Response;
|
|
|
|
import java.io.ByteArrayOutputStream;
|
|
import java.io.IOException;
|
|
import java.nio.charset.StandardCharsets;
|
|
|
|
public class Main {
|
|
public static void main(String[] args) {
|
|
// HttpLoggingInterceptor.setLog(false);
|
|
// HttpLoggingInterceptor.setLog(true);
|
|
login();
|
|
}
|
|
|
|
|
|
public static void testSocket(SpiBean spi) {
|
|
try {
|
|
JSONObject json = new JSONObject();
|
|
// json.put("roomid", "32805602");
|
|
json.put("roomid", "855204");
|
|
json.put("protover", "3");
|
|
json.put("platform", "web");
|
|
json.put("type", 2);
|
|
json.put("buvid", spi.getB_3());
|
|
json.put("key", "aaaabbb");
|
|
Log.i(json);
|
|
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
|
|
// outputStream.write(toLH(json.toString().length() + 16));
|
|
outputStream.write(new byte[]{0, 0, 1, 68, 0, 16, 0, 1, 0, 0, 0, 7, 0, 0, 0, 1});
|
|
outputStream.write(json.toJSONString().getBytes(StandardCharsets.UTF_8));
|
|
outputStream.flush();
|
|
Log.i("\n\n\n");
|
|
String str = DatatypeConverter.printHexBinary(outputStream.toByteArray());
|
|
for (int i = 0; i < str.length(); i = i + 4) {
|
|
if (i % 32 == 0 && i != 0) {
|
|
Log.i();
|
|
}
|
|
if (str.length() - i > 4) {
|
|
System.out.print(str.substring(i, i + 4) + " ");
|
|
} else {
|
|
Log.i(str.substring(i));
|
|
}
|
|
}
|
|
Log.i("\n\n\n");
|
|
|
|
} catch (Exception e) {
|
|
Log.e(e);
|
|
}
|
|
}
|
|
|
|
public static void getPlayUrl() {
|
|
// BiliLiveNetApiManager
|
|
// .getInstance()
|
|
// .getApi(new IHttpApiCheckCallback<LiveApi>() {
|
|
// @Override
|
|
// public void onSuccess(LiveApi api) {
|
|
// String roomId = "32805602";
|
|
// String mid = "68057278";
|
|
//
|
|
// // roomId="42062";
|
|
//
|
|
// api.getLiveRoomPlayInfo(
|
|
// roomId,
|
|
// LiveProtocol.getAll(),
|
|
// LiveVideoFormat.getAll(),
|
|
// LiveVideoCodec.getAll(),
|
|
// LiveVideoDefinition.ORIGINAL.getValue()
|
|
// ).enqueue(new HttpCallback<>() {
|
|
// @Override
|
|
// public void onResponse(Headers headers, int code, String status, LiveRoomPlayInfo response, String rawResponse) {
|
|
// LiveRoomPlayInfo.Codec codec = response.getPlayurlInfo().getPlayurl().getStream().get(0).getFormat().get(0).getCodec().get(0);
|
|
//
|
|
// LiveRoomConfig config = new LiveRoomConfig();
|
|
// config.setUid("0");
|
|
// config.setRoomId(roomId);
|
|
// config.setMid(mid);
|
|
// config.setLogin(false);
|
|
// WebSocketManager.getInstance().addRoom(config);
|
|
//
|
|
// /*String url = codec.getUrlInfo().get(0).getHost() + codec.getBaseUrl() + codec.getUrlInfo().get(0).getExtra();
|
|
// Log.i("下载url = " + url);
|
|
// api.downloadLive(url).enqueue(new FileCallback<>(response) {
|
|
// @Override
|
|
// public void onStart(LiveRoomPlayInfo bean) {
|
|
// Log.i("开始下载");
|
|
// }
|
|
//
|
|
// @Override
|
|
// public boolean onDownload(Headers headers, LiveRoomPlayInfo bean, long len, long total) {
|
|
// Log.i("下载中:"+len+"|"+total);
|
|
// return true;
|
|
// }
|
|
//
|
|
// @Override
|
|
// public void onFinish(LiveRoomPlayInfo bean) {
|
|
// Log.i("下载结束");
|
|
// }
|
|
//
|
|
// @Override
|
|
// public void onFailure(LiveRoomPlayInfo bean, Throwable throwable) {
|
|
// Log.i("下载失败");
|
|
// }
|
|
// });*/
|
|
//
|
|
// }
|
|
//
|
|
// @Override
|
|
// public void onFailure(Throwable throwable) {
|
|
//
|
|
// }
|
|
// });
|
|
// }
|
|
//
|
|
// @Override
|
|
// public void onError(int code, String error) {
|
|
//
|
|
// }
|
|
// });
|
|
}
|
|
|
|
public static void login() {
|
|
BiliLoginNetApiManager.getInstance().login(new HttpCallback<LoginCookieDatabaseBean>() {
|
|
@Override
|
|
public void onResponse(Headers headers, int code, String status, LoginCookieDatabaseBean response, String rawResponse) {
|
|
Log.i("二维码地址: "+rawResponse);
|
|
if (code == BiliLoginNetApiManager.LOGIN_SUCCESS) {
|
|
Response<HttpBody<UserInfoBean>> execute = null;
|
|
try {
|
|
execute = BiliUserNetApiManager.getInstance().getUserApi(response).getUserInfo().execute();
|
|
if (execute.isSuccessful()) {
|
|
if (execute.body() != null) {
|
|
UserInfoBean data = execute.body().getData();
|
|
LoginUserDatabaseBean userBean=new LoginUserDatabaseBean(data);
|
|
BiliBiliLoginDatabase.getInstance().initData(response,userBean).close();
|
|
}
|
|
}
|
|
} catch (IOException e) {
|
|
throw new RuntimeException(e);
|
|
}
|
|
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public void onFailure(Throwable throwable) {
|
|
|
|
}
|
|
});
|
|
}
|
|
} |