增加解析方法;

This commit is contained in:
LamGC 2020-03-27 09:16:07 +08:00
parent 8f09dc47b4
commit 078ab1caf0
2 changed files with 46 additions and 6 deletions

View File

@ -247,6 +247,43 @@ public class PixivDownload {
});
}
/**
* 从JsonArray获取数据
* @param rankingArray JsonArray对象
* @param rankStart 开始索引, 从0开始
* @param range 范围
* @return 返回List对象
*/
public static List<JsonObject> getRanking(JsonArray rankingArray, int rankStart, int range) {
//需要添加一个总量, 否则会完整跑完一次.
//检查是否为最后一次请求和剩余量有多少
log.info("正在读取JsonArray...(rankStart: {}, range: {})", rankStart, range);
ArrayList<JsonObject> results = new ArrayList<>(rankingArray.size());
for (int rankIndex = rankStart; rankIndex < rankingArray.size() && rankIndex < range; rankIndex++) {
JsonElement jsonElement = rankingArray.get(rankIndex);
JsonObject rankInfo = jsonElement.getAsJsonObject();
int rank = rankInfo.get("rank").getAsInt();
int illustId = rankInfo.get("illust_id").getAsInt();
int authorId = rankInfo.get("user_id").getAsInt();
String authorName = rankInfo.get("user_name").getAsString();
String title = rankInfo.get("title").getAsString();
log.info("当前到第 {}/{} 名(总共 {} 名), IllustID: {}, Author: ({}) {}, Title: {}", rank, rankStart + range - 1, range, illustId, authorId, authorName, title);
results.add(rankInfo);
}
log.info("JsonArray读取完成.");
return results;
}
/**
* 获取排行榜
* @param contentType 排行榜类型
* @param mode 排行榜模式
* @param time 查询时间
* @param rankStart 开始排名, 从1开始
* @param range 取范围
* @return 成功返回有值List, 失败且无异常返回空
* @throws IOException 获取异常时抛出
*/
public List<JsonObject> getRanking(PixivURL.RankingContentType contentType, PixivURL.RankingMode mode,
Date time, int rankStart, int range) throws IOException {
if(rankStart <= 0) {

View File

@ -106,7 +106,7 @@ public class PixivDownloadTest {
GregorianCalendar gregorianCalendar = new GregorianCalendar();
gregorianCalendar.setTime(new Date());
gregorianCalendar.add(Calendar.DATE, -1);
gregorianCalendar.add(Calendar.DATE, -2);
Date queryDate = gregorianCalendar.getTime();
String date = new SimpleDateFormat("yyyyMMdd").format(queryDate);
log.info("查询时间: {}", date);
@ -126,7 +126,7 @@ public class PixivDownloadTest {
zos.setLevel(9);
log.info("正在调用方法...");
try {
pixivDownload.getRankingAsInputStream(null, PixivURL.RankingMode.MODE_DAILY_R18, queryDate, 15, PixivDownload.PageQuality.ORIGINAL, (rank, link, rankInfo, inputStream) -> {
pixivDownload.getRankingAsInputStream(null, PixivURL.RankingMode.MODE_DAILY_R18, queryDate, 500, PixivDownload.PageQuality.ORIGINAL, (rank, link, rankInfo, inputStream) -> {
try {
ZipEntry entry = new ZipEntry("Rank" + rank + "-" + link.substring(link.lastIndexOf("/") + 1));
entry.setComment(rankInfo.toString());
@ -153,7 +153,7 @@ public class PixivDownloadTest {
GregorianCalendar gregorianCalendar = new GregorianCalendar();
gregorianCalendar.setTime(new Date());
gregorianCalendar.add(Calendar.DATE, -1);
gregorianCalendar.add(Calendar.DATE, -2);
Date queryDate = gregorianCalendar.getTime();
String date = new SimpleDateFormat("yyyyMMdd").format(queryDate);
log.info("查询时间: {}", date);
@ -173,8 +173,9 @@ public class PixivDownloadTest {
log.info("正在调用方法...");
try {
pixivDownload.getRankingAsInputStream(null, null, queryDate, 65, 55, PixivDownload.PageQuality.ORIGINAL, (rank, link, rankInfo, inputStream) -> {
try {
pixivDownload.getRankingAsInputStream(null, null, queryDate, 5, 50, PixivDownload.PageQuality.ORIGINAL, (rank, link, rankInfo, inputStream) -> {
/*try {
ZipEntry entry = new ZipEntry("Rank" + rank + "-" + link.substring(link.lastIndexOf("/") + 1));
entry.setComment(rankInfo.toString());
log.info("正在写入: " + entry.getName());
@ -182,9 +183,11 @@ public class PixivDownloadTest {
IOUtils.copy(inputStream, zos);
zos.flush();
log.info("已成功写入 {}", entry.getName());
inputStream.close();
} catch (IOException e) {
log.error("写入文件项时发生异常", e);
}
}*/
log.info("空操作");
});
} finally {
zos.finish();