package net.lamgc.cgj.pixiv; import java.text.SimpleDateFormat; import java.util.Arrays; import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar; /** * 目前已整理的一些Pixiv接口列表 */ @SuppressWarnings("unused") public class PixivURL { public static final String PIXIV_INDEX_URL = "https://www.pixiv.net"; /** * P站预登陆url */ public static final String PIXIV_LOGIN_PAGE_URL = "https://accounts.pixiv.net/login?lang=zh&source=pc&view_type=page&ref=wwwtop_accounts_index"; /** * P站登录请求url */ public static final String PIXIV_LOGIN_URL = "https://accounts.pixiv.net/api/login?lang=zh"; /** * P站搜索请求url */ private static final String PIXIV_SEARCH_URL = "https://www.pixiv.net/search.php"; /** * P站搜索用户url * 需要替换的参数: * {nick} - 用户昵称、部分名称 */ public static final String PIXIV_SEARCH_USER_URL = PIXIV_SEARCH_URL + "?s_mode=s_usr&nick={nick}"; /** * P站搜索插画url * 需要替换的参数: * {word} - 插画相关文本 */ public static final String PIXIV_SEARCH_TAG_URL = PIXIV_SEARCH_URL + "?s_mode=s_tag&word={word}"; /** * P站插图下载链接获取url * 需要替换的文本: * {illustId} - 插画ID */ public static final String PIXIV_ILLUST_API_URL = "https://www.pixiv.net/ajax/illust/{illustId}/pages"; /** * P站用户插图列表获取API *
所需数据在 body属性内的 illusts(属性名,属性值不重要), manga(多图) pickup(精选)
* 需要替换的文本: * {userId} - 用户ID */ //{"error":false,"message":"","body":{"illusts":{"74369837":null,"70990542":null,"70608653":null,"69755191":null,"69729450":null,"69729416":null,"69503608":null,"69288766":null,"69083882":null,"69051458":null,"68484200":null,"68216927":null,"68216866":null,"68192333":null,"67915106":null,"67914932":null,"67854803":null,"67854745":null,"67854670":null,"67787211":null,"67772199":null,"67770637":null,"67754861":null,"67754804":null,"67754726":null,"67740486":null,"67740480":null,"67740450":null,"67740434":null,"67726337":null,"67499196":null,"67499163":null,"67499145":null,"67499111":null,"67499085":null,"67499038":null,"67498987":null,"67473178":null,"66271465":null,"63682753":null,"63682697":null,"59385148":null,"59383265":null,"59383240":null,"59383227":null,"59383173":null},"manga":[],"novels":[],"mangaSeries":[],"novelSeries":[],"pickup":[],"bookmarkCount":{"public":{"illust":1,"novel":0},"private":{"illust":0,"novel":0}}}} public static final String PIXIV_USER_ILLUST_LIST_URL = "https://www.pixiv.net/ajax/user/{userId}/profile/all"; /** * 能够同时获取插图信息的用户插图列表获取API * 需要替换的文本: * {userId} - 用户ID */ public static final String PIXIV_USER_TOP_ILLUST_LIST_URL = "https://www.pixiv.net/ajax/user/{userId}/profile/top"; /** * P站单图详情页url * 需要替换的文本: * {illustId} - 插画ID */ public static final String PIXIV_ILLUST_MEDIUM_URL = "https://www.pixiv.net/member_illust.php?mode=medium&illust_id={illustId}"; /** * P站多图详情页url * 需要替换的文本: * {illustId} - 插画ID */ public static final String PIXIV_ILLUST_MANGA_URL = "https://www.pixiv.net/member_illust.php?mode=manga&illust_id={illustId}"; /** * P站用户页面url * 需要替换的文本: * {userId} - 用户ID */ public static final String PIXIV_USER_URL = "https://www.pixiv.net/member.php?id={userId}"; /** * P站插图信息获取API * 这个API能获取插图基本信息,但不能获取大小 * 请使用{@link #getPixivIllustInfoAPI(int[])}获取URL */ private static final String PIXIV_GET_ILLUST_INFO_URL = "https://www.pixiv.net/ajax/illust/recommend/illusts?"; /** * P站获取用户所有插图ID的Api * 这个API只能获取该用户的插图ID,不能获取图片信息(图片信息要另外获取) * 需要替换的文本: * {userId} - 用户ID */ public static final String PIXIV_GET_USER_ALL_ILLUST_ID_URL = "https://www.pixiv.net/ajax/user/{userId}/profile/all"; /** * P站标签搜索URL * 可以将Tag的大概内容搜索成P站精确的Tag,以搜索其他接口返回的Tags数组; * 需要替换的文本: * {content} - 大致tag内容 */ public static final String PIXIV_TAG_SEARCH_URL = "https://www.pixiv.net/ajax/search/tags/{content}"; /** * 获取动图下载链接和拼接数据. * 该接口无需登录. * 需要替换的问题: * {illustId} - 作品Id */ public final static String PIXIV_GET_UGOIRA_META_URL = "https://www.pixiv.net/ajax/illust/{illustId}/ugoira_meta"; /** * 请求时带上需要退出的Cookies * 无论成功与否都会返回302重定向到{@linkplain #PIXIV_LOGIN_PAGE_URL 登录页面} */ public static final String PIXIV_LOGOUT_URL = "https://www.pixiv.net/logout.php"; /** * 构造P站获取插图信息的Api Url * @param illustIds 要查询的插图ID数组 * @return 对应查询的API Url */ public static String getPixivIllustInfoAPI(int... illustIds){ StringBuilder strBuilder = new StringBuilder().append(PIXIV_GET_ILLUST_INFO_URL); for(int illustId : illustIds){ strBuilder.append("illust_ids[]=").append(illustId).append("&"); } return strBuilder.toString(); } /** * 获取用于下载图片时防盗链所需Referer的链接 * @param illustId 欲下载图片所属illustId * @return 返回Referer链接, 也可以作为作品链接使用 */ public static String getPixivRefererLink(int illustId){ return "https://www.pixiv.net/artworks/" + illustId; } /** * 获取用于下载图片时防盗链所需Referer的链接 * @param illustId 欲下载图片所属illustId * @return 返回Referer链接, 也可以作为作品链接使用 */ public static String getPixivRefererLink(String illustId){ return "https://www.pixiv.net/artworks/" + illustId; } /** * 排行榜接口, 需加入"&format=json" */ private final static String PIXIV_RANKING_LINK = "https://www.pixiv.net/ranking.php?"; /** * 查询用户收藏.