新增分享音乐文件夹
音乐请求使用md5而不再使用文件 API请求排除拦截public的接口
This commit is contained in:
parent
d9a4e4a81a
commit
1497d11754
@ -44,9 +44,11 @@ public class RoleAccessDecisionManager implements AccessDecisionManager {
|
|||||||
case "/login/check.do":
|
case "/login/check.do":
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
if(url.startsWith("/public/")){
|
||||||
|
return;
|
||||||
|
}
|
||||||
if(!Tools.isAdminLogin()){
|
if(!Tools.isAdminLogin()){
|
||||||
String redis=RedisTools.get(musicShare);
|
String redis=RedisTools.get(musicShare);
|
||||||
System.out.println("分享token="+musicShare+" redis="+redis);
|
|
||||||
if(redis!=null&&!"-999".equals(redis)){
|
if(redis!=null&&!"-999".equals(redis)){
|
||||||
authentication.setAuthenticated(true);
|
authentication.setAuthenticated(true);
|
||||||
return;
|
return;
|
||||||
|
@ -29,6 +29,7 @@ public class NasManager {
|
|||||||
public static final String NasUrl="http://yutou233.cn";
|
public static final String NasUrl="http://yutou233.cn";
|
||||||
@Resource
|
@Resource
|
||||||
NasAdminAddressDao adminAddressDao;
|
NasAdminAddressDao adminAddressDao;
|
||||||
|
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
@RequestMapping(value = "/auth/nas/address/get.do", method = RequestMethod.GET)
|
@RequestMapping(value = "/auth/nas/address/get.do", method = RequestMethod.GET)
|
||||||
public String getAdminAddress(HttpServletRequest request) {
|
public String getAdminAddress(HttpServletRequest request) {
|
||||||
@ -45,6 +46,7 @@ public class NasManager {
|
|||||||
}
|
}
|
||||||
return json.toJSONString();
|
return json.toJSONString();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
@RequestMapping(value = "/auth/nas/address/list.do", method = RequestMethod.GET)
|
@RequestMapping(value = "/auth/nas/address/list.do", method = RequestMethod.GET)
|
||||||
public String addressList(HttpServletRequest request) {
|
public String addressList(HttpServletRequest request) {
|
||||||
@ -68,6 +70,7 @@ public class NasManager {
|
|||||||
}
|
}
|
||||||
return json.toJSONString();
|
return json.toJSONString();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
@RequestMapping(value = "/auth/nas/address/add.do", method = RequestMethod.POST)
|
@RequestMapping(value = "/auth/nas/address/add.do", method = RequestMethod.POST)
|
||||||
public String addAddress(HttpServletRequest request, String url, String port, String title) {
|
public String addAddress(HttpServletRequest request, String url, String port, String title) {
|
||||||
@ -87,6 +90,7 @@ public class NasManager {
|
|||||||
}
|
}
|
||||||
return json.toJSONString();
|
return json.toJSONString();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
@RequestMapping(value = "/auth/nas/address/update.do", method = RequestMethod.POST)
|
@RequestMapping(value = "/auth/nas/address/update.do", method = RequestMethod.POST)
|
||||||
public String updateAddress(HttpServletRequest request, String url, String port, String title, String id) {
|
public String updateAddress(HttpServletRequest request, String url, String port, String title, String id) {
|
||||||
@ -118,6 +122,7 @@ public class NasManager {
|
|||||||
}
|
}
|
||||||
return json.toJSONString();
|
return json.toJSONString();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
@RequestMapping(value = "/auth/nas/address/remove.do", method = RequestMethod.POST)
|
@RequestMapping(value = "/auth/nas/address/remove.do", method = RequestMethod.POST)
|
||||||
public String removeAddress(HttpServletRequest request, String id) {
|
public String removeAddress(HttpServletRequest request, String id) {
|
||||||
@ -133,6 +138,7 @@ public class NasManager {
|
|||||||
}
|
}
|
||||||
return json.toJSONString();
|
return json.toJSONString();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
@RequestMapping(value = "/auth/nas/address/set.do", method = RequestMethod.POST)
|
@RequestMapping(value = "/auth/nas/address/set.do", method = RequestMethod.POST)
|
||||||
public String setAddress(HttpServletRequest request, String id) {
|
public String setAddress(HttpServletRequest request, String id) {
|
||||||
@ -151,6 +157,7 @@ public class NasManager {
|
|||||||
}
|
}
|
||||||
return json.toJSONString();
|
return json.toJSONString();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
@RequestMapping(value = "/jellyfin.do")
|
@RequestMapping(value = "/jellyfin.do")
|
||||||
public void jellyfin(HttpServletResponse response) {
|
public void jellyfin(HttpServletResponse response) {
|
||||||
@ -166,7 +173,7 @@ public class NasManager {
|
|||||||
public String getLocalHost() {
|
public String getLocalHost() {
|
||||||
JSONObject json = new JSONObject();
|
JSONObject json = new JSONObject();
|
||||||
if ("dev".equals(ConfigTools.load(ConfigTools.CONFIG, "model"))) {
|
if ("dev".equals(ConfigTools.load(ConfigTools.CONFIG, "model"))) {
|
||||||
json.put("data", NasUrl+":8001");
|
json.put("data", NasUrl + ":8000");
|
||||||
} else {
|
} else {
|
||||||
if (UpdateIp.nas_ip == null) {
|
if (UpdateIp.nas_ip == null) {
|
||||||
json.put("data", "http://yutou233.cn:8001");
|
json.put("data", "http://yutou233.cn:8001");
|
||||||
@ -177,16 +184,18 @@ public class NasManager {
|
|||||||
json.put("code", 0);
|
json.put("code", 0);
|
||||||
return json.toJSONString();
|
return json.toJSONString();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
@RequestMapping("/nas/music/share.do")
|
@RequestMapping("/nas/music/share.do")
|
||||||
public JSONObject share(String file){
|
public JSONObject share(String file,boolean isDir) {
|
||||||
JSONObject json = new JSONObject();
|
JSONObject json = new JSONObject();
|
||||||
String token = Tools.getMD5(UUID.randomUUID() + file);
|
String token = Tools.getMD5(UUID.randomUUID() + file);
|
||||||
json.put("token", token);
|
json.put("token", token);
|
||||||
json.put("file", file);
|
json.put("file", file);
|
||||||
|
json.put("isDir",isDir);
|
||||||
HashMap<String, String> header = new HashMap<>();
|
HashMap<String, String> header = new HashMap<>();
|
||||||
header.put("content-type", "application/json");
|
header.put("content-type", "application/json");
|
||||||
String url=NasUrl+":8001";
|
String url = NasUrl + ":8000";
|
||||||
if (UpdateIp.nas_ip != null) {
|
if (UpdateIp.nas_ip != null) {
|
||||||
url = "http://" + UpdateIp.nas_ip + ":8000";
|
url = "http://" + UpdateIp.nas_ip + ":8000";
|
||||||
}
|
}
|
||||||
@ -203,13 +212,14 @@ public class NasManager {
|
|||||||
json.put("data", _data);
|
json.put("data", _data);
|
||||||
return json;
|
return json;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
@RequestMapping("/nas/music/playShare.do")
|
@RequestMapping("/nas/music/playShare.do")
|
||||||
public JSONObject playShare(String share) {
|
public JSONObject playShare(String share) {
|
||||||
JSONObject json = new JSONObject();
|
JSONObject json = new JSONObject();
|
||||||
String redis = RedisTools.get(share);
|
String redis = RedisTools.get(share);
|
||||||
if (redis != null && !"-999".equals(redis)) {
|
if (redis != null && !"-999".equals(redis)) {
|
||||||
String url=NasUrl+":8001";
|
String url = NasUrl + ":8000";
|
||||||
if (UpdateIp.nas_ip != null) {
|
if (UpdateIp.nas_ip != null) {
|
||||||
url = "http://" + UpdateIp.nas_ip + ":8000";
|
url = "http://" + UpdateIp.nas_ip + ":8000";
|
||||||
}
|
}
|
||||||
@ -218,7 +228,8 @@ public class NasManager {
|
|||||||
JSONObject item = JSONObject.parseObject(_json);
|
JSONObject item = JSONObject.parseObject(_json);
|
||||||
if (item.getInteger("code") == 0) {
|
if (item.getInteger("code") == 0) {
|
||||||
json.put("code", 0);
|
json.put("code", 0);
|
||||||
json.put("data", item.getJSONObject("data").getString("file"));
|
JSONArray array = item.getJSONObject("data").getJSONArray("file");
|
||||||
|
json.put("data", array);
|
||||||
} else {
|
} else {
|
||||||
json.put("code", "-1");
|
json.put("code", "-1");
|
||||||
json.put("msg", "分享已过期");
|
json.put("msg", "分享已过期");
|
||||||
@ -229,4 +240,52 @@ public class NasManager {
|
|||||||
}
|
}
|
||||||
return json;
|
return json;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ResponseBody
|
||||||
|
@RequestMapping(value = "/public/nas/music/pplist.do",produces = "application/json")
|
||||||
|
public JSONObject getPlayList(String share) {
|
||||||
|
String redis = RedisTools.get(share);
|
||||||
|
JSONObject json = new JSONObject();
|
||||||
|
String url = NasUrl + ":8000";
|
||||||
|
if (UpdateIp.nas_ip != null) {
|
||||||
|
url = "http://" + UpdateIp.nas_ip + ":8000";
|
||||||
|
}
|
||||||
|
String _json = HttpTools.get(url + "/nas/music/playShare.do?token=" + JSONObject.parseObject(redis).getJSONObject("data").getString("share"));
|
||||||
|
JSONObject item = JSONObject.parseObject(_json);
|
||||||
|
JSONArray array = item.getJSONObject("data").getJSONArray("file");
|
||||||
|
json.put("size", array.size());
|
||||||
|
json.put("scan", false);
|
||||||
|
json.put("data", array);
|
||||||
|
json.put("code",0);
|
||||||
|
return json;
|
||||||
|
}
|
||||||
|
|
||||||
|
@ResponseBody
|
||||||
|
@RequestMapping("/public/nas/music/playlist.do")
|
||||||
|
public JSONObject getMusicPlayList(String share) {
|
||||||
|
JSONObject json = new JSONObject();
|
||||||
|
String redis = RedisTools.get(share);
|
||||||
|
if ((StringUtils.isEmpty(redis) || "-999".equals(redis)) && !Tools.isAdminLogin()) {
|
||||||
|
json.put("code", -1);
|
||||||
|
} else {
|
||||||
|
json.put("code", 0);
|
||||||
|
if (!StringUtils.isEmpty(share)) {
|
||||||
|
json.put("data", "/public/nas/music/pplist.do?share=" + share);
|
||||||
|
} else if (Tools.isAdminLogin()) {
|
||||||
|
if ("dev".equals(ConfigTools.load(ConfigTools.CONFIG, "model"))) {
|
||||||
|
json.put("data", NasUrl + ":8000/nas/music/list.do?token=");
|
||||||
|
} else {
|
||||||
|
if (UpdateIp.nas_ip == null) {
|
||||||
|
json.put("data", "http://yutou233.cn:8001/nas/music/list.do?token=");
|
||||||
|
} else {
|
||||||
|
json.put("data", String.format("http://%s:8000/nas/music/list.do?token=", UpdateIp.nas_ip));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
json.put("code", -1);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
return json;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -66,7 +66,7 @@
|
|||||||
let playNow = ""
|
let playNow = ""
|
||||||
let share=getParam('share');
|
let share=getParam('share');
|
||||||
if(share!=null){
|
if(share!=null){
|
||||||
$('#playlist').remove()
|
//$('#playlist').remove()
|
||||||
$('#reload').remove()
|
$('#reload').remove()
|
||||||
$('#next').remove()
|
$('#next').remove()
|
||||||
$('#play_share').remove()
|
$('#play_share').remove()
|
||||||
@ -89,9 +89,14 @@
|
|||||||
layui.use(['table', 'element'], function () {
|
layui.use(['table', 'element'], function () {
|
||||||
let table = layui.table;
|
let table = layui.table;
|
||||||
let element = layui.element;
|
let element = layui.element;
|
||||||
let listTable = table.render({
|
let listTable = undefined;
|
||||||
|
$.post("/public/nas/music/playlist.do",{share:share},function (json) {
|
||||||
|
if(json.code!==0){
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
listTable=table.render({
|
||||||
elem: '#playlist'
|
elem: '#playlist'
|
||||||
, url: localhost + '/nas/music/list.do?token=' //数据接口
|
, url: json.data //数据接口
|
||||||
, method: 'post'
|
, method: 'post'
|
||||||
, where: {
|
, where: {
|
||||||
path: 'root',
|
path: 'root',
|
||||||
@ -110,15 +115,19 @@
|
|||||||
, done: function (res, curr, count) {
|
, done: function (res, curr, count) {
|
||||||
musicLib = res.data
|
musicLib = res.data
|
||||||
$('#musicSize').html("歌单总数:" + res.size)
|
$('#musicSize').html("歌单总数:" + res.size)
|
||||||
|
},error:function (e,data){
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
table.on('rowDouble(music)', function (obj) {
|
table.on('rowDouble(music)', function (obj) {
|
||||||
console.log("双击:"+obj)
|
|
||||||
//obj 同上
|
//obj 同上
|
||||||
if (obj.data.isdir === 1) {
|
if (obj.data.isdir === 1) {
|
||||||
|
let path=obj.data.md5;
|
||||||
|
if(path===undefined){
|
||||||
|
path=obj.data.file;
|
||||||
|
}
|
||||||
listTable.reload({
|
listTable.reload({
|
||||||
where: {
|
where: {
|
||||||
path: obj.data.file
|
path:path
|
||||||
}
|
}
|
||||||
, page: {
|
, page: {
|
||||||
curr: 1
|
curr: 1
|
||||||
@ -127,18 +136,23 @@
|
|||||||
} else {
|
} else {
|
||||||
isRandom = false;
|
isRandom = false;
|
||||||
playIndex = obj.tr[0].dataset.index;
|
playIndex = obj.tr[0].dataset.index;
|
||||||
play(obj.data.file)
|
play(obj.data)
|
||||||
}
|
}
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
table.on('tool(music)', function (obj) {
|
table.on('tool(music)', function (obj) {
|
||||||
let data = obj.data;
|
let data = obj.data;
|
||||||
|
|
||||||
if (obj.event === 'download') {
|
if (obj.event === 'download') {
|
||||||
if (data.isdir === 0) {
|
if (data.isdir === 0) {
|
||||||
window.open(localhost + "/nas/music/play.do?token=&random=false&filePath=" + new Base64().encode(data.file))
|
window.open(localhost + "/nas/music/play.do?token=&random=false&filePath=" + data.md5)
|
||||||
}
|
}
|
||||||
} else if (obj.event === 'play') {
|
} else if (obj.event === 'play') {
|
||||||
|
if(data.md5!==undefined){
|
||||||
|
play(data)
|
||||||
|
return;
|
||||||
|
}
|
||||||
$.ajax({
|
$.ajax({
|
||||||
type: "POST",
|
type: "POST",
|
||||||
url:localhost + "/nas/music/list.do",
|
url:localhost + "/nas/music/list.do",
|
||||||
@ -165,7 +179,13 @@
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
}else if(obj.event==='share'){
|
}else if(obj.event==='share'){
|
||||||
$.post('/nas/music/share.do',{file:data.file},function (json){
|
let isDir=false;
|
||||||
|
let file=data.md5;
|
||||||
|
if(data.isdir===1){
|
||||||
|
isDir=true;
|
||||||
|
file=data.file;
|
||||||
|
}
|
||||||
|
$.post('/nas/music/share.do',{file:file,isDir:isDir},function (json){
|
||||||
if(json.code===0){
|
if(json.code===0){
|
||||||
layer.prompt({
|
layer.prompt({
|
||||||
title:"分享链接",
|
title:"分享链接",
|
||||||
@ -177,6 +197,20 @@
|
|||||||
});
|
});
|
||||||
element.on('nav(menus)', function (elem) {
|
element.on('nav(menus)', function (elem) {
|
||||||
});
|
});
|
||||||
|
})
|
||||||
|
function playShare(){
|
||||||
|
$.get('/nas/music/playShare.do?share='+share,function (json) {
|
||||||
|
isRandom = false;
|
||||||
|
playIndex =0;
|
||||||
|
json.data.forEach(function (item) {
|
||||||
|
musicLib.push(item)
|
||||||
|
})
|
||||||
|
play(json.data[0])
|
||||||
|
})
|
||||||
|
}
|
||||||
|
if(share!==null){
|
||||||
|
playShare()
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
});
|
});
|
||||||
@ -218,7 +252,7 @@
|
|||||||
playNext()
|
playNext()
|
||||||
});
|
});
|
||||||
$('#play_share').click(function (){
|
$('#play_share').click(function (){
|
||||||
$.post('/nas/music/share.do',{file:new Base64().decode(decodeURIComponent(playNow))},function (json){
|
$.post('/nas/music/share.do',{file:playNow},function (json){
|
||||||
if(json.code===0){
|
if(json.code===0){
|
||||||
layer.prompt({
|
layer.prompt({
|
||||||
title:"分享链接",
|
title:"分享链接",
|
||||||
@ -246,7 +280,7 @@
|
|||||||
playIndex++
|
playIndex++
|
||||||
playNext()
|
playNext()
|
||||||
} else {
|
} else {
|
||||||
play(musicLib[playIndex].file);
|
play(musicLib[playIndex]);
|
||||||
playIndex++
|
playIndex++
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -268,14 +302,14 @@
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
function play(file) {
|
function play(_json) {
|
||||||
let filePath = escape(new Base64().encode(file))
|
let md5=''
|
||||||
playNow = filePath
|
md5=_json.md5
|
||||||
console.log(localhost + "/nas/music/play.do?random=false&filePath=" + filePath )
|
playNow = _json.md5
|
||||||
player.updateSource({
|
player.updateSource({
|
||||||
source: localhost + "/nas/music/play.do?random=false&filePath=" + filePath
|
source: localhost + "/nas/music/play.do?random=false&filePath=" + md5
|
||||||
});
|
});
|
||||||
update(filePath)
|
update(md5)
|
||||||
player.play()
|
player.play()
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -316,17 +350,8 @@
|
|||||||
})
|
})
|
||||||
$('#img').attr("src",localhost+'/nas/music/web/image.do?fileName='+fileName);
|
$('#img').attr("src",localhost+'/nas/music/web/image.do?fileName='+fileName);
|
||||||
}
|
}
|
||||||
function playShare(){
|
|
||||||
console.log("播放分享:"+share)
|
|
||||||
$.get('/nas/music/playShare.do?share='+share,function (json) {
|
|
||||||
isRandom = false;
|
|
||||||
playIndex =0;
|
|
||||||
play(json.data)
|
|
||||||
})
|
|
||||||
}
|
|
||||||
if(share!==null){
|
|
||||||
playShare()
|
|
||||||
}
|
|
||||||
</script>
|
</script>
|
||||||
<style>
|
<style>
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user