This commit is contained in:
N1KO 2024-12-23 15:27:53 +08:00
parent ab33bbfc74
commit ae21cc7133
8 changed files with 114 additions and 133 deletions

18
pom.xml
View File

@ -31,6 +31,18 @@
<artifactId>spring-boot-starter-web</artifactId>
</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>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
@ -95,12 +107,6 @@
<artifactId>httpclient</artifactId>
</dependency>
<dependency>
<groupId>com.xuxueli</groupId>
<artifactId>xxl-job-core</artifactId>
<version>2.4.1</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>

View File

@ -1,42 +1,42 @@
package top.baogutang.music.config;
import com.xxl.job.core.executor.impl.XxlJobSpringExecutor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
* @description:
* @author: nikooh
* @date: 2024/06/14 : 15:29
*/
@Slf4j
@Configuration
//@ConditionalOnProperty(value = "spring.profiles.active", havingValue = "prod")
public class XxlJobConfig {
@Value("${xxl.job.admin.addresses}")
private String adminAddresses;
@Value("${xxl.job.executor.appName}")
private String appName;
@Value("${xxl.job.executor.accessKey}")
private String accessKey;
@Bean
public XxlJobSpringExecutor xxlJobExecutor() {
log.info(">>>>>>>>>>> xxl-job config init start <<<<<<<<<<");
XxlJobSpringExecutor xxlJobSpringExecutor = new XxlJobSpringExecutor();
xxlJobSpringExecutor.setAdminAddresses(adminAddresses);
xxlJobSpringExecutor.setAppname(appName);
xxlJobSpringExecutor.setAccessToken(accessKey);
log.info(">>>>>>>>>>> xxl-job config init success <<<<<<<<<<");
return xxlJobSpringExecutor;
}
}
//package top.baogutang.music.config;
//
//import com.xxl.job.core.executor.impl.XxlJobSpringExecutor;
//import lombok.extern.slf4j.Slf4j;
//import org.springframework.beans.factory.annotation.Value;
//import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
//import org.springframework.context.annotation.Bean;
//import org.springframework.context.annotation.Configuration;
//
///**
// * @description:
// * @author: nikooh
// * @date: 2024/06/14 : 15:29
// */
//@Slf4j
//@Configuration
////@ConditionalOnProperty(value = "spring.profiles.active", havingValue = "prod")
//public class XxlJobConfig {
//
// @Value("${xxl.job.admin.addresses}")
// private String adminAddresses;
//
// @Value("${xxl.job.executor.appName}")
// private String appName;
//
// @Value("${xxl.job.executor.accessKey}")
// private String accessKey;
//
//
// @Bean
// public XxlJobSpringExecutor xxlJobExecutor() {
// log.info(">>>>>>>>>>> xxl-job config init start <<<<<<<<<<");
// XxlJobSpringExecutor xxlJobSpringExecutor = new XxlJobSpringExecutor();
// xxlJobSpringExecutor.setAdminAddresses(adminAddresses);
// xxlJobSpringExecutor.setAppname(appName);
// xxlJobSpringExecutor.setAccessToken(accessKey);
// log.info(">>>>>>>>>>> xxl-job config init success <<<<<<<<<<");
// return xxlJobSpringExecutor;
// }
//
//
//}

View File

@ -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();
}
}

View File

@ -2,6 +2,7 @@ package top.baogutang.music.properties;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.stereotype.Component;
/**
@ -14,6 +15,7 @@ import org.springframework.stereotype.Component;
@Data
@Component
@ConfigurationProperties(prefix = "baogutang.qq-music")
@RefreshScope
public class QQMusicProperties {
private String queryBaseUrl;

View File

@ -7,6 +7,7 @@ import org.apache.commons.lang3.StringUtils;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
@ -40,6 +41,7 @@ import java.util.zip.InflaterInputStream;
*/
@Slf4j
@Component
@RefreshScope
public class QQDailyMusicHandler extends DailyMusicHandler {
@Resource

View File

@ -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

View 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

View File

@ -0,0 +1,5 @@
spring:
profiles:
active: prod
main:
allow-bean-definition-overriding: true