mirror of
https://github.com/Geniusay/ChopperBot.git
synced 2026-09-03 14:28:22 +08:00
视频自定义标签插件
This commit is contained in:
16
.idea/compiler.xml
generated
16
.idea/compiler.xml
generated
@@ -13,6 +13,7 @@
|
||||
<module name="chopperbot-publish" />
|
||||
<module name="chopperbot-console" />
|
||||
<module name="chopperbot-file" />
|
||||
<module name="chopperbot-test" />
|
||||
<module name="chopperbot-live" />
|
||||
<module name="chopperbot-creeper" />
|
||||
<module name="chopperbot-barrage" />
|
||||
@@ -20,21 +21,6 @@
|
||||
<module name="chopperbot-section-work" />
|
||||
</profile>
|
||||
</annotationProcessing>
|
||||
<bytecodeTargetLevel>
|
||||
<module name="AccountModule" target="11" />
|
||||
<module name="BarrageModule" target="11" />
|
||||
<module name="chopperbot-test" target="11" />
|
||||
<module name="common" target="11" />
|
||||
<module name="console" target="11" />
|
||||
<module name="CreeperModule" target="11" />
|
||||
<module name="FileModule" target="11" />
|
||||
<module name="HotModule" target="11" />
|
||||
<module name="LiveRecordModule" target="11" />
|
||||
<module name="PublishModule" target="11" />
|
||||
<module name="SectionModule" target="9" />
|
||||
<module name="SectionWorkModule" target="11" />
|
||||
<module name="VideoSectionModule" target="11" />
|
||||
</bytecodeTargetLevel>
|
||||
</component>
|
||||
<component name="JavacSettings">
|
||||
<option name="ADDITIONAL_OPTIONS_OVERRIDE">
|
||||
|
||||
@@ -17,12 +17,6 @@
|
||||
</properties>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>junit</groupId>
|
||||
<artifactId>junit</artifactId>
|
||||
<version>3.8.1</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.rabbitmq</groupId>
|
||||
@@ -33,22 +27,16 @@
|
||||
<dependency>
|
||||
<groupId>org.example</groupId>
|
||||
<artifactId>chopperbot-common</artifactId>
|
||||
<version>1.0-SNAPSHOT</version>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.example</groupId>
|
||||
<artifactId>chopperbot-file</artifactId>
|
||||
<version>1.0-SNAPSHOT</version>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.example</groupId>
|
||||
<artifactId>chopperbot-publish</artifactId>
|
||||
<version>1.0-SNAPSHOT</version>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
|
||||
@@ -14,6 +14,8 @@ import org.springframework.stereotype.Component;
|
||||
import javax.annotation.Resource;
|
||||
import java.io.IOException;
|
||||
import java.util.List;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
/**
|
||||
* @Date 2023/10/12
|
||||
@@ -56,6 +58,15 @@ public class ChatGPTPlugin extends SpringBootPlugin {
|
||||
return null;
|
||||
}
|
||||
|
||||
public String getCommonRes(JSONObject resp){
|
||||
Pattern pattern = Pattern.compile("\\[(.*?)]");
|
||||
|
||||
Matcher matcher = pattern.matcher(resp.getJSONArray("choices").getJSONObject(0).getJSONObject("message").getString("content"));
|
||||
|
||||
if (matcher.find()) return matcher.group(1);
|
||||
return "";
|
||||
}
|
||||
|
||||
private RequestBody buildBody(String msg){
|
||||
return RequestBody.create(msg, MediaType.parse("application/json"));
|
||||
}
|
||||
@@ -87,8 +98,8 @@ public class ChatGPTPlugin extends SpringBootPlugin {
|
||||
" \"model\" TEXT NOT NULL\n" +
|
||||
")",mapper = GPTKeyMapper.class)
|
||||
public List<GPTKey> sqlInit() {
|
||||
return List.of(new GPTKey("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"
|
||||
,"https://api.misakanetwork.com.cn/v1/chat/completions"
|
||||
,"gpt-3.5-turbo-16k-0613"));
|
||||
return List.of(new GPTKey("sk-xgUDtOdRgQLigz2D0e4cA665441e4287AfCf8458B1C21b0f"
|
||||
,"https://oneapi.a9.gay/v1/chat/completions"
|
||||
,"gpt-3.5-turbo"));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,62 @@
|
||||
package org.example.core.label;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import org.example.mapper.LabelMapper;
|
||||
import org.example.plugin.SpringBootPlugin;
|
||||
import org.example.pojo.VideoLabel;
|
||||
import org.example.sql.annotation.SQLInit;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.awt.*;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @author Genius
|
||||
* @date 2023/10/23 00:10
|
||||
**/
|
||||
@Component
|
||||
public class LabelManagerPlugin extends SpringBootPlugin {
|
||||
|
||||
@Resource
|
||||
LabelMapper mapper;
|
||||
|
||||
@Override
|
||||
public boolean init() {
|
||||
return super.init();
|
||||
}
|
||||
|
||||
@Override
|
||||
@SQLInit(table = "video_label",tableSQL = "CREATE TABLE \"video_label\" (\n" +
|
||||
"\t\"id\"\tINTEGER NOT NULL,\n" +
|
||||
"\t\"label\"\tTEXT NOT NULL UNIQUE,\n" +
|
||||
"\tPRIMARY KEY(\"id\" AUTOINCREMENT)\n" +
|
||||
")",mapper = LabelMapper.class)
|
||||
public List<?> sqlInit() {
|
||||
return List.of(new VideoLabel(null,"搞笑"),
|
||||
new VideoLabel(null,"破防"),new VideoLabel(null,"泪目"),
|
||||
new VideoLabel(null,"精彩操作"));
|
||||
}
|
||||
|
||||
public List<String> labelStrList(){
|
||||
return mapper.selectList(new QueryWrapper<>()).stream().map(VideoLabel::getLabel).collect(Collectors.toList());
|
||||
}
|
||||
|
||||
public List<VideoLabel> labelList(){
|
||||
return mapper.selectList(new QueryWrapper<>());
|
||||
}
|
||||
|
||||
public boolean addLabel(VideoLabel label){
|
||||
return mapper.insert(label)>0;
|
||||
}
|
||||
|
||||
public boolean deleteLabel(String label){
|
||||
return mapper.deleteByMap(Map.of("label",label))>0;
|
||||
}
|
||||
|
||||
public boolean updateLabel(VideoLabel label){
|
||||
return mapper.update(label,new QueryWrapper<VideoLabel>().eq("id",label.getId()))>0;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
package org.example.init;
|
||||
|
||||
import org.example.constpool.ModuleName;
|
||||
import org.example.constpool.PluginName;
|
||||
import org.example.core.gpt.ChatGPTPlugin;
|
||||
import org.example.core.label.LabelManagerPlugin;
|
||||
import org.example.plugin.SpringBootPlugin;
|
||||
import org.example.plugin.annotation.Plugin;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
/**
|
||||
* @author Genius
|
||||
* @date 2023/10/23 00:13
|
||||
**/
|
||||
|
||||
@Plugin(moduleName = ModuleName.ACCOUNT,
|
||||
pluginName = PluginName.LABEL_MANAGER,
|
||||
pluginName_CN = "视频标签管理插件",
|
||||
needPlugin = {},
|
||||
pluginClass= LabelManagerPlugin.class,
|
||||
springBootPlugin = true
|
||||
)
|
||||
@Component
|
||||
public class LabelManagerPluginInitMachine extends SpringPlugInitMachine {
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
package org.example.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import org.example.pojo.Video;
|
||||
import org.example.pojo.VideoLabel;
|
||||
|
||||
public interface LabelMapper extends BaseMapper<VideoLabel> {
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
package org.example.pojo;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
/**
|
||||
* @author Genius
|
||||
* @date 2023/10/22 22:54
|
||||
**/
|
||||
@Data
|
||||
@TableName("video_label")
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class VideoLabel {
|
||||
private Integer id;
|
||||
private String label;
|
||||
}
|
||||
@@ -9,12 +9,15 @@ import org.example.core.bgevnet.bgscore.BarrageScoreCurvePlugin;
|
||||
import org.example.service.LiverKeywordService;
|
||||
import org.example.util.ConfigFileUtil;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import static org.example.constpool.BarrageModuleConstPool.GLOBAL_KEY_WORD;
|
||||
|
||||
/**
|
||||
* @author Genius
|
||||
* @date 2023/10/13 16:45
|
||||
@@ -47,7 +50,13 @@ public class BarrageScoreCurvePluginApi {
|
||||
}
|
||||
|
||||
public List<LiverKeyword> getKeyWords(String anchor){
|
||||
return barrageScoreCurvePlugin.getKetWords(anchor);
|
||||
if(anchor.equals(GLOBAL_KEY_WORD)){
|
||||
return keywordService.getGlobalKeyWords();
|
||||
}else if(StringUtils.hasText(anchor)){
|
||||
return keywordService.getLiverKeyWords(anchor);
|
||||
}else{
|
||||
return keywordService.getLiverKeyWords();
|
||||
}
|
||||
}
|
||||
|
||||
public List<LiverKeyword> getKeyWords(){
|
||||
|
||||
@@ -7,6 +7,8 @@ import java.util.List;
|
||||
|
||||
public interface LiverKeywordService extends IService<LiverKeyword> {
|
||||
|
||||
List<LiverKeyword> getLiverKeyWords();
|
||||
|
||||
List<LiverKeyword> getLiverKeyWords(String liver);
|
||||
|
||||
List<LiverKeyword> getGlobalKeyWords();
|
||||
|
||||
@@ -22,6 +22,11 @@ public class LiverKeywordServiceImpl extends ServiceImpl<LiverKeywordMapper, Liv
|
||||
@Resource
|
||||
private LiverKeywordMapper mapper;
|
||||
|
||||
@Override
|
||||
public List<LiverKeyword> getLiverKeyWords() {
|
||||
return query().list();
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<LiverKeyword> getLiverKeyWords(String liver) {
|
||||
return query().eq("liver",liver).list();
|
||||
|
||||
@@ -18,4 +18,6 @@ public class ModuleName {
|
||||
public static final String LIVE = ConstPool.LIVE_RECORD;
|
||||
public static final String SECTION = ConstPool.SECTION;
|
||||
public static final String ACCOUNT = ConstPool.ACCOUNT;
|
||||
|
||||
public static final String SECTION_WORK = ConstPool.SECTION_WORK;
|
||||
}
|
||||
|
||||
@@ -49,6 +49,7 @@ public class PluginName {
|
||||
|
||||
public static final String ACCOUNT_MANAGER = "AccountManager";
|
||||
|
||||
public static final String LABEL_MANAGER = "LabelManager";
|
||||
|
||||
|
||||
public static final String LIVE_CONFIG_PLUGIN= "LiveConfig";
|
||||
|
||||
@@ -12,7 +12,8 @@ public enum LoggerType {
|
||||
Barrage("Barrage "),
|
||||
LiveRecord("LiveRecord "),
|
||||
Account("Account "),
|
||||
Section("Section ");
|
||||
Section("Section "),
|
||||
SectionWork("SectionWork");
|
||||
private String loggerName;
|
||||
|
||||
LoggerType(String name){
|
||||
|
||||
@@ -57,6 +57,11 @@
|
||||
<artifactId>chopperbot-section</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.example</groupId>
|
||||
<artifactId>chopperbot-section-work</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>io.github.969025903</groupId>
|
||||
<artifactId>assistant</artifactId>
|
||||
|
||||
@@ -46,11 +46,7 @@ public class BarrageController {
|
||||
@CheckPlugin(needPlugin = {PluginName.BARRAGE_SCORE_CURVE_PLUGIN})
|
||||
@GetMapping("/barrageScoreCurve/keywords")
|
||||
public Result getKeyWords(@RequestParam(required = false) String liver) {
|
||||
if (StringUtils.hasText(liver)) {
|
||||
return Result.success(Map.of("list", barrageService.barrageScoreCurvePluginApi().getKeyWords(liver)));
|
||||
} else {
|
||||
return Result.success(Map.of("list", barrageService.barrageScoreCurvePluginApi().getKeyWords()));
|
||||
}
|
||||
return Result.success(Map.of("list", barrageService.barrageScoreCurvePluginApi().getKeyWords(liver)));
|
||||
}
|
||||
|
||||
@CheckPlugin(needPlugin = {PluginName.BARRAGE_SCORE_CURVE_PLUGIN})
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package org.example.service;
|
||||
|
||||
import org.example.api.SystemFileApi;
|
||||
import org.example.pojo.vo.ConfigVO;
|
||||
import org.example.util.Result;
|
||||
|
||||
@@ -18,4 +19,6 @@ public interface FileService {
|
||||
//获取所有文件
|
||||
List<ConfigVO> getAllConfigs();
|
||||
|
||||
SystemFileApi systemFileApi();
|
||||
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package org.example.service.impl;
|
||||
|
||||
import org.example.api.SystemFileApi;
|
||||
import org.example.cache.FileCache;
|
||||
import org.example.cache.FileCacheManagerInstance;
|
||||
import org.example.bean.FileType;
|
||||
@@ -43,4 +44,9 @@ public class FileServiceImpl implements FileService {
|
||||
}
|
||||
return configVOList;
|
||||
}
|
||||
|
||||
@Override
|
||||
public SystemFileApi systemFileApi() {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,47 @@
|
||||
package org.example.api;
|
||||
|
||||
import org.example.constpool.GlobalFileCache;
|
||||
import org.example.constpool.ModuleName;
|
||||
import org.example.init.InitPluginRegister;
|
||||
import org.example.pojo.vo.FileVO;
|
||||
import org.example.util.FileUtil;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.nio.file.Path;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @author Genius
|
||||
* @date 2023/10/20 23:51
|
||||
**/
|
||||
@Component
|
||||
public class SystemFileApi {
|
||||
|
||||
public List<FileVO> videoFileList(){
|
||||
String src = GlobalFileCache.ModuleSrcConfigFile.get("src", ModuleName.LIVE).toString();
|
||||
List<FileVO> fileVOS = FileUtil.listFiles(src, new ArrayList<>());
|
||||
return fileVOS.stream().filter(fileVO -> {
|
||||
return fileVO.getFileName().endsWith(".flv");
|
||||
}).collect(Collectors.toList());
|
||||
}
|
||||
|
||||
public List<FileVO> barrageFileList(){
|
||||
String src = GlobalFileCache.ModuleSrcConfigFile.get("src", ModuleName.BARRAGE).toString();
|
||||
List<FileVO> fileVOS = new ArrayList<>();
|
||||
fileVOS.addAll(FileUtil.listFiles(Path.of(src,"online").toString(), new ArrayList<>()));
|
||||
fileVOS.addAll(FileUtil.listFiles(Path.of(src,"record").toString(), new ArrayList<>()));
|
||||
return fileVOS;
|
||||
}
|
||||
|
||||
public List<FileVO> logFileList(){
|
||||
String src = GlobalFileCache.ModuleSrcConfigFile.get("src", ModuleName.CREEPER).toString();
|
||||
return FileUtil.listFiles(Path.of(src, "log").toString(), new ArrayList<>());
|
||||
}
|
||||
|
||||
public boolean deleteFile(String url){
|
||||
return FileUtil.deleteFile(url);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
package org.example.pojo.vo;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
/**
|
||||
* @author Genius
|
||||
* @date 2023/10/20 23:27
|
||||
**/
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class FileVO {
|
||||
private String fileName;
|
||||
private String fileUrl;
|
||||
private String createTime;
|
||||
private Long fileSize;
|
||||
}
|
||||
@@ -6,6 +6,7 @@ package org.example.util;
|
||||
**/
|
||||
|
||||
import org.example.method.FileCondition;
|
||||
import org.example.pojo.vo.FileVO;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
@@ -15,6 +16,9 @@ import java.io.IOException;
|
||||
import java.nio.channels.FileChannel;
|
||||
import java.nio.file.*;
|
||||
import java.nio.file.attribute.BasicFileAttributes;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 文件工具类
|
||||
@@ -165,4 +169,45 @@ public class FileUtil {
|
||||
public static String convertTimeToFile(String time){
|
||||
return time.replace(":", "_");
|
||||
}
|
||||
|
||||
public static List<FileVO> listFiles(String dirPath,List<FileVO> fileVOS){
|
||||
return listFiles(new File(dirPath),fileVOS);
|
||||
}
|
||||
public static List<FileVO> listFiles(File folder,List<FileVO> fileVOS) {
|
||||
if (folder.isDirectory()) {
|
||||
File[] files = folder.listFiles();
|
||||
if (files != null) {
|
||||
for (File file : files) {
|
||||
if (file.isFile()) {
|
||||
// 处理文件
|
||||
FileVO fileVO;
|
||||
if ((fileVO=processFile(file))!=null) {
|
||||
fileVOS.add(fileVO);
|
||||
}
|
||||
} else if (file.isDirectory()) {
|
||||
// 递归处理子文件夹
|
||||
listFiles(file,fileVOS);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return fileVOS;
|
||||
}
|
||||
|
||||
public static FileVO processFile(File file) {
|
||||
if (file.isFile()) {
|
||||
String fileName = file.getName();
|
||||
long fileSize = file.length();
|
||||
String createTime = TimeUtil.getFormatDate(file.lastModified());
|
||||
return new FileVO(fileName, file.getPath(), createTime, fileSize);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
List<FileVO> fileVOS = FileUtil.listFiles("./config/LiveRecord/", new ArrayList<>());
|
||||
System.out.println(fileVOS.stream().filter(fileVO -> {
|
||||
return fileVO.getFileName().endsWith(".flv");
|
||||
}).collect(Collectors.toList()));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -18,6 +18,35 @@
|
||||
</properties>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.example</groupId>
|
||||
<artifactId>chopperbot-common</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.example</groupId>
|
||||
<artifactId>chopperbot-account</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.baomidou</groupId>
|
||||
<artifactId>mybatis-plus-boot-starter</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>mysql</groupId>
|
||||
<artifactId>mysql-connector-java</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.baomidou</groupId>
|
||||
<artifactId>mybatis-plus-annotation</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-test</artifactId>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</project>
|
||||
|
||||
@@ -3,7 +3,6 @@ package org.example.core.analysis;
|
||||
import lombok.Data;
|
||||
import org.example.bean.Barrage;
|
||||
import org.example.pojo.AnalysisScheme;
|
||||
import org.jdom2.output.EscapeStrategy;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@@ -18,10 +17,6 @@ public class AnalysisSchemeBuilder {
|
||||
|
||||
private List<Barrage> barrages;
|
||||
|
||||
public AnalysisSchemeBuilder labels(String msg){
|
||||
scheme.setLabels(msg);
|
||||
return this;
|
||||
}
|
||||
|
||||
public AnalysisSchemeBuilder system(String msg){
|
||||
scheme.setSystem(msg);
|
||||
@@ -4,12 +4,17 @@ import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import lombok.Data;
|
||||
import org.example.bean.Barrage;
|
||||
import org.example.constpool.PluginName;
|
||||
import org.example.core.gpt.ChatGPTMsgBuilder;
|
||||
import org.example.core.gpt.ChatGPTPlugin;
|
||||
import org.example.core.label.LabelManagerPlugin;
|
||||
import org.example.init.InitPluginRegister;
|
||||
import org.example.mapper.AnalysisSchemeMapper;
|
||||
import org.example.plugin.SpringBootPlugin;
|
||||
import org.example.pojo.AnalysisScheme;
|
||||
import org.example.pojo.VideoLabel;
|
||||
import org.example.sql.annotation.SQLInit;
|
||||
import org.example.util.ExceptionUtil;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
@@ -64,38 +69,30 @@ public class EmotionAnalysisPlugin extends SpringBootPlugin {
|
||||
public String analysis(List<Barrage> barrages){
|
||||
try {
|
||||
barrage = List.of(barrages.stream().map(Barrage::getContent).collect(Collectors.toList())).toString();
|
||||
|
||||
List<String> list = InitPluginRegister.getPlugin(PluginName.LABEL_MANAGER, LabelManagerPlugin.class).labelStrList();
|
||||
ChatGPTMsgBuilder builder = new ChatGPTMsgBuilder().model(chatGPTPlugin.getKey().getModel())
|
||||
.system(this.scheme.getSystem())
|
||||
.system(this.scheme.getSystem(list.toString()))
|
||||
.user("弹幕:" + barrage)
|
||||
.stream(false);
|
||||
|
||||
JSONObject object = chatGPTPlugin.reqGPT(builder);
|
||||
|
||||
// System.out.println(object.getJSONArray("choices").getJSONObject(0).getJSONObject("message").getString("content"));
|
||||
|
||||
Pattern pattern = Pattern.compile("\\[(.*?)]");
|
||||
|
||||
Matcher matcher = pattern.matcher(object.getJSONArray("choices").getJSONObject(0).getJSONObject("message").getString("content"));
|
||||
|
||||
if (matcher.find()) return matcher.group(1);
|
||||
return chatGPTPlugin.getCommonRes(object);
|
||||
} catch (Exception e){
|
||||
throw new RuntimeException("analysis failed!please check or try again!");
|
||||
this.error("标题生成失败", String.format("标题生成失败,原因:%s", ExceptionUtil.getCause(e)),true);
|
||||
return "";
|
||||
}
|
||||
|
||||
return "";
|
||||
}
|
||||
|
||||
@Override
|
||||
@SQLInit(table = "analysis_scheme",tableSQL = "CREATE TABLE \"analysis_scheme\" (\n" +
|
||||
" \"id\" integer NOT NULL,\n" +
|
||||
" \"labels\" TEXT NOT NULL,\n" +
|
||||
" \"system\" text NOT NULL,\n" +
|
||||
" \"comment\" TEXT,\n" +
|
||||
" PRIMARY KEY (\"id\")\n" +
|
||||
")",mapper = AnalysisSchemeMapper.class)
|
||||
public List<AnalysisScheme> sqlInit() {
|
||||
return List.of(new AnalysisScheme(null,"搞笑,秀操作,破防,泪目",
|
||||
return List.of(new AnalysisScheme(null,
|
||||
"请你作为一个专门看直播的观众,对下列的观众发送的弹幕内容进行分析,然后根据弹幕内容返回从以下几个标签返回给我最合适的一个标签来形容这段内容",
|
||||
"方案一"));
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
package org.example.core.auto;
|
||||
|
||||
public interface AutoGenerator <T>{
|
||||
T generate();
|
||||
T generate(Object data);
|
||||
}
|
||||
|
||||
@@ -0,0 +1,61 @@
|
||||
package org.example.core.auto.video.title;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import org.example.constpool.PluginName;
|
||||
import org.example.exception.plugin.PluginDependOnException;
|
||||
import org.example.exception.plugin.PluginNotRegisterException;
|
||||
import org.example.init.InitPluginRegister;
|
||||
import org.example.mapper.TitleSchemeMapper;
|
||||
import org.example.pojo.TitleScheme;
|
||||
import org.example.sql.annotation.SQLInit;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author Genius
|
||||
* @date 2023/10/22 18:03
|
||||
**/
|
||||
@Component
|
||||
public class GptTitleGenerator implements TitleGenerator{
|
||||
|
||||
@Resource
|
||||
TitleSchemeMapper titleSchemeMapper;
|
||||
private List<TitleScheme> schemeList;
|
||||
|
||||
public GptTitleGenerator() {
|
||||
this.schemeList = new ArrayList<>();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String generate(Object data) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
@SQLInit(table = "title_scheme",tableSQL = "CREATE TABLE \"title_scheme\" (\n" +
|
||||
"\t\"id\"\tINTEGER NOT NULL,\n" +
|
||||
"\t\"system\"\tTEXT NOT NULL,\n" +
|
||||
"\t\"type\"\tTEXT,\n" +
|
||||
"\tPRIMARY KEY(\"id\" AUTOINCREMENT)\n" +
|
||||
")",mapper = TitleSchemeMapper.class)
|
||||
public Object preGenerate() {
|
||||
if (!InitPluginRegister.isRegister(PluginName.CHAT_GPT)) {
|
||||
throw PluginDependOnException.MissingFatherPlugin(PluginName.CHAT_GPT,"");
|
||||
}
|
||||
try {
|
||||
schemeList = titleSchemeMapper.selectList(new QueryWrapper<>());
|
||||
}catch (Exception e){
|
||||
throw new RuntimeException("读取title_scheme表失败");
|
||||
}
|
||||
return List.of(new TitleScheme(null,"请你学习以下标题风格,并对这种风格做出总结。命名为风格A\n" +
|
||||
"标题一:姿态被搞到破防崩溃,上演大型红温现场,这次生气不像演的感觉要掉小珍珠了!\n" +
|
||||
"标题二:PDD节食减肥高光时刻回顾,饭后猛炫6只去皮鸡腿! \n" +
|
||||
"标题三:BLG击败FNC!外战一把不输!外战幻神BLG!武器神Bin天降晕四个斩获三杀! \n" +
|
||||
"标题四:前有TheShy天神下凡一锤四,今有刚神下凡一斩四,海龟剑姬jjking荣归故里吊打小代!\n" +
|
||||
"标题五:属于男生的综艺来了!姿态最新惩罚局,一手辅助维克托上演“超鬼”"
|
||||
,"global"));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
package org.example.core.auto.video.title;
|
||||
|
||||
import org.example.core.auto.AutoGenerator;
|
||||
import org.example.plugin.SpringBootPlugin;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author Genius
|
||||
* @date 2023/10/22 17:53
|
||||
**/
|
||||
@Component
|
||||
public class TitleGeneratePlugin extends SpringBootPlugin {
|
||||
|
||||
private TitleGenerator autoGenerator;
|
||||
|
||||
@Override
|
||||
public boolean init() {
|
||||
return super.init();
|
||||
}
|
||||
|
||||
public String generate(Object data) {
|
||||
autoGenerator.preGenerate();
|
||||
return autoGenerator.generate(data);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
package org.example.core.auto.video.title;
|
||||
|
||||
import org.example.core.auto.AutoGenerator;
|
||||
|
||||
public interface TitleGenerator extends AutoGenerator<String> {
|
||||
|
||||
Object preGenerate();
|
||||
}
|
||||
@@ -3,7 +3,6 @@ package org.example.init;
|
||||
import org.example.constpool.ModuleName;
|
||||
import org.example.constpool.PluginName;
|
||||
import org.example.core.analysis.EmotionAnalysisPlugin;
|
||||
import org.example.core.gpt.ChatGPTPlugin;
|
||||
import org.example.plugin.annotation.Plugin;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
@@ -11,11 +10,11 @@ import org.springframework.stereotype.Component;
|
||||
* @Date 2023/10/16
|
||||
* @Author xiaochun
|
||||
*/
|
||||
@Plugin(moduleName = ModuleName.ACCOUNT,
|
||||
@Plugin(moduleName = ModuleName.SECTION_WORK,
|
||||
pluginName = PluginName.EMOTION_ANALYSIS,
|
||||
pluginName_CN = "情感分析插件",
|
||||
pluginDescription = "根据弹幕内容,分析其情感倾向,并给出对应的情感标签",
|
||||
needPlugin = {PluginName.CHAT_GPT},
|
||||
needPlugin = {PluginName.CHAT_GPT,PluginName.LABEL_MANAGER},
|
||||
pluginClass= EmotionAnalysisPlugin.class,
|
||||
springBootPlugin = true,
|
||||
ignore=true
|
||||
@@ -0,0 +1,24 @@
|
||||
package org.example.init.module;
|
||||
|
||||
import org.example.constpool.ModuleName;
|
||||
import org.example.init.ModuleInitMachine;
|
||||
import org.example.log.ChopperLogFactory;
|
||||
import org.example.log.LoggerType;
|
||||
import org.example.plugin.annotation.Module;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p>用于初始化弹幕模块所需</p>
|
||||
*
|
||||
* @author welsir
|
||||
* @date 2023/7/31 10:11
|
||||
*/
|
||||
@Module
|
||||
public class SectionWorkModuleInitMachine extends ModuleInitMachine {
|
||||
|
||||
public SectionWorkModuleInitMachine() {
|
||||
super(List.of(ModuleName.ACCOUNT),ChopperLogFactory.getLogger(LoggerType.SectionWork),
|
||||
ModuleName.SECTION_WORK);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
package org.example.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import org.example.pojo.TitleScheme;
|
||||
|
||||
public interface TitleSchemeMapper extends BaseMapper<TitleScheme> {
|
||||
}
|
||||
@@ -18,13 +18,11 @@ public class AnalysisScheme {
|
||||
@TableId(value = "id")
|
||||
private Long id;
|
||||
|
||||
private String labels;
|
||||
|
||||
private String system;
|
||||
|
||||
private String comment;
|
||||
|
||||
public String getSystem(){
|
||||
return system + " 标签:[" + labels + "]";
|
||||
public String getSystem(String labels){
|
||||
return system + " 标签:" + labels;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
package org.example.pojo;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
/**
|
||||
* @author Genius
|
||||
* @date 2023/10/22 17:52
|
||||
**/
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@TableName("title_scheme")
|
||||
public class TitleScheme {
|
||||
@TableId(value = "id", type = IdType.AUTO)
|
||||
private Integer id;
|
||||
private String system;
|
||||
private String type;
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
package org.example.core.section;
|
||||
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
/**
|
||||
* @author Genius
|
||||
* @date 2023/10/22 20:56
|
||||
**/
|
||||
@Component
|
||||
public class SectionParking {
|
||||
}
|
||||
@@ -2,6 +2,8 @@ package org.example.core.section;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author Genius
|
||||
* @date 2023/09/19 19:37
|
||||
@@ -14,6 +16,7 @@ public class SectionRequest {
|
||||
private long startTime;
|
||||
private long endTime;
|
||||
|
||||
private List<String> barrages;
|
||||
private String platform;
|
||||
|
||||
private String liver;
|
||||
|
||||
@@ -1,17 +1,24 @@
|
||||
package org.example.core.section;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.Data;
|
||||
import org.example.bean.Barrage;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author Genius
|
||||
* @date 2023/09/19 19:39
|
||||
**/
|
||||
@Data
|
||||
@TableName("section_parking")
|
||||
public class VideoSection {
|
||||
private String videoPath;
|
||||
private String tag;
|
||||
private String liver;
|
||||
|
||||
private List<Barrage> barrages;
|
||||
private String platform;
|
||||
|
||||
public VideoSection(String videoPath, String tag, String liver, String platform) {
|
||||
@@ -19,5 +26,6 @@ public class VideoSection {
|
||||
this.tag = tag;
|
||||
this.liver = liver;
|
||||
this.platform = platform;
|
||||
barrages = new ArrayList<>();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,12 +7,14 @@ import org.example.constpool.ConstPool;
|
||||
import org.example.constpool.FileNameBuilder;
|
||||
import org.example.constpool.GlobalFileCache;
|
||||
import org.example.plugin.SpringGuardPlugin;
|
||||
import org.example.sql.annotation.SQLInit;
|
||||
import org.example.util.FileUtil;
|
||||
import org.example.util.TimeUtil;
|
||||
import org.example.util.VideoUtil;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.nio.file.Paths;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.BlockingQueue;
|
||||
import java.util.concurrent.LinkedBlockingQueue;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
@@ -82,10 +84,18 @@ public class VideoSectionWorkShop extends SpringGuardPlugin {
|
||||
}
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
String s1 = "2023-09-20 00:22:45";
|
||||
long timeNaos = TimeUtil.getTimeNaos(s1);
|
||||
String s = VideoUtil.formatTimeToFFMpeg((1695140913000L-timeNaos)/1000);
|
||||
System.out.println(s);
|
||||
@Override
|
||||
@SQLInit(table = "section_parking",tableSQL = "CREATE TABLE \"section_parking\" (\n" +
|
||||
"\t\"id\"\tINTEGER NOT NULL,\n" +
|
||||
"\t\"video_name\"\tTEXT NOT NULL,\n" +
|
||||
"\t\"liver\"\tTEXT NOT NULL,\n" +
|
||||
"\t\"barrages\"\tTEXT NOT NULL,\n" +
|
||||
"\t\"tag\"\tTEXT NOT NULL,\n" +
|
||||
"\t\"date\"\tTEXT NOT NULL,\n" +
|
||||
"\t\"platform\"\tTEXT,\n" +
|
||||
"\tPRIMARY KEY(\"id\" AUTOINCREMENT)\n" +
|
||||
")")
|
||||
public List<?> sqlInit() {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,361 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<module type="JAVA_MODULE" version="4">
|
||||
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_11">
|
||||
<output url="file://$MODULE_DIR$/target/classes" />
|
||||
<output-test url="file://$MODULE_DIR$/target/test-classes" />
|
||||
<content url="file://$MODULE_DIR$">
|
||||
<sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/target" />
|
||||
</content>
|
||||
<orderEntry type="inheritedJdk" />
|
||||
<orderEntry type="sourceFolder" forTests="false" />
|
||||
<orderEntry type="module" module-name="chopperbot-common" />
|
||||
<orderEntry type="library" name="Maven: com.alibaba:fastjson:1.2.75" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.reflections:reflections:0.9.11" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.javassist:javassist:3.21.0-GA" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-aop:2.3.9.RELEASE" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.springframework:spring-aop:5.2.13.RELEASE" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.aspectj:aspectjweaver:1.9.6" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-websocket:2.3.9.RELEASE" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.springframework:spring-messaging:5.2.13.RELEASE" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.springframework:spring-websocket:5.2.13.RELEASE" level="project" />
|
||||
<orderEntry type="library" name="Maven: cn.hutool:hutool-all:5.7.19" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-boot-starter:3.5.1" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus:3.5.1" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-extension:3.5.1" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-core:3.5.1" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.github.jsqlparser:jsqlparser:4.3" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.mybatis:mybatis:3.5.9" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.mybatis:mybatis-spring:2.0.6" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-autoconfigure:2.3.9.RELEASE" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-jdbc:2.3.9.RELEASE" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.zaxxer:HikariCP:3.4.5" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.springframework:spring-jdbc:5.2.13.RELEASE" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.springframework:spring-tx:5.2.13.RELEASE" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-generator:3.5.1" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.xerial:sqlite-jdbc:3.36.0.3" level="project" />
|
||||
<orderEntry type="module" module-name="chopperbot-section" />
|
||||
<orderEntry type="module" module-name="chopperbot-file" />
|
||||
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.11.4" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.aliyun.oss:aliyun-sdk-oss:3.10.2" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.jdom:jdom2:2.0.6" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.codehaus.jettison:jettison:1.1" level="project" />
|
||||
<orderEntry type="library" name="Maven: stax:stax-api:1.0.1" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.aliyun:aliyun-java-sdk-core:3.4.0" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.aliyun:aliyun-java-sdk-ram:3.0.0" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.aliyun:aliyun-java-sdk-sts:3.0.0" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.aliyun:aliyun-java-sdk-ecs:4.2.0" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.aliyun:aliyun-java-sdk-kms:2.7.0" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.bytedeco:javacv:1.5.8" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.bytedeco:openblas:0.3.21-1.5.8" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.bytedeco:opencv:4.6.0-1.5.8" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.bytedeco:ffmpeg:5.1.2-1.5.8" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.bytedeco:flycapture:2.13.3.31-1.5.8" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.bytedeco:libdc1394:2.2.6-1.5.8" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.bytedeco:libfreenect:0.5.7-1.5.8" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.bytedeco:libfreenect2:0.2.0-1.5.8" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.bytedeco:librealsense:1.12.4-1.5.8" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.bytedeco:librealsense2:2.50.0-1.5.8" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.bytedeco:videoinput:0.200-1.5.8" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.bytedeco:artoolkitplus:2.3.1-1.5.8" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.bytedeco:flandmark:1.07-1.5.8" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.bytedeco:leptonica:1.82.0-1.5.8" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.bytedeco:tesseract:5.2.0-1.5.8" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.openjfx:javafx-graphics:11" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.openjfx:javafx-graphics:win:11" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.openjfx:javafx-base:11" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.openjfx:javafx-base:win:11" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.bytedeco:javacpp:windows-x86_64:1.5.8" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.bytedeco:javacpp:linux-x86_64:1.5.8" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.bytedeco:ffmpeg:linux-x86_64-gpl:5.1.2-1.5.8" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.bytedeco:javacpp:1.5.8" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.bytedeco:ffmpeg:windows-x86_64-gpl:5.1.2-1.5.8" level="project" />
|
||||
<orderEntry type="library" name="Maven: net.bramp.ffmpeg:ffmpeg:0.6.2" level="project" />
|
||||
<orderEntry type="library" name="Maven: commons-io:commons-io:2.5" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.commons:commons-lang3:3.10" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.modelmapper:modelmapper:0.7.7" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.bytedeco:opencv-platform-gpu:4.6.0-1.5.8" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.bytedeco:openblas-platform:0.3.21-1.5.8" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.bytedeco:javacpp-platform:1.5.8" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.bytedeco:javacpp:android-arm:1.5.8" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.bytedeco:javacpp:android-arm64:1.5.8" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.bytedeco:javacpp:android-x86:1.5.8" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.bytedeco:javacpp:android-x86_64:1.5.8" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.bytedeco:javacpp:ios-arm64:1.5.8" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.bytedeco:javacpp:ios-x86_64:1.5.8" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.bytedeco:javacpp:linux-armhf:1.5.8" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.bytedeco:javacpp:linux-arm64:1.5.8" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.bytedeco:javacpp:linux-ppc64le:1.5.8" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.bytedeco:javacpp:linux-x86:1.5.8" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.bytedeco:javacpp:macosx-arm64:1.5.8" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.bytedeco:javacpp:macosx-x86_64:1.5.8" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.bytedeco:javacpp:windows-x86:1.5.8" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.bytedeco:openblas:android-arm:0.3.21-1.5.8" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.bytedeco:openblas:android-arm64:0.3.21-1.5.8" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.bytedeco:openblas:android-x86:0.3.21-1.5.8" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.bytedeco:openblas:android-x86_64:0.3.21-1.5.8" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.bytedeco:openblas:ios-arm64:0.3.21-1.5.8" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.bytedeco:openblas:ios-x86_64:0.3.21-1.5.8" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.bytedeco:openblas:linux-x86:0.3.21-1.5.8" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.bytedeco:openblas:linux-x86_64:0.3.21-1.5.8" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.bytedeco:openblas:linux-armhf:0.3.21-1.5.8" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.bytedeco:openblas:linux-arm64:0.3.21-1.5.8" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.bytedeco:openblas:linux-ppc64le:0.3.21-1.5.8" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.bytedeco:openblas:macosx-arm64:0.3.21-1.5.8" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.bytedeco:openblas:macosx-x86_64:0.3.21-1.5.8" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.bytedeco:openblas:windows-x86:0.3.21-1.5.8" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.bytedeco:openblas:windows-x86_64:0.3.21-1.5.8" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.bytedeco:opencv:linux-x86_64-gpu:4.6.0-1.5.8" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.bytedeco:opencv:windows-x86_64-gpu:4.6.0-1.5.8" level="project" />
|
||||
<orderEntry type="module" module-name="chopperbot-console" />
|
||||
<orderEntry type="module" module-name="chopperbot-account" />
|
||||
<orderEntry type="library" name="Maven: com.rabbitmq:amqp-client:5.9.0" level="project" />
|
||||
<orderEntry type="module" module-name="chopperbot-publish" />
|
||||
<orderEntry type="library" name="Maven: mysql:mysql-connector-java:8.0.28" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.google.protobuf:protobuf-java:3.11.4" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-annotation:3.5.1" level="project" />
|
||||
<orderEntry type="module" module-name="chopperbot-creeper" />
|
||||
<orderEntry type="library" name="Maven: org.jsoup:jsoup:1.14.3" level="project" />
|
||||
<orderEntry type="library" name="Maven: ch.qos.logback:logback-core:1.2.3" level="project" />
|
||||
<orderEntry type="module" module-name="chopperbot-barrage" />
|
||||
<orderEntry type="library" name="Maven: com.alibaba.fastjson2:fastjson2:2.0.26" level="project" />
|
||||
<orderEntry type="library" name="Maven: io.jsonwebtoken:jjwt-api:0.11.5" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.tencent.tars:tars-client:1.7.2" level="project" />
|
||||
<orderEntry type="library" name="Maven: ch.qos.logback:logback-classic:1.2.3" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.tencent.tars:tars-net:1.7.2" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.tencent.tars:tars-context:1.7.2" level="project" />
|
||||
<orderEntry type="library" name="Maven: javax.servlet:javax.servlet-api:4.0.1" level="project" />
|
||||
<orderEntry type="library" name="Maven: io.zipkin.reporter2:zipkin-sender-kafka11:2.7.4" level="project" />
|
||||
<orderEntry type="library" name="Maven: io.zipkin.reporter2:zipkin-reporter:2.7.4" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.kafka:kafka-clients:2.5.1" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.github.luben:zstd-jni:1.4.4-7" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.lz4:lz4-java:1.7.1" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.xerial.snappy:snappy-java:1.1.7.3" level="project" />
|
||||
<orderEntry type="library" name="Maven: io.zipkin.zipkin2:zipkin:2.9.4" level="project" />
|
||||
<orderEntry type="library" name="Maven: io.opentracing.brave:brave-opentracing:0.31.1" level="project" />
|
||||
<orderEntry type="library" name="Maven: io.opentracing:opentracing-api:0.31.0" level="project" />
|
||||
<orderEntry type="library" name="Maven: io.zipkin.brave:brave:5.1.0" level="project" />
|
||||
<orderEntry type="library" name="Maven: io.zipkin.brave:brave-tests:5.1.0" level="project" />
|
||||
<orderEntry type="library" name="Maven: io.zipkin.reporter2:zipkin-sender-kafka08:2.7.4" level="project" />
|
||||
<orderEntry type="library" name="Maven: io.zipkin.reporter2:zipkin-sender-urlconnection:2.7.4" level="project" />
|
||||
<orderEntry type="library" name="Maven: io.github.969025903:assistant:1.0.6" level="project" />
|
||||
<orderEntry type="library" scope="RUNTIME" name="Maven: io.jsonwebtoken:jjwt-impl:0.11.2" level="project" />
|
||||
<orderEntry type="library" name="Maven: io.jsonwebtoken:jjwt-gson:0.11.5" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.velocity:velocity:1.6.2" level="project" />
|
||||
<orderEntry type="library" name="Maven: commons-collections:commons-collections:3.2.1" level="project" />
|
||||
<orderEntry type="library" name="Maven: commons-lang:commons-lang:2.4" level="project" />
|
||||
<orderEntry type="library" name="Maven: oro:oro:2.0.8" level="project" />
|
||||
<orderEntry type="module" module-name="chopperbot-hot" />
|
||||
<orderEntry type="module" module-name="chopperbot-live" />
|
||||
<orderEntry type="library" name="Maven: us.codecraft:webmagic-core:0.8.0" level="project" />
|
||||
<orderEntry type="library" name="Maven: us.codecraft:xsoup:0.3.6" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.commons:commons-collections4:4.4" level="project" />
|
||||
<orderEntry type="library" name="Maven: us.codecraft:webmagic-extension:0.8.0" level="project" />
|
||||
<orderEntry type="library" name="Maven: redis.clients:jedis:3.3.0" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.commons:commons-pool2:2.8.1" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.httpcomponents:httpclient:4.5.14" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.httpcomponents:httpcore:4.4.14" level="project" />
|
||||
<orderEntry type="library" name="Maven: commons-logging:commons-logging:1.2" level="project" />
|
||||
<orderEntry type="library" name="Maven: commons-codec:commons-codec:1.14" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.google.code.gson:gson:2.8.6" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.json:json:20210307" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.poi:poi-ooxml:5.0.0" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.poi:poi:5.0.0" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.commons:commons-math3:3.6.1" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.zaxxer:SparseBitSet:1.2" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.poi:poi-ooxml-lite:5.0.0" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.xmlbeans:xmlbeans:4.0.0" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.commons:commons-compress:1.20" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.github.virtuald:curvesapi:1.06" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.bouncycastle:bcpkix-jdk15on:1.68" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.bouncycastle:bcprov-jdk15on:1.68" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.santuario:xmlsec:2.2.1" level="project" />
|
||||
<orderEntry type="library" scope="RUNTIME" name="Maven: com.fasterxml.woodstox:woodstox-core:5.2.1" level="project" />
|
||||
<orderEntry type="library" scope="RUNTIME" name="Maven: org.codehaus.woodstox:stax2-api:4.2" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.xmlgraphics:batik-all:1.13" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.xmlgraphics:batik-anim:1.13" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.xmlgraphics:batik-shared-resources:1.13" level="project" />
|
||||
<orderEntry type="library" name="Maven: xml-apis:xml-apis-ext:1.3.04" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.xmlgraphics:batik-awt-util:1.13" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.xmlgraphics:xmlgraphics-commons:2.4" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.xmlgraphics:batik-bridge:1.13" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.xmlgraphics:batik-codec:1.13" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.xmlgraphics:batik-constants:1.13" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.xmlgraphics:batik-css:1.13" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.xmlgraphics:batik-dom:1.13" level="project" />
|
||||
<orderEntry type="library" name="Maven: xalan:xalan:2.7.2" level="project" />
|
||||
<orderEntry type="library" name="Maven: xalan:serializer:2.7.2" level="project" />
|
||||
<orderEntry type="library" name="Maven: xml-apis:xml-apis:1.4.01" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.xmlgraphics:batik-ext:1.13" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.xmlgraphics:batik-extension:1.13" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.xmlgraphics:batik-gui-util:1.13" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.xmlgraphics:batik-gvt:1.13" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.xmlgraphics:batik-i18n:1.13" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.xmlgraphics:batik-parser:1.13" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.xmlgraphics:batik-rasterizer-ext:1.13" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.xmlgraphics:batik-rasterizer:1.13" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.xmlgraphics:batik-script:1.13" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.xmlgraphics:batik-slideshow:1.13" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.xmlgraphics:batik-squiggle-ext:1.13" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.xmlgraphics:batik-squiggle:1.13" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.xmlgraphics:batik-svg-dom:1.13" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.xmlgraphics:batik-svgbrowser:1.13" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.xmlgraphics:batik-svggen:1.13" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.xmlgraphics:batik-svgpp:1.13" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.xmlgraphics:batik-svgrasterizer:1.13" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.xmlgraphics:batik-swing:1.13" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.xmlgraphics:batik-transcoder:1.13" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.xmlgraphics:batik-util:1.13" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.xmlgraphics:batik-ttf2svg:1.13" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.xmlgraphics:batik-xml:1.13" level="project" />
|
||||
<orderEntry type="library" name="Maven: de.rototor.pdfbox:graphics2d:0.30" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.pdfbox:pdfbox:2.0.22" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.pdfbox:fontbox:2.0.22" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.seleniumhq.selenium:selenium-devtools-v115:4.11.0" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.seleniumhq.selenium:selenium-support:4.0.0" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.browserup:browserup-proxy-core:2.1.1" level="project" />
|
||||
<orderEntry type="library" name="Maven: io.netty:netty-codec:4.1.59.Final" level="project" />
|
||||
<orderEntry type="library" name="Maven: xyz.rogfam:littleproxy:2.0.0-beta-5" level="project" />
|
||||
<orderEntry type="library" name="Maven: io.netty:netty-all:4.1.59.Final" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.barchart.udt:barchart-udt-bundle:2.3.0" level="project" />
|
||||
<orderEntry type="library" scope="RUNTIME" name="Maven: com.browserup:browserup-proxy-mitm:2.1.1" level="project" />
|
||||
<orderEntry type="library" scope="RUNTIME" name="Maven: javax.xml.bind:jaxb-api:2.3.1" level="project" />
|
||||
<orderEntry type="library" scope="RUNTIME" name="Maven: javax.activation:javax.activation-api:1.2.0" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.11.4" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.11.4" level="project" />
|
||||
<orderEntry type="library" scope="RUNTIME" name="Maven: com.jcraft:jzlib:1.1.3" level="project" />
|
||||
<orderEntry type="library" scope="RUNTIME" name="Maven: dnsjava:dnsjava:2.1.9" level="project" />
|
||||
<orderEntry type="library" scope="RUNTIME" name="Maven: org.brotli:dec:0.1.2" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.slf4j:jcl-over-slf4j:1.7.30" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.openjdk.nashorn:nashorn-core:15.4" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.ow2.asm:asm:7.3.1" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.ow2.asm:asm-commons:7.3.1" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.ow2.asm:asm-analysis:7.3.1" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.ow2.asm:asm-tree:7.3.1" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.ow2.asm:asm-util:7.3.1" level="project" />
|
||||
<orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-starter-test:2.3.9.RELEASE" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter:2.3.9.RELEASE" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot:2.3.9.RELEASE" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-logging:2.3.9.RELEASE" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-to-slf4j:2.13.3" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-api:2.13.3" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.slf4j:jul-to-slf4j:1.7.30" level="project" />
|
||||
<orderEntry type="library" name="Maven: jakarta.annotation:jakarta.annotation-api:1.3.5" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.yaml:snakeyaml:1.26" level="project" />
|
||||
<orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-test:2.3.9.RELEASE" level="project" />
|
||||
<orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-test-autoconfigure:2.3.9.RELEASE" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.jayway.jsonpath:json-path:2.4.0" level="project" />
|
||||
<orderEntry type="library" name="Maven: net.minidev:json-smart:2.3" level="project" />
|
||||
<orderEntry type="library" name="Maven: net.minidev:accessors-smart:1.2" level="project" />
|
||||
<orderEntry type="library" name="Maven: jakarta.xml.bind:jakarta.xml.bind-api:2.3.3" level="project" />
|
||||
<orderEntry type="library" name="Maven: jakarta.activation:jakarta.activation-api:1.2.2" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.assertj:assertj-core:3.16.1" level="project" />
|
||||
<orderEntry type="library" scope="TEST" name="Maven: org.hamcrest:hamcrest:2.2" level="project" />
|
||||
<orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter:5.6.3" level="project" />
|
||||
<orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter-api:5.6.3" level="project" />
|
||||
<orderEntry type="library" scope="TEST" name="Maven: org.opentest4j:opentest4j:1.2.0" level="project" />
|
||||
<orderEntry type="library" scope="TEST" name="Maven: org.junit.platform:junit-platform-commons:1.6.3" level="project" />
|
||||
<orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter-params:5.6.3" level="project" />
|
||||
<orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter-engine:5.6.3" level="project" />
|
||||
<orderEntry type="library" scope="TEST" name="Maven: org.junit.vintage:junit-vintage-engine:5.6.3" level="project" />
|
||||
<orderEntry type="library" scope="TEST" name="Maven: org.apiguardian:apiguardian-api:1.1.0" level="project" />
|
||||
<orderEntry type="library" scope="TEST" name="Maven: org.junit.platform:junit-platform-engine:1.6.3" level="project" />
|
||||
<orderEntry type="library" scope="TEST" name="Maven: org.mockito:mockito-core:3.3.3" level="project" />
|
||||
<orderEntry type="library" scope="TEST" name="Maven: net.bytebuddy:byte-buddy-agent:1.10.20" level="project" />
|
||||
<orderEntry type="library" scope="TEST" name="Maven: org.objenesis:objenesis:2.6" level="project" />
|
||||
<orderEntry type="library" scope="TEST" name="Maven: org.mockito:mockito-junit-jupiter:3.3.3" level="project" />
|
||||
<orderEntry type="library" scope="TEST" name="Maven: org.skyscreamer:jsonassert:1.5.0" level="project" />
|
||||
<orderEntry type="library" scope="TEST" name="Maven: com.vaadin.external.google:android-json:0.0.20131108.vaadin1" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.springframework:spring-core:5.2.13.RELEASE" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.springframework:spring-jcl:5.2.13.RELEASE" level="project" />
|
||||
<orderEntry type="library" scope="TEST" name="Maven: org.springframework:spring-test:5.2.13.RELEASE" level="project" />
|
||||
<orderEntry type="library" scope="TEST" name="Maven: org.xmlunit:xmlunit-core:2.7.0" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.java-websocket:Java-WebSocket:1.5.1" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.slf4j:slf4j-api:1.7.30" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.seleniumhq.selenium:selenium-java:4.0.0" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.seleniumhq.selenium:selenium-devtools-v85:4.0.0" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.seleniumhq.selenium:selenium-devtools-v93:4.0.0" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.seleniumhq.selenium:selenium-devtools-v94:4.0.0" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.seleniumhq.selenium:selenium-devtools-v95:4.0.0" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.seleniumhq.selenium:selenium-edge-driver:4.0.0" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.seleniumhq.selenium:selenium-firefox-driver:4.0.0" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.seleniumhq.selenium:selenium-firefox-xpi-driver:4.0.0" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.seleniumhq.selenium:selenium-ie-driver:4.0.0" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.seleniumhq.selenium:selenium-opera-driver:4.0.0" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.seleniumhq.selenium:selenium-safari-driver:4.0.0" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.seleniumhq.selenium:selenium-chrome-driver:4.0.0" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.google.auto.service:auto-service-annotations:1.0" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.google.auto.service:auto-service:1.0" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.google.auto:auto-common:1.0" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.google.guava:guava:21.0" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.seleniumhq.selenium:selenium-chromium-driver:4.0.0" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.seleniumhq.selenium:selenium-json:4.0.0" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.seleniumhq.selenium:selenium-api:4.0.0" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.seleniumhq.selenium:selenium-remote-driver:4.0.0" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.beust:jcommander:1.81" level="project" />
|
||||
<orderEntry type="library" name="Maven: io.netty:netty-buffer:4.1.59.Final" level="project" />
|
||||
<orderEntry type="library" name="Maven: io.netty:netty-codec-http:4.1.59.Final" level="project" />
|
||||
<orderEntry type="library" name="Maven: io.netty:netty-handler:4.1.59.Final" level="project" />
|
||||
<orderEntry type="library" name="Maven: io.netty:netty-common:4.1.59.Final" level="project" />
|
||||
<orderEntry type="library" name="Maven: io.netty:netty-transport-native-epoll:4.1.59.Final" level="project" />
|
||||
<orderEntry type="library" name="Maven: io.netty:netty-transport-native-kqueue:4.1.59.Final" level="project" />
|
||||
<orderEntry type="library" name="Maven: io.netty:netty-transport-native-unix-common:4.1.59.Final" level="project" />
|
||||
<orderEntry type="library" name="Maven: io.netty:netty-transport:4.1.59.Final" level="project" />
|
||||
<orderEntry type="library" name="Maven: io.netty:netty-resolver:4.1.59.Final" level="project" />
|
||||
<orderEntry type="library" name="Maven: io.opentelemetry:opentelemetry-api:1.6.0" level="project" />
|
||||
<orderEntry type="library" name="Maven: io.opentelemetry:opentelemetry-context:1.6.0" level="project" />
|
||||
<orderEntry type="library" name="Maven: io.opentelemetry:opentelemetry-exporter-logging:1.6.0" level="project" />
|
||||
<orderEntry type="library" name="Maven: io.opentelemetry:opentelemetry-sdk-metrics:1.6.0-alpha" level="project" />
|
||||
<orderEntry type="library" name="Maven: io.opentelemetry:opentelemetry-sdk-common:1.6.0" level="project" />
|
||||
<orderEntry type="library" name="Maven: io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:1.6.0" level="project" />
|
||||
<orderEntry type="library" name="Maven: io.opentelemetry:opentelemetry-sdk-extension-autoconfigure:1.6.0-alpha" level="project" />
|
||||
<orderEntry type="library" name="Maven: io.opentelemetry:opentelemetry-sdk-trace:1.6.0" level="project" />
|
||||
<orderEntry type="library" name="Maven: io.opentelemetry:opentelemetry-api-metrics:1.6.0-alpha" level="project" />
|
||||
<orderEntry type="library" name="Maven: io.opentelemetry:opentelemetry-sdk:1.6.0" level="project" />
|
||||
<orderEntry type="library" name="Maven: io.opentelemetry:opentelemetry-semconv:1.6.0-alpha" level="project" />
|
||||
<orderEntry type="library" name="Maven: io.ous:jtoml:2.0.0" level="project" />
|
||||
<orderEntry type="library" name="Maven: net.bytebuddy:byte-buddy:1.10.20" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.commons:commons-exec:1.3" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.asynchttpclient:async-http-client:2.12.3" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.asynchttpclient:async-http-client-netty-utils:2.12.3" level="project" />
|
||||
<orderEntry type="library" name="Maven: io.netty:netty-codec-socks:4.1.59.Final" level="project" />
|
||||
<orderEntry type="library" name="Maven: io.netty:netty-handler-proxy:4.1.59.Final" level="project" />
|
||||
<orderEntry type="library" name="Maven: io.netty:netty-transport-native-epoll:linux-x86_64:4.1.59.Final" level="project" />
|
||||
<orderEntry type="library" name="Maven: io.netty:netty-transport-native-kqueue:osx-x86_64:4.1.59.Final" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.reactivestreams:reactive-streams:1.0.3" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.typesafe.netty:netty-reactive-streams:2.0.4" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.sun.activation:jakarta.activation:1.2.2" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.seleniumhq.selenium:selenium-http:4.0.0" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.jfree:jfreechart:1.5.3" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.jfree:jcommon:1.0.23" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.hankcs:hanlp:portable-1.7.8" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.squareup.okhttp3:okhttp:4.9.0" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.jetbrains.kotlin:kotlin-stdlib:1.3.72" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.jetbrains.kotlin:kotlin-stdlib-common:1.3.72" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.jetbrains:annotations:13.0" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.squareup.okio:okio:3.2.0" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.squareup.okio:okio-jvm:3.2.0" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.72" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.72" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-web:2.3.9.RELEASE" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-json:2.3.9.RELEASE" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.11.4" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.11.4" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.fasterxml.jackson.module:jackson-module-parameter-names:2.11.4" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-tomcat:2.3.9.RELEASE" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-core:9.0.43" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.glassfish:jakarta.el:3.0.3" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-websocket:9.0.43" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.springframework:spring-web:5.2.13.RELEASE" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.springframework:spring-beans:5.2.13.RELEASE" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.springframework:spring-webmvc:5.2.13.RELEASE" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.springframework:spring-context:5.2.13.RELEASE" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.springframework:spring-expression:5.2.13.RELEASE" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.akamai.edgegrid:edgegrid-signer-core:5.0.0" level="project" />
|
||||
<orderEntry type="library" scope="TEST" name="Maven: junit:junit:4.13.2" level="project" />
|
||||
<orderEntry type="library" scope="TEST" name="Maven: org.hamcrest:hamcrest-core:2.2" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.projectlombok:lombok:1.18.26" level="project" />
|
||||
</component>
|
||||
</module>
|
||||
Binary file not shown.
@@ -119,5 +119,49 @@
|
||||
<artifactId>okio</artifactId>
|
||||
<version>3.2.0</version>
|
||||
</dependency>
|
||||
|
||||
<!-- https://mvnrepository.com/artifact/net.sf.phat/sphinx4-core -->
|
||||
<dependency>
|
||||
<groupId>net.sf.phat</groupId>
|
||||
<artifactId>sphinx4-core</artifactId>
|
||||
<version>5prealpha</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>ws.schild</groupId>
|
||||
<artifactId>jave-all-deps</artifactId>
|
||||
<version>3.3.1</version>
|
||||
<exclusions>
|
||||
<!-- 排除windows 32位系统 -->
|
||||
<exclusion>
|
||||
<groupId>ws.schild</groupId>
|
||||
<artifactId>jave-nativebin-win32</artifactId>
|
||||
</exclusion>
|
||||
<!-- 排除linux 32位系统 -->
|
||||
<exclusion>
|
||||
<groupId>ws.schild</groupId>
|
||||
<artifactId>jave-nativebin-linux32</artifactId>
|
||||
</exclusion>
|
||||
<!-- 排除Mac系统-->
|
||||
<exclusion>
|
||||
<groupId>ws.schild</groupId>
|
||||
<artifactId>jave-nativebin-osx64</artifactId>
|
||||
</exclusion>
|
||||
<!-- 排除osxm-->
|
||||
<exclusion>
|
||||
<groupId>ws.schild</groupId>
|
||||
<artifactId>jave-nativebin-osxm1</artifactId>
|
||||
</exclusion>
|
||||
<!-- 排除arm-->
|
||||
<exclusion>
|
||||
<groupId>ws.schild</groupId>
|
||||
<artifactId>jave-nativebin-linux-arm32</artifactId>
|
||||
</exclusion>
|
||||
<exclusion>
|
||||
<groupId>ws.schild</groupId>
|
||||
<artifactId>jave-nativebin-linux-arm64</artifactId>
|
||||
</exclusion>
|
||||
</exclusions>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</project>
|
||||
|
||||
@@ -0,0 +1,38 @@
|
||||
package org.example.sectionwork;
|
||||
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import org.example.ConsoleApplication;
|
||||
import org.example.util.JsonFileUtil;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.springframework.boot.test.context.SpringBootTest;
|
||||
import org.springframework.test.context.junit4.SpringRunner;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @author Genius
|
||||
* @date 2023/10/22 18:28
|
||||
**/
|
||||
@RunWith(SpringRunner.class)
|
||||
@SpringBootTest(classes = ConsoleApplication.class,webEnvironment = SpringBootTest.WebEnvironment.DEFINED_PORT)
|
||||
public class TitleGenerateTest {
|
||||
|
||||
@Test
|
||||
public void test(){
|
||||
Map<String, Object> map = JsonFileUtil.readJsonFile("E:\\Project\\ChopperBot\\config\\Barrage\\online\\huya\\Uzi_2023-10-18 21_22_57.json");
|
||||
Object data = map.get("data");
|
||||
if(data instanceof JSONArray){
|
||||
List<String> content = ((JSONArray) data).stream().map(o -> {
|
||||
if (o instanceof JSONObject) {
|
||||
return ((JSONObject) o).get("content").toString();
|
||||
}
|
||||
return "";
|
||||
}).collect(Collectors.toList());
|
||||
System.out.println(content);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,107 @@
|
||||
package org.example.sectionwork;
|
||||
|
||||
import edu.cmu.sphinx.api.Configuration;
|
||||
import edu.cmu.sphinx.api.SpeechResult;
|
||||
import edu.cmu.sphinx.api.StreamSpeechRecognizer;
|
||||
import org.junit.Test;
|
||||
import ws.schild.jave.Encoder;
|
||||
import ws.schild.jave.MultimediaObject;
|
||||
import ws.schild.jave.encode.AudioAttributes;
|
||||
import ws.schild.jave.encode.EncodingAttributes;
|
||||
import ws.schild.jave.encode.VideoAttributes;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
|
||||
/**
|
||||
* @author Genius
|
||||
* @date 2023/10/22 23:50
|
||||
**/
|
||||
public class VoiceToTextTest {
|
||||
public static boolean videoToVideo(String videoSource, String videoTarget) {
|
||||
// Date time = new Date();
|
||||
// SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-mm-dd hh:mm:ss");
|
||||
// System.out.println(simpleDateFormat.format(time));
|
||||
|
||||
long start = System.currentTimeMillis();
|
||||
|
||||
File source = new File(videoSource);
|
||||
File target = new File(videoTarget);
|
||||
|
||||
AudioAttributes audio = new AudioAttributes();
|
||||
audio.setCodec("aac");
|
||||
audio.setBitRate(236000 / 2);
|
||||
audio.setChannels(2);
|
||||
audio.setSamplingRate(8000);
|
||||
|
||||
VideoAttributes video = new VideoAttributes();
|
||||
video.setCodec("h264");
|
||||
video.setBitRate(1000000);
|
||||
video.setFrameRate(25);
|
||||
video.setQuality(4);
|
||||
// video.setSize(new VideoSize(720, 480));
|
||||
|
||||
EncodingAttributes attrs = new EncodingAttributes();
|
||||
attrs.setOutputFormat("mp4");
|
||||
attrs.setAudioAttributes(audio);
|
||||
attrs.setVideoAttributes(video);
|
||||
|
||||
|
||||
Encoder encoder = new Encoder();
|
||||
try {
|
||||
encoder.encode(new MultimediaObject(source), target, attrs);
|
||||
return true;
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
System.out.println(encoder.getUnhandledMessages());
|
||||
return false;
|
||||
}finally {
|
||||
// time = new Date();
|
||||
// System.out.println(simpleDateFormat.format(time));
|
||||
long end = System.currentTimeMillis();
|
||||
System.out.println("总耗时:"+ (end-start) +"ms");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public static void main(String[] args) throws IOException {
|
||||
videoToAudio("E:\\Project\\chopperbot-1.0\\1.mp4","E:\\Project\\chopperbot-1.0\\audioTest.mp3");
|
||||
Configuration configuration = new Configuration();
|
||||
configuration.setAcousticModelPath("resource:/zh_cn.cd_cont_5000");
|
||||
configuration.setDictionaryPath("resource:/zh_cn.dic");
|
||||
configuration.setLanguageModelPath("resource:/zh_cn.lm.bin");
|
||||
StreamSpeechRecognizer recognizer = new StreamSpeechRecognizer(configuration);
|
||||
InputStream stream = new FileInputStream("E:\\Project\\chopperbot-1.0\\audioTest.mp3");
|
||||
recognizer.startRecognition(stream);
|
||||
SpeechResult result;
|
||||
while ((result = recognizer.getResult()) != null) {
|
||||
System.out.format("识别内容: %s\n", result.getHypothesis());
|
||||
}
|
||||
}
|
||||
|
||||
public static boolean videoToAudio(String videoPath, String audioPath){
|
||||
File fileMp4 = new File(videoPath);
|
||||
File fileMp3 = new File(audioPath);
|
||||
|
||||
AudioAttributes audio = new AudioAttributes();
|
||||
audio.setCodec("libmp3lame");
|
||||
audio.setBitRate(128000);
|
||||
audio.setChannels(2);
|
||||
audio.setSamplingRate(44100);
|
||||
|
||||
EncodingAttributes attrs = new EncodingAttributes();
|
||||
attrs.setOutputFormat("mp3");
|
||||
attrs.setAudioAttributes(audio);
|
||||
Encoder encoder = new Encoder();
|
||||
MultimediaObject mediaObject = new MultimediaObject(fileMp4);
|
||||
try{
|
||||
encoder.encode(mediaObject,fileMp3,attrs);
|
||||
return true;
|
||||
}catch (Exception e){
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -6,9 +6,9 @@
|
||||
"LiverFollower":{
|
||||
"checkTime":60000,
|
||||
"focusRecord":1,
|
||||
"focusLive":0,
|
||||
"focusLive":1,
|
||||
"focusBarrage":1
|
||||
}
|
||||
},
|
||||
"updateTime":"2023-10-20 15:34:44"
|
||||
"updateTime":"2023-10-20 17:07:39"
|
||||
}
|
||||
@@ -36,5 +36,5 @@
|
||||
"CreeperConfig":true
|
||||
}
|
||||
},
|
||||
"updateTime":"2023-10-20 15:15:23"
|
||||
"updateTime":"2023-10-20 17:36:40"
|
||||
}
|
||||
@@ -17,9 +17,11 @@ const webSocket = new WebSocketClient(()=>{
|
||||
},(event)=>{
|
||||
let dataMap = webSocket.decodeMsg(event.data)
|
||||
let data = JSON.parse(dataMap.get("data"))
|
||||
const notice: Notice = {...data,ago:'',color:'',icon:'',confirm:false };
|
||||
noticeStore.sendNotice(notice)
|
||||
unCheckNotice.value = noticeStore.getUnConfirmNoticeBox
|
||||
if(data!=null){
|
||||
const notice: Notice = {...data,ago:'',color:'',icon:'',confirm:false };
|
||||
noticeStore.sendNotice(notice)
|
||||
unCheckNotice.value = noticeStore.getUnConfirmNoticeBox
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
@@ -28,6 +30,19 @@ const confirmNotice = (index:number) =>{
|
||||
noticeStore.confirmNotice(index);
|
||||
}
|
||||
|
||||
const timeMap = new Map()
|
||||
|
||||
const hoverConfirm = (index:number) =>{
|
||||
timeMap.set(index,setTimeout(()=>{
|
||||
confirmNotice(index)
|
||||
},500));
|
||||
}
|
||||
|
||||
const unHoverConfirm = (index:number) =>{
|
||||
timeMap.get(index)&& clearTimeout(timeMap.get(index))
|
||||
}
|
||||
|
||||
|
||||
</script>
|
||||
|
||||
<template>
|
||||
@@ -46,17 +61,12 @@ const confirmNotice = (index:number) =>{
|
||||
<v-list elevation="1" lines="three" density="compact" width="400">
|
||||
<v-list-subheader>Notifications</v-list-subheader>
|
||||
<v-list-item v-for="(message, i) in unCheckNotice" :key="i" @click="confirmNotice(i)">
|
||||
<!-- ---------------------------------------------- -->
|
||||
<!-- Prepend-->
|
||||
<!-- ---------------------------------------------- -->
|
||||
<template v-slot:prepend>
|
||||
<v-avatar size="40" :color="message.color">
|
||||
<v-icon color="white">{{ message.icon }}</v-icon>
|
||||
</v-avatar>
|
||||
</template>
|
||||
<!-- ---------------------------------------------- -->
|
||||
<!-- Append-->
|
||||
<!-- ---------------------------------------------- -->
|
||||
|
||||
<template v-slot:append>
|
||||
<div class="full-h d-flex align-center">
|
||||
<span class="text-body-2 text-grey"> {{ message.ago }}</span>
|
||||
|
||||
18
console-ui/src/views/app/barrage/curve/BarrageCurveStore.ts
Normal file
18
console-ui/src/views/app/barrage/curve/BarrageCurveStore.ts
Normal file
@@ -0,0 +1,18 @@
|
||||
import { defineStore } from "pinia";
|
||||
import {Point} from "@/views/app/barrage/curve/PointTypes";
|
||||
|
||||
export const useBarrageCurveStore = defineStore({
|
||||
id: "notice",
|
||||
state: () => ({
|
||||
noticeOpen:ref(true),
|
||||
nowPoints:ref<Point[]>([]),
|
||||
barrageFiles:ref([]),
|
||||
}),
|
||||
|
||||
getters: {
|
||||
|
||||
},
|
||||
actions: {
|
||||
|
||||
},
|
||||
});
|
||||
@@ -5,6 +5,94 @@
|
||||
:options="lineAreaChartSpline.chartOptions"
|
||||
:series="lineAreaChartSpline.series"
|
||||
></apexchart>
|
||||
<v-row class="my-2">
|
||||
<v-col cols="6">
|
||||
<div class="first-div">
|
||||
<v-card height="100%">
|
||||
<v-list :items="items"></v-list>
|
||||
</v-card>
|
||||
</div>
|
||||
</v-col>
|
||||
<v-col cols="6">
|
||||
<div class="second-div">
|
||||
<v-card height="100%" class="mx-auto">
|
||||
<v-toolbar color="transparent" class="px-0">
|
||||
<v-app-bar-nav-icon></v-app-bar-nav-icon>
|
||||
|
||||
<v-toolbar-title>{{ title }}</v-toolbar-title>
|
||||
|
||||
<v-spacer></v-spacer>
|
||||
|
||||
<v-btn icon>
|
||||
<v-icon>mdi mdi-cog</v-icon>
|
||||
</v-btn>
|
||||
|
||||
<template v-slot:extension>
|
||||
<v-tabs
|
||||
v-model="tabs"
|
||||
color="primary"
|
||||
grow
|
||||
>
|
||||
<v-tab
|
||||
:value="1"
|
||||
>
|
||||
<v-icon>mdi mdi-monitor-dashboard</v-icon>
|
||||
</v-tab>
|
||||
<v-tab
|
||||
:value="2"
|
||||
>
|
||||
<v-icon>mdi mdi-chart-pie</v-icon>
|
||||
</v-tab>
|
||||
<v-tab
|
||||
:value="3"
|
||||
>
|
||||
<v-icon>mdi mdi-notebook-multiple</v-icon>
|
||||
</v-tab>
|
||||
</v-tabs>
|
||||
</template>
|
||||
</v-toolbar>
|
||||
|
||||
<v-window v-model="tabs">
|
||||
<v-window-item
|
||||
:key="1"
|
||||
:value="1"
|
||||
>
|
||||
<v-card>
|
||||
<v-card-text>
|
||||
<iframe
|
||||
width="100%"
|
||||
height="600"
|
||||
src=" E:\Project\ChopperBot\config\Barrage\online\huya"
|
||||
frameborder="0"
|
||||
></iframe>
|
||||
</v-card-text>
|
||||
</v-card>
|
||||
</v-window-item>
|
||||
<v-window-item
|
||||
:key="2"
|
||||
:value="2"
|
||||
>
|
||||
<v-card>
|
||||
<BarrageDataLabels></BarrageDataLabels>
|
||||
</v-card>
|
||||
</v-window-item>
|
||||
<v-window-item
|
||||
:key="3"
|
||||
:value="3"
|
||||
>
|
||||
<v-card>
|
||||
<v-card-text>
|
||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et
|
||||
dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
|
||||
</v-card-text>
|
||||
</v-card>
|
||||
</v-window-item>
|
||||
</v-window>
|
||||
</v-card>
|
||||
</div>
|
||||
</v-col>
|
||||
</v-row>
|
||||
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
@@ -14,6 +102,10 @@ import {
|
||||
} from "@/api/barrage/barrageCurveApi";
|
||||
import {nanosToFormat} from "@/utils/timeUtils";
|
||||
import ApexLineAreaCharts from "@/components/charts/apexchart/ApexLineAreaCharts.vue";
|
||||
import BarrageDataLabels from "@/views/app/barrage/curve/compus/BarrageDataLabels.vue";
|
||||
const tabs = ref(1);
|
||||
const titles = ["监控台","弹幕统计","关键词"]
|
||||
const title = ref(titles[tabs.value-1])
|
||||
const lineAreaChartSpline = ref({
|
||||
series: [
|
||||
{
|
||||
@@ -90,14 +182,16 @@ const lineAreaChartSpline = ref({
|
||||
|
||||
onMounted(async ()=>{
|
||||
await curveList().then((res=>{
|
||||
const points = res?.data?.list[0]
|
||||
const points = res?.data?.list[1]
|
||||
lineAreaChartSpline.value.series[0].data = points.points.map(item=>item.pointScore)
|
||||
lineAreaChartSpline.value.series[1].data = points.points.map(item=>item.pointScore)
|
||||
lineAreaChartSpline.value.chartOptions.xaxis.categories = points.points.map(item=>nanosToFormat(item.startTime).toString())
|
||||
}))
|
||||
})
|
||||
|
||||
|
||||
watch(tabs,(newValue,oldValue)=>{
|
||||
title.value = titles[tabs.value-1]
|
||||
})
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
8
console-ui/src/views/app/barrage/curve/PointTypes.ts
Normal file
8
console-ui/src/views/app/barrage/curve/PointTypes.ts
Normal file
@@ -0,0 +1,8 @@
|
||||
export interface Point{
|
||||
barrageNum:number,
|
||||
barrages:string[],
|
||||
duration:number,
|
||||
endTime:number,
|
||||
pointScore:number,
|
||||
starTime:number,
|
||||
}
|
||||
@@ -0,0 +1,73 @@
|
||||
<template>
|
||||
<div id="chart">
|
||||
<apexchart type="bar" height="380" :options="chartOptions" :series="series"></apexchart>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
|
||||
const series = [{
|
||||
data: [400, 430, 448, 470, 540, 580, 690, 1100, 1200, 1380]
|
||||
}]
|
||||
|
||||
const chartOptions = {
|
||||
chart: {
|
||||
type: 'bar',
|
||||
height: 380
|
||||
},
|
||||
plotOptions: {
|
||||
bar: {
|
||||
barHeight: '100%',
|
||||
distributed: true,
|
||||
horizontal: true,
|
||||
dataLabels: {
|
||||
position: 'bottom'
|
||||
},
|
||||
}
|
||||
},
|
||||
colors: ['#33b2df', '#546E7A', '#d4526e', '#13d8aa', '#A5978B', '#2b908f', '#f9a3a4', '#90ee7e',
|
||||
'#f48024', '#69d2e7'
|
||||
],
|
||||
dataLabels: {
|
||||
enabled: true,
|
||||
textAnchor: 'start',
|
||||
style: {
|
||||
colors: ['#fff']
|
||||
},
|
||||
formatter: function (val, opt) {
|
||||
return opt.w.globals.labels[opt.dataPointIndex] + ": " + val
|
||||
},
|
||||
offsetX: 0,
|
||||
dropShadow: {
|
||||
enabled: true
|
||||
}
|
||||
},
|
||||
stroke: {
|
||||
width: 1,
|
||||
colors: ['#fff']
|
||||
},
|
||||
xaxis: {
|
||||
categories: ['South Korea', 'Canada', 'United Kingdom', 'Netherlands', 'Italy', 'France', 'Japan',
|
||||
'United States', 'China', 'India'
|
||||
],
|
||||
},
|
||||
yaxis: {
|
||||
labels: {
|
||||
show: false
|
||||
}
|
||||
},
|
||||
title: {
|
||||
text: '热点弹幕',
|
||||
align: 'center',
|
||||
floating: true
|
||||
},
|
||||
subtitle: {
|
||||
text: '统计该弹幕文件出现前10的弹幕',
|
||||
align: 'center',
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
</style>
|
||||
@@ -17,6 +17,7 @@ export const showNotice = (notice:Notice) => {
|
||||
export const useNoticeStore = defineStore({
|
||||
id: "notice",
|
||||
state: () => ({
|
||||
noticeOpen:ref(true),
|
||||
noticeBox: ref<Notice[]>([]),
|
||||
NoticeType:{
|
||||
"info":{type:"success",icon:'mdi mdi-email-alert-outline',color:'green'},
|
||||
@@ -61,6 +62,10 @@ export const useNoticeStore = defineStore({
|
||||
|
||||
confirmNotice(index:number){
|
||||
this.noticeBox[index].confirm = true;
|
||||
}
|
||||
},
|
||||
|
||||
switchOpen(open:boolean){
|
||||
this.noticeOpen = open;
|
||||
},
|
||||
},
|
||||
});
|
||||
|
||||
@@ -8,7 +8,7 @@ const snackbarStore = useSnackbarStore();
|
||||
export const usePluginStore = defineStore({
|
||||
id: "plugin",
|
||||
state:()=>({
|
||||
pluginList: [],
|
||||
pluginList: ref([]),
|
||||
currentLabel: "running",
|
||||
labels:[
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user