请求API的类文件方法

tech.ordinaryroad.live.chat.client.commons.util.AiChatUtil.class
a-bogus.js文件改为从项目模块下resources目录获取
tech.ordinaryroad.live.chat.client.douyin.clientDouyinLiveChatClientTest.class 调整
main
周文涛 1 year ago
parent c2b900b593
commit d8e4968044

@ -94,5 +94,9 @@
<version>4.5.1</version>
<classifier>models</classifier>
</dependency>
<dependency>
<groupId>com.google.protobuf</groupId>
<artifactId>protobuf-java</artifactId>
</dependency>
</dependencies>
</project>

@ -235,7 +235,8 @@ public class DouyinApis {
String a_bogus="";
Context context = Context.newBuilder("js").allowAllAccess(true).build();
try {
File jsFile = new File("D:\\workspace\\ordinaryroad-live-chat-client\\live-chat-client-codec\\live-chat-client-codec-douyin\\src\\main\\resources\\a-bogus.js");
String bogus_path = DouyinApis.class.getClassLoader().getResource("a-bogus.js").getPath();
File jsFile = new File(bogus_path);
String jsCode = new String(Files.readAllBytes(jsFile.toPath()));
Source source = Source.newBuilder("js", jsCode, "a-bogus1.js").build();
context.eval(source);

@ -0,0 +1,69 @@
package tech.ordinaryroad.live.chat.client.commons.util;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.http.*;
import cn.hutool.json.JSONArray;
import cn.hutool.json.JSONObject;
import java.util.HashMap;
/**
* fast AI
* @author ZhouWenTao
* @create 2024-06-11-12:11
*/
public class AiChatUtil {
// 问答api地址
private static final String CHAT_COMPLETIONS_URL = "http://ai.izcsz.com/api/v1/chat/completions";
// 请求token
private static final String authorization = "Bearer fastgpt-MBOxnysyhuzMMuLijtq1qYQa6dwIo6AsB0lR5L2r5ommMhBrRd0g9OKNwx4E6";
//请求API时固定的Header
private static final HashMap<String, String> headerMap = new HashMap<>();
static {
// 固定请求TOKEN
headerMap.put("Authorization", authorization);
}
/**
* API
* @param content
*/
public static String chatCompletions(String content) {
String contentType = "application/json";
String data = "{\"chatId\":\"abcd\",\"stream\":false,\"detail\":false,\"variables\":{\"nick\":\"亮亮\"},\"messages\":[{\"content\":\""+content+"\",\"role\":\"user\"}]}";
return HttpRequest.post(CHAT_COMPLETIONS_URL)
.addHeaders(headerMap)
.header("Content-Type", contentType)
.body(data) //接收String类型数据
.timeout(60000)
.execute()
.body();
}
/**
* apimessage
* @param completionsJsonStr
* @return
*/
public static String formatCompletionOutContent(String completionsJsonStr){
try {
if (null !=completionsJsonStr && !completionsJsonStr.isEmpty()) {
JSONObject responseBody = new JSONObject(completionsJsonStr);
JSONArray choices = responseBody.getJSONArray("choices");// 获取ai返回的内容这里获取第一条
if (!CollectionUtil.isEmpty(choices)) {
JSONObject choicesItem = choices.getJSONObject(0);
return choicesItem.getJSONObject("message").getStr("content");
}
}
}catch (Exception e){
System.out.println("ERROR-转换问答接口message时出错"+e.getMessage());
}
return null;
}
public static void main(String[] args) {
System.out.println(formatCompletionOutContent(chatCompletions("用java写一个冒泡排序")));
}
}

@ -32,5 +32,11 @@
<version>${junit-jupiter.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>RELEASE</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>

@ -1,13 +1,12 @@
package tech.ordinaryroad.live.chat.client.douyin.client;
import cn.hutool.core.thread.ThreadUtil;
import cn.hutool.json.JSONObject;
import com.google.protobuf.ByteString;
import com.google.protobuf.InvalidProtocolBufferException;
import com.google.protobuf.UnknownFieldSet;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.junit.jupiter.api.Test;
import org.junit.platform.commons.util.StringUtils;
import tech.ordinaryroad.live.chat.client.codec.douyin.constant.DouyinCmdEnum;
import tech.ordinaryroad.live.chat.client.codec.douyin.msg.*;
import tech.ordinaryroad.live.chat.client.codec.douyin.protobuf.DouyinCmdMsgOuterClass;
@ -15,11 +14,13 @@ import tech.ordinaryroad.live.chat.client.codec.douyin.protobuf.DouyinWebcastGif
import tech.ordinaryroad.live.chat.client.codec.douyin.protobuf.DouyinWebcastSocialMessageMsgOuterClass;
import tech.ordinaryroad.live.chat.client.commons.base.msg.ICmdMsg;
import tech.ordinaryroad.live.chat.client.commons.base.msg.IMsg;
import tech.ordinaryroad.live.chat.client.commons.client.enums.ClientStatusEnums;
import tech.ordinaryroad.live.chat.client.commons.util.AiChatUtil;
import tech.ordinaryroad.live.chat.client.douyin.config.DouyinLiveChatClientConfig;
import tech.ordinaryroad.live.chat.client.douyin.listener.IDouyinMsgListener;
import tech.ordinaryroad.live.chat.client.douyin.netty.handler.DouyinBinaryFrameHandler;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
/**
@ -31,29 +32,41 @@ class DouyinLiveChatClientTest {
static Object lock = new Object();
DouyinLiveChatClient client;
static List<String> shieldUserIdList = new ArrayList<>();//屏蔽回复用户id
static List<String> shieldNickNameList = new ArrayList<>();//屏蔽回复用户昵称
static {
///根据用户id或昵称屏蔽回复
//屏蔽用户id
shieldUserIdList.add("3844369757514799");
//屏幕用户名
shieldNickNameList.add("李李李林");
}
@Test
void example() throws InterruptedException {
// String cookie = System.getenv("cookie");
String cookie ="ttwid=1%7CU6YHr6wKj_WHHXYfelzk5jc7uAg-yN0k2k4yTm1Uo-s%7C1704965821%7Cf48a7874351c69357f4f5f531416c9ad43385f9059fe7c57a5bbb9732b5f5add; store-region-src=uid; live_use_vvc=%22false%22; xgplayer_user_id=657157399276; passport_csrf_token=8be74ec699ab18095dca4f5702e616f9; passport_csrf_token_default=8be74ec699ab18095dca4f5702e616f9; bd_ticket_guard_client_web_domain=2; _bd_ticket_crypt_doamin=2; __security_server_data_status=1; my_rd=2; publish_badge_show_info=%220%2C0%2C0%2C1715773185377%22; FORCE_LOGIN=%7B%22videoConsumedRemainSeconds%22%3A180%2C%22isForcePopClose%22%3A1%7D; SEARCH_RESULT_LIST_TYPE=%22single%22; LOGIN_STATUS=1; store-region=cn-sx; __live_version__=%221.1.2.250%22; FOLLOW_RED_POINT_INFO=%221%22; volume_info=%7B%22isUserMute%22%3Atrue%2C%22isMute%22%3Atrue%2C%22volume%22%3A0.056%7D; download_guide=%223%2F20240521%2F0%22; strategyABtestKey=%221716342956.58%22; csrf_session_id=c0e8a5e872a6f46fc9f680d648d0506c; has_avx2=null; device_web_cpu_core=12; device_web_memory_size=8; webcast_leading_last_show_time=1716342967261; webcast_leading_total_show_times=1; webcast_local_quality=ld; pwa2=%220%7C0%7C3%7C1%22; passport_assist_user=Cjy-XOyHP7UxqDjMY8EgqDg7y2ZTQwU-2n9VwZmWY7NOzNfIE7h_mGo82Qvin4tjMegXNQANqLuGpjIPSjwaSgo8UMXwBgvpWS-UfZRncpUt1NP79vbsJy0575r3PH_q0PCdKEODEZIUEYLsFsltD9oMKEm6uBgmi8CgQ2P3EP_60Q0Yia_WVCABIgEDzHu1Lw%3D%3D; n_mh=Bj7_B8aFG8fIBbINj1-kLTnQ9S9DDEx44d6T3t5Xhl8; sso_uid_tt=4e9a67ef7a1f34439805b9545a64c499; sso_uid_tt_ss=4e9a67ef7a1f34439805b9545a64c499; toutiao_sso_user=82307b656b07f2e1a4cf91e5d8da0006; toutiao_sso_user_ss=82307b656b07f2e1a4cf91e5d8da0006; sid_ucp_sso_v1=1.0.0-KDc3NzM2ZTJjZjVmNTUxNmIxOGQ2YTcwYzQzYzU4ZDY3ODE5MTdlNWQKHQjNzOCXhAIQx9e2sgYY7zEgDDCKwIzOBTgGQPQHGgJscSIgODIzMDdiNjU2YjA3ZjJlMWE0Y2Y5MWU1ZDhkYTAwMDY; ssid_ucp_sso_v1=1.0.0-KDc3NzM2ZTJjZjVmNTUxNmIxOGQ2YTcwYzQzYzU4ZDY3ODE5MTdlNWQKHQjNzOCXhAIQx9e2sgYY7zEgDDCKwIzOBTgGQPQHGgJscSIgODIzMDdiNjU2YjA3ZjJlMWE0Y2Y5MWU1ZDhkYTAwMDY; passport_auth_status=eb9c3dbcb1c9737616664cadf1d8a790%2Cfba0b2a35313b10a9e2e6c5d8f4d0f5f; passport_auth_status_ss=eb9c3dbcb1c9737616664cadf1d8a790%2Cfba0b2a35313b10a9e2e6c5d8f4d0f5f; uid_tt=4c60bce2af32bb3fc83bce53bdd3e567; uid_tt_ss=4c60bce2af32bb3fc83bce53bdd3e567; sid_tt=a9af6fcd917a75ddd5d8bdb6d8c44496; sessionid=a9af6fcd917a75ddd5d8bdb6d8c44496; sessionid_ss=a9af6fcd917a75ddd5d8bdb6d8c44496; _bd_ticket_crypt_cookie=b745f8fd1c572267484fbfe58b89c925; sid_guard=a9af6fcd917a75ddd5d8bdb6d8c44496%7C1716366286%7C5183996%7CSun%2C+21-Jul-2024+08%3A24%3A42+GMT; sid_ucp_v1=1.0.0-KDFmMzRhNjk3NDg4OGMyNGQxZTk3ZmNhZjcwNmYzN2JlZDNkMjJkNmYKGQjNzOCXhAIQzte2sgYY7zEgDDgGQPQHSAQaAmhsIiBhOWFmNmZjZDkxN2E3NWRkZDVkOGJkYjZkOGM0NDQ5Ng; ssid_ucp_v1=1.0.0-KDFmMzRhNjk3NDg4OGMyNGQxZTk3ZmNhZjcwNmYzN2JlZDNkMjJkNmYKGQjNzOCXhAIQzte2sgYY7zEgDDgGQPQHSAQaAmhsIiBhOWFmNmZjZDkxN2E3NWRkZDVkOGJkYjZkOGM0NDQ5Ng; __ac_signature=_02B4Z6wo00f01GnsMRQAAIDBY8rqvlBzsRhpzDWAAHw-eb; FOLLOW_LIVE_POINT_INFO=%22MS4wLjABAAAAfAS7FbtmU-rQ7alBP_D6bJBIWX27xHGXI0bVcHoisis%2F1716393600000%2F0%2F0%2F1716370567576%22; stream_player_status_params=%22%7B%5C%22is_auto_play%5C%22%3A0%2C%5C%22is_full_screen%5C%22%3A0%2C%5C%22is_full_webscreen%5C%22%3A0%2C%5C%22is_mute%5C%22%3A1%2C%5C%22is_speed%5C%22%3A1%2C%5C%22is_visible%5C%22%3A1%7D%22; WallpaperGuide=%7B%22showTime%22%3A1716188223721%2C%22closeTime%22%3A0%2C%22showCount%22%3A2%2C%22cursor1%22%3A87%2C%22cursor2%22%3A0%2C%22hoverTime%22%3A1716352032390%7D; __ac_nonce=0664dbd4e00c752141901; stream_recommend_feed_params=%22%7B%5C%22cookie_enabled%5C%22%3Atrue%2C%5C%22screen_width%5C%22%3A1920%2C%5C%22screen_height%5C%22%3A1080%2C%5C%22browser_online%5C%22%3Atrue%2C%5C%22cpu_core_num%5C%22%3A12%2C%5C%22device_memory%5C%22%3A8%2C%5C%22downlink%5C%22%3A10%2C%5C%22effective_type%5C%22%3A%5C%224g%5C%22%2C%5C%22round_trip_time%5C%22%3A150%7D%22; FOLLOW_NUMBER_YELLOW_POINT_INFO=%22MS4wLjABAAAAfAS7FbtmU-rQ7alBP_D6bJBIWX27xHGXI0bVcHoisis%2F1716393600000%2F1716369970156%2F0%2F1716372013022%22; FRIEND_NUMBER_RED_POINT_INFO=%22MS4wLjABAAAAfAS7FbtmU-rQ7alBP_D6bJBIWX27xHGXI0bVcHoisis%2F1716393600000%2F1716370815219%2F0%2F0%22; passport_fe_beating_status=true; home_can_add_dy_2_desktop=%221%22; xg_device_score=7.740503633714868; live_can_add_dy_2_desktop=%221%22; IsDouyinActive=true; bd_ticket_guard_client_data=eyJiZC10aWNrZXQtZ3VhcmQtdmVyc2lvbiI6MiwiYmQtdGlja2V0LWd1YXJkLWl0ZXJhdGlvbi12ZXJzaW9uIjoxLCJiZC10aWNrZXQtZ3VhcmQtcmVlLXB1YmxpYy1rZXkiOiJCR1NCbXBuQWhMRFg3TERDUVZqZnRDSHJXa1FTNzZNR1ZPcDI4YXB1WmhTd3B0YnArM1NKRCt1b2lZTFFacENDS2JaMEZkaFZUcEtyei9sU0ZzNTlWNUk9IiwiYmQtdGlja2V0LWd1YXJkLXdlYi12ZXJzaW9uIjoxfQ%3D%3D; odin_tt=5cb1890563132950efc6a30651b7131a6421e8423d05672245eecc5f5c052cd9122f6a6314b1a40c1ac0bb1eeb70a9df50bcfee6bde0eee4a5e5dbc2b6516455; msToken=0x6ze9kt9qdjqmsf_mqiXzhZKT4cP3vD1AxZuFg6AQJy6LhFHm5R_Fzq_KtFkuAX9iDg2OJypnqfKSuv95TG7T1oGzcaHkGXLJLG7WAqAg2rQdM9DXA=";
//String cookie ="ttwid=1%7CU6YHr6wKj_WHHXYfelzk5jc7uAg-yN0k2k4yTm1Uo-s%7C1704965821%7Cf48a7874351c69357f4f5f531416c9ad43385f9059fe7c57a5bbb9732b5f5add; store-region-src=uid; live_use_vvc=%22false%22; xgplayer_user_id=657157399276; passport_csrf_token=8be74ec699ab18095dca4f5702e616f9; passport_csrf_token_default=8be74ec699ab18095dca4f5702e616f9; bd_ticket_guard_client_web_domain=2; _bd_ticket_crypt_doamin=2; __security_server_data_status=1; my_rd=2; publish_badge_show_info=%220%2C0%2C0%2C1715773185377%22; FORCE_LOGIN=%7B%22videoConsumedRemainSeconds%22%3A180%2C%22isForcePopClose%22%3A1%7D; SEARCH_RESULT_LIST_TYPE=%22single%22; LOGIN_STATUS=1; store-region=cn-sx; __live_version__=%221.1.2.250%22; FOLLOW_RED_POINT_INFO=%221%22; volume_info=%7B%22isUserMute%22%3Atrue%2C%22isMute%22%3Atrue%2C%22volume%22%3A0.056%7D; download_guide=%223%2F20240521%2F0%22; strategyABtestKey=%221716342956.58%22; csrf_session_id=c0e8a5e872a6f46fc9f680d648d0506c; has_avx2=null; device_web_cpu_core=12; device_web_memory_size=8; webcast_leading_last_show_time=1716342967261; webcast_leading_total_show_times=1; webcast_local_quality=ld; pwa2=%220%7C0%7C3%7C1%22; passport_assist_user=Cjy-XOyHP7UxqDjMY8EgqDg7y2ZTQwU-2n9VwZmWY7NOzNfIE7h_mGo82Qvin4tjMegXNQANqLuGpjIPSjwaSgo8UMXwBgvpWS-UfZRncpUt1NP79vbsJy0575r3PH_q0PCdKEODEZIUEYLsFsltD9oMKEm6uBgmi8CgQ2P3EP_60Q0Yia_WVCABIgEDzHu1Lw%3D%3D; n_mh=Bj7_B8aFG8fIBbINj1-kLTnQ9S9DDEx44d6T3t5Xhl8; sso_uid_tt=4e9a67ef7a1f34439805b9545a64c499; sso_uid_tt_ss=4e9a67ef7a1f34439805b9545a64c499; toutiao_sso_user=82307b656b07f2e1a4cf91e5d8da0006; toutiao_sso_user_ss=82307b656b07f2e1a4cf91e5d8da0006; sid_ucp_sso_v1=1.0.0-KDc3NzM2ZTJjZjVmNTUxNmIxOGQ2YTcwYzQzYzU4ZDY3ODE5MTdlNWQKHQjNzOCXhAIQx9e2sgYY7zEgDDCKwIzOBTgGQPQHGgJscSIgODIzMDdiNjU2YjA3ZjJlMWE0Y2Y5MWU1ZDhkYTAwMDY; ssid_ucp_sso_v1=1.0.0-KDc3NzM2ZTJjZjVmNTUxNmIxOGQ2YTcwYzQzYzU4ZDY3ODE5MTdlNWQKHQjNzOCXhAIQx9e2sgYY7zEgDDCKwIzOBTgGQPQHGgJscSIgODIzMDdiNjU2YjA3ZjJlMWE0Y2Y5MWU1ZDhkYTAwMDY; passport_auth_status=eb9c3dbcb1c9737616664cadf1d8a790%2Cfba0b2a35313b10a9e2e6c5d8f4d0f5f; passport_auth_status_ss=eb9c3dbcb1c9737616664cadf1d8a790%2Cfba0b2a35313b10a9e2e6c5d8f4d0f5f; uid_tt=4c60bce2af32bb3fc83bce53bdd3e567; uid_tt_ss=4c60bce2af32bb3fc83bce53bdd3e567; sid_tt=a9af6fcd917a75ddd5d8bdb6d8c44496; sessionid=a9af6fcd917a75ddd5d8bdb6d8c44496; sessionid_ss=a9af6fcd917a75ddd5d8bdb6d8c44496; _bd_ticket_crypt_cookie=b745f8fd1c572267484fbfe58b89c925; sid_guard=a9af6fcd917a75ddd5d8bdb6d8c44496%7C1716366286%7C5183996%7CSun%2C+21-Jul-2024+08%3A24%3A42+GMT; sid_ucp_v1=1.0.0-KDFmMzRhNjk3NDg4OGMyNGQxZTk3ZmNhZjcwNmYzN2JlZDNkMjJkNmYKGQjNzOCXhAIQzte2sgYY7zEgDDgGQPQHSAQaAmhsIiBhOWFmNmZjZDkxN2E3NWRkZDVkOGJkYjZkOGM0NDQ5Ng; ssid_ucp_v1=1.0.0-KDFmMzRhNjk3NDg4OGMyNGQxZTk3ZmNhZjcwNmYzN2JlZDNkMjJkNmYKGQjNzOCXhAIQzte2sgYY7zEgDDgGQPQHSAQaAmhsIiBhOWFmNmZjZDkxN2E3NWRkZDVkOGJkYjZkOGM0NDQ5Ng; __ac_signature=_02B4Z6wo00f01GnsMRQAAIDBY8rqvlBzsRhpzDWAAHw-eb; FOLLOW_LIVE_POINT_INFO=%22MS4wLjABAAAAfAS7FbtmU-rQ7alBP_D6bJBIWX27xHGXI0bVcHoisis%2F1716393600000%2F0%2F0%2F1716370567576%22; stream_player_status_params=%22%7B%5C%22is_auto_play%5C%22%3A0%2C%5C%22is_full_screen%5C%22%3A0%2C%5C%22is_full_webscreen%5C%22%3A0%2C%5C%22is_mute%5C%22%3A1%2C%5C%22is_speed%5C%22%3A1%2C%5C%22is_visible%5C%22%3A1%7D%22; WallpaperGuide=%7B%22showTime%22%3A1716188223721%2C%22closeTime%22%3A0%2C%22showCount%22%3A2%2C%22cursor1%22%3A87%2C%22cursor2%22%3A0%2C%22hoverTime%22%3A1716352032390%7D; __ac_nonce=0664dbd4e00c752141901; stream_recommend_feed_params=%22%7B%5C%22cookie_enabled%5C%22%3Atrue%2C%5C%22screen_width%5C%22%3A1920%2C%5C%22screen_height%5C%22%3A1080%2C%5C%22browser_online%5C%22%3Atrue%2C%5C%22cpu_core_num%5C%22%3A12%2C%5C%22device_memory%5C%22%3A8%2C%5C%22downlink%5C%22%3A10%2C%5C%22effective_type%5C%22%3A%5C%224g%5C%22%2C%5C%22round_trip_time%5C%22%3A150%7D%22; FOLLOW_NUMBER_YELLOW_POINT_INFO=%22MS4wLjABAAAAfAS7FbtmU-rQ7alBP_D6bJBIWX27xHGXI0bVcHoisis%2F1716393600000%2F1716369970156%2F0%2F1716372013022%22; FRIEND_NUMBER_RED_POINT_INFO=%22MS4wLjABAAAAfAS7FbtmU-rQ7alBP_D6bJBIWX27xHGXI0bVcHoisis%2F1716393600000%2F1716370815219%2F0%2F0%22; passport_fe_beating_status=true; home_can_add_dy_2_desktop=%221%22; xg_device_score=7.740503633714868; live_can_add_dy_2_desktop=%221%22; IsDouyinActive=true; bd_ticket_guard_client_data=eyJiZC10aWNrZXQtZ3VhcmQtdmVyc2lvbiI6MiwiYmQtdGlja2V0LWd1YXJkLWl0ZXJhdGlvbi12ZXJzaW9uIjoxLCJiZC10aWNrZXQtZ3VhcmQtcmVlLXB1YmxpYy1rZXkiOiJCR1NCbXBuQWhMRFg3TERDUVZqZnRDSHJXa1FTNzZNR1ZPcDI4YXB1WmhTd3B0YnArM1NKRCt1b2lZTFFacENDS2JaMEZkaFZUcEtyei9sU0ZzNTlWNUk9IiwiYmQtdGlja2V0LWd1YXJkLXdlYi12ZXJzaW9uIjoxfQ%3D%3D; odin_tt=5cb1890563132950efc6a30651b7131a6421e8423d05672245eecc5f5c052cd9122f6a6314b1a40c1ac0bb1eeb70a9df50bcfee6bde0eee4a5e5dbc2b6516455; msToken=0x6ze9kt9qdjqmsf_mqiXzhZKT4cP3vD1AxZuFg6AQJy6LhFHm5R_Fzq_KtFkuAX9iDg2OJypnqfKSuv95TG7T1oGzcaHkGXLJLG7WAqAg2rQdM9DXA=";
String roomId = "47678148825";
String cookie = "bd_ticket_guard_client_web_domain=2; passport_csrf_token=7ffb8b8fa7a1755db97fe36c23b2b4e6; passport_csrf_token_default=7ffb8b8fa7a1755db97fe36c23b2b4e6; SEARCH_RESULT_LIST_TYPE=%22single%22; strategyABtestKey=%221718075897.038%22; FORCE_LOGIN=%7B%22videoConsumedRemainSeconds%22%3A180%7D; csrf_session_id=436cc9216870e18f303417c5bcae5f70; passport_assist_user=CkEd-hBNPxDPo8jSy2_SAQ1QyuMpdEF7KSknM9STv3pitdhOdoiS-q2jTP-OSkAKU1irJAsU6KvT7u-TabgCliye3xpKCjz_QBK83x7ywBVzEnfGwAfV4gdN0GteGVFmuYK2AO37BFM38PWx5kVG_mG14ngdnkHeYJfT5Y7y5r-f-0EQ99rTDRiJr9ZUIAEiAQO_x4an; n_mh=fo-jpdvR_LTh0xqGcSh8zbW8MJO9YTly2kmcGDTTduI; sso_uid_tt=1893916d9a25805c3d40ce1b12e2bdf1; sso_uid_tt_ss=1893916d9a25805c3d40ce1b12e2bdf1; toutiao_sso_user=60c0a0cb4d91d28583b0e652110b6538; toutiao_sso_user_ss=60c0a0cb4d91d28583b0e652110b6538; sid_ucp_sso_v1=1.0.0-KDdjZWNkYzI4YzM0YWRkY2EzYWI0MGQ2MzhmNzllZjk3YzllMDdhMDcKIQiv2KCu8Y3qBhCihJ-zBhjvMSAMMLy5xY8GOAZA9AdIBhoCaGwiIDYwYzBhMGNiNGQ5MWQyODU4M2IwZTY1MjExMGI2NTM4; ssid_ucp_sso_v1=1.0.0-KDdjZWNkYzI4YzM0YWRkY2EzYWI0MGQ2MzhmNzllZjk3YzllMDdhMDcKIQiv2KCu8Y3qBhCihJ-zBhjvMSAMMLy5xY8GOAZA9AdIBhoCaGwiIDYwYzBhMGNiNGQ5MWQyODU4M2IwZTY1MjExMGI2NTM4; passport_auth_status=29fb05d66937a448685d372f7b302fb7%2C; passport_auth_status_ss=29fb05d66937a448685d372f7b302fb7%2C; uid_tt=72b4a9f97b9a58124c6d08f2b8c3ae1c; uid_tt_ss=72b4a9f97b9a58124c6d08f2b8c3ae1c; sid_tt=b73b11fd75784ffb396ccc54a5c697e8; sessionid=b73b11fd75784ffb396ccc54a5c697e8; sessionid_ss=b73b11fd75784ffb396ccc54a5c697e8; _bd_ticket_crypt_doamin=2; _bd_ticket_crypt_cookie=3fa3243ffc5678ffdaf08bc794f5c46d; publish_badge_show_info=%220%2C0%2C0%2C1718075943142%22; __security_server_data_status=1; sid_guard=b73b11fd75784ffb396ccc54a5c697e8%7C1718075944%7C5183997%7CSat%2C+10-Aug-2024+03%3A19%3A01+GMT; sid_ucp_v1=1.0.0-KDk1NDU3ZjEwNmQxYzFhZTc0ZTZhN2MyNGNhOTY3MWIyNjE5YWVmMzEKGwiv2KCu8Y3qBhCohJ-zBhjvMSAMOAZA9AdIBBoCbGYiIGI3M2IxMWZkNzU3ODRmZmIzOTZjY2M1NGE1YzY5N2U4; ssid_ucp_v1=1.0.0-KDk1NDU3ZjEwNmQxYzFhZTc0ZTZhN2MyNGNhOTY3MWIyNjE5YWVmMzEKGwiv2KCu8Y3qBhCohJ-zBhjvMSAMOAZA9AdIBBoCbGYiIGI3M2IxMWZkNzU3ODRmZmIzOTZjY2M1NGE1YzY5N2U4; store-region=cn-ha; store-region-src=uid; stream_recommend_feed_params=%22%7B%5C%22cookie_enabled%5C%22%3Atrue%2C%5C%22screen_width%5C%22%3A1920%2C%5C%22screen_height%5C%22%3A1200%2C%5C%22browser_online%5C%22%3Atrue%2C%5C%22cpu_core_num%5C%22%3A16%2C%5C%22device_memory%5C%22%3A8%2C%5C%22downlink%5C%22%3A0.8%2C%5C%22effective_type%5C%22%3A%5C%223g%5C%22%2C%5C%22round_trip_time%5C%22%3A350%7D%22; stream_player_status_params=%22%7B%5C%22is_auto_play%5C%22%3A0%2C%5C%22is_full_screen%5C%22%3A0%2C%5C%22is_full_webscreen%5C%22%3A0%2C%5C%22is_mute%5C%22%3A1%2C%5C%22is_speed%5C%22%3A1%2C%5C%22is_visible%5C%22%3A1%7D%22; FOLLOW_NUMBER_YELLOW_POINT_INFO=%22MS4wLjABAAAA6sMxlhLaCL7s471LL4qiDjsqkYVwIWnA0TvZyIa0qLTPDeYexK39ZK4aWu39ZIHC%2F1718121600000%2F0%2F0%2F1718079328944%22; FOLLOW_LIVE_POINT_INFO=%22MS4wLjABAAAA6sMxlhLaCL7s471LL4qiDjsqkYVwIWnA0TvZyIa0qLTPDeYexK39ZK4aWu39ZIHC%2F1718121600000%2F0%2F0%2F1718078730788%22; home_can_add_dy_2_desktop=%221%22; __live_version__=%221.1.2.904%22; has_avx2=null; device_web_cpu_core=16; device_web_memory_size=8; live_use_vvc=%22false%22; xgplayer_user_id=325174987665; webcast_leading_last_show_time=1718078142087; webcast_leading_total_show_times=1; volume_info=%7B%22isUserMute%22%3Afalse%2C%22isMute%22%3Afalse%2C%22volume%22%3A0.692%7D; s_v_web_id=verify_lx9ve7bp_imO5HGZ3_FTzG_4eKu_9a5B_4uHjzsrNWqeB; ttwid=1%7Cfc9BJdwMDsA_y7BGSOBm5HEMsU8iIYjtH1OeyeRQWeY%7C1718078190%7C31b06363200bf25f027bdaf5002f5398cb884c640bf726193533fcf1b06ce369; msToken=qjXhncxguu-6sjwZTmWH9goaeN-GqUsk8pDt5Szj5D5jS0gWIuhmkB9LSwTJvhNlknGsYlgsXa0EgkhMZ7V7Wz2cVCeN4URZ0YpbmggVojDFYwozCT-daytn9VfqcA==; webcast_local_quality=origin; download_guide=%223%2F20240611%2F1%22; __ac_nonce=06667f0c2003149662ac0; __ac_signature=_02B4Z6wo00f01nZfMzgAAIDDqiasj8YFk6p2fzeAAPv.12; pwa2=%220%7C0%7C3%7C0%22; odin_tt=ce1a94f911cc3c6e5f9e3904a9cb66cacaca373d6e28858f28e2b435062d8cf245955f328cab76b4d15482208883d0fa; xg_device_score=7.682148328545583; live_can_add_dy_2_desktop=%221%22; bd_ticket_guard_client_data=eyJiZC10aWNrZXQtZ3VhcmQtdmVyc2lvbiI6MiwiYmQtdGlja2V0LWd1YXJkLWl0ZXJhdGlvbi12ZXJzaW9uIjoxLCJiZC10aWNrZXQtZ3VhcmQtcmVlLXB1YmxpYy1rZXkiOiJCTi9RN3Vja0VYZ0Ftc25VaXJFbi9uZU5ReWoyeXIwZkc3RFNSQWIzbEtzY1ZPNW12WWVSeHZYZ1RPaFlEdjdrOThqWnBPN1JYN2p0ZFQ4SHpZSHVsV1k9IiwiYmQtdGlja2V0LWd1YXJkLXdlYi12ZXJzaW9uIjoxfQ%3D%3D; msToken=hlmI9OS584NY4tSI33AgKnI4lWR3_SU_5mYKOHpzFFeWoAbHHdQ9FUHcKOq3IdC5z-owRJeKsGblTQK3ArSx7Rty9iXaefee0haY5osTcCrSRVnzfqll; passport_fe_beating_status=true; IsDouyinActive=false";
log.error("cookie: {}", cookie);
DouyinLiveChatClientConfig config = DouyinLiveChatClientConfig.builder()
// .forwardWebsocketUri("ws://127.0.0.1:8080/websocket")
// TODO 浏览器Cookie
.cookie(cookie)
.roomId("380874233822")
.roomId(roomId)
.build();
client = new DouyinLiveChatClient(config, new IDouyinMsgListener() {
@Override
public void onMsg(IMsg msg) {
// log.debug("收到{}消息 {}", msg.getClass(), msg);
log.debug("收到{}消息 {}", msg.getClass(), msg);
}
@Override
public void onCmdMsg(DouyinCmdEnum cmd, ICmdMsg<DouyinCmdEnum> cmdMsg) {
// log.debug("收到CMD消息{} {}", cmd, cmdMsg);
log.debug("收到CMD消息{} {}", cmd, cmdMsg);
}
@Override
@ -121,13 +134,19 @@ class DouyinLiveChatClientTest {
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
// String jianyi = jsonObject.getStr("回答建议");
// if(StringUtils.isNotBlank(jianyi)){
client.sendDanmu("腿好看", () -> {
log.warn("弹幕发送成功");
});
// }
// }
//TODO 接受到的用户消息,判断是否需要回复
String content = msg.getContent();
//先判断 该消息是否需要回复
if (contentIsVaild(binaryFrameHandler,msg) && !(shieldUserIdList.contains(msg.getUid())) && !(shieldNickNameList.contains(msg.getUsername()))) {
//调用chat 获取回答消息
String replyMessage = AiChatUtil.formatCompletionOutContent(AiChatUtil.chatCompletions(content));
if(StringUtils.isNotBlank(replyMessage)){
//发送
client.sendDanmu(replyMessage, () -> {
log.warn("弹幕发送成功");
});
}
}
}
@Override
@ -199,4 +218,17 @@ class DouyinLiveChatClientTest {
}
}
}
/**
*
* @param binaryFrameHandler
* @param msg
* @return
*/
public static boolean contentIsVaild(DouyinBinaryFrameHandler binaryFrameHandler, DouyinDanmuMsg msg){
// msg.getContent();// 消息
// msg.getUid();//发送人id
// msg.getUsername();//发送人名称
return true;
}
}

Loading…
Cancel
Save