1
0
wiki/Obsidian/Static/hitokoto.js
2024-08-30 12:29:55 +08:00

49 lines
1.4 KiB
JavaScript

const https = require('https');
/**
* 获取一言
* @param {Object} options - 请求的参数
* @returns {Promise<string>} 返回一言的句子
*/
async function getHitokoto(options = {}) {
return new Promise((resolve, reject) => {
const {
c, // 句子类型
encode = 'json', // 默认使用json格式
charset, // 字符集
callback, // 调用的异步函数
select, // 选择器
min_length, // 返回句子的最小长度
max_length // 返回句子的最大长度
} = options;
let url = 'https://v1.hitokoto.cn?';
if (c) url += `&c=${c}`;
if (encode) url += `&encode=${encode}`;
if (charset) url += `&charset=${charset}`;
if (callback) url += `&callback=${callback}`;
if (select) url += `&select=${select}`;
if (min_length) url += `&min_length=${min_length}`;
if (max_length) url += `&max_length=${max_length}`;
https.get(url, (resp) => {
let data = '';
resp.on('data', (chunk) => {
data += chunk;
});
resp.on('end', () => {
const result = JSON.parse(data);
resolve(result.hitokoto);
});
}).on("error", (err) => {
reject("Error: " + err.message);
});
});
}
module.exports = getHitokoto;