mirror of
https://ghfast.top/https://github.com/zsjy/halo-theme-dream2.0-plus.git
synced 2025-03-16 00:49:40 +08:00
feat(like): 实现喜欢功能
This commit is contained in:
parent
c2dc6308e0
commit
f3ea8f7b3e
@ -109,6 +109,7 @@ const Utils = {
|
|||||||
timeout = 10000,
|
timeout = 10000,
|
||||||
returnRaw = false,
|
returnRaw = false,
|
||||||
contentType,
|
contentType,
|
||||||
|
resultType = 'json'
|
||||||
}) {
|
}) {
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
method = method.toUpperCase()
|
method = method.toUpperCase()
|
||||||
@ -120,7 +121,7 @@ const Utils = {
|
|||||||
...headers,
|
...headers,
|
||||||
},
|
},
|
||||||
async: true,
|
async: true,
|
||||||
dataType: 'json',
|
dataType: resultType,
|
||||||
contentType,
|
contentType,
|
||||||
timeout,
|
timeout,
|
||||||
data,
|
data,
|
||||||
@ -138,7 +139,7 @@ const Utils = {
|
|||||||
error(err) {
|
error(err) {
|
||||||
const errMsg = err
|
const errMsg = err
|
||||||
? err.responseJSON
|
? err.responseJSON
|
||||||
? err.responseJSON.message
|
? err.responseJSON.title
|
||||||
: '请求失败'
|
: '请求失败'
|
||||||
: '请求失败'
|
: '请求失败'
|
||||||
Qmsg.error(errMsg)
|
Qmsg.error(errMsg)
|
||||||
@ -176,9 +177,11 @@ const Utils = {
|
|||||||
url: '/apis/api.halo.run/v1alpha1/trackers/upvote',
|
url: '/apis/api.halo.run/v1alpha1/trackers/upvote',
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
contentType: 'application/json;charset=UTF-8',
|
contentType: 'application/json;charset=UTF-8',
|
||||||
|
returnRaw: true,
|
||||||
|
resultType: 'text',
|
||||||
data: JSON.stringify({
|
data: JSON.stringify({
|
||||||
group: 'moment.halo.run',
|
group: 'content.halo.run',
|
||||||
plural: 'moments',
|
plural: type,
|
||||||
name: id
|
name: id
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
2
templates/assets/js/utils.min.js
vendored
2
templates/assets/js/utils.min.js
vendored
@ -1 +1 @@
|
|||||||
(()=>{const a={isMobile:()=>!!(navigator.userAgent.match(/Android/i)||navigator.userAgent.match(/webOS/i)||navigator.userAgent.match(/iPhone/i)||navigator.userAgent.match(/iPad/i)||navigator.userAgent.match(/iPod/i)||navigator.userAgent.match(/BlackBerry/i)||navigator.userAgent.match(/Windows Phone/i)),cachedScript:(e,t)=>$.ajax(jQuery.extend({url:e,type:"get",dataType:"script",cache:!0,success:t},$.isPlainObject(e)&&e)),formatDate(e,t="yyyy-MM-dd"){e=new Date(e),/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(e.getFullYear()+"").substr(4-RegExp.$1.length)));var a,r,o={"M+":e.getMonth()+1,"d+":e.getDate(),"h+":e.getHours(),"m+":e.getMinutes(),"s+":e.getSeconds()};for(a in o)new RegExp(`(${a})`).test(t)&&(r=o[a]+"",t=t.replace(RegExp.$1,1===RegExp.$1.length?r:r.padStart(2,"0")));return t},getUrlParams(){var e=location.search,e=(e="string"!=typeof e?e.toString():e).replace(/^[^\?]*\?/i,"").split(/&/),a={};return e.length<1||Array.isArray(e)&&e.forEach(function(e){if(!e)return!1;var t,e=e.split(/=/);2<=e.length&&(t=e.splice(0,1),a[t]=e.join("="))}),a},randomColor(e){var t=["#F8D800","#0396FF","#EA5455","#7367F0","#32CCBC","#F6416C","#28C76F","#9F44D3","#F55555","#736EFE","#E96D71","#DE4313","#D939CD","#4C83FF","#F072B6","#C346C2","#5961F9","#FD6585","#465EFB","#FFC600","#FA742B","#5151E5","#BB4E75","#FF52E5","#49C628","#00EAFF","#F067B4","#F067B4","#ff9a9e","#00f2fe","#4facfe","#f093fb","#6fa3ef","#bc99c4","#46c47c","#f9bb3c","#e8583d","#f68e5f"];return t[e%t.length]},request:({url:e="",method:r="GET",data:o,headers:s={},timeout:n=1e4,returnRaw:i=!1,contentType:c})=>new Promise((t,a)=>{r=r.toUpperCase(),$.ajax({url:e,type:r,headers:{"API-Authorization":DreamConfig.access_key||"dream",...s},async:!0,dataType:"json",contentType:c,timeout:n,data:o,success(e){i?t(e):200===e.status?t(e.data||""):a(e)},error(e){e=e&&e.responseJSON?e.responseJSON.message:"请求失败";Qmsg.error(e),a(e)}})}),initLikeButton(e,t){t=encrypt("agree-"+t);let a=localStorage.getItem(t);a=a?JSON.parse(decrypt(a)):[],$(e).each(function(){var e=$(this),t=e.attr("data-id");a.includes(t)&&e.removeClass("like")})},initLikeEvent(e,t,s){let n=encrypt("agree-"+t);$("body").on("click",e,function(e){e.stopPropagation();let r=$(this),o=r.attr("data-id");a.request({url:"/apis/api.halo.run/v1alpha1/trackers/upvote",method:"POST",contentType:"application/json;charset=UTF-8",data:JSON.stringify({group:"moment.halo.run",plural:"moments",name:o})}).then(e=>{var t=(t=localStorage.getItem(n))?JSON.parse(decrypt(t)):[],a=+(r.attr("data-likes")||0)+1,t=(t.push(o),r.removeClass("like"),encrypt(JSON.stringify(t)));localStorage.setItem(n,t),s(r).html(a),Qmsg.success("点赞成功")})})},baiduPush(){var e=document.createElement("script"),t=window.location.protocol.split(":")[0],t=(e.src="https"===t?"https://zz.bdstatic.com/linksubmit/push.js":"http://push.zhanzhang.baidu.com/push.js",$(`script[src="${e.src}"]`).remove(),document.getElementsByTagName("script")[0]);t.parentNode.insertBefore(e,t)},toutiaoPush(){var e=document.createElement("script"),t=(e.src="https://lf1-cdn-tos.bytegoofy.com/goofy/ttzz/push.js?0fbcfbb1ed642c21419d5be02d56ade7d6ee5372ca221d12ba35df110760b2a830632485602430134f60bc55ca391050b680e2741bf7233a8f1da9902314a3fa",e.id="ttzz",$(`script[src="${e.src}"]`).remove(),document.getElementsByTagName("script")[0]);t.parentNode.insertBefore(e,t)},sleep:(t=250)=>new Promise(e=>setTimeout(e,t)),foldBlock(e){var t,a=e.height();e.is(".fold")?e.removeClass("fold").addClass("unfold"):(t=document.documentElement.scrollTop||document.body.scrollTop||window.pageYOffset,e.addClass("fold").removeClass("unfold"),$("body,html").scrollTop(t-a+e.height()))},removeClassByPrefix(e,t){var a=e.className.split(" ").filter(function(e){return 0!==e.lastIndexOf(t,0)});e.className=a.join(" ").trim()},animateScroll(e,t,a,r){let o,s=e.getBoundingClientRect(),n=window.scrollY,i=n+s.top-a,c=(i-n)/t,l=n>i?-1:1;o=window.requestAnimationFrame(function e(){(n+=c)*l<i*l?(window.scrollTo(0,n),o=window.requestAnimationFrame(e)):(window.scrollTo(0,i),window.cancelAnimationFrame(o),r&&r())})}};window.Utils=a})();
|
(()=>{const a={isMobile:()=>!!(navigator.userAgent.match(/Android/i)||navigator.userAgent.match(/webOS/i)||navigator.userAgent.match(/iPhone/i)||navigator.userAgent.match(/iPad/i)||navigator.userAgent.match(/iPod/i)||navigator.userAgent.match(/BlackBerry/i)||navigator.userAgent.match(/Windows Phone/i)),cachedScript:(e,t)=>$.ajax(jQuery.extend({url:e,type:"get",dataType:"script",cache:!0,success:t},$.isPlainObject(e)&&e)),formatDate(e,t="yyyy-MM-dd"){e=new Date(e),/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(e.getFullYear()+"").substr(4-RegExp.$1.length)));var a,r,o={"M+":e.getMonth()+1,"d+":e.getDate(),"h+":e.getHours(),"m+":e.getMinutes(),"s+":e.getSeconds()};for(a in o)new RegExp(`(${a})`).test(t)&&(r=o[a]+"",t=t.replace(RegExp.$1,1===RegExp.$1.length?r:r.padStart(2,"0")));return t},getUrlParams(){var e=location.search,e=(e="string"!=typeof e?e.toString():e).replace(/^[^\?]*\?/i,"").split(/&/),a={};return e.length<1||Array.isArray(e)&&e.forEach(function(e){if(!e)return!1;var t,e=e.split(/=/);2<=e.length&&(t=e.splice(0,1),a[t]=e.join("="))}),a},randomColor(e){var t=["#F8D800","#0396FF","#EA5455","#7367F0","#32CCBC","#F6416C","#28C76F","#9F44D3","#F55555","#736EFE","#E96D71","#DE4313","#D939CD","#4C83FF","#F072B6","#C346C2","#5961F9","#FD6585","#465EFB","#FFC600","#FA742B","#5151E5","#BB4E75","#FF52E5","#49C628","#00EAFF","#F067B4","#F067B4","#ff9a9e","#00f2fe","#4facfe","#f093fb","#6fa3ef","#bc99c4","#46c47c","#f9bb3c","#e8583d","#f68e5f"];return t[e%t.length]},request:({url:e="",method:r="GET",data:o,headers:s={},timeout:n=1e4,returnRaw:i=!1,contentType:c,resultType:l="json"})=>new Promise((t,a)=>{r=r.toUpperCase(),$.ajax({url:e,type:r,headers:{"API-Authorization":DreamConfig.access_key||"dream",...s},async:!0,dataType:l,contentType:c,timeout:n,data:o,success(e){i?t(e):200===e.status?t(e.data||""):a(e)},error(e){e=e&&e.responseJSON?e.responseJSON.title:"请求失败";Qmsg.error(e),a(e)}})}),initLikeButton(e,t){t=encrypt("agree-"+t);let a=localStorage.getItem(t);a=a?JSON.parse(decrypt(a)):[],$(e).each(function(){var e=$(this),t=e.attr("data-id");a.includes(t)&&e.removeClass("like")})},initLikeEvent(e,t,s){let n=encrypt("agree-"+t);$("body").on("click",e,function(e){e.stopPropagation();let r=$(this),o=r.attr("data-id");a.request({url:"/apis/api.halo.run/v1alpha1/trackers/upvote",method:"POST",contentType:"application/json;charset=UTF-8",returnRaw:!0,resultType:"text",data:JSON.stringify({group:"content.halo.run",plural:t,name:o})}).then(e=>{var t=(t=localStorage.getItem(n))?JSON.parse(decrypt(t)):[],a=+(r.attr("data-likes")||0)+1,t=(t.push(o),r.removeClass("like"),encrypt(JSON.stringify(t)));localStorage.setItem(n,t),s(r).html(a),Qmsg.success("点赞成功")})})},baiduPush(){var e=document.createElement("script"),t=window.location.protocol.split(":")[0],t=(e.src="https"===t?"https://zz.bdstatic.com/linksubmit/push.js":"http://push.zhanzhang.baidu.com/push.js",$(`script[src="${e.src}"]`).remove(),document.getElementsByTagName("script")[0]);t.parentNode.insertBefore(e,t)},toutiaoPush(){var e=document.createElement("script"),t=(e.src="https://lf1-cdn-tos.bytegoofy.com/goofy/ttzz/push.js?0fbcfbb1ed642c21419d5be02d56ade7d6ee5372ca221d12ba35df110760b2a830632485602430134f60bc55ca391050b680e2741bf7233a8f1da9902314a3fa",e.id="ttzz",$(`script[src="${e.src}"]`).remove(),document.getElementsByTagName("script")[0]);t.parentNode.insertBefore(e,t)},sleep:(t=250)=>new Promise(e=>setTimeout(e,t)),foldBlock(e){var t,a=e.height();e.is(".fold")?e.removeClass("fold").addClass("unfold"):(t=document.documentElement.scrollTop||document.body.scrollTop||window.pageYOffset,e.addClass("fold").removeClass("unfold"),$("body,html").scrollTop(t-a+e.height()))},removeClassByPrefix(e,t){var a=e.className.split(" ").filter(function(e){return 0!==e.lastIndexOf(t,0)});e.className=a.join(" ").trim()},animateScroll(e,t,a,r){let o,s=e.getBoundingClientRect(),n=window.scrollY,i=n+s.top-a,c=(i-n)/t,l=n>i?-1:1;o=window.requestAnimationFrame(function e(){(n+=c)*l<i*l?(window.scrollTo(0,n),o=window.requestAnimationFrame(e)):(window.scrollTo(0,i),window.cancelAnimationFrame(o),r&&r())})}};window.Utils=a})();
|
Loading…
x
Reference in New Issue
Block a user