update
This commit is contained in:
@@ -2,16 +2,37 @@ package com.yutou.bilibili.Controllers;
|
||||
|
||||
import com.alibaba.fastjson2.JSONArray;
|
||||
import com.alibaba.fastjson2.JSONObject;
|
||||
import com.yutou.biliapi.api.LoginApi;
|
||||
import com.yutou.biliapi.bean.login.CheckCookieBean;
|
||||
import com.yutou.biliapi.bean.login.LoginCookieDatabaseBean;
|
||||
import com.yutou.biliapi.bean.login.LoginUserDatabaseBean;
|
||||
import com.yutou.biliapi.bean.login.UserInfoBean;
|
||||
import com.yutou.biliapi.databases.BiliBiliLoginDatabase;
|
||||
import com.yutou.biliapi.net.BiliCookieManager;
|
||||
import com.yutou.biliapi.net.BiliLoginNetApiManager;
|
||||
import com.yutou.biliapi.net.BiliUserNetApiManager;
|
||||
import com.yutou.bilibili.datas.ResultData;
|
||||
import com.yutou.bilibili.services.LiveLoginService;
|
||||
import com.yutou.common.okhttp.HttpBody;
|
||||
import com.yutou.common.okhttp.HttpCallback;
|
||||
import com.yutou.common.okhttp.HttpLoggingInterceptor;
|
||||
import com.yutou.common.utils.Log;
|
||||
import com.yutou.common.utils.RedisTools;
|
||||
import jakarta.annotation.Resource;
|
||||
import jakarta.servlet.http.HttpServletRequest;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
import jakarta.servlet.http.HttpSession;
|
||||
import okhttp3.Headers;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.util.StringUtils;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.ResponseBody;
|
||||
import retrofit2.Response;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
|
||||
@Controller
|
||||
public class BiliUserController {
|
||||
@@ -24,11 +45,103 @@ public class BiliUserController {
|
||||
JSONArray array = new JSONArray();
|
||||
List<LoginUserDatabaseBean> allUser = loginService.getAllUser();
|
||||
for (LoginUserDatabaseBean bean : allUser) {
|
||||
JSONObject json=new JSONObject();
|
||||
json.put("uid",bean.getUserInfo().getMid());
|
||||
json.put("uname",bean.getUserInfo().getUname());
|
||||
array.add(json);
|
||||
LoginApi api = BiliLoginNetApiManager.getInstance().getLoginApi(bean.getUserInfo().getMid());
|
||||
JSONObject json = new JSONObject();
|
||||
json.put("uid", bean.getUserInfo().getMid());
|
||||
json.put("uname", bean.getUserInfo().getUname());
|
||||
json.put("face",bean.getUserInfo().getFace());
|
||||
json.put("sql_time",bean.getSql_time());
|
||||
try {
|
||||
CheckCookieBean cookie = api.checkCookie().execute().body().getData();
|
||||
if (cookie == null) {
|
||||
json.put("status", "无效");
|
||||
} else {
|
||||
json.put("status", cookie.isRefresh()?"待刷新":"正常");
|
||||
}
|
||||
} catch (IOException e) {
|
||||
Log.e(e);
|
||||
json.put("status", "无效");
|
||||
}
|
||||
array.add(json);
|
||||
}
|
||||
return ResultData.success(array);
|
||||
}
|
||||
|
||||
@ResponseBody
|
||||
@RequestMapping("/user/login")
|
||||
public JSONObject login(HttpServletRequest request) {
|
||||
HttpSession session = request.getSession();
|
||||
Object loginToken = session.getAttribute("loginToken");
|
||||
if (loginToken == null) {
|
||||
loginToken = UUID.randomUUID().toString();
|
||||
session.setAttribute("loginToken", loginToken);
|
||||
}
|
||||
return ResultData.success(login(loginToken.toString()));
|
||||
|
||||
}
|
||||
|
||||
private JSONObject login(String loginToken) {
|
||||
String ret = RedisTools.get(loginToken);
|
||||
if (StringUtils.hasText(ret)) {
|
||||
JSONObject json = JSONObject.parseObject(ret);
|
||||
if (json.getIntValue("code") == BiliLoginNetApiManager.LOGIN_SUCCESS) {
|
||||
RedisTools.remove(loginToken);
|
||||
}
|
||||
return json;
|
||||
}
|
||||
BiliLoginNetApiManager.getInstance().login(new HttpCallback<LoginCookieDatabaseBean>() {
|
||||
@Override
|
||||
public void onResponse(Headers headers, int code, String status, LoginCookieDatabaseBean response, String rawResponse) {
|
||||
JSONObject json = new JSONObject();
|
||||
json.put("code", code);
|
||||
if (code == BiliLoginNetApiManager.LOGIN_QRCODE) {
|
||||
json.put("qrcode", rawResponse);
|
||||
} else 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();
|
||||
json.put("user", data);
|
||||
}
|
||||
}
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
RedisTools.set(loginToken, json.toString(), 60 * 60);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFailure(Throwable throwable) {
|
||||
|
||||
}
|
||||
});
|
||||
return null;
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
LiveLoginService loginService = new LiveLoginService();
|
||||
/* List<LoginUserDatabaseBean> allUser = loginService.getAllUser();
|
||||
for (LoginUserDatabaseBean user : allUser) {
|
||||
System.out.println(user.getUserInfo().getMid());
|
||||
LoginApi api = BiliLoginNetApiManager.getInstance().getLoginApi(user.getUserInfo().getMid());
|
||||
try {
|
||||
CheckCookieBean cookie = api.checkCookie().execute().body().getData();
|
||||
System.out.println("cookie = " + cookie);
|
||||
if(cookie.isRefresh()){
|
||||
BiliCookieManager.resetCookie(loginService.getCookie(user.getUserInfo().getMid()));
|
||||
}
|
||||
} catch (IOException e) {
|
||||
Log.e(e);
|
||||
}finally {
|
||||
return;
|
||||
}
|
||||
}*/
|
||||
HttpLoggingInterceptor.setLog(true);
|
||||
BiliCookieManager.resetCookie(loginService.getCookie("96300"));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package com.yutou.bilibili.services;
|
||||
|
||||
import com.yutou.biliapi.api.LoginApi;
|
||||
import com.yutou.biliapi.bean.login.LoginCookieDatabaseBean;
|
||||
import com.yutou.biliapi.bean.login.LoginInfoBean;
|
||||
import com.yutou.biliapi.bean.login.LoginUserDatabaseBean;
|
||||
import com.yutou.biliapi.bean.login.QRCodeGenerateBean;
|
||||
@@ -56,4 +57,10 @@ public class LiveLoginService {
|
||||
|
||||
return loginDatabase.getAllUser();
|
||||
}
|
||||
public List<LoginCookieDatabaseBean> getAllUserCookie(){
|
||||
return loginDatabase.getAllCookies();
|
||||
}
|
||||
public LoginCookieDatabaseBean getCookie(String userId) {
|
||||
return loginDatabase.getCookie(userId);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user