qq daily
This commit is contained in:
parent
ab33bbfc74
commit
ae21cc7133
18
pom.xml
18
pom.xml
@ -31,6 +31,18 @@
|
|||||||
<artifactId>spring-boot-starter-web</artifactId>
|
<artifactId>spring-boot-starter-web</artifactId>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.alibaba.cloud</groupId>
|
||||||
|
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
|
||||||
|
<version>2.2.6.RELEASE</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.alibaba.cloud</groupId>
|
||||||
|
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
|
||||||
|
<version>2.2.6.RELEASE</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>mysql</groupId>
|
<groupId>mysql</groupId>
|
||||||
<artifactId>mysql-connector-java</artifactId>
|
<artifactId>mysql-connector-java</artifactId>
|
||||||
@ -95,12 +107,6 @@
|
|||||||
<artifactId>httpclient</artifactId>
|
<artifactId>httpclient</artifactId>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>com.xuxueli</groupId>
|
|
||||||
<artifactId>xxl-job-core</artifactId>
|
|
||||||
<version>2.4.1</version>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.springframework.boot</groupId>
|
<groupId>org.springframework.boot</groupId>
|
||||||
<artifactId>spring-boot-starter-test</artifactId>
|
<artifactId>spring-boot-starter-test</artifactId>
|
||||||
|
|||||||
@ -1,42 +1,42 @@
|
|||||||
package top.baogutang.music.config;
|
//package top.baogutang.music.config;
|
||||||
|
//
|
||||||
import com.xxl.job.core.executor.impl.XxlJobSpringExecutor;
|
//import com.xxl.job.core.executor.impl.XxlJobSpringExecutor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
//import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.beans.factory.annotation.Value;
|
//import org.springframework.beans.factory.annotation.Value;
|
||||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
//import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
||||||
import org.springframework.context.annotation.Bean;
|
//import org.springframework.context.annotation.Bean;
|
||||||
import org.springframework.context.annotation.Configuration;
|
//import org.springframework.context.annotation.Configuration;
|
||||||
|
//
|
||||||
/**
|
///**
|
||||||
* @description:
|
// * @description:
|
||||||
* @author: nikooh
|
// * @author: nikooh
|
||||||
* @date: 2024/06/14 : 15:29
|
// * @date: 2024/06/14 : 15:29
|
||||||
*/
|
// */
|
||||||
@Slf4j
|
//@Slf4j
|
||||||
@Configuration
|
//@Configuration
|
||||||
//@ConditionalOnProperty(value = "spring.profiles.active", havingValue = "prod")
|
////@ConditionalOnProperty(value = "spring.profiles.active", havingValue = "prod")
|
||||||
public class XxlJobConfig {
|
//public class XxlJobConfig {
|
||||||
|
//
|
||||||
@Value("${xxl.job.admin.addresses}")
|
// @Value("${xxl.job.admin.addresses}")
|
||||||
private String adminAddresses;
|
// private String adminAddresses;
|
||||||
|
//
|
||||||
@Value("${xxl.job.executor.appName}")
|
// @Value("${xxl.job.executor.appName}")
|
||||||
private String appName;
|
// private String appName;
|
||||||
|
//
|
||||||
@Value("${xxl.job.executor.accessKey}")
|
// @Value("${xxl.job.executor.accessKey}")
|
||||||
private String accessKey;
|
// private String accessKey;
|
||||||
|
//
|
||||||
|
//
|
||||||
@Bean
|
// @Bean
|
||||||
public XxlJobSpringExecutor xxlJobExecutor() {
|
// public XxlJobSpringExecutor xxlJobExecutor() {
|
||||||
log.info(">>>>>>>>>>> xxl-job config init start <<<<<<<<<<");
|
// log.info(">>>>>>>>>>> xxl-job config init start <<<<<<<<<<");
|
||||||
XxlJobSpringExecutor xxlJobSpringExecutor = new XxlJobSpringExecutor();
|
// XxlJobSpringExecutor xxlJobSpringExecutor = new XxlJobSpringExecutor();
|
||||||
xxlJobSpringExecutor.setAdminAddresses(adminAddresses);
|
// xxlJobSpringExecutor.setAdminAddresses(adminAddresses);
|
||||||
xxlJobSpringExecutor.setAppname(appName);
|
// xxlJobSpringExecutor.setAppname(appName);
|
||||||
xxlJobSpringExecutor.setAccessToken(accessKey);
|
// xxlJobSpringExecutor.setAccessToken(accessKey);
|
||||||
log.info(">>>>>>>>>>> xxl-job config init success <<<<<<<<<<");
|
// log.info(">>>>>>>>>>> xxl-job config init success <<<<<<<<<<");
|
||||||
return xxlJobSpringExecutor;
|
// return xxlJobSpringExecutor;
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
|
//
|
||||||
}
|
//}
|
||||||
|
|||||||
@ -0,0 +1,32 @@
|
|||||||
|
package top.baogutang.music.controller;
|
||||||
|
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
import top.baogutang.music.domain.Results;
|
||||||
|
import top.baogutang.music.schedule.QQDailyMusicHandler;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @description:
|
||||||
|
*
|
||||||
|
* @author: N1KO
|
||||||
|
* @date: 2024/12/23 : 15:26
|
||||||
|
*/
|
||||||
|
@Slf4j
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/api/v1/music/trigger")
|
||||||
|
public class MusicTriggerController {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private QQDailyMusicHandler qqDailyMusicHandler;
|
||||||
|
|
||||||
|
@GetMapping("/daily")
|
||||||
|
public Results<Void> triggerDaily() {
|
||||||
|
qqDailyMusicHandler.fetchDailyAndSave();
|
||||||
|
return Results.ok();
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -2,6 +2,7 @@ package top.baogutang.music.properties;
|
|||||||
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import org.springframework.boot.context.properties.ConfigurationProperties;
|
import org.springframework.boot.context.properties.ConfigurationProperties;
|
||||||
|
import org.springframework.cloud.context.config.annotation.RefreshScope;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -14,6 +15,7 @@ import org.springframework.stereotype.Component;
|
|||||||
@Data
|
@Data
|
||||||
@Component
|
@Component
|
||||||
@ConfigurationProperties(prefix = "baogutang.qq-music")
|
@ConfigurationProperties(prefix = "baogutang.qq-music")
|
||||||
|
@RefreshScope
|
||||||
public class QQMusicProperties {
|
public class QQMusicProperties {
|
||||||
|
|
||||||
private String queryBaseUrl;
|
private String queryBaseUrl;
|
||||||
|
|||||||
@ -7,6 +7,7 @@ import org.apache.commons.lang3.StringUtils;
|
|||||||
import org.jsoup.Jsoup;
|
import org.jsoup.Jsoup;
|
||||||
import org.jsoup.nodes.Document;
|
import org.jsoup.nodes.Document;
|
||||||
import org.jsoup.nodes.Element;
|
import org.jsoup.nodes.Element;
|
||||||
|
import org.springframework.cloud.context.config.annotation.RefreshScope;
|
||||||
import org.springframework.http.HttpHeaders;
|
import org.springframework.http.HttpHeaders;
|
||||||
import org.springframework.http.MediaType;
|
import org.springframework.http.MediaType;
|
||||||
import org.springframework.http.ResponseEntity;
|
import org.springframework.http.ResponseEntity;
|
||||||
@ -40,6 +41,7 @@ import java.util.zip.InflaterInputStream;
|
|||||||
*/
|
*/
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@Component
|
@Component
|
||||||
|
@RefreshScope
|
||||||
public class QQDailyMusicHandler extends DailyMusicHandler {
|
public class QQDailyMusicHandler extends DailyMusicHandler {
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
|
|||||||
@ -1,85 +0,0 @@
|
|||||||
|
|
||||||
server:
|
|
||||||
port: 8105
|
|
||||||
|
|
||||||
spring:
|
|
||||||
profiles:
|
|
||||||
active: ${SPRING_ACTIVE_PROFILE:local}
|
|
||||||
application:
|
|
||||||
name: baogutang-music
|
|
||||||
datasource:
|
|
||||||
driverClassName: com.mysql.cj.jdbc.Driver
|
|
||||||
url: jdbc:mysql://117.72.78.133:3306/baogutang-music?characterEncoding=UTF-8
|
|
||||||
username: baogutang-music
|
|
||||||
password: xCcFfY3zXh8sC28e
|
|
||||||
hikari:
|
|
||||||
max-lifetime: 60000
|
|
||||||
redis:
|
|
||||||
host: 117.72.78.133
|
|
||||||
port: 6379
|
|
||||||
password: admin@pwdpwd
|
|
||||||
servlet:
|
|
||||||
multipart:
|
|
||||||
max-file-size: 2048MB
|
|
||||||
max-request-size: 32MB
|
|
||||||
resources:
|
|
||||||
static-locations: classpath:/templates/
|
|
||||||
|
|
||||||
thread:
|
|
||||||
pool:
|
|
||||||
core: 10
|
|
||||||
max: 10
|
|
||||||
alive: 10
|
|
||||||
capacity: 200
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
knife4j:
|
|
||||||
enable: true
|
|
||||||
|
|
||||||
|
|
||||||
baogutang:
|
|
||||||
music:
|
|
||||||
zip:
|
|
||||||
# base-path: /downloads/music/zips
|
|
||||||
base-path: /Users/nikooh/Desktop/downloads/music/zips
|
|
||||||
net-ease-music:
|
|
||||||
query-base-url: http://117.72.78.133:5173/search?keywords=%s&limit=%d&offset=%d&type=%d
|
|
||||||
playlist-base-url: http://117.72.78.133:5173/playlist/track/all?id=%d
|
|
||||||
album-base-url: http://117.72.78.133:5173/album?id=%d
|
|
||||||
artist-base-url: http://117.72.78.133:5173/artists?id=%d
|
|
||||||
download-base-url: https://api.sooooooooooooooooootheby.top/Netease_url/Song_V1?level=jymaster&type=json&ids=%d
|
|
||||||
download-path: /downloads/music
|
|
||||||
# download-path: /Users/nikooh/Desktop/downloads/music
|
|
||||||
qq-music:
|
|
||||||
query-base-url: http://117.72.78.133:5175/search?key=%s&pageNo=%d&pageSize=%d&t=%d
|
|
||||||
playlist-base-url: http://117.72.78.133:5175/songlist?id=%s
|
|
||||||
album-base-url: http://117.72.78.133:5175/album/songs?albummid=%s
|
|
||||||
download-base-url1: http://117.72.78.133:5176/song?url=https://y.qq.com/n/ryqq/songDetail/%s
|
|
||||||
download-base-url2: http://117.72.78.133:5176/song?url=https://u.y.qq.com/n/ryqq/songDetail/%s
|
|
||||||
daily-music-base-url: https://c.y.qq.com/node/musicmac/v6/index.html
|
|
||||||
cookie: "RK=rUvZdxsXGU; ptcz=da14a0149395412d1ccada68745ff33321cfa01aad39b07aa3fcecae55395d97; pac_uid=0_eTHZsZHX7ba4M; _qimei_uuid42=18b140b1a2a100af5a8d7679cb48e01d678edc347b; _qimei_fingerprint=caa870019e5e1e0d9dc30786b07078ba; _qimei_h38=e25542625a8d7679cb48e01d03000006d18b14; _qimei_q36=; pgv_pvid=7363669324; fqm_pvqid=7c5bc23f-c99a-4341-ba32-643f6cfc30f2; ts_refer=www.google.com.hk/; ts_uid=3998702427; fqm_sessionid=ab065cb0-5652-4f77-a339-baf6a8afdb5f; pgv_info=ssid=s5380242360; login_type=1; ts_last=y.qq.com/n/ryqq/search; wxopenid=; uin=940879015; euin=NKvzNeSqoe6k; music_ignore_pskey=202306271436Hn@vBj; psrf_qqunionid=538FF9C402100468B3B9CB56FB49CA8B; wxunionid=; tmeLoginType=2; qqmusic_key=Q_H_L_63k3NJFbLtBHdyzgGBtfNP6_ZAiH0BPaf9vLQMUFOLe-WVnuOWGp-JUh7sgP-oSjrmFnzawQiTS69LcLVMFvs9w; psrf_qqopenid=EBFCD19499A42B5DFF06DE7BB15B3D98; psrf_qqrefresh_token=E2D138702A05B6A1D0582E516C18B595; qm_keyst=Q_H_L_63k3NJFbLtBHdyzgGBtfNP6_ZAiH0BPaf9vLQMUFOLe-WVnuOWGp-JUh7sgP-oSjrmFnzawQiTS69LcLVMFvs9w; psrf_musickey_createtime=1734917905; psrf_qqaccess_token=372F8B12E8910A482D80FDB5E3190D75; wxrefresh_token=; psrf_access_token_expiresAt=1735522705"
|
|
||||||
daily-music-search-url: http://c.y.qq.com/qzone/fcg-bin/fcg_ucc_getcdinfo_byids_cp.fcg?type=1&utf8=1&loginUin=0&disstid=%s
|
|
||||||
download-path: /downloads/music
|
|
||||||
# download-path: /Users/nikooh/Desktop/downloads/music
|
|
||||||
|
|
||||||
kugou-music:
|
|
||||||
query-base-url: http://117.72.78.133:5177/search?keywords=%s&page=%d&pagesize=%d&type=%s
|
|
||||||
playlist-base-url: http://117.72.78.133:5177/playlist/track/all?id=%s&pagesize=200
|
|
||||||
album-base-url: http://117.72.78.133:5177/album/songs?id=%s&pagesize=50
|
|
||||||
artist-base-url: http://117.72.78.133:5177/artist/audios?id=%s&sort=hot&pagesize=%d
|
|
||||||
download-base-url: http://117.72.78.133:5177/song/url?hash=%s&quality=viper_clear
|
|
||||||
download-path: /downloads/music
|
|
||||||
# download-path: /Users/nikooh/Desktop/downloads/music
|
|
||||||
|
|
||||||
|
|
||||||
xxl:
|
|
||||||
job:
|
|
||||||
admin:
|
|
||||||
addresses: http://117.72.78.133:8900/xxl-job-admin
|
|
||||||
executor:
|
|
||||||
appName: ${spring.application.name}
|
|
||||||
accessKey: WJtjy1217
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
19
src/main/resources/bootstrap-prod.yml
Normal file
19
src/main/resources/bootstrap-prod.yml
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
spring:
|
||||||
|
application:
|
||||||
|
name: baogutang-music
|
||||||
|
cloud:
|
||||||
|
nacos:
|
||||||
|
discovery:
|
||||||
|
server-addr: 117.72.78.133:8848
|
||||||
|
config:
|
||||||
|
server-addr: 117.72.78.133:8848
|
||||||
|
namespace: 40b10af8-f553-41ae-8ff1-8cedf2272da0
|
||||||
|
file-extension: yml
|
||||||
|
refresh-enabled: true
|
||||||
|
group: DEFAULT_GROUP
|
||||||
|
username: nacos
|
||||||
|
password: 199312
|
||||||
|
# shared-configs:
|
||||||
|
# - data-id: goods-blindbox.yml
|
||||||
|
# refresh: true
|
||||||
|
|
||||||
5
src/main/resources/bootstrap.yml
Normal file
5
src/main/resources/bootstrap.yml
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
spring:
|
||||||
|
profiles:
|
||||||
|
active: prod
|
||||||
|
main:
|
||||||
|
allow-bean-definition-overriding: true
|
||||||
Loading…
Reference in New Issue
Block a user