update RedisTools

update BTDownload
This commit is contained in:
Yutousama 2022-10-13 18:11:56 +08:00
parent c3ce37e1b4
commit 32b53a6a16
3 changed files with 94 additions and 2 deletions

View File

@ -3,9 +3,7 @@ package com.yutou.nas.utils;
import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONArray; import com.alibaba.fastjson2.JSONArray;
import com.alibaba.fastjson2.JSONObject; import com.alibaba.fastjson2.JSONObject;
import com.yutou.nas.interfaces.ObjectInterface;
import java.io.File;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
public class BTDownloadManager { public class BTDownloadManager {
@ -37,6 +35,7 @@ public class BTDownloadManager {
//添加到下载器 //添加到下载器
if (download(title, item.getJSONObject("enclosure").getString("link"))) { if (download(title, item.getJSONObject("enclosure").getString("link"))) {
//发通知到QQ //发通知到QQ
RedisTools.setHashMap("rss",PatternTools.getMagnetHash(item.getJSONObject("enclosure").getString("link")),item.toJSONString());
JSONArray array = getDownload(title); JSONArray array = getDownload(title);
array.add(item.getString("title")); array.add(item.getString("title"));
RedisTools.set(title, array.toJSONString()); RedisTools.set(title, array.toJSONString());
@ -108,6 +107,16 @@ public class BTDownloadManager {
public synchronized static void done(String path,String filename,String hash1,String hash2,String tid) { public synchronized static void done(String path,String filename,String hash1,String hash2,String tid) {
grep(path,filename); grep(path,filename);
String hash=StringUtils.isEmpty(hash1)?StringUtils.isEmpty(hash2)?null:hash2:hash1;
if(hash!=null){
String map = RedisTools.getHashMap("rss", hash);
JSONObject item=JSON.parseObject(map);
if (item.containsKey("thumbnail")) {
onSend(item.getString("thumbnail"), item,item.getJSONObject("enclosure").getString("link"));
} else {
onSend(null, item,item.getJSONObject("enclosure").getString("link"));
}
}
} }
private static void grep(String remoteLocation, String remoteName) { private static void grep(String remoteLocation, String remoteName) {

View File

@ -0,0 +1,19 @@
package com.yutou.nas.utils;
import java.util.Objects;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class PatternTools {
private static String exec(String regex,String input){
Pattern pattern=Pattern.compile(regex);
Matcher matcher = pattern.matcher(input);
if(matcher.find()){
return matcher.group();
}
return null;
}
public static String getMagnetHash(String magnetLink){
return Objects.requireNonNull(exec(".(?<=btih:).*(?=&dn)", magnetLink)).substring(1);
}
}

View File

@ -13,6 +13,8 @@ import java.io.BufferedReader;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
import java.io.InputStreamReader; import java.io.InputStreamReader;
import java.util.HashSet;
import java.util.Map;
import java.util.Properties; import java.util.Properties;
import java.util.Set; import java.util.Set;
@ -150,6 +152,68 @@ public class RedisTools {
} }
} }
public static long list_add(String listName, String... value) {
Jedis jedis = getRedis();
long index = jedis.sadd(listName, value);
jedis.close();
return index;
}
public static Set<String> list_get(String listName) {
Jedis jedis = getRedis();
Set<String> set = jedis.smembers(listName);
jedis.close();
if (set == null) {
set = new HashSet<>();
}
return set;
}
public static boolean list_remove(String listName, String... value) {
Jedis jedis = getRedis();
long index = jedis.srem(listName, value);
jedis.close();
return index != 0;
}
public static boolean list_isExist(String listName, String value) {
Jedis jedis = getRedis();
boolean flag = jedis.sismember(listName, value);
jedis.close();
return flag;
}
public static String getHashMap(String hashKey, String key) {
Jedis jedis = getRedis();
return jedis.hget(hashKey, key);
}
public static Map<String, String> getHashMap(String hashKey) {
return getRedis().hgetAll(hashKey);
}
public static boolean setHashMap(String hashKey, String key, String value) {
Jedis jedis = getRedis();
long l = jedis.hset(hashKey, key, value);
jedis.close();
return l == 0;
}
public static boolean removeHashMap(String hashKey, String key) {
Jedis jedis = getRedis();
long l = jedis.hdel(hashKey, key);
jedis.close();
return l > 0;
}
public static boolean removeHashMap(String hashKey) {
Jedis jedis = getRedis();
long del = jedis.del(hashKey);
return del > 0;
}
private static class PropertyUtil { private static class PropertyUtil {
// 加载property文件到io流里面 // 加载property文件到io流里面