新增显示大头菜预测
修复定时器重复触发问题
This commit is contained in:
parent
f4733ab9bc
commit
4c2f4abaa5
@ -57,11 +57,49 @@ public class TurnipProphet extends Model {
|
|||||||
try {
|
try {
|
||||||
money = Integer.parseInt(msg.trim());
|
money = Integer.parseInt(msg.trim());
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
|
if (msg.equals(QQFromCommands.TURNIP_PROPHET)) {
|
||||||
|
showData(event.getSource().getFromId());
|
||||||
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
setData(money, event.getSource().getFromId());
|
setData(money, event.getSource().getFromId());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void showData(long qq) {
|
||||||
|
String redisKey = qq + "_turnip";
|
||||||
|
String data = RedisTools.get(redisKey);
|
||||||
|
if (StringUtils.isEmpty(data)) {
|
||||||
|
QQBotManager.getInstance().sendMessage(qq, "没有本周数据,无法预测");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
JSONObject json = JSONObject.parseObject(data);
|
||||||
|
String prices = json.getString("prices");
|
||||||
|
String pattern = null;
|
||||||
|
if (json.containsKey("old_pattern")) {
|
||||||
|
try {
|
||||||
|
pattern = json.getString("old_pattern");
|
||||||
|
} catch (Exception ignored) {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (pattern != null) {
|
||||||
|
switch (pattern) {
|
||||||
|
case "波动型" -> pattern = "0";
|
||||||
|
case "大幅上涨(三期型)" -> pattern = "1";
|
||||||
|
case "递减型" -> pattern = "2";
|
||||||
|
case "小幅上涨(四期型)" -> pattern = "3";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Map<String, String> map = null;
|
||||||
|
try {
|
||||||
|
map = WebClient.getInstance().openTurnip(prices, pattern);
|
||||||
|
sendQQ(map, prices, pattern, qq);
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
showData(qq);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
private void setData(int money, long qq) {
|
private void setData(int money, long qq) {
|
||||||
String redisKey = qq + "_turnip";
|
String redisKey = qq + "_turnip";
|
||||||
String data = RedisTools.get(redisKey);
|
String data = RedisTools.get(redisKey);
|
||||||
@ -139,62 +177,73 @@ public class TurnipProphet extends Model {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
QQBotManager.getInstance().sendMessage(qq, "已记录,正在预测本周走势...");
|
QQBotManager.getInstance().sendMessage(qq, "已记录,正在预测本周走势...");
|
||||||
|
|
||||||
Map<String, String> map = WebClient.getInstance().openTurnip(prices, pattern);
|
Map<String, String> map = WebClient.getInstance().openTurnip(prices, pattern);
|
||||||
|
|
||||||
if (map == null) {
|
String tmp_pattern = sendQQ(map, prices, pattern, qq);
|
||||||
String url = String.format("https://turnipprophet.io?prices=%s%s",
|
if (!StringUtils.isEmpty(tmp_pattern)) {
|
||||||
prices,
|
json.put("pattern", tmp_pattern);
|
||||||
pattern == null ? "" : "&pattern=" + pattern
|
RedisTools.set(redisKey, json.toJSONString());
|
||||||
);
|
|
||||||
QQBotManager.getInstance().sendMessage(qq, "没有结果,请检查数据是否有误。 \n网页预览:" + url);
|
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
JSONObject pr = JSONObject.parseObject(map.get(TurnipData.MODEL));
|
|
||||||
JSONArray prArray = pr.getJSONArray(TurnipData.MODEL);
|
|
||||||
StringBuilder out = new StringBuilder();
|
|
||||||
out.append("预测结果如下:\n");
|
|
||||||
out.append(TurnipData.MODEL).append(prArray.getJSONObject(0).getString(TurnipData.MODEL)).append("\n");
|
|
||||||
out.append(TurnipData.PR).append(prArray.getJSONObject(0).getString(TurnipData.PR)).append("\n");
|
|
||||||
|
|
||||||
out.append(TurnipData.MIX).append(map.get(TurnipData.MIX)).append("\n")
|
|
||||||
.append(TurnipData.MAX).append(map.get(TurnipData.MAX)).append("\n")
|
|
||||||
.append(TurnipData.DAY).append(map.get(TurnipData.DAY)).append("\n")
|
|
||||||
.append("-------------").append("\n")
|
|
||||||
.append(TurnipData.MONDAY_UP).append(map.get(TurnipData.MONDAY_UP)).append(" | ")
|
|
||||||
.append(TurnipData.MONDAY_DOWN).append(map.get(TurnipData.MONDAY_DOWN)).append("\n")
|
|
||||||
.append(TurnipData.TUESDAY_UP).append(map.get(TurnipData.TUESDAY_UP)).append(" | ")
|
|
||||||
.append(TurnipData.TUESDAY_DOWN).append(map.get(TurnipData.TUESDAY_DOWN)).append("\n")
|
|
||||||
.append(TurnipData.WEDNESDAY_UP).append(map.get(TurnipData.WEDNESDAY_UP)).append(" | ")
|
|
||||||
.append(TurnipData.WEDNESDAY_DOWN).append(map.get(TurnipData.WEDNESDAY_DOWN)).append("\n")
|
|
||||||
.append(TurnipData.THURSDAY_UP).append(map.get(TurnipData.THURSDAY_UP)).append(" | ")
|
|
||||||
.append(TurnipData.THURSDAY_DOWN).append(map.get(TurnipData.THURSDAY_DOWN)).append("\n")
|
|
||||||
.append(TurnipData.FRIDAY_UP).append(map.get(TurnipData.FRIDAY_UP)).append(" | ")
|
|
||||||
.append(TurnipData.FRIDAY_DOWN).append(map.get(TurnipData.FRIDAY_DOWN)).append("\n")
|
|
||||||
.append(TurnipData.SATURDAY_UP).append(map.get(TurnipData.SATURDAY_UP)).append(" | ")
|
|
||||||
.append(TurnipData.SATURDAY_DOWN).append(map.get(TurnipData.SATURDAY_DOWN)).append("\n")
|
|
||||||
;
|
|
||||||
out.append("------------").append("\n");
|
|
||||||
out.append("总概率:").append("\n");
|
|
||||||
|
|
||||||
for (Object o : prArray) {
|
|
||||||
JSONObject tmp = (JSONObject) o;
|
|
||||||
out.append(tmp.getString(TurnipData.MODEL)).append(":").append(tmp.getString(TurnipData.PR)).append("\n");
|
|
||||||
}
|
|
||||||
out.append("------------").append("\n");
|
|
||||||
out.append("祝好运 :)");
|
|
||||||
json.put("pattern", prArray.getJSONObject(0).getString(TurnipData.MODEL));
|
|
||||||
RedisTools.set(redisKey, json.toJSONString());
|
|
||||||
Log.i("TurnipProphet", out.toString());
|
|
||||||
QQBotManager.getInstance().sendMessage(qq, out.toString());
|
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
setData(money, qq);
|
setData(money, qq);
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private String sendQQ(Map<String, String> map, String prices, String pattern, long qq) {
|
||||||
|
|
||||||
|
if (map == null) {
|
||||||
|
String url = String.format("https://turnipprophet.io?prices=%s%s",
|
||||||
|
prices,
|
||||||
|
pattern == null ? "" : "&pattern=" + pattern
|
||||||
|
);
|
||||||
|
QQBotManager.getInstance().sendMessage(qq, "没有结果,请检查数据是否有误。 \n网页预览:" + url);
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
JSONObject pr = JSONObject.parseObject(map.get(TurnipData.MODEL));
|
||||||
|
JSONArray prArray = pr.getJSONArray(TurnipData.MODEL);
|
||||||
|
StringBuilder out = new StringBuilder();
|
||||||
|
out.append("预测结果如下:\n");
|
||||||
|
out.append(TurnipData.MODEL).append(prArray.getJSONObject(0).getString(TurnipData.MODEL)).append("\n");
|
||||||
|
out.append(TurnipData.PR).append(prArray.getJSONObject(0).getString(TurnipData.PR)).append("\n");
|
||||||
|
|
||||||
|
out.append(TurnipData.MIX).append(map.get(TurnipData.MIX)).append("\n")
|
||||||
|
.append(TurnipData.MAX).append(map.get(TurnipData.MAX)).append("\n")
|
||||||
|
.append(TurnipData.DAY).append(map.get(TurnipData.DAY)).append("\n")
|
||||||
|
.append("-------------").append("\n")
|
||||||
|
.append(TurnipData.MONDAY_UP).append(map.get(TurnipData.MONDAY_UP)).append(" | ")
|
||||||
|
.append(TurnipData.MONDAY_DOWN).append(map.get(TurnipData.MONDAY_DOWN)).append("\n")
|
||||||
|
.append(TurnipData.TUESDAY_UP).append(map.get(TurnipData.TUESDAY_UP)).append(" | ")
|
||||||
|
.append(TurnipData.TUESDAY_DOWN).append(map.get(TurnipData.TUESDAY_DOWN)).append("\n")
|
||||||
|
.append(TurnipData.WEDNESDAY_UP).append(map.get(TurnipData.WEDNESDAY_UP)).append(" | ")
|
||||||
|
.append(TurnipData.WEDNESDAY_DOWN).append(map.get(TurnipData.WEDNESDAY_DOWN)).append("\n")
|
||||||
|
.append(TurnipData.THURSDAY_UP).append(map.get(TurnipData.THURSDAY_UP)).append(" | ")
|
||||||
|
.append(TurnipData.THURSDAY_DOWN).append(map.get(TurnipData.THURSDAY_DOWN)).append("\n")
|
||||||
|
.append(TurnipData.FRIDAY_UP).append(map.get(TurnipData.FRIDAY_UP)).append(" | ")
|
||||||
|
.append(TurnipData.FRIDAY_DOWN).append(map.get(TurnipData.FRIDAY_DOWN)).append("\n")
|
||||||
|
.append(TurnipData.SATURDAY_UP).append(map.get(TurnipData.SATURDAY_UP)).append(" | ")
|
||||||
|
.append(TurnipData.SATURDAY_DOWN).append(map.get(TurnipData.SATURDAY_DOWN)).append("\n")
|
||||||
|
;
|
||||||
|
out.append("------------").append("\n");
|
||||||
|
out.append("总概率:").append("\n");
|
||||||
|
|
||||||
|
for (Object o : prArray) {
|
||||||
|
JSONObject tmp = (JSONObject) o;
|
||||||
|
out.append(tmp.getString(TurnipData.MODEL)).append(":").append(tmp.getString(TurnipData.PR)).append("\n");
|
||||||
|
}
|
||||||
|
out.append("------------").append("\n");
|
||||||
|
out.append("祝好运 :)");
|
||||||
|
|
||||||
|
Log.i("TurnipProphet", out.toString());
|
||||||
|
QQBotManager.getInstance().sendMessage(qq, out.toString());
|
||||||
|
return prArray.getJSONObject(0).getString(TurnipData.MODEL);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onTime(String time) {
|
public void onTime(String time) {
|
||||||
super.onTime(time);
|
super.onTime(time);
|
||||||
|
@ -23,6 +23,7 @@ public class ApplicationInit implements ApplicationRunner {
|
|||||||
if (time.equals(oldTime)) {
|
if (time.equals(oldTime)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
oldTime=time;
|
||||||
for (Class<?> model : Model.classList) {
|
for (Class<?> model : Model.classList) {
|
||||||
try {
|
try {
|
||||||
Model useModel= (Model) model.getDeclaredConstructor().newInstance();
|
Model useModel= (Model) model.getDeclaredConstructor().newInstance();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user