diff --git a/_locales/en/messages.json b/_locales/en/messages.json index b23cfd9..7ffa40a 100644 --- a/_locales/en/messages.json +++ b/_locales/en/messages.json @@ -85,5 +85,8 @@ }, "memoFailed":{ "message": "Failed! 😭" + }, + "invalidToken":{ + "message": "Invalid token or url 😭" } } \ No newline at end of file diff --git a/_locales/zh_CN/messages.json b/_locales/zh_CN/messages.json index 1551e35..ba2402f 100644 --- a/_locales/zh_CN/messages.json +++ b/_locales/zh_CN/messages.json @@ -88,5 +88,8 @@ }, "memoFailed":{ "message": "发送失败 😭" + }, + "invalidToken":{ + "message": "无效的 token 或 url 😭" } } diff --git a/js/oper.js b/js/oper.js index 5076842..4fb6585 100644 --- a/js/oper.js +++ b/js/oper.js @@ -11,6 +11,7 @@ function get_info(callback) { memo_lock: '', open_action: '', open_content: '', + userid: '', resourceIdList: [] }, function (items) { @@ -32,6 +33,7 @@ function get_info(callback) { returnObject.memo_lock = items.memo_lock returnObject.open_content = items.open_content returnObject.open_action = items.open_action + returnObject.userid = items.userid returnObject.resourceIdList = items.resourceIdList if (callback) callback(returnObject) @@ -45,17 +47,17 @@ get_info(function (info) { $('#blog_info').hide() } var memoNow = info.memo_lock - if(memoNow == ''){ + if (memoNow == '') { chrome.storage.sync.set( - { memo_lock: 'PUBLIC'} + { memo_lock: 'PUBLIC' } ) $("#lock-now").text(chrome.i18n.getMessage("lockPublic")) } - if(memoNow == "PUBLIC"){ + if (memoNow == "PUBLIC") { $("#lock-now").text(chrome.i18n.getMessage("lockPublic")) - }else if(memoNow == "PRIVATE"){ + } else if (memoNow == "PRIVATE") { $("#lock-now").text(chrome.i18n.getMessage("lockPrivate")) - }else if(memoNow == "PROTECTED"){ + } else if (memoNow == "PROTECTED") { $("#lock-now").text(chrome.i18n.getMessage("lockProtected")) } $('#apiUrl').val(info.apiUrl) @@ -126,7 +128,7 @@ function initDrag() { ev.preventDefault() var files = ev.dataTransfer.files || ev.target.files for (var i = 0; i < files.length; i++) { - file = files[i] + file = files[i] } uploadImage(file) } @@ -165,7 +167,7 @@ function uploadImage(data) { processData: false, contentType: false, dataType: 'json', - headers : {'Authorization':'Bearer ' + info.apiTokens}, + headers: { 'Authorization': 'Bearer ' + info.apiTokens }, success: function (data) { console.log(data) if (data.id) { @@ -173,7 +175,7 @@ function uploadImage(data) { relistNow.push(data.id) chrome.storage.sync.set( { - open_action: '', + open_action: '', open_content: '', resourceIdList: relistNow }, @@ -187,7 +189,7 @@ function uploadImage(data) { //发送失败 清空open_action(打开时候进行的操作),同时清空open_content chrome.storage.sync.set( { - open_action: '', + open_action: '', open_content: '', resourceIdList: [] }, @@ -209,19 +211,48 @@ function uploadImage(data) { } $('#saveKey').click(function () { - chrome.storage.sync.set( - { - apiUrl: $('#apiUrl').val(), - apiTokens: $('#apiTokens').val() - }, - function () { - $.message({ - message: chrome.i18n.getMessage("saveSuccess") - }) - $('#blog_info').hide() + var apiUrl = $('#apiUrl').val() + var apiTokens = $('#apiTokens').val() + // 设置请求参数 + const settings = { + async: true, + crossDomain: true, + url: apiUrl + 'api/v1/auth/status', + method: 'POST', + headers: { + 'Authorization': 'Bearer ' + apiTokens } - ) -}) + }; + + $.ajax(settings).done(function (response) { + if (response && response.id) { + // 如果响应包含用户 ID,存储 apiUrl 和 apiTokens + chrome.storage.sync.set( + { + apiUrl: apiUrl, + apiTokens: apiTokens, + userid: response.id + }, + function () { + $.message({ + message: chrome.i18n.getMessage("saveSuccess") + }); + $('#blog_info').hide(); + } + ); + } else { + // 如果响应不包含用户 ID,显示错误消息 + $.message({ + message: chrome.i18n.getMessage("invalidToken") + }); + } + }).fail(function () { + // 请求失败时显示错误消息 + $.message({ + message: chrome.i18n.getMessage("invalidToken") + }); + }); +}); $('#opensite').click(function () { get_info(function (info) { @@ -232,17 +263,20 @@ $('#opensite').click(function () { $('#tags').click(function () { get_info(function (info) { if (info.apiUrl) { - var tagUrl = info.apiUrl+'api/v1/tag' - var tagDom = "" + var parent = "memos/-"; + // 如果不使用 user 过滤,会返回所有用户的标签 + var filter = "?filter=" + encodeURIComponent(`creator == 'users/${info.userid}'`); + var tagUrl = info.apiUrl + 'api/v1/' + parent + '/tags' + filter; + var tagDom = ""; $.ajax({ - url:tagUrl, - type:"GET", - contentType:"application/json;", - dataType:"json", - headers : {'Authorization':'Bearer ' + info.apiTokens}, - success: function(data){ - $.each(data, function(i,obj){ - tagDom += '#'+obj+'' + url: tagUrl, + type: "GET", + contentType: "application/json;", + dataType: "json", + headers: { 'Authorization': 'Bearer ' + info.apiTokens }, + success: function (data) { + $.each(data.tagAmounts, function (tag, amount) { + tagDom += '#' + tag + ''; }); tagDom += '' $("#taglist").html(tagDom).slideToggle(500)