Compare commits
1 Commits
使用mirai的最后
...
3b52742ac1
| Author | SHA1 | Date | |
|---|---|---|---|
| 3b52742ac1 |
@@ -3,7 +3,4 @@ package com.yutou.bilibili.api;
|
|||||||
public class VideoApi {
|
public class VideoApi {
|
||||||
|
|
||||||
public static final String VIDEO_AI = "https://api.bilibili.com/x/web-interface/view/conclusion/get";
|
public static final String VIDEO_AI = "https://api.bilibili.com/x/web-interface/view/conclusion/get";
|
||||||
@Deprecated
|
|
||||||
public static final String VIDEO_PLAY_URL = "https://api.bilibili.com/x/player/playurl";
|
|
||||||
public static final String VIDEO_PLAY_URL_V2 = "https://api.bilibili.com/x/player/wbi/playurl";
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,7 +2,6 @@ package com.yutou.qqbot;
|
|||||||
|
|
||||||
import com.yutou.qqbot.utlis.AppTools;
|
import com.yutou.qqbot.utlis.AppTools;
|
||||||
import com.yutou.qqbot.utlis.RedisTools;
|
import com.yutou.qqbot.utlis.RedisTools;
|
||||||
import net.mamoe.mirai.Bot;
|
|
||||||
import org.springframework.stereotype.Controller;
|
import org.springframework.stereotype.Controller;
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
import org.springframework.web.bind.annotation.ResponseBody;
|
import org.springframework.web.bind.annotation.ResponseBody;
|
||||||
@@ -34,16 +33,4 @@ public class QQBotController {
|
|||||||
AppTools.sendServer(title, msg);
|
AppTools.sendServer(title, msg);
|
||||||
return "ok";
|
return "ok";
|
||||||
}
|
}
|
||||||
@ResponseBody
|
|
||||||
@RequestMapping("/bot/test.do")
|
|
||||||
public String testLogin(){
|
|
||||||
Bot bot = QQBotManager.getInstance().getBot();
|
|
||||||
return bot.isOnline()+"";
|
|
||||||
}
|
|
||||||
@ResponseBody
|
|
||||||
@RequestMapping("/bot/login.do")
|
|
||||||
public String login(){
|
|
||||||
QQBotManager.getInstance().reLogin();
|
|
||||||
return "ok";
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ import com.yutou.qqbot.Listeners.QQMessageListener;
|
|||||||
import com.yutou.qqbot.utlis.*;
|
import com.yutou.qqbot.utlis.*;
|
||||||
import net.mamoe.mirai.Bot;
|
import net.mamoe.mirai.Bot;
|
||||||
import net.mamoe.mirai.BotFactory;
|
import net.mamoe.mirai.BotFactory;
|
||||||
|
import net.mamoe.mirai.auth.BotAuthorization;
|
||||||
import net.mamoe.mirai.event.GlobalEventChannel;
|
import net.mamoe.mirai.event.GlobalEventChannel;
|
||||||
import net.mamoe.mirai.message.MessageReceipt;
|
import net.mamoe.mirai.message.MessageReceipt;
|
||||||
import net.mamoe.mirai.message.data.*;
|
import net.mamoe.mirai.message.data.*;
|
||||||
@@ -54,11 +55,7 @@ public class QQBotManager {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
String url=ConfigTools.load(ConfigTools.CONFIG,"sign_url",String.class);
|
String test = HttpTools.get("http://192.168.31.88:7400/");
|
||||||
if(StringUtils.isEmpty(url)){
|
|
||||||
url="http://192.168.31.88:7400/";
|
|
||||||
}
|
|
||||||
String test = HttpTools.get(url);
|
|
||||||
try {
|
try {
|
||||||
JSONObject json = JSONObject.parseObject(test);
|
JSONObject json = JSONObject.parseObject(test);
|
||||||
if (json.getInteger("code") != 0) {
|
if (json.getInteger("code") != 0) {
|
||||||
@@ -104,6 +101,7 @@ public class QQBotManager {
|
|||||||
}
|
}
|
||||||
}).start();
|
}).start();
|
||||||
bot.join();
|
bot.join();
|
||||||
|
|
||||||
}
|
}
|
||||||
}).start();
|
}).start();
|
||||||
|
|
||||||
@@ -268,12 +266,4 @@ public class QQBotManager {
|
|||||||
public Bot getBot() {
|
public Bot getBot() {
|
||||||
return bot;
|
return bot;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void reLogin() {
|
|
||||||
isInit=false;
|
|
||||||
if(bot.isOnline()){
|
|
||||||
bot.close();
|
|
||||||
}
|
|
||||||
init();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,7 +13,6 @@ import java.util.Set;
|
|||||||
|
|
||||||
public class QQNumberManager {
|
public class QQNumberManager {
|
||||||
private static QQNumberManager manager;
|
private static QQNumberManager manager;
|
||||||
|
|
||||||
private QQNumberManager(){
|
private QQNumberManager(){
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -24,7 +23,6 @@ public class QQNumberManager {
|
|||||||
}
|
}
|
||||||
return manager;
|
return manager;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void addNumber(Long qq,boolean isGroup){
|
public void addNumber(Long qq,boolean isGroup){
|
||||||
if(RedisTools.exists(qq,null)){
|
if(RedisTools.exists(qq,null)){
|
||||||
return;
|
return;
|
||||||
@@ -35,7 +33,6 @@ public class QQNumberManager {
|
|||||||
json.put("model",new JSONArray());
|
json.put("model",new JSONArray());
|
||||||
RedisTools.set(qq,json.toJSONString());
|
RedisTools.set(qq,json.toJSONString());
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<Long> getNumber(){
|
public List<Long> getNumber(){
|
||||||
List<Long> list =new ArrayList<>();
|
List<Long> list =new ArrayList<>();
|
||||||
Jedis jedis=RedisTools.getRedis();
|
Jedis jedis=RedisTools.getRedis();
|
||||||
@@ -51,7 +48,6 @@ public class QQNumberManager {
|
|||||||
jedis.close();
|
jedis.close();
|
||||||
return list;
|
return list;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean addPower(Long qq, String power){
|
public boolean addPower(Long qq, String power){
|
||||||
if(RedisTools.exists(qq,null)){
|
if(RedisTools.exists(qq,null)){
|
||||||
JSONObject json=JSON.parseObject(RedisTools.get(qq));
|
JSONObject json=JSON.parseObject(RedisTools.get(qq));
|
||||||
@@ -62,7 +58,6 @@ public class QQNumberManager {
|
|||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<String> getPower(Long qq){
|
public List<String> getPower(Long qq){
|
||||||
List<String> list=new ArrayList<>();
|
List<String> list=new ArrayList<>();
|
||||||
if(RedisTools.exists(qq,null)){
|
if(RedisTools.exists(qq,null)){
|
||||||
@@ -75,7 +70,6 @@ public class QQNumberManager {
|
|||||||
}
|
}
|
||||||
return list;
|
return list;
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<String> getUseModel(long qq) {
|
public List<String> getUseModel(long qq) {
|
||||||
List<String> list=new ArrayList<>();
|
List<String> list=new ArrayList<>();
|
||||||
if(RedisTools.exists(qq,null)){
|
if(RedisTools.exists(qq,null)){
|
||||||
@@ -88,7 +82,6 @@ public class QQNumberManager {
|
|||||||
}
|
}
|
||||||
return list;
|
return list;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean delPower(Long qq, String power){
|
public boolean delPower(Long qq, String power){
|
||||||
if(RedisTools.exists(qq,null)){
|
if(RedisTools.exists(qq,null)){
|
||||||
JSONObject json=JSON.parseObject(RedisTools.get(qq));
|
JSONObject json=JSON.parseObject(RedisTools.get(qq));
|
||||||
@@ -99,7 +92,6 @@ public class QQNumberManager {
|
|||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean addUseModel(Long qq,Class<?> modelClass){
|
public boolean addUseModel(Long qq,Class<?> modelClass){
|
||||||
if(RedisTools.exists(qq,null)){
|
if(RedisTools.exists(qq,null)){
|
||||||
JSONObject json=JSON.parseObject(RedisTools.get(qq));
|
JSONObject json=JSON.parseObject(RedisTools.get(qq));
|
||||||
@@ -110,7 +102,6 @@ public class QQNumberManager {
|
|||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean delUseModel(Long qq,Class<?> modelClass){
|
public boolean delUseModel(Long qq,Class<?> modelClass){
|
||||||
if(RedisTools.exists(qq,null)){
|
if(RedisTools.exists(qq,null)){
|
||||||
JSONObject json=JSON.parseObject(RedisTools.get(qq));
|
JSONObject json=JSON.parseObject(RedisTools.get(qq));
|
||||||
@@ -121,7 +112,6 @@ public class QQNumberManager {
|
|||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isExistsPower(Long qq, String... power){
|
public boolean isExistsPower(Long qq, String... power){
|
||||||
//1
|
//1
|
||||||
if(RedisTools.exists(qq,null)){
|
if(RedisTools.exists(qq,null)){
|
||||||
@@ -136,7 +126,6 @@ public class QQNumberManager {
|
|||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isGroup(Long qq){
|
public boolean isGroup(Long qq){
|
||||||
if(RedisTools.exists(qq,null)){
|
if(RedisTools.exists(qq,null)){
|
||||||
JSONObject json= JSON.parseObject(RedisTools.get(qq));
|
JSONObject json= JSON.parseObject(RedisTools.get(qq));
|
||||||
@@ -144,18 +133,12 @@ public class QQNumberManager {
|
|||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isUseModel(Long qq,Class<?> modelClass){
|
public boolean isUseModel(Long qq,Class<?> modelClass){
|
||||||
try {
|
|
||||||
if(RedisTools.exists(qq,null)){
|
if(RedisTools.exists(qq,null)){
|
||||||
JSONObject json=JSON.parseObject(RedisTools.get(qq));
|
JSONObject json=JSON.parseObject(RedisTools.get(qq));
|
||||||
JSONArray array=json.getJSONArray("model");
|
JSONArray array=json.getJSONArray("model");
|
||||||
return array.contains(modelClass.getName());
|
return array.contains(modelClass.getName());
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
Log.i("isUseModel", qq + " " + modelClass.getName());
|
|
||||||
}
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,6 @@ package com.yutou.qqbot.models.BiliBili;
|
|||||||
|
|
||||||
import com.alibaba.fastjson2.JSONArray;
|
import com.alibaba.fastjson2.JSONArray;
|
||||||
import com.alibaba.fastjson2.JSONObject;
|
import com.alibaba.fastjson2.JSONObject;
|
||||||
import com.yutou.bilibili.api.VideoApi;
|
|
||||||
import com.yutou.qqbot.Annotations.UseModel;
|
import com.yutou.qqbot.Annotations.UseModel;
|
||||||
import com.yutou.qqbot.QQBotManager;
|
import com.yutou.qqbot.QQBotManager;
|
||||||
import com.yutou.qqbot.QQNumberManager;
|
import com.yutou.qqbot.QQNumberManager;
|
||||||
@@ -159,7 +158,7 @@ public class BiliVideo extends Model {
|
|||||||
json.put("avid", infoData.getLong("aid"));
|
json.put("avid", infoData.getLong("aid"));
|
||||||
if (eps.containsKey("cid")) {
|
if (eps.containsKey("cid")) {
|
||||||
json.put("cid", eps.getLong("cid"));
|
json.put("cid", eps.getLong("cid"));
|
||||||
json.put("qn", 125);
|
json.put("qn", 127);
|
||||||
json.put("fnval", 80);
|
json.put("fnval", 80);
|
||||||
json.put("fourk", 1);
|
json.put("fourk", 1);
|
||||||
downVideo(json, eps);
|
downVideo(json, eps);
|
||||||
@@ -173,7 +172,7 @@ public class BiliVideo extends Model {
|
|||||||
JSONObject item = (JSONObject) o;
|
JSONObject item = (JSONObject) o;
|
||||||
json.put("avid", item.getLong("aid"));
|
json.put("avid", item.getLong("aid"));
|
||||||
json.put("cid", item.getLong("cid"));
|
json.put("cid", item.getLong("cid"));
|
||||||
json.put("qn", 125);
|
json.put("qn", 127);
|
||||||
json.put("fnval", 80);
|
json.put("fnval", 80);
|
||||||
json.put("fourk", 1);
|
json.put("fourk", 1);
|
||||||
item.put("title", eps.getString("title") + "$(File.separator)" + item.getString("title"));
|
item.put("title", eps.getString("title") + "$(File.separator)" + item.getString("title"));
|
||||||
@@ -260,8 +259,7 @@ public class BiliVideo extends Model {
|
|||||||
if (tmp.exists()) {
|
if (tmp.exists()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
TreeMap<String,String> body=BiliBiliWbiSign.getWbiSign(json);
|
JSONObject http = biliUtils.http("https://api.bilibili.com/x/player/playurl?" + HttpTools.toUrlParams(json), BiliBiliUtils.HTTP.GET, null, BiliBiliUtils.RET_MODEL.JSON);
|
||||||
JSONObject http = biliUtils.http(VideoApi.VIDEO_PLAY_URL_V2+"?" + HttpTools.toUrlParams(body), BiliBiliUtils.HTTP.GET, null, BiliBiliUtils.RET_MODEL.JSON);
|
|
||||||
if (http.getInteger("code") == 0) {
|
if (http.getInteger("code") == 0) {
|
||||||
JSONObject data = http.getJSONObject("data");
|
JSONObject data = http.getJSONObject("data");
|
||||||
JSONObject dash = data.getJSONObject("dash");
|
JSONObject dash = data.getJSONObject("dash");
|
||||||
@@ -401,12 +399,14 @@ public class BiliVideo extends Model {
|
|||||||
|
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
BiliVideo video = new BiliVideo(QQBotManager.defQQ);
|
BiliVideo video = new BiliVideo(QQBotManager.defQQ);
|
||||||
|
JSONObject login = new BiliLogin(QQBotManager.defQQ).login();
|
||||||
|
System.out.println(login);
|
||||||
//岚少 480
|
//岚少 480
|
||||||
//video.downVideo("https://www.bilibili.com/video/BV1Ps411m7pt?spm_id_from=333.999.0.0");
|
//video.downVideo("https://www.bilibili.com/video/BV1Ps411m7pt?spm_id_from=333.999.0.0");
|
||||||
//唐诱 合集
|
//唐诱 合集
|
||||||
//video.downVideo("https://www.bilibili.com/video/BV1Vv4y1K7ox?spm_id_from=444.41.top_right_bar_window_default_collection.content.click");
|
//video.downVideo("https://www.bilibili.com/video/BV1Vv4y1K7ox?spm_id_from=444.41.top_right_bar_window_default_collection.content.click");
|
||||||
//邦邦 长视频
|
//邦邦 长视频
|
||||||
video.downVideo("https://www.bilibili.com/video/BV1w5411271A?spm_id_from=444.41.list.card_archive.click");
|
// video.downVideo("https://www.bilibili.com/video/BV1w5411271A?spm_id_from=444.41.list.card_archive.click");
|
||||||
//LK 超清4k hdr
|
//LK 超清4k hdr
|
||||||
//video.downVideo("https://www.bilibili.com/video/BV1uZ4y1U7h8/?spm_id_from=333.788.recommend_more_video.-1");
|
//video.downVideo("https://www.bilibili.com/video/BV1uZ4y1U7h8/?spm_id_from=333.788.recommend_more_video.-1");
|
||||||
// hdr
|
// hdr
|
||||||
@@ -423,7 +423,7 @@ public class BiliVideo extends Model {
|
|||||||
// int a=16|2048;
|
// int a=16|2048;
|
||||||
// System.out.println("a = " + a);
|
// System.out.println("a = " + a);
|
||||||
//video.downDanmu(428855000L,976216102L,"【都市_情感】《唐可可的诱惑》第一集",1);
|
//video.downDanmu(428855000L,976216102L,"【都市_情感】《唐可可的诱惑》第一集",1);
|
||||||
//video.downVideo("https://www.bilibili.com/bangumi/play/ep776259", false, false);// ep5
|
video.downVideo("https://www.bilibili.com/bangumi/play/ep776259", false, false);// ep5
|
||||||
System.out.println("事件结束");
|
System.out.println("事件结束");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -31,13 +31,7 @@ public class BiliBiliWbiSign {
|
|||||||
body.put("w_rid", AppTools.getMD5(params + genMixinKey(rawWbiKey)));
|
body.put("w_rid", AppTools.getMD5(params + genMixinKey(rawWbiKey)));
|
||||||
return body;
|
return body;
|
||||||
}
|
}
|
||||||
public static TreeMap<String, String> getWbiSign(JSONObject json) {
|
|
||||||
TreeMap<String, String> body=new TreeMap<>();
|
|
||||||
for (String key : json.keySet()) {
|
|
||||||
body.put(key, json.getString(key));
|
|
||||||
}
|
|
||||||
return getWbiSign(body);
|
|
||||||
}
|
|
||||||
private static String genMixinKey(String rawWbiKey) {
|
private static String genMixinKey(String rawWbiKey) {
|
||||||
byte[] rawBytes = rawWbiKey.getBytes(StandardCharsets.UTF_8);
|
byte[] rawBytes = rawWbiKey.getBytes(StandardCharsets.UTF_8);
|
||||||
byte[] mixinKey = new byte[32];
|
byte[] mixinKey = new byte[32];
|
||||||
@@ -77,6 +71,4 @@ public class BiliBiliWbiSign {
|
|||||||
//https://api.bilibili.com/x/web-interface/view/conclusion/get?bvid=BV1L94y1H7CV&cid=1335073288&up_mid=297242063&web_location=333.788&w_rid=a5d90f60ac6b6b6fc9d49be3ba3fee53&wts=1705394671
|
//https://api.bilibili.com/x/web-interface/view/conclusion/get?bvid=BV1L94y1H7CV&cid=1335073288&up_mid=297242063&web_location=333.788&w_rid=a5d90f60ac6b6b6fc9d49be3ba3fee53&wts=1705394671
|
||||||
//updateRawWbiKey();
|
//updateRawWbiKey();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user