From f9305900adfa0276673ac5985760dd1a9c2ae806 Mon Sep 17 00:00:00 2001 From: Listen 1 Date: Fri, 17 Nov 2017 23:19:38 +0800 Subject: [PATCH] add open playlist url feature, fix origin field in http header --- README.md | 7 ++++++- css/player.css | 6 ++++-- images/playbar.png | Bin 45399 -> 0 bytes js/app.js | 25 ++++++++++++++++++++++++- js/background.js | 13 ++++++++++++- js/loweb.js | 21 +++++++++++++++++++++ js/provider/netease.js | 9 +++++++++ js/provider/qq.js | 11 +++++++++++ js/provider/xiami.js | 11 +++++++++++ listen1.html | 17 +++++++++++++++++ 10 files changed, 115 insertions(+), 5 deletions(-) delete mode 100644 images/playbar.png diff --git a/README.md b/README.md index d9562eb..6e2eb3b 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -Listen 1 (Chrome Extension) (最后更新于2017年10月16日) +Listen 1 (Chrome Extension) (最后更新于2017年11月17日) ========== [![Software License](https://img.shields.io/badge/license-MIT-brightgreen.svg)](LICENSE) @@ -36,6 +36,11 @@ Firefox打包安装 更新日志 ------- +`2017-11-17` + +* 在我的歌单页面增加“打开歌单”功能,可打开支持网页的歌单链接地址。这样就可以导入你喜欢的歌单了。 +* HTTP请求头部的Origin字段设置为正常网址 + `2017-10-16` * 修复QQ音乐歌单翻页显示重复的问题(感谢@Moobusy的提交) diff --git a/css/player.css b/css/player.css index 3b68446..78361c2 100644 --- a/css/player.css +++ b/css/player.css @@ -971,7 +971,7 @@ li { bottom: 20px; } -.dialog-editplaylist .confirm-button { +.dialog-editplaylist .confirm-button, .dialog-open-url .confirm-button { margin-right: 82px; margin-left: 93px; } @@ -1028,7 +1028,9 @@ li { color: #333333; } - +.source-list .open-url-button { + border-radius: 4px; +} .settings-title { font-size: 20px; diff --git a/images/playbar.png b/images/playbar.png deleted file mode 100644 index 2bbe5170a530c253a3d2c1611b77e93649e2b10c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 45399 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 diff --git a/js/app.js b/js/app.js index 27df81f..914d1a2 100644 --- a/js/app.js +++ b/js/app.js @@ -233,6 +233,10 @@ $scope.dialog_title = '连接到Last.fm'; $scope.dialog_type = 4; } + if (dialog_type == 5) { + $scope.dialog_title = '打开歌单'; + $scope.dialog_type = 5; + } }; $scope.chooseDialogOption = function(option_id) { @@ -480,7 +484,26 @@ } }); - + $scope.openUrl = function(url) { + loWeb.post({ + url: '/parse_url', + method: 'POST', + data: $httpParamSerializerJQLike({ + url: url + }), + headers: { + 'Content-Type': 'application/x-www-form-urlencoded' + } + }).success(function(data) { + var result = data.result; + if (result !== undefined) { + $scope.showPlaylist(result.id); + } + else { + Notification.info('未能打开输入的歌单地址'); + } + }); + } }]); diff --git a/js/background.js b/js/background.js index 336d1d7..bae3747 100644 --- a/js/background.js +++ b/js/background.js @@ -23,6 +23,7 @@ function hack_referer_header(details) { } var isRefererSet = false; + var isOriginSet = false; var headers = details.requestHeaders, blockingResponse = {}; @@ -30,7 +31,10 @@ function hack_referer_header(details) { if ((headers[i].name == 'Referer') && (referer_value != '')) { headers[i].value = referer_value; isRefererSet = true; - break; + } + if ((headers[i].name == 'Origin') && (referer_value != '')) { + headers[i].value = referer_value; + isOriginSet = true; } } @@ -41,6 +45,13 @@ function hack_referer_header(details) { }); } + if ((!isOriginSet) && (referer_value != '')) { + headers.push({ + name: "Origin", + value: referer_value + }); + } + blockingResponse.requestHeaders = headers; return blockingResponse; }; diff --git a/js/loweb.js b/js/loweb.js index 03cf785..30dd3a4 100644 --- a/js/loweb.js +++ b/js/loweb.js @@ -12,6 +12,10 @@ function getProviderByName(sourceName) { } } +function getAllProviders(){ + return [netease, xiami, qq]; +} + function getProviderByItemId(itemId) { var prefix = itemId.slice(0,2); if (prefix == 'ne') { @@ -122,6 +126,23 @@ function($rootScope, $log, $http, $httpParamSerializerJQLike) { } }; } + if (request.url.search('/parse_url') != -1) { + var url = getParameterByName('url', url+'?'+request.data); + var providers = getAllProviders(); + var result = undefined; + for(var i=0; i + +
+
+ + +
+ + + +
+ @@ -134,6 +145,12 @@
+
+ +
+
打开歌单
+
+