From 7a7ca0034e753ff0aa394dc112c4aeacc4c19ecf Mon Sep 17 00:00:00 2001
From: welsir <1824379011@qq.com>
Date: Mon, 25 Sep 2023 15:44:44 +0800
Subject: [PATCH] =?UTF-8?q?=E8=B4=A6=E5=8F=B7=E6=A8=A1=E5=9D=97=E5=AE=8C?=
=?UTF-8?q?=E6=88=90=E5=AF=B9=E5=88=87=E7=89=87=E7=9A=84=E6=8E=A5=E5=8F=97?=
=?UTF-8?q?=E5=92=8C=E5=AF=B9=E5=BA=94=E8=B4=A6=E5=8F=B7=E8=A7=86=E9=A2=91?=
=?UTF-8?q?=E7=9A=84=E5=8F=91=E5=B8=83=EF=BC=8C=E6=9C=AA=E7=BB=8F=E6=95=B4?=
=?UTF-8?q?=E7=90=86=E5=92=8C=E6=B5=8B=E8=AF=95?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
chopperbot-account/pom.xml | 6 ++
.../main/java/org/example/api/AccountApi.java | 6 +-
.../example/core/account/AccountCenter.java | 1 +
.../core/account/Impl/AccountOperator.java | 9 +-
.../org/example/core/exchange/Exchange.java | 33 +++++++-
.../example/core/guard/VideoPushGuard.java | 80 +++---------------
.../example/core/mapper/AccountMapper.java | 6 +-
.../java/org/example/pojo/AccountType.java | 4 +-
.../java/org/example/pojo/VideoQueue.java | 25 ++----
database.db | Bin 77824 -> 77824 bytes
10 files changed, 75 insertions(+), 95 deletions(-)
diff --git a/chopperbot-account/pom.xml b/chopperbot-account/pom.xml
index c857d12..6fef77a 100644
--- a/chopperbot-account/pom.xml
+++ b/chopperbot-account/pom.xml
@@ -74,5 +74,11 @@
20210307
compile
+
+ org.example
+ chopperbot-publish
+ 1.0-SNAPSHOT
+ compile
+
diff --git a/chopperbot-account/src/main/java/org/example/api/AccountApi.java b/chopperbot-account/src/main/java/org/example/api/AccountApi.java
index 33914d9..547c36a 100644
--- a/chopperbot-account/src/main/java/org/example/api/AccountApi.java
+++ b/chopperbot-account/src/main/java/org/example/api/AccountApi.java
@@ -2,8 +2,6 @@ package org.example.api;
import org.example.core.account.Impl.AccountOperator;
import org.example.pojo.Account;
-import org.springframework.stereotype.Controller;
-import org.springframework.util.Assert;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
@@ -31,4 +29,8 @@ public class AccountApi {
return accountOperator.getAllUsers(platformId);
}
+ @PostMapping("/editUser")
+ public void editUser(@RequestBody Account account){
+ accountOperator.editUser(account);
+ }
}
diff --git a/chopperbot-account/src/main/java/org/example/core/account/AccountCenter.java b/chopperbot-account/src/main/java/org/example/core/account/AccountCenter.java
index e2ba001..866eb83 100644
--- a/chopperbot-account/src/main/java/org/example/core/account/AccountCenter.java
+++ b/chopperbot-account/src/main/java/org/example/core/account/AccountCenter.java
@@ -15,4 +15,5 @@ public interface AccountCenter {
List getAllUsers(int id);
+ void editUser(Account account);
}
diff --git a/chopperbot-account/src/main/java/org/example/core/account/Impl/AccountOperator.java b/chopperbot-account/src/main/java/org/example/core/account/Impl/AccountOperator.java
index 36da592..7ce679c 100644
--- a/chopperbot-account/src/main/java/org/example/core/account/Impl/AccountOperator.java
+++ b/chopperbot-account/src/main/java/org/example/core/account/Impl/AccountOperator.java
@@ -5,6 +5,7 @@ import org.example.core.factory.PlatformFactory;
import org.example.core.mapper.AccountMapper;
import org.example.pojo.Account;
import org.springframework.stereotype.Component;
+import org.springframework.util.Assert;
import javax.annotation.Resource;
import java.util.List;
@@ -26,6 +27,12 @@ public class AccountOperator implements AccountCenter {
@Override
public List getAllUsers(int id) {
- return accountMapper.getUserByPlatform(id);
+ return accountMapper.selectUserByPlatform(id);
+ }
+
+ @Override
+ public void editUser(Account account) {
+ int i = accountMapper.updateById(account);
+ Assert.isTrue(i==1,"Update user fail!Please try again or check the wrong!");
}
}
diff --git a/chopperbot-account/src/main/java/org/example/core/exchange/Exchange.java b/chopperbot-account/src/main/java/org/example/core/exchange/Exchange.java
index a6d2b44..6b67604 100644
--- a/chopperbot-account/src/main/java/org/example/core/exchange/Exchange.java
+++ b/chopperbot-account/src/main/java/org/example/core/exchange/Exchange.java
@@ -1,8 +1,13 @@
package org.example.core.exchange;
+import org.example.api.BilibiliPublishApi;
import org.example.pojo.VideoQueue;
import java.util.*;
+import java.util.concurrent.Executors;
+import java.util.concurrent.ScheduledExecutorService;
+import java.util.concurrent.ScheduledThreadPoolExecutor;
+import java.util.concurrent.TimeUnit;
/**
* @Description
@@ -12,7 +17,30 @@ import java.util.*;
public class Exchange {
private final Map> bindings = new HashMap<>();
+ ScheduledExecutorService task;
public Exchange() {
+ task = Executors.newScheduledThreadPool(1);
+ }
+
+ public void startListening() {
+ // 每5秒轮询一次消息队列
+ // 检查消息队列并提取消息
+ task.scheduleAtFixedRate(this::checkAndProcessMessages, 0, 5, TimeUnit.SECONDS);
+ }
+
+ private void checkAndProcessMessages() {
+ // 在这里检查消息队列,提取消息并调用publish方法
+ for (String routingKey : bindings.keySet()) {
+ if (bindings.containsKey(routingKey)) {
+ List queues = bindings.get(routingKey);
+ for (VideoQueue queue : queues) {
+ Object message = queue.dequeue();
+ if (message != null) {
+ BilibiliPublishApi.PublishVideo("xxx","xxx",queue.getCookies().toString(),"xxx");
+ }
+ }
+ }
+ }
}
public void bind(VideoQueue queue, String routingKey) {
@@ -23,10 +51,7 @@ public class Exchange {
public void publish(String routingKey, Object message) {
if (this.bindings.containsKey(routingKey)) {
List queues = this.bindings.get(routingKey);
- Iterator var4 = queues.iterator();
-
- while(var4.hasNext()) {
- VideoQueue queue = (VideoQueue)var4.next();
+ for (VideoQueue queue : queues) {
queue.enqueue(message);
}
}
diff --git a/chopperbot-account/src/main/java/org/example/core/guard/VideoPushGuard.java b/chopperbot-account/src/main/java/org/example/core/guard/VideoPushGuard.java
index 27efd43..77e4040 100644
--- a/chopperbot-account/src/main/java/org/example/core/guard/VideoPushGuard.java
+++ b/chopperbot-account/src/main/java/org/example/core/guard/VideoPushGuard.java
@@ -1,30 +1,15 @@
package org.example.core.guard;
-import com.alibaba.fastjson.JSON;
-import com.alibaba.fastjson.JSONObject;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import org.example.pojo.VideoType;
import org.example.core.exchange.Exchange;
import org.example.core.mapper.AccountMapper;
-import org.example.core.mapper.AccountTypeMapper;
import org.example.plugin.GuardPlugin;
-import org.example.pojo.Account;
-import org.example.pojo.AccountType;
-import org.example.pojo.Video;
-import org.example.pojo.VideoQueue;
+import org.example.pojo.*;
import javax.annotation.Resource;
-import java.io.IOException;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.util.Iterator;
import java.util.List;
-import java.util.Map;
import java.util.concurrent.ArrayBlockingQueue;
import java.util.concurrent.BlockingQueue;
import java.util.concurrent.TimeUnit;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
/**
* @Description
@@ -34,13 +19,10 @@ import java.util.regex.Pattern;
public class VideoPushGuard extends GuardPlugin {
private Exchange exchange;
- private static final String ACCOUNT_PATH = "config/Account/account.json";
private BlockingQueue