diff --git a/src/main/java/com/yutou/nas/NasApplication.java b/src/main/java/com/yutou/nas/NasApplication.java index 35502a6..cfc1865 100644 --- a/src/main/java/com/yutou/nas/NasApplication.java +++ b/src/main/java/com/yutou/nas/NasApplication.java @@ -12,7 +12,7 @@ import org.springframework.context.annotation.Import; @Import(BTDownloadManager.class) @SpringBootApplication public class NasApplication { - public static final String version="1.0.0"; + public static final String version="1.1.0"; public static void main(String[] args) { SpringApplication.run(NasApplication.class, args); AppData.defaultMusicPath = (String) ConfigTools.load(ConfigTools.CONFIG, "musicDir"); diff --git a/src/main/java/com/yutou/nas/utils/IdeaTools.java b/src/main/java/com/yutou/nas/utils/IdeaTools.java new file mode 100644 index 0000000..18d2386 --- /dev/null +++ b/src/main/java/com/yutou/nas/utils/IdeaTools.java @@ -0,0 +1,53 @@ +package com.yutou.nas.utils; + +import org.springframework.util.StringUtils; + +import java.io.File; +import java.io.IOException; +import java.nio.charset.Charset; +import java.util.ArrayList; +import java.util.Enumeration; +import java.util.List; +import java.util.zip.ZipEntry; +import java.util.zip.ZipFile; + +public class IdeaTools { + public static String getIdea(String name) { + if(StringUtils.isEmpty(name)){ + return ""; + } + File file = new File("tmp" + File.separator + "idea.zip"); + try { + ZipFile zipFile = new ZipFile(file, Charset.forName("gbk")); + String data = ""; + if (file.exists()) { + data = StreamTools.streamReadLine(zipFile.getInputStream(zipFile.getEntry(name))); + } + zipFile.close(); + return data; + } catch (IOException e) { + e.printStackTrace(); + } + return ""; + } + + public static List getIdeaList() { + File file = HttpTools.syncDownload("http://idea.medeming.com/a/jihuoma.zip", "idea.zip"); + List list = new ArrayList<>(); + try { + ZipFile zip = new ZipFile(file, Charset.forName("gbk")); + Enumeration ez = zip.entries(); + while (ez.hasMoreElements()) { + ZipEntry entry = ez.nextElement(); + if (entry.getName().endsWith(".txt")) { + list.add(entry.getName()); + } + } + zip.close(); + } catch (IOException e) { + e.printStackTrace(); + } + + return list; + } +} diff --git a/src/main/java/com/yutou/nas/utils/QQBotManager.java b/src/main/java/com/yutou/nas/utils/QQBotManager.java index 0053c77..38f067c 100644 --- a/src/main/java/com/yutou/nas/utils/QQBotManager.java +++ b/src/main/java/com/yutou/nas/utils/QQBotManager.java @@ -43,6 +43,8 @@ public class QQBotManager { private final static String QQ_AUDIO_OPEN_LAMP = "!开灯"; private final static String QQ_AUDIO_OPEN_AIR = "!开空调"; private final static String QQ_BT_RELOAD = "!刷BT"; + private final static String QQ_TOOLS_IDEA = "!idea"; + private final static String QQ_TOOLS_IDEA_FILE = "!idea>"; } private static QQBotManager botManager = null; @@ -223,6 +225,7 @@ public class QQBotManager { } private void myGroup(String msg) { + StringBuilder builder; msg = msg.replace("!", "!").toLowerCase(); switch (msg) { case QQCommands.QQ_OPEN_PC: @@ -262,7 +265,7 @@ public class QQBotManager { System.exit(0); break; case QQCommands.QQ_HELP: - StringBuilder builder = new StringBuilder(); + builder = new StringBuilder(); for (Field field : QQCommands.class.getDeclaredFields()) { try { field.setAccessible(true); @@ -273,6 +276,13 @@ public class QQBotManager { } getInstance().sendMessage(builder.toString()); break; + case QQCommands.QQ_TOOLS_IDEA: + builder = new StringBuilder(); + for (String name : IdeaTools.getIdeaList()) { + builder.append(QQCommands.QQ_TOOLS_IDEA_FILE).append(name).append("\n"); + } + getInstance().sendMessage(builder.toString()); + break; default: if (msg.startsWith(QQCommands.QQ_CMD)) { RedisTools.Consumer.system("cmd", msg.replace(QQCommands.QQ_CMD, "")); @@ -298,6 +308,8 @@ public class QQBotManager { } else if (msg.startsWith(QQCommands.QQ_AUDIO)) { QQAudio.playText(msg.replace(QQCommands.QQ_AUDIO, "")); + }else if(msg.startsWith(QQCommands.QQ_TOOLS_IDEA_FILE)){ + getInstance().sendMessage(IdeaTools.getIdea(msg.replace(QQCommands.QQ_TOOLS_IDEA_FILE,""))); } } } diff --git a/src/main/java/com/yutou/nas/utils/StreamTools.java b/src/main/java/com/yutou/nas/utils/StreamTools.java new file mode 100644 index 0000000..bba8478 --- /dev/null +++ b/src/main/java/com/yutou/nas/utils/StreamTools.java @@ -0,0 +1,22 @@ +package com.yutou.nas.utils; + +import java.io.BufferedReader; +import java.io.InputStream; +import java.io.InputStreamReader; + +public class StreamTools { + public static String streamReadLine(InputStream stream) { + StringBuilder builder = new StringBuilder(); + try { + BufferedReader reader = new BufferedReader(new InputStreamReader(stream)); + String tmp; + while ((tmp = reader.readLine()) != null) { + builder.append(tmp); + } + reader.close(); + } catch (Exception e) { + e.printStackTrace(); + } + return builder.toString(); + } +}