diff --git a/pom.xml b/pom.xml index b699b9b..4eebca0 100644 --- a/pom.xml +++ b/pom.xml @@ -109,7 +109,7 @@ net.mamoe mirai-core-qqandroid - 1.3.1 + 1.3.3 org.jetbrains.kotlin diff --git a/src/main/java/com/yutou/tools/ToolsApplication.java b/src/main/java/com/yutou/tools/ToolsApplication.java index d5e728c..800ded5 100644 --- a/src/main/java/com/yutou/tools/ToolsApplication.java +++ b/src/main/java/com/yutou/tools/ToolsApplication.java @@ -9,7 +9,7 @@ import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class ToolsApplication { - public static final String version="1.0.11"; + public static final String version="1.0.12"; public static void main(String[] args) { System.out.println("当前版本号:"+version); diff --git a/src/main/java/com/yutou/tools/home/nas/MusicFavoritesController.java b/src/main/java/com/yutou/tools/home/nas/MusicFavoritesController.java index 27aa331..235a603 100644 --- a/src/main/java/com/yutou/tools/home/nas/MusicFavoritesController.java +++ b/src/main/java/com/yutou/tools/home/nas/MusicFavoritesController.java @@ -13,6 +13,7 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import javax.annotation.Resource; +import java.util.Date; /** * 收藏夹相关 @@ -51,6 +52,8 @@ public class MusicFavoritesController{ json.put("data", JSONArray.toJSON(favoritesDirDao.selectByExample(new MusicFavoritesDirExample()))); return json.toJSONString(); } + @RequestMapping("dir/rename.do") + @ResponseBody public String renameFavoriteDir(String id,String title){ JSONObject json=new JSONObject(); MusicFavoritesDir favoritesDir=favoritesDirDao.selectByPrimaryKey(Integer.parseInt(id)); @@ -65,4 +68,35 @@ public class MusicFavoritesController{ } return json.toJSONString(); } + @RequestMapping("add.do") + @ResponseBody + public String addFavorite(int fid,String md5s){ + JSONObject json=new JSONObject(); + JSONArray array=JSONArray.parseArray(md5s); + if(array==null){ + json.put("code",-1); + json.put("msg","参数异常"); + return json.toJSONString(); + } + for (Object o : array) { + String md5= (String) o; + MusicFavorites favorites=new MusicFavorites(); + favorites.setMusisMd5(md5); + favorites.setFavoriteid(fid); + favorites.setSubTime(new Date()); + favoritesDao.insert(favorites); + } + json.put("code",0); + json.put("msg","添加成功"); + return json.toJSONString(); + } + @RequestMapping("remove.do") + @ResponseBody + public String removeFavorite(int fid){ + JSONObject json=new JSONObject(); + int ret=favoritesDao.deleteByPrimaryKey(fid); + json.put("code",ret==0?-1:0); + json.put("msg",ret==0?"移除失败":"已从收藏夹中移除"); + return json.toJSONString(); + } } diff --git a/src/main/java/com/yutou/tools/utils/MusicTools.java b/src/main/java/com/yutou/tools/utils/MusicTools.java index a6c68e4..53e5134 100644 --- a/src/main/java/com/yutou/tools/utils/MusicTools.java +++ b/src/main/java/com/yutou/tools/utils/MusicTools.java @@ -68,6 +68,9 @@ public class MusicTools implements MusicToolsService { if (isScan) { return; } + if(ConfigTools.load(ConfigTools.CONFIG,"musicScan").equals("false")){ + return; + } musicPath = (String) ConfigTools.load(ConfigTools.CONFIG, "musicDir"); musicDataDao.truncate(); System.out.println("执行扫描:" + musicPath); @@ -129,10 +132,8 @@ public class MusicTools implements MusicToolsService { } else { main = musicDataDao.selectByRegexp(path.replace(File.separator, replacement) + replacement + "([^" + replacement + "]+)$"); } - System.out.println(path + " " + isDir); - if (!path.equals(MusicController.defaultMusicPath) && !path.equals("root") && main.size() > 0) { + if (!path.equals(MusicController.defaultMusicPath) && !path.equals("root")) { MusicData tmp = main.get(0); - System.out.println(tmp); MusicData t2 = new MusicData(); t2.setTitle("返回"); t2.setFile(new File(tmp.getLastdir()).getAbsolutePath()); @@ -141,7 +142,6 @@ public class MusicTools implements MusicToolsService { } getDirList(path, list); list.addAll(main); - System.out.println(list.size()); return list; } @@ -404,6 +404,7 @@ public class MusicTools implements MusicToolsService { data.setIsdir(file.isDirectory() ? 1 : 0); data.setLastdir(file.getParentFile().getParent()); data.setMd5(Tools.getFileMD5(file)); + QQBotManager.getInstance().sendMessage("添加音乐文件失败:\n"+data.toString()+"\n"+Tools.getExceptionString(e)); } return data; } diff --git a/src/main/java/com/yutou/tools/utils/QQBotManager.java b/src/main/java/com/yutou/tools/utils/QQBotManager.java index dfa1c67..232faa3 100644 --- a/src/main/java/com/yutou/tools/utils/QQBotManager.java +++ b/src/main/java/com/yutou/tools/utils/QQBotManager.java @@ -9,12 +9,12 @@ import net.mamoe.mirai.event.Events; import net.mamoe.mirai.event.ListeningStatus; import net.mamoe.mirai.event.SimpleListenerHost; import net.mamoe.mirai.message.GroupMessageEvent; +import net.mamoe.mirai.message.MessageEvent; import net.mamoe.mirai.message.MessageReceipt; import net.mamoe.mirai.message.data.Image; import net.mamoe.mirai.message.data.MessageChain; import net.mamoe.mirai.message.data.MessageUtils; import net.mamoe.mirai.utils.BotConfiguration; -import net.mamoe.mirai.utils.MiraiLogger; import org.jetbrains.annotations.NotNull; import java.io.File; @@ -23,13 +23,13 @@ public class QQBotManager { private static QQBotManager botManager = null; private Bot bot; private static final long qqGroup = 891655174L; - private boolean isLogin=false; + private boolean isLogin = false; private QQBotManager() { Object isRun = ConfigTools.load(ConfigTools.CONFIG, "qq_bot"); if (isRun != null && (boolean) isRun) { init(); - isLogin=true; + isLogin = true; } } @@ -37,9 +37,9 @@ public class QQBotManager { new Thread(new Runnable() { @Override public void run() { - long qq=2476945931L; - String password="zhang34864394"; - if(ConfigTools.load(ConfigTools.CONFIG, "model").equals("dev")) { + long qq = 2476945931L; + String password = "zhang34864394"; + if (ConfigTools.load(ConfigTools.CONFIG, "model").equals("dev")) { qq = 3620756944L; password = "UAs6YBYMyxJU"; } @@ -47,7 +47,7 @@ public class QQBotManager { bot = BotFactoryJvm.newBot(qq, password, new BotConfiguration() { { fileBasedDeviceInfo("qq_bot_devices_info.json"); - if(ConfigTools.load(ConfigTools.CONFIG, "model").equals("nas")) { + if (ConfigTools.load(ConfigTools.CONFIG, "model").equals("nas")) { noBotLog(); noNetworkLog(); } @@ -70,16 +70,23 @@ public class QQBotManager { } return botManager; } - public boolean isLogin(){ + + public boolean isLogin() { return isLogin; } - private String getNotLoginQQ(){ + + private String getNotLoginQQ() { return "没有登录QQ"; } + public String sendMessage(String text) { if (bot != null) { - MessageReceipt receipt= bot.getGroup(qqGroup).sendMessage(text); - return receipt.toString(); + try { + MessageReceipt receipt = bot.getGroup(qqGroup).sendMessage(text); + return receipt.toString(); + } catch (Exception e) { + e.printStackTrace(); + } } return getNotLoginQQ(); } @@ -88,7 +95,7 @@ public class QQBotManager { if (bot != null) { Image image = bot.getGroup(qqGroup).uploadImage(imageFile); MessageChain chain = MessageUtils.newImage(image.getImageId()).plus(text); - MessageReceipt receipt=bot.getGroup(qqGroup).sendMessage(chain); + MessageReceipt receipt = bot.getGroup(qqGroup).sendMessage(chain); return receipt.toString(); } return getNotLoginQQ(); @@ -102,31 +109,38 @@ public class QQBotManager { @Override public void handleException(@NotNull CoroutineContext context, @NotNull Throwable exception) { super.handleException(context, exception); - System.out.println("error: "+exception.getLocalizedMessage()); + System.out.println("error: " + exception.getLocalizedMessage()); } @EventHandler public ListeningStatus onGroupMessage(GroupMessageEvent event) { - if(event.getGroup().getId()==qqGroup){ - String msg=event.getMessage().contentToString(); - msg=msg.replace("!","!"); - switch (msg){ + if (event.getGroup().getId() == qqGroup) { + String msg = event.getMessage().contentToString(); + msg = msg.replace("!", "!"); + switch (msg) { case "!开机": - RedisTools.Consumer.system("openPC",null); + RedisTools.Consumer.system("openPC", null); break; case "!更新IP": - RedisTools.Consumer.system("updateIP",null); + RedisTools.Consumer.system("updateIP", null); break; case "!ip": RedisTools.Consumer.bot("getip"); break; default: - if(msg.startsWith("!cmd")){ - RedisTools.Consumer.system("cmd",msg.replace("!cmd","")); + if (msg.startsWith("!cmd")) { + RedisTools.Consumer.system("cmd", msg.replace("!cmd", "")); } } - } + }/*else{ + sendMessage("群:"+event.getGroup().getId()+" 发来消息:\n"+event.getMessage().contentToString()); + }*/ return ListeningStatus.LISTENING; } + + @EventHandler + public void onMessage(@NotNull MessageEvent event) throws Exception { + // sendMessage("个人:"+event.getSender().getNick()+" 发来消息:"+event.getMessage().contentToString()); + } } } diff --git a/src/main/java/com/yutou/tools/utils/Tools.java b/src/main/java/com/yutou/tools/utils/Tools.java index b7c2fdb..88db304 100644 --- a/src/main/java/com/yutou/tools/utils/Tools.java +++ b/src/main/java/com/yutou/tools/utils/Tools.java @@ -376,4 +376,16 @@ public class Tools { base=base.replace(" ","+"); return new String(Base64.getDecoder().decode(base.replace("\r\n","").getBytes())); } + /** + * 异常输出 + * @param e 异常 + * @return + */ + public static String getExceptionString(Exception e) { + StringWriter writer=new StringWriter(); + PrintWriter printWriter=new PrintWriter(writer); + e.printStackTrace(printWriter); + printWriter.close(); + return writer.toString(); + } }