笔记|修复一言api
最初建博客的目的就写为了记得东西,不折腾,开始使用过程总会遇到一些自己不满意的地方,有时候能忍就忍了,毕竟我不会代码,不在的我的知识范围。但忍受的前提是我还可以接受、这个问题比较复杂、我已经寻找过答案了、折腾不成功,最终还是折腾一番。
不知什么时候开始博客一直加载很慢,没关系,慢就慢吧,我可以接受。不知什么时候一言的api挂了,看着很不爽,还是忍了很久了。发觉博客加载很慢是一直在加载hitokoto.us,这个不就是一言吗?F12,想着把代码中的hitokoto全都找出来,找个新的api替换掉。嗯,两段script,一段span,看起来不难,虽然我没看懂。
<span class="hitokoto" id="hitokoto">Loading...</span> <div id="hjsbox"></div> <script type="text/javascript" src="http://api.hitokoto.us/rand?encode=js&charset=utf-8"></script> <script> //初始化一言 setTimeout("getkoto()",1000); //加载一言 var t; function getkoto(){ var hjs = document.createElement('script'); hjs.setAttribute('id', 'hjs'); hjs.setAttribute('src', 'http://api.hitokoto.us/rand?&encode=jsc&fun=echokoto'); document.getElementById("hjsbox").appendChild(hjs); t=setTimeout("getkoto()",3000); } //输出一言 function echokoto(result){ var hc = eval(result); //$("#hitokoto").fadeTo(300,0); document.getElementById("hitokoto").innerHTML = hc.hitokoto; //$("#hitokoto").fadeTo(300,0.75); } </script>
百度一言寻找新的替代地址。最先找到的是hitokoto.cn,不错,但api介绍就一个https://sslapi.hitokoto.cn/,看起来有点不一样。
再找到LWL-Hitokoto API(一言-纯净API),看起来和hitokoto.us那个是一样的,但怎么替换呢?文章介绍了 JavaScript + HTML调用举例的确没问题,因为us的网址打不开了,不知道返回的是什么内容,想着直接把http://api.hitokoto.us/rand?&encode=jsc&fun=echokoto改成https://api.lwl12.com/hitokoto/main/get?encode=jsc&fun=echokoto,直接打开的确有返回一言,但套进原来的getkoto和echokoto却不能用。各种折腾,看不明代码,百度一堆还是用us地址的旧版文章,心想着折腾过了但搞不定,我就直接用举例的js+html搞个不会动吧。
一切搞好了,用个不会动的将就吧,就在全到搞好了的时候才能我发现了一篇用lwlhitokoto的,简单测试后的确能用。http://api.hitokoto.us/rand?&encode=jsc&fun=echokoto改成https://api.lwl12.com/hitokoto/main/get?encode=json,原来是json版本,返回到的内容为
echokoto({"code":200,"hitokoto":"\u5728\u8bb0\u5fc6\u6df1\u5904\u91cc\uff0c\u81ea\u5df1\uff0c\u65e9\u5df2\u7ecf\u4e0d\u5b58\u5728\u4e86"});
就是输出一言的返回了,恍然大悟。完整代码
<span class="hitokoto" id="hitokoto" style="display:none">Loading...</span>
<div id="hjsbox" style="display:none">
</div>
<script>
setTimeout("getkoto()",1000);
var t;
function getkoto(){
var hjs = document.createElement('script');
hjs.setAttribute('id', 'hjs');
hjs.setAttribute('src', 'https://api.lwl12.com/hitokoto/main/get?encode=json');
document.getElementById("hjsbox").appendChild(hjs);
t=setTimeout("getkoto()",10000);
}
function echokoto(result){
var hc = eval(result);
//$("#hitokoto").fadeTo(300,0);
document.getElementById("hitokoto").innerHTML = hc.hitokoto;
//$("#hitokoto").fadeTo(300,0.75);
}
</script>
即使再简单,不在我的知识范围都是困难的。
lwl一言的句子好像并不那么有趣。
乱码
https://www.jinrishici.com
jaz