You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
72 lines
2.4 KiB
72 lines
2.4 KiB
/** |
|
* 基于Bot跟Machete的TaJian对接 |
|
* 按filestie.io标准把Bot爬虫返回的数据格式化保存为.url及其说明文件 |
|
*/ |
|
import common from './common.mjs'; |
|
import fs from 'node:fs'; |
|
import { writeFile } from 'node:fs/promises'; |
|
import path from 'node:path'; |
|
|
|
class TaJian { |
|
|
|
constructor(data_save_dir) { |
|
this.save_dir = data_save_dir; |
|
} |
|
|
|
/* |
|
* Example: |
|
[InternetShortcut] |
|
URL=https://microsoft.com/ |
|
*/ |
|
async saveUrlShortcut(filename, data) { |
|
try { |
|
|
|
const dirPath = path.resolve(this.save_dir); |
|
const filepath = `${dirPath}/${filename}.url`; |
|
|
|
const shortUrlContent = `\[InternetShortcut\] |
|
URL=${data.url} |
|
`; |
|
await writeFile(filepath, shortUrlContent, { encoding: 'utf8' }); |
|
}catch(error) { |
|
console.error('Save short url file failed: %s', error); |
|
return false; |
|
} |
|
|
|
return true; |
|
} |
|
|
|
async saveDescriptionFiles(filename, data) { |
|
try { |
|
const dirPath = path.resolve(this.save_dir); |
|
|
|
//save title |
|
let filepath = `${dirPath}/${filename}_title.txt`; |
|
let content = data.title; |
|
await writeFile(filepath, content, { encoding: 'utf8' }); |
|
|
|
//save cover image |
|
if (typeof(data.cover_base64) != 'undefined' && data.cover_base64) { |
|
filepath = `${dirPath}/${filename}.${data.cover_type}`; |
|
content = Buffer.from(data.cover_base64, "base64"); //保存图片文件 |
|
await writeFile(filepath, content, { encoding: 'utf8' }); |
|
|
|
filepath = `${dirPath}/${filename}_cover.txt`; |
|
content = `${filename}.${data.cover_type}`; //保存图片路径 |
|
await writeFile(filepath, content, { encoding: 'utf8' }); |
|
}else if (typeof(data.cover) != 'undefined' && data.cover) { |
|
filepath = `${dirPath}/${filename}_cover.txt`; |
|
content = data.cover; //保存图片网址 |
|
await writeFile(filepath, content, { encoding: 'utf8' }); |
|
} |
|
}catch(error) { |
|
console.error('Save description files failed: %s', error); |
|
return false; |
|
} |
|
|
|
return true; |
|
} |
|
|
|
} |
|
|
|
export default TaJian;
|
|
|