UNPKG

@tomiaa/hitokoto

Version:
2 lines (1 loc) 2.75 kB
"use strict";var l=Object.defineProperty;var r=(s,t,e)=>t in s?l(s,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):s[t]=e;var i=(s,t,e)=>(r(s,typeof t!="symbol"?t+"":t,e),e);Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const d=require("@tomiaa/utils");require("./index.scss.js");const h=require("axios"),a=h.create({baseURL:"https://hitokoto.cn/api"}),o=d.createNamespacs("hitokoto"),c='<svg width="24" height="24" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg" ><rect width="48" height="48" fill="currentColor" fill-opacity="0.01" ></rect><path d="M15 8C8.92487 8 4 12.9249 4 19C4 30 17 40 24 42.3262C31 40 44 30 44 19C44 12.9249 39.0751 8 33 8C29.2797 8 25.9907 9.8469 24 12.6738C22.0093 9.8469 18.7203 8 15 8Z" fill="currentColor" stroke="#ff93a0" stroke-width="4" stroke-linecap="round" stroke-linejoin="round" ></path></svg>';class n{constructor(t){i(this,"data");i(this,"options",{movingBorderColor:"#42b883",interval:1e4});i(this,"el");i(this,"word",document.createElement("div"));i(this,"author",document.createElement("div"));i(this,"elLike",document.createElement("div"));i(this,"timer",0);Object.assign(this.options,t);const{el:e}=t;typeof e=="string"?this.el=document.querySelector(e):this.el=e,this.el.style.setProperty("--moving-border-color",this.options.movingBorderColor),this.el.classList.add(o.b()),this.init(),this.getData(),this.el.addEventListener("mouseover",()=>{clearTimeout(this.timer)}),this.el.addEventListener("mouseout",this.autoGet.bind(this))}init(){const t=document.createElement("div");t.classList.add(o.e("info")),t.innerHTML='<div class="left">『</div>',this.word.classList.add("word"),t.innerHTML+='<div class="right">』</div>',t.appendChild(this.word),this.el.appendChild(t),this.author.classList.add(o.e("author")),this.el.appendChild(this.author),this.elLike.classList.add(o.e("like")),this.elLike.onclick=this.like.bind(this),this.elLike.innerHTML=c,this.el.appendChild(this.elLike)}autoGet(){this.options.interval&&(this.timer=window.setTimeout(this.getData.bind(this),this.options.interval))}async getData(){window.clearTimeout(this.timer),this.elLike.style.color="transparent";const{data:t}=await a.get("https://v1.hitokoto.cn?encode=json");this.data=t,this.word.innerText=t.hitokoto,this.author.innerText=`——${t.from_who||""}「${t.from||""}」`,this.getLikeNum(),this.autoGet()}async getLikeNum(){const{data:t}=await a(`/common/v1/like?sentence_uuid=${this.data.uuid}`);this.elLike.dataset.num=this.data.total=t.data[0].total}async like(){await a(`/restful/v1/like?sentence_uuid=${this.data.uuid}`),this.elLike.style.color="#f04a83",this.elLike.dataset.num=++this.data.total+""}}exports.Hitokoto=n;exports.default=n;