修复ip查询地址的处理
This commit is contained in:
parent
c31b3ff5f0
commit
78747c60eb
@ -13,22 +13,22 @@ import java.util.Map;
|
|||||||
@Data
|
@Data
|
||||||
public class Gallery {
|
public class Gallery {
|
||||||
@JsonProperty("name")
|
@JsonProperty("name")
|
||||||
private String name; //本子名字
|
private String name; //图片名字
|
||||||
|
|
||||||
@JsonProperty("gid")
|
@JsonProperty("gid")
|
||||||
private int gid; //gid
|
private int gid; //gid
|
||||||
|
|
||||||
@JsonProperty("link")
|
@JsonProperty("link")
|
||||||
private String link; //本子链接
|
private String link; //图片链接
|
||||||
|
|
||||||
@JsonProperty("language")
|
@JsonProperty("language")
|
||||||
private String language; //本子语言
|
private String language; //图片语言
|
||||||
|
|
||||||
@JsonProperty("pages")
|
@JsonProperty("pages")
|
||||||
private int pages; //本子页数
|
private int pages; //图片页数
|
||||||
|
|
||||||
@JsonProperty("status")
|
@JsonProperty("status")
|
||||||
private String status; //本子当前状态
|
private String status; //图片当前状态
|
||||||
|
|
||||||
@JsonIgnore
|
@JsonIgnore
|
||||||
private long fileSize; //文件大小
|
private long fileSize; //文件大小
|
||||||
|
|||||||
@ -28,7 +28,7 @@ public class CollectService {
|
|||||||
public String disCollectGallery(int gid, int collector){
|
public String disCollectGallery(int gid, int collector){
|
||||||
Response response = Response.generateResponse();
|
Response response = Response.generateResponse();
|
||||||
if(collectMapper.isCollect(gid, collector) == 0) { //没有收藏
|
if(collectMapper.isCollect(gid, collector) == 0) { //没有收藏
|
||||||
response.failure("没有收藏该本子");
|
response.failure("没有收藏该图片");
|
||||||
}else{
|
}else{
|
||||||
collectMapper.disCollect(gid, collector);
|
collectMapper.disCollect(gid, collector);
|
||||||
response.success("取消收藏成功");
|
response.success("取消收藏成功");
|
||||||
|
|||||||
@ -92,7 +92,7 @@ public class GalleryManageService {
|
|||||||
return response.toJSONString();
|
return response.toJSONString();
|
||||||
}
|
}
|
||||||
|
|
||||||
//尝试下载本子,返回结果
|
//尝试下载图片,返回结果
|
||||||
try {
|
try {
|
||||||
gallery = GalleryUtil.parse(link, true, targetResolution);
|
gallery = GalleryUtil.parse(link, true, targetResolution);
|
||||||
if (gallery == null || !gallery.getStatus().equals("已提交")) {
|
if (gallery == null || !gallery.getStatus().equals("已提交")) {
|
||||||
@ -140,7 +140,7 @@ public class GalleryManageService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 根据链接查询本子
|
* 根据链接查询图片
|
||||||
* @param link 链接
|
* @param link 链接
|
||||||
* @return 查询结果
|
* @return 查询结果
|
||||||
*/
|
*/
|
||||||
@ -176,7 +176,7 @@ public class GalleryManageService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 通过gid查询本子
|
* 通过gid查询图片
|
||||||
*
|
*
|
||||||
* @param gid gid
|
* @param gid gid
|
||||||
* @return 查询结果
|
* @return 查询结果
|
||||||
@ -186,7 +186,7 @@ public class GalleryManageService {
|
|||||||
Gallery gallery = galleryMapper.selectGalleryByGid(gid);
|
Gallery gallery = galleryMapper.selectGalleryByGid(gid);
|
||||||
|
|
||||||
if (gallery == null)
|
if (gallery == null)
|
||||||
response.failure("未找到该本子,请使用链接");
|
response.failure("未找到该图片,请使用链接");
|
||||||
|
|
||||||
else
|
else
|
||||||
response.success(gallery.toString());
|
response.success(gallery.toString());
|
||||||
@ -195,7 +195,7 @@ public class GalleryManageService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询所有本子
|
* 查询所有图片
|
||||||
*
|
*
|
||||||
* @return 查询结果
|
* @return 查询结果
|
||||||
*/
|
*/
|
||||||
@ -204,19 +204,19 @@ public class GalleryManageService {
|
|||||||
Gallery[] galleries = galleryMapper.selectAllGallery();
|
Gallery[] galleries = galleryMapper.selectAllGallery();
|
||||||
|
|
||||||
if (galleries == null) {
|
if (galleries == null) {
|
||||||
response.failure("没有找到本子");
|
response.failure("没有找到图片");
|
||||||
return response.toJSONString();
|
return response.toJSONString();
|
||||||
}
|
}
|
||||||
|
|
||||||
ArrayList<Integer> galleryIds = collectMapper.selectGidByCollector(userId);
|
ArrayList<Integer> galleryIds = collectMapper.selectGidByCollector(userId);
|
||||||
Iterator<Integer> idIterator;
|
Iterator<Integer> idIterator;
|
||||||
|
|
||||||
if (!galleryIds.isEmpty()) //如果该用户收藏了本子
|
if (!galleryIds.isEmpty()) //如果该用户收藏了图片
|
||||||
galleryLoop:for (Gallery gallery : galleries) { //遍历本子
|
galleryLoop:for (Gallery gallery : galleries) { //遍历图片
|
||||||
idIterator = galleryIds.iterator();
|
idIterator = galleryIds.iterator();
|
||||||
while (idIterator.hasNext()) { //遍历收藏的gid
|
while (idIterator.hasNext()) { //遍历收藏的gid
|
||||||
Integer id = idIterator.next();
|
Integer id = idIterator.next();
|
||||||
if (id.equals(gallery.getGid())) { //如果找到对应的gid,修改对应本子的属性,删除当前gid,判断是否需要跳出或者结束循环
|
if (id.equals(gallery.getGid())) { //如果找到对应的gid,修改对应图片的属性,删除当前gid,判断是否需要跳出或者结束循环
|
||||||
gallery.setCollect(true);
|
gallery.setCollect(true);
|
||||||
idIterator.remove();
|
idIterator.remove();
|
||||||
|
|
||||||
@ -233,7 +233,7 @@ public class GalleryManageService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 通过本子名查询本子
|
* 通过图片名查询图片
|
||||||
*
|
*
|
||||||
* @param name 名字
|
* @param name 名字
|
||||||
* @return 查询结果
|
* @return 查询结果
|
||||||
@ -245,13 +245,13 @@ public class GalleryManageService {
|
|||||||
if (gallery != null)
|
if (gallery != null)
|
||||||
response.success(new ObjectMapper().valueToTree(gallery).toString());
|
response.success(new ObjectMapper().valueToTree(gallery).toString());
|
||||||
else
|
else
|
||||||
response.failure("没有找到该名字的本子");
|
response.failure("没有找到该名字的图片");
|
||||||
|
|
||||||
return response.toJSONString();
|
return response.toJSONString();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询用户下载的本子
|
* 查询用户下载的图片
|
||||||
*
|
*
|
||||||
* @param AuthCode 授权码(用于查询用户名)
|
* @param AuthCode 授权码(用于查询用户名)
|
||||||
* @return 查询结果
|
* @return 查询结果
|
||||||
@ -263,13 +263,13 @@ public class GalleryManageService {
|
|||||||
if (galleries.length > 0)
|
if (galleries.length > 0)
|
||||||
response.success(new ObjectMapper().valueToTree(galleries).toString());
|
response.success(new ObjectMapper().valueToTree(galleries).toString());
|
||||||
else
|
else
|
||||||
response.failure("您未下载本子");
|
response.failure("您未下载图片");
|
||||||
|
|
||||||
return response.toJSONString();
|
return response.toJSONString();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 删除本子以及对应的文件(如果存在的话)
|
* 删除图片以及对应的文件(如果存在的话)
|
||||||
*
|
*
|
||||||
* @param gid gid
|
* @param gid gid
|
||||||
* @return 删除结果
|
* @return 删除结果
|
||||||
@ -279,21 +279,21 @@ public class GalleryManageService {
|
|||||||
Gallery gallery = galleryMapper.selectGalleryByGid(gid);
|
Gallery gallery = galleryMapper.selectGalleryByGid(gid);
|
||||||
User user = userMapper.selectUserByAuthCode(AuthCode);
|
User user = userMapper.selectUserByAuthCode(AuthCode);
|
||||||
if (gallery == null) {
|
if (gallery == null) {
|
||||||
response.failure("删除失败,该本子不存在");
|
response.failure("删除失败,该图片不存在");
|
||||||
return response.toJSONString();
|
return response.toJSONString();
|
||||||
}
|
}
|
||||||
|
|
||||||
ArrayList<Integer> collector = collectMapper.selectCollectorByGid(gallery.getGid());
|
ArrayList<Integer> collector = collectMapper.selectCollectorByGid(gallery.getGid());
|
||||||
if (!(collector.isEmpty() || collector.size() == 1 && collector.getFirst().equals(user.getId()) //判断收藏
|
if (!(collector.isEmpty() || collector.size() == 1 && collector.getFirst().equals(user.getId()) //判断收藏
|
||||||
&& gallery.getDownloader() == user.getId())) //判断下载
|
&& gallery.getDownloader() == user.getId())) //判断下载
|
||||||
response.failure("删除失败,该本子已被别人收藏或你不是下载人");
|
response.failure("删除失败,该图片已被别人收藏或你不是下载人");
|
||||||
else {
|
else {
|
||||||
log.info("删除本子{}", gallery.getName());
|
log.info("删除图片{}", gallery.getName());
|
||||||
galleryMapper.deleteGalleryByGid(gallery.getGid()); //删除本子记录
|
galleryMapper.deleteGalleryByGid(gallery.getGid()); //删除图片记录
|
||||||
}
|
}
|
||||||
switch (remoteService.deleteGallery(gallery)) {
|
switch (remoteService.deleteGallery(gallery)) {
|
||||||
case ErrorCode.IO_ERROR -> response.failure("本子:" + gallery.getName() + "删除失败,IO错误");
|
case ErrorCode.IO_ERROR -> response.failure("图片:" + gallery.getName() + "删除失败,IO错误");
|
||||||
case ErrorCode.FILE_NOT_FOUND -> response.failure("本子:" + gallery.getName() + "删除失败,文件不存在");
|
case ErrorCode.FILE_NOT_FOUND -> response.failure("图片:" + gallery.getName() + "删除失败,文件不存在");
|
||||||
case 0 -> response.success();
|
case 0 -> response.success();
|
||||||
}
|
}
|
||||||
if (response.get("result").equals("failure"))
|
if (response.get("result").equals("failure"))
|
||||||
@ -333,7 +333,7 @@ public class GalleryManageService {
|
|||||||
gidToKey.setKey(url.split("/")[5].strip());
|
gidToKey.setKey(url.split("/")[5].strip());
|
||||||
ArrayList<ImageKeyCache> imageKeyCaches = GalleryUtil.parseImageKeys(url);
|
ArrayList<ImageKeyCache> imageKeyCaches = GalleryUtil.parseImageKeys(url);
|
||||||
if(imageKeyCaches == null)
|
if(imageKeyCaches == null)
|
||||||
return response.failure("该本子已下架或已被删除").toJSONString();
|
return response.failure("该图片已下架或已被删除").toJSONString();
|
||||||
gidToKey.setPages(imageKeyCaches.size());
|
gidToKey.setPages(imageKeyCaches.size());
|
||||||
imageCacheMapper.insertGidToKey(gidToKey);
|
imageCacheMapper.insertGidToKey(gidToKey);
|
||||||
for (ImageKeyCache imageKeyCache : imageKeyCaches)
|
for (ImageKeyCache imageKeyCache : imageKeyCaches)
|
||||||
@ -361,7 +361,7 @@ public class GalleryManageService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//检查该本子缓存是否存在
|
//检查该图片缓存是否存在
|
||||||
GidToKey gidToKey = imageCacheMapper.selectKeyByGid(gid);
|
GidToKey gidToKey = imageCacheMapper.selectKeyByGid(gid);
|
||||||
if(gidToKey == null)
|
if(gidToKey == null)
|
||||||
try {
|
try {
|
||||||
@ -428,12 +428,12 @@ public class GalleryManageService {
|
|||||||
|
|
||||||
Gallery[] galleries = galleryMapper.selectUnDoneGalleries();
|
Gallery[] galleries = galleryMapper.selectUnDoneGalleries();
|
||||||
if(galleries != null && galleries.length != 0) {
|
if(galleries != null && galleries.length != 0) {
|
||||||
log.info("发送未下载完成本子至节点,{}本", galleries.length);
|
log.info("发送未下载完成图片至节点,{}本", galleries.length);
|
||||||
for (Gallery gallery : galleries)
|
for (Gallery gallery : galleries)
|
||||||
remoteService.addGalleryToQueue(gallery);
|
remoteService.addGalleryToQueue(gallery);
|
||||||
response.success(String.format("发送未下载完成本子至节点,%s本", galleries.length));
|
response.success(String.format("发送未下载完成图片至节点,%s本", galleries.length));
|
||||||
}else{
|
}else{
|
||||||
response.failure("当前没有未下载完成的本子");
|
response.failure("当前没有未下载完成的图片");
|
||||||
}
|
}
|
||||||
|
|
||||||
return response.toJSONString();
|
return response.toJSONString();
|
||||||
|
|||||||
@ -93,7 +93,10 @@ public class SubService {
|
|||||||
try {
|
try {
|
||||||
String page = GalleryUtil.requests("https://www.ip138.com/iplookup.php?ip=" + ip, "get", null, null);
|
String page = GalleryUtil.requests("https://www.ip138.com/iplookup.php?ip=" + ip, "get", null, null);
|
||||||
Elements tds = Jsoup.parse(page).select("body > div > div.container > div.content > div > div:nth-child(2) > div.group-left > div > div.bd > div.table-outer > div.table-box > table > tbody > tr > td");
|
Elements tds = Jsoup.parse(page).select("body > div > div.container > div.content > div > div:nth-child(2) > div.group-left > div > div.bd > div.table-outer > div.table-box > table > tbody > tr > td");
|
||||||
location = tds.get(1).text().replace("中国", "") + " " + tds.get(3).text().trim();
|
if(tds.size() > 3)
|
||||||
|
location = tds.get(1).text().replace("中国", "") + " " + tds.get(3).text().trim();
|
||||||
|
else
|
||||||
|
location = tds.get(1).text();
|
||||||
}catch (IOException e){
|
}catch (IOException e){
|
||||||
log.error("获取ip地址信息失败: {}", e.getMessage());
|
log.error("获取ip地址信息失败: {}", e.getMessage());
|
||||||
location = "unknown";
|
location = "unknown";
|
||||||
|
|||||||
@ -43,11 +43,11 @@ public class GalleryUtil {
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 解析/下载本子
|
* 解析/下载图片
|
||||||
* @param url 本子链接
|
* @param url 图片链接
|
||||||
* @param isDownload 是否下载 否则仅解析
|
* @param isDownload 是否下载 否则仅解析
|
||||||
* @param targetResolution 目标下载分辨率 不下载时改值为空
|
* @param targetResolution 目标下载分辨率 不下载时改值为空
|
||||||
* @return 解析/下载的本子对象
|
* @return 解析/下载的图片对象
|
||||||
* @throws IOException io问题
|
* @throws IOException io问题
|
||||||
* @throws ResolutionNotMatchException 没有目标分辨率
|
* @throws ResolutionNotMatchException 没有目标分辨率
|
||||||
*/
|
*/
|
||||||
@ -58,18 +58,18 @@ public class GalleryUtil {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
//初始化本子
|
//初始化图片
|
||||||
Gallery gallery = new Gallery();
|
Gallery gallery = new Gallery();
|
||||||
gallery.setLink(url);
|
gallery.setLink(url);
|
||||||
gallery.setCreateTime(System.currentTimeMillis()/1000);
|
gallery.setCreateTime(System.currentTimeMillis()/1000);
|
||||||
gallery.setGid(Integer.parseInt(url.split("/")[4]));
|
gallery.setGid(Integer.parseInt(url.split("/")[4]));
|
||||||
gallery.setProceeding(0);
|
gallery.setProceeding(0);
|
||||||
|
|
||||||
//访问本子页面
|
//访问图片页面
|
||||||
String galleryPage = requests(url, GET, null, null);
|
String galleryPage = requests(url, GET, null, null);
|
||||||
Document galleryDoc = Jsoup.parse(galleryPage);
|
Document galleryDoc = Jsoup.parse(galleryPage);
|
||||||
|
|
||||||
//收集本子基本信息
|
//收集图片基本信息
|
||||||
gallery.setName(galleryDoc.select("#gn").text() + " [" + gallery.getGid() + ']');
|
gallery.setName(galleryDoc.select("#gn").text() + " [" + gallery.getGid() + ']');
|
||||||
gallery.setLanguage(galleryDoc.select("#gdd > table > tbody > tr:nth-child(4) > td.gdt2").text().replace("%nbps", ""));
|
gallery.setLanguage(galleryDoc.select("#gdd > table > tbody > tr:nth-child(4) > td.gdt2").text().replace("%nbps", ""));
|
||||||
gallery.setPages(Integer.parseInt(galleryDoc.select("#gdd > table > tbody > tr:nth-child(6) > td.gdt2").text().split(" ")[0]));
|
gallery.setPages(Integer.parseInt(galleryDoc.select("#gdd > table > tbody > tr:nth-child(6) > td.gdt2").text().split(" ")[0]));
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user