新增 !新番 指令,获取本周新番列表
优化定时器为35秒一次,防止一分钟内多次调用
This commit is contained in:
parent
92fc97e128
commit
d7a882cf8f
@ -9,7 +9,7 @@ import org.springframework.boot.autoconfigure.SpringBootApplication;
|
|||||||
|
|
||||||
@SpringBootApplication
|
@SpringBootApplication
|
||||||
public class ToolsApplication {
|
public class ToolsApplication {
|
||||||
public static final String version="1.0.15.01";
|
public static final String version="1.0.15.03";
|
||||||
|
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
System.out.println("当前版本号:"+version);
|
System.out.println("当前版本号:"+version);
|
||||||
|
@ -4,12 +4,11 @@ import com.alibaba.fastjson.JSONArray;
|
|||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.yutou.tools.utils.HttpTools;
|
import com.yutou.tools.utils.HttpTools;
|
||||||
import com.yutou.tools.utils.RedisTools;
|
import com.yutou.tools.utils.RedisTools;
|
||||||
|
import org.springframework.util.StringUtils;
|
||||||
|
|
||||||
import java.text.ParseException;
|
import java.text.ParseException;
|
||||||
import java.text.SimpleDateFormat;
|
import java.text.SimpleDateFormat;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.regex.Matcher;
|
|
||||||
import java.util.regex.Pattern;
|
|
||||||
|
|
||||||
public class BangumiTools {
|
public class BangumiTools {
|
||||||
private static final String url = "http://api.bgm.tv/";
|
private static final String url = "http://api.bgm.tv/";
|
||||||
@ -184,6 +183,64 @@ public class BangumiTools {
|
|||||||
return builder.toString();
|
return builder.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 格式化输出新番列表
|
||||||
|
* @return 新番信息
|
||||||
|
*/
|
||||||
|
public static String reportBangumiList(){
|
||||||
|
try {
|
||||||
|
JSONObject json=getBangumi(-1);
|
||||||
|
StringBuilder builder=new StringBuilder();
|
||||||
|
assert json != null;
|
||||||
|
JSONArray array=json.getJSONArray("bangumi");
|
||||||
|
for (Object o : array) {
|
||||||
|
JSONObject data= (JSONObject) o;
|
||||||
|
JSONObject weekday=data.getJSONObject("weekday");
|
||||||
|
JSONArray items=data.getJSONArray("items");
|
||||||
|
builder.append(weekday.getString("cn")).append("(").append(weekday.getString("ja")).append(")");
|
||||||
|
builder.append(":").append("\n");
|
||||||
|
reportBangumi(builder, items,false);
|
||||||
|
builder.append("\n");
|
||||||
|
}
|
||||||
|
return builder.toString();
|
||||||
|
}catch (Exception e){
|
||||||
|
e.printStackTrace();
|
||||||
|
return e.getMessage();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void reportBangumi(StringBuilder builder, JSONArray items,boolean reportEp) {
|
||||||
|
int epIndex = 0;
|
||||||
|
String epName = "N/A";
|
||||||
|
for (Object oj : items) {
|
||||||
|
JSONObject item = (JSONObject) oj;
|
||||||
|
builder.append("[").append(item.getInteger("id")).append("]");
|
||||||
|
builder.append(StringUtils.isEmpty(item.getString("name_cn"))
|
||||||
|
?item.getString("name"):item.getString("name_cn"));
|
||||||
|
if(!reportEp){
|
||||||
|
builder.append("\n");
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
JSONObject info=getBangumiInfo(item.getInteger("id"));
|
||||||
|
if(info.get("eps")==null){
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
JSONArray eps = info.getJSONArray("eps");
|
||||||
|
for (Object oe : eps) {
|
||||||
|
JSONObject ep = (JSONObject) oe;
|
||||||
|
if (ep.getString("status").equals("Air")) {
|
||||||
|
epIndex = ep.getInteger("sort");
|
||||||
|
epName = ep.getString("name");
|
||||||
|
} else {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
builder.append(" 第").append(epIndex).append("话:");
|
||||||
|
builder.append(epName);
|
||||||
|
builder.append("\n");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 格式化字符串输出今日播放番剧列表
|
* 格式化字符串输出今日播放番剧列表
|
||||||
*
|
*
|
||||||
@ -202,26 +259,7 @@ public class BangumiTools {
|
|||||||
JSONArray items = toDay.getJSONArray("items");
|
JSONArray items = toDay.getJSONArray("items");
|
||||||
builder.append("今日 ").append(weekday.get("cn")).append("(").append(weekday.get("ja")).append(")");
|
builder.append("今日 ").append(weekday.get("cn")).append("(").append(weekday.get("ja")).append(")");
|
||||||
builder.append(" 放送列表:").append("\n");
|
builder.append(" 放送列表:").append("\n");
|
||||||
int epIndex = 0;
|
reportBangumi(builder, items,true);
|
||||||
String epName = "N/A";
|
|
||||||
for (Object o : items) {
|
|
||||||
JSONObject item = (JSONObject) o;
|
|
||||||
builder.append("[").append(item.getInteger("id")).append("]");
|
|
||||||
builder.append(item.getString("name_cn"));
|
|
||||||
JSONArray eps = getBangumiInfo(item.getInteger("id")).getJSONArray("eps");
|
|
||||||
for (Object oe : eps) {
|
|
||||||
JSONObject ep = (JSONObject) oe;
|
|
||||||
if (ep.getString("status").equals("Air")) {
|
|
||||||
epIndex = ep.getInteger("sort");
|
|
||||||
epName = ep.getString("name");
|
|
||||||
} else {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
builder.append(" 第").append(epIndex).append("话:");
|
|
||||||
builder.append(epName);
|
|
||||||
builder.append("\n");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
RedisTools.set("toDayBangumi", builder.toString());
|
RedisTools.set("toDayBangumi", builder.toString());
|
||||||
return builder.toString();
|
return builder.toString();
|
||||||
@ -284,7 +322,7 @@ public class BangumiTools {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
String str = reportBangumiInfo(262897);
|
String str = reportBangumiList();
|
||||||
System.out.println(str);
|
System.out.println(str);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -34,6 +34,6 @@ public class ApplicationInit implements ApplicationRunner {
|
|||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},0,10 * 1000);
|
},0,35 * 1000);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -32,6 +32,7 @@ public class QQBotManager {
|
|||||||
private final static String QQ_GET_VERSION = "!version";
|
private final static String QQ_GET_VERSION = "!version";
|
||||||
private final static String QQ_CMD = "!cmd";
|
private final static String QQ_CMD = "!cmd";
|
||||||
private final static String QQ_BANGUMI_TODAY = "!今日动画";
|
private final static String QQ_BANGUMI_TODAY = "!今日动画";
|
||||||
|
private final static String QQ_BANGUMI_LIST="!新番";
|
||||||
private final static String QQ_BANGUMI_SUB = "!查动画";
|
private final static String QQ_BANGUMI_SUB = "!查动画";
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -198,6 +199,10 @@ public class QQBotManager {
|
|||||||
case QQCommands.QQ_BANGUMI_TODAY:
|
case QQCommands.QQ_BANGUMI_TODAY:
|
||||||
QQBotManager.getInstance().sendMessage(BangumiTools.reportToDayBangumi());
|
QQBotManager.getInstance().sendMessage(BangumiTools.reportToDayBangumi());
|
||||||
break;
|
break;
|
||||||
|
case QQCommands.QQ_BANGUMI_LIST:
|
||||||
|
getInstance().sendMessage("获取中...");
|
||||||
|
getInstance().sendMessage(BangumiTools.reportBangumiList());
|
||||||
|
break;
|
||||||
case QQCommands.QQ_HELP:
|
case QQCommands.QQ_HELP:
|
||||||
StringBuilder builder=new StringBuilder();
|
StringBuilder builder=new StringBuilder();
|
||||||
for (Field field : QQCommands.class.getDeclaredFields()) {
|
for (Field field : QQCommands.class.getDeclaredFields()) {
|
||||||
|
Loading…
Reference in New Issue
Block a user