zhaoolee commit

This commit is contained in:
zhaoolee
2021-05-22 23:46:58 +08:00
parent 264b601ad9
commit 22f94a0fa4
95 changed files with 421 additions and 143 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
007Tiger_胖虎🐯BQB.zip Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
011Dog_狗🐶BQB.zip Normal file

Binary file not shown.

BIN
012Parrot_鹦鹉🐦BQB.zip Normal file

Binary file not shown.

Binary file not shown.

BIN
014Pig_猪🐖BQB.zip Normal file

Binary file not shown.

Binary file not shown.

BIN
016spray_喷雾🚿BQB.zip Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
027Turtle_乌龟🐢BQB.zip Normal file

Binary file not shown.

Binary file not shown.

BIN
029Pigeon_鸽子🕊BQB.zip Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
033Eat_吃🍔BQB.zip Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
036Pikachu_皮卡丘BQB.zip Normal file

Binary file not shown.

BIN
037XunLu_鲁迅BQB.zip Normal file

Binary file not shown.

BIN
038Jacky_张学友BQB.zip Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
042HanZhang_张翰BQB.zip Normal file

Binary file not shown.

BIN
043Altman_奥特曼BQB.zip Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
047ShowSword亮剑BQB.zip Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
051Call_打电话BQB.zip Normal file

Binary file not shown.

Binary file not shown.

BIN
053University大学BQB.zip Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
060MurCat_Mur猫😺BQB.zip Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
064Trump_特朗普BQB.zip Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
068Aqua阿库娅BQB.zip Normal file

Binary file not shown.

BIN
069Waves后浪🌊BQB.zip Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
076Moe可爱萝莉_BQB.zip Normal file

Binary file not shown.

BIN
077TuHi_土嗨_BQB.zip Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
081WuGang_吴刚_BQB.zip Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

194
build.js
View File

@@ -1,68 +1,105 @@
const fs = require("fs");
const path = require("path");
const moment = require('moment');
const fse = require("fs-extra");
const archiver = require('archiver');
// 可以略过的md
const ignore_md = ["000readme-chinesebqb.md"];
// 可以配置
const user_name = "zhaoolee";
const repo_name = "ChineseBQB";
const N = "\n";
// 根据BQB结尾的文件夹自动生成模板文件
async function create_bqb_md(){
return new Promise((resolve, reject)=>{
async function create_zip(md_dir_list) {
console.log("create_zip=md_dir_list=>>", md_dir_list)
for (let i = 0; i < md_dir_list.length; i++) {
if (fse.existsSync(path.join(__dirname, md_dir_list[i])) + ".zip") {
fse.removeSync(path.join(__dirname, md_dir_list[i]) + ".zip")
}
await new Promise((resolve, reject) => {
const output = fs.createWriteStream(path.join(__dirname, md_dir_list[i]) + ".zip");
const archive = archiver('zip', {
zlib: { level: 9 } // Sets the compression level.
});
archive.on('error', function (err) {
throw err;
});
output.on('close', function () {
console.log(archive.pointer() + ' total bytes');
resolve();
});
archive.pipe(output);
archive.directory(path.join(__dirname, md_dir_list[i]), false); // 文件夹压缩
archive.finalize();
})
}
}
// 根据BQB结尾的文件夹自动生成模板文件
async function create_bqb_md() {
return new Promise(async (resolve, reject) => {
let file_list = fs.readdirSync(path.join(__dirname, "./"));
let md_dir_list = [];
file_list.map((file_name_value, file_name_index)=>{
if(file_name_value.endsWith("BQB")){
file_list.map((file_name_value, file_name_index) => {
if (file_name_value.endsWith("BQB")) {
md_dir_list.push(file_name_value);
}
});
console.log("md_dir_list::", md_dir_list);
// 移除旧的md_dir, 创建新的md_dir
await create_zip(md_dir_list)
// 如果对应的md文件已经存在则略过, 如果不存在,则创建一个
for (let i = 0; i<md_dir_list.length; i++){
let tmp_md_path = "./source/_posts/"+md_dir_list[i]+".md";
fs.access(tmp_md_path, function(err){
if(err){
for (let i = 0; i < md_dir_list.length; i++) {
let tmp_md_path = "./chinesebqb-md/" + md_dir_list[i] + ".md";
fs.access(tmp_md_path, function (err) {
if (err) {
let top = md_dir_list[i].slice(0, 3);
top = 1000 - parseInt(top);
if(isNaN(top) === true){
if (isNaN(top) === true) {
top = 0;
}
console.log("top::", top);
// 构建内容
let content = `---${
"\n"}title: ${md_dir_list[i]}${
"\n"}top: ${top}${
"\n"}tags:${
"\n"}- ${md_dir_list[i]}${
"\n"}categories:${
"\n"}- ${md_dir_list[i]}${
"\n"}${
"\n"}---${
"\n"}${
"\n"}------${
"\n"}${
"\n"}<!-- more -->${
"\n"}`;
let content = `---${"\n"}title: ${md_dir_list[i]}${"\n"}---${"\n"}${"\n"}------${"\n"}${"## 以下为收录的表情包库"}${"\n"}${"\n"}<!-- more -->${"\n"}`;
// 去创建文件
fs.writeFileSync(tmp_md_path, content);
console.log(tmp_md_path, "创建完成");
if(i === md_dir_list.length-1){
if (i === md_dir_list.length - 1) {
console.log("md文件已初始化完成");
resolve();
}
}else{
} else {
console.log(tmp_md_path, "已经存在! 无需创建");
if(i === md_dir_list.length-1){
if (i === md_dir_list.length - 1) {
console.log("md文件已初始化完成");
resolve();
}
@@ -78,11 +115,11 @@ async function create_bqb_md(){
// 读取_posts下面已BQB.md结尾的文件
function get_bqb_md_name_list(){
let file_list = fs.readdirSync(path.join(__dirname, "./source/_posts/"));
function get_bqb_md_name_list() {
let file_list = fs.readdirSync(path.join(__dirname, "./chinesebqb-md/"));
let md_list = [];
file_list.map((file_name_value, file_name_index)=>{
if(file_name_value.endsWith(".md")){
file_list.map((file_name_value, file_name_index) => {
if (file_name_value.endsWith(".md") && (ignore_md.indexOf(file_name_value) === -1)) {
md_list.push(file_name_value);
}
});
@@ -91,14 +128,16 @@ function get_bqb_md_name_list(){
}
// 读取表情包目录下的图片, 并拼接出图片未来的url
function get_images_src(md_name){
function get_images_src(md_name) {
let dir_name = md_name.slice(0, md_name.length-3);
files = fs.readdirSync(path.join(__dirname, "./"+dir_name));
let dir_name = md_name.slice(0, md_name.length - 3);
files = fs.readdirSync(path.join(__dirname, "./" + dir_name));
images = [];
files.map((file_name, file_index)=> {
if(file_name.endsWith(".jpeg")||file_name.endsWith(".JPEG")||file_name.endsWith(".jpg")||file_name.endsWith(".gif")||file_name.endsWith(".png")||file_name.endsWith(".JPG")||file_name.endsWith(".GIF")||file_name.endsWith(".PNG")||file_name.endsWith(".webp")){
let image_src = "https://www.v2fy.com/asset/0i/"+repo_name+"/"+ dir_name+"/"+file_name;
files.map((file_name, file_index) => {
if (file_name.endsWith(".jpeg") || file_name.endsWith(".jpg") || file_name.endsWith(".gif") || file_name.endsWith(".png") || file_name.endsWith(".JPEG") || file_name.endsWith(".JPG") || file_name.endsWith(".GIF") || file_name.endsWith(".PNG") || file_name.endsWith(".webp")) {
let image_src = "https://www.v2fy.com/asset/0i/" + repo_name + "/" + dir_name + "/" + file_name;
images.push(image_src);
}
});
@@ -112,24 +151,24 @@ function get_images_src(md_name){
}
// 将images信息转换为md文本信息
function image_to_md_info(images){
function image_to_md_info(images) {
let all_md_info = "";
images.map((image_info, image_index)=>{
images.map((image_info, image_index) => {
let md_info = `<img height='200px' style='height:200px;' src='/ChineseBQB/images/loading.png' data-original='${image_info}' /><br/>`;
let md_info = `<img height='200px' style='height:200px;' src='${image_info}' data-original='${image_info}' /><br/>`;
md_info = md_info + `<h6>下载地址: [${image_info}](${image_info})</h6><hr/>`;
all_md_info = all_md_info+md_info;
all_md_info = all_md_info + md_info;
});
// console.log("all_md_info:", all_md_info);
return all_md_info;
}
// 将md_info 追加到 对应文件的 <!-- more --> 之后
async function md_info_replace_more_info(md_name_value, md_info){
async function md_info_replace_more_info(md_name_value, md_info) {
// file_path
let file_path = path.join(__dirname, "./source/_posts/"+md_name_value);
let file_path = path.join(__dirname, "./chinesebqb-md/" + md_name_value);
// 原有的md_info
let old_md_info = fs.readFileSync(file_path).toString();
@@ -159,9 +198,9 @@ async function md_info_replace_more_info(md_name_value, md_info){
}
// 处理readme
class ReadmeContents{
constructor(){
this.state={
class ReadmeContents {
constructor() {
this.state = {
readme_contents_info: []
};
this.push_readme_contents_info = this.push_readme_contents_info.bind(this);
@@ -171,33 +210,30 @@ class ReadmeContents{
}
// 为目录数组增加元素
push_readme_contents_info(ele){
push_readme_contents_info(ele) {
this.state.readme_contents_info.push(ele);
return this.state.readme_contents_info;
}
// 获取目录数组
get_readme_contents_info(){
get_readme_contents_info() {
return this.state.readme_contents_info;
}
create_readme_content_md(){
create_readme_content_md() {
// 统计所有图片的数量
let all_images_number = 0;
for(let i = 0; i<this.state.readme_contents_info.length; i++){
for (let i = 0; i < this.state.readme_contents_info.length; i++) {
all_images_number += this.state.readme_contents_info[i]["images_number"];
}
// 定义标题
let title = `表情包目录(共收录${all_images_number}张表情包)Emoticon package directory (commonly included ${all_images_number} emoticon pack)`;
let title = `表情包目录(共收录${all_images_number}张表情包)Emoticon package directory (commonly included ${all_images_number} emoticon pack)`;
// 定义标题行
let title_row = `${
"\n\n"}| Example(示例) | 链接(Entrance link) | ${
"\n"}| :---: | :---: |${
"\n"}`;
let title_row = `${"\n\n"}| Example(示例) | 链接(Entrance link) | ${"\n"}| :---: | :---: |${"\n"}`;
// 定义单行数据 图片样式/链接样式
let all_row_data = "";
@@ -215,11 +251,11 @@ class ReadmeContents{
// 倒序
for(let n = (this.state.readme_contents_info.length)-1; n>-1; n--){
for (let n = (this.state.readme_contents_info.length) - 1; n > -1; n--) {
let dir_name = [...(this.state.readme_contents_info[n].readme_contents_info_href.split("/"))].reverse()[1];
console.log(dir_name);
let data_row = `| <img height='100px' style='height:100px;' src=${this.state.readme_contents_info[n].readme_contents_info_img} /> | [${dir_name}(已收录${this.state.readme_contents_info[n].images_number}张)](${this.state.readme_contents_info[n].readme_contents_info_href}) |${"\n"}`;
all_row_data+=data_row;
let data_row = `| <img height='100px' style='height:100px;' src='${this.state.readme_contents_info[n].readme_contents_info_img}' /> | [${dir_name}(已收录${this.state.readme_contents_info[n].images_number}张)](${this.state.readme_contents_info[n].readme_contents_info_href}) |${"\n"}`;
all_row_data += data_row;
}
@@ -232,7 +268,7 @@ class ReadmeContents{
// 拼接
let all_table_data = title+title_row+all_row_data+now_date_desc;
let all_table_data = title + title_row + all_row_data + now_date_desc;
// 返回
@@ -244,7 +280,7 @@ class ReadmeContents{
}
// 更新readme信息
async update_readme(){
async update_readme() {
// 获取README中需要被替换的部分
let readme_content = fs.readFileSync(path.join(__dirname, "chinesebqb-md", "000readme-chinesebqb.md")).toString();
@@ -273,7 +309,7 @@ class ReadmeContents{
}
async function main(){
async function main() {
// 初始化md文件
await create_bqb_md();
@@ -283,30 +319,30 @@ async function main(){
let readme_contents_obj = new ReadmeContents();
await md_name_list.map(async (md_name_value, md_name_index)=> {
await md_name_list.map(async (md_name_value, md_name_index) => {
// 初始化当前目录信息
let readme_contents_info_obj = {
readme_contents_info_img: "",
readme_contents_info_href: "",
images_number:0
images_number: 0
};
let images = await get_images_src(md_name_value);
readme_contents_info_obj.images_number = images.length;
// 通过images生成md文本
let md_info = image_to_md_info(images);
// 将images信息转换为md信息, 并写入md文件
await md_info_replace_more_info(md_name_value, md_info);
// 目录索引图获取: 获取以0命名的图片信息,写入readme_contents_info_obj.readme_contents_info_obj
let images = await get_images_src(md_name_value);
readme_contents_info_obj.images_number = images.length;
// 通过images生成md文本
let md_info = image_to_md_info(images);
// 将images信息转换为md信息, 并写入md文件
await md_info_replace_more_info(md_name_value, md_info);
// 目录索引图获取: 获取以0命名的图片信息,写入readme_contents_info_obj.readme_contents_info_obj
for (let i = 0; i<images.length; i++){
for (let i = 0; i < images.length; i++) {
let file_name = [...(images[i].split("/"))].pop();
if(file_name.startsWith("0.")){
if (file_name.startsWith("000000")) {
readme_contents_info_obj.readme_contents_info_img = images[i];
}
// 如果没有以0.命名的图片, 则按照默认排序, 取第一张
if((i === images.length-1)&&(file_name.startsWith("0.")===false)){
if ((i === images.length - 1) && (file_name.startsWith("000000") === false)) {
readme_contents_info_obj.readme_contents_info_img = images[0];
}
@@ -316,15 +352,15 @@ async function main(){
// 页面链接获取
let dir_name = md_name_value.slice(0, md_name_value.length-3);
let dir_name = md_name_value.slice(0, md_name_value.length - 3);
let readme_contents_info_href = "https://"+ user_name +".github.io/" +repo_name + "/"+dir_name+"/";
let readme_contents_info_href = "https://www.v2fy.com/p/" + dir_name + "/";
readme_contents_info_obj.readme_contents_info_href = readme_contents_info_href;
readme_contents_obj.push_readme_contents_info(readme_contents_info_obj);
if(md_name_index === md_name_list.length-1){
if (md_name_index === md_name_list.length - 1) {
readme_contents_obj.update_readme();
}

View File

@@ -1,8 +0,0 @@
---
title: 075Vtuber虚拟youtuber_BQB
---
------
## 以下为收录的表情包库
<!-- more -->

357
package-lock.json generated Executable file → Normal file
View File

@@ -37,6 +37,58 @@
}
}
},
"archiver": {
"version": "5.3.0",
"resolved": "https://registry.npmjs.org/archiver/-/archiver-5.3.0.tgz",
"integrity": "sha512-iUw+oDwK0fgNpvveEsdQ0Ase6IIKztBJU2U0E9MzszMfmVVUyv1QJhS2ITW9ZCqx8dktAxVAjWWkKehuZE8OPg==",
"requires": {
"archiver-utils": "^2.1.0",
"async": "^3.2.0",
"buffer-crc32": "^0.2.1",
"readable-stream": "^3.6.0",
"readdir-glob": "^1.0.0",
"tar-stream": "^2.2.0",
"zip-stream": "^4.1.0"
}
},
"archiver-utils": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-2.1.0.tgz",
"integrity": "sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==",
"requires": {
"glob": "^7.1.4",
"graceful-fs": "^4.2.0",
"lazystream": "^1.0.0",
"lodash.defaults": "^4.2.0",
"lodash.difference": "^4.5.0",
"lodash.flatten": "^4.4.0",
"lodash.isplainobject": "^4.0.6",
"lodash.union": "^4.6.0",
"normalize-path": "^3.0.0",
"readable-stream": "^2.0.0"
},
"dependencies": {
"readable-stream": {
"version": "2.3.7",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
"integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
"requires": {
"core-util-is": "~1.0.0",
"inherits": "~2.0.3",
"isarray": "~1.0.0",
"process-nextick-args": "~2.0.0",
"safe-buffer": "~5.1.1",
"string_decoder": "~1.1.1",
"util-deprecate": "~1.0.1"
}
}
}
},
"async": {
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/async/-/async-3.2.0.tgz",
"integrity": "sha512-TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw=="
},
"axios": {
"version": "0.19.0",
"resolved": "https://registry.npmjs.org/axios/-/axios-0.19.0.tgz",
@@ -46,18 +98,33 @@
"is-buffer": "^2.0.2"
}
},
"balanced-match": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
"integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
},
"base64-js": {
"version": "1.5.1",
"resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
"integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA=="
},
"bl": {
"version": "1.2.3",
"resolved": "https://registry.npmjs.org/bl/-/bl-1.2.3.tgz",
"integrity": "sha512-pvcNpa0UU69UT341rO6AYy4FVAIkUHuZXRIWbq+zHnsVcRzDDjIAhGuuYoi0d//cwIwtt4pkpKycWEfjdV+vww==",
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz",
"integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==",
"requires": {
"readable-stream": "^2.3.5",
"safe-buffer": "^5.1.1"
"buffer": "^5.5.0",
"inherits": "^2.0.4",
"readable-stream": "^3.4.0"
}
},
"brace-expansion": {
"version": "1.1.11",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
"requires": {
"balanced-match": "^1.0.0",
"concat-map": "0.0.1"
}
},
"buffer": {
@@ -171,6 +238,22 @@
"resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
"integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ=="
},
"compress-commons": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-4.1.0.tgz",
"integrity": "sha512-ofaaLqfraD1YRTkrRKPCrGJ1pFeDG/MVCkVVV2FNGeWquSlqw5wOrwOfPQ1xF2u+blpeWASie5EubHz+vsNIgA==",
"requires": {
"buffer-crc32": "^0.2.13",
"crc32-stream": "^4.0.1",
"normalize-path": "^3.0.0",
"readable-stream": "^3.6.0"
}
},
"concat-map": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
"integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
},
"config-chain": {
"version": "1.1.12",
"resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.12.tgz",
@@ -186,13 +269,6 @@
"integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==",
"requires": {
"safe-buffer": "5.1.2"
},
"dependencies": {
"safe-buffer": {
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
"integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
}
}
},
"core-util-is": {
@@ -200,6 +276,24 @@
"resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
"integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
},
"crc-32": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.0.tgz",
"integrity": "sha512-1uBwHxF+Y/4yF5G48fwnKq6QsIXheor3ZLPT80yGBV1oEUwpPojlEhQbWKVw1VwcTQyMGHK1/XMmTjmlsmTTGA==",
"requires": {
"exit-on-epipe": "~1.0.1",
"printj": "~1.1.0"
}
},
"crc32-stream": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-4.0.2.tgz",
"integrity": "sha512-DxFZ/Hk473b/muq1VJ///PMNLj0ZMnzye9thBpmjpJKCc5eMgB95aK8zCGrGfQ90cWo561Te6HK9D+j4KPdM6w==",
"requires": {
"crc-32": "^1.2.0",
"readable-stream": "^3.4.0"
}
},
"debug": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
@@ -258,10 +352,47 @@
"tar-stream": "^1.5.2"
},
"dependencies": {
"bl": {
"version": "1.2.3",
"resolved": "https://registry.npmjs.org/bl/-/bl-1.2.3.tgz",
"integrity": "sha512-pvcNpa0UU69UT341rO6AYy4FVAIkUHuZXRIWbq+zHnsVcRzDDjIAhGuuYoi0d//cwIwtt4pkpKycWEfjdV+vww==",
"requires": {
"readable-stream": "^2.3.5",
"safe-buffer": "^5.1.1"
}
},
"file-type": {
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/file-type/-/file-type-5.2.0.tgz",
"integrity": "sha1-LdvqfHP/42No365J3DOMBYwritY="
},
"readable-stream": {
"version": "2.3.7",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
"integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
"requires": {
"core-util-is": "~1.0.0",
"inherits": "~2.0.3",
"isarray": "~1.0.0",
"process-nextick-args": "~2.0.0",
"safe-buffer": "~5.1.1",
"string_decoder": "~1.1.1",
"util-deprecate": "~1.0.1"
}
},
"tar-stream": {
"version": "1.6.2",
"resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.6.2.tgz",
"integrity": "sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A==",
"requires": {
"bl": "^1.0.0",
"buffer-alloc": "^1.2.0",
"end-of-stream": "^1.0.0",
"fs-constants": "^1.0.0",
"readable-stream": "^2.3.0",
"to-buffer": "^1.1.1",
"xtend": "^4.0.0"
}
}
}
},
@@ -375,6 +506,11 @@
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
"integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ="
},
"exit-on-epipe": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/exit-on-epipe/-/exit-on-epipe-1.0.1.tgz",
"integrity": "sha512-h2z5mrROTxce56S+pnvAV890uu7ls7f1kEvVGJbw1OlFH3/mlJ5bkXu0KRyW94v37zzHPiUd55iLn3DA7TjWpw=="
},
"ext-list": {
"version": "2.2.2",
"resolved": "https://registry.npmjs.org/ext-list/-/ext-list-2.2.2.tgz",
@@ -443,6 +579,22 @@
"requires": {
"inherits": "^2.0.1",
"readable-stream": "^2.0.0"
},
"dependencies": {
"readable-stream": {
"version": "2.3.7",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
"integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
"requires": {
"core-util-is": "~1.0.0",
"inherits": "~2.0.3",
"isarray": "~1.0.0",
"process-nextick-args": "~2.0.0",
"safe-buffer": "~5.1.1",
"string_decoder": "~1.1.1",
"util-deprecate": "~1.0.1"
}
}
}
},
"fs-constants": {
@@ -460,6 +612,11 @@
"universalify": "^0.1.0"
}
},
"fs.realpath": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
"integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
},
"get-caller-file": {
"version": "2.0.5",
"resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
@@ -478,6 +635,19 @@
"resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz",
"integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ="
},
"glob": {
"version": "7.1.7",
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz",
"integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==",
"requires": {
"fs.realpath": "^1.0.0",
"inflight": "^1.0.4",
"inherits": "2",
"minimatch": "^3.0.4",
"once": "^1.3.0",
"path-is-absolute": "^1.0.0"
}
},
"got": {
"version": "8.3.2",
"resolved": "https://registry.npmjs.org/got/-/got-8.3.2.tgz",
@@ -530,6 +700,15 @@
"resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
"integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA=="
},
"inflight": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
"integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
"requires": {
"once": "^1.3.0",
"wrappy": "1"
}
},
"inherits": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
@@ -619,6 +798,30 @@
"json-buffer": "3.0.0"
}
},
"lazystream": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.0.tgz",
"integrity": "sha1-9plf4PggOS9hOWvolGJAe7dxaOQ=",
"requires": {
"readable-stream": "^2.0.5"
},
"dependencies": {
"readable-stream": {
"version": "2.3.7",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
"integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
"requires": {
"core-util-is": "~1.0.0",
"inherits": "~2.0.3",
"isarray": "~1.0.0",
"process-nextick-args": "~2.0.0",
"safe-buffer": "~5.1.1",
"string_decoder": "~1.1.1",
"util-deprecate": "~1.0.1"
}
}
}
},
"locate-path": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
@@ -628,6 +831,31 @@
"path-exists": "^3.0.0"
}
},
"lodash.defaults": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz",
"integrity": "sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw="
},
"lodash.difference": {
"version": "4.5.0",
"resolved": "https://registry.npmjs.org/lodash.difference/-/lodash.difference-4.5.0.tgz",
"integrity": "sha1-nMtOUF1Ia5FlE0V3KIWi3yf9AXw="
},
"lodash.flatten": {
"version": "4.4.0",
"resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz",
"integrity": "sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8="
},
"lodash.isplainobject": {
"version": "4.0.6",
"resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz",
"integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs="
},
"lodash.union": {
"version": "4.6.0",
"resolved": "https://registry.npmjs.org/lodash.union/-/lodash.union-4.6.0.tgz",
"integrity": "sha1-SLtQiECfFvGCFmZkHETdGqrjzYg="
},
"lowercase-keys": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz",
@@ -642,15 +870,23 @@
}
},
"mime-db": {
"version": "1.45.0",
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.45.0.tgz",
"integrity": "sha512-CkqLUxUk15hofLoLyljJSrukZi8mAtgd+yE5uO4tqRZsdsAJKv0O+rFMhVDRJgozy+yG6md5KwuXhD4ocIoP+w=="
"version": "1.47.0",
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.47.0.tgz",
"integrity": "sha512-QBmA/G2y+IfeS4oktet3qRZ+P5kPhCKRXxXnQEudYqUaEioAU1/Lq2us3D/t1Jfo4hE9REQPrbB7K5sOczJVIw=="
},
"mimic-response": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz",
"integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ=="
},
"minimatch": {
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
"integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
"requires": {
"brace-expansion": "^1.1.7"
}
},
"moment": {
"version": "2.24.0",
"resolved": "https://registry.npmjs.org/moment/-/moment-2.24.0.tgz",
@@ -661,6 +897,11 @@
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
},
"normalize-path": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
"integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA=="
},
"normalize-url": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-2.0.1.tgz",
@@ -760,6 +1001,11 @@
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
"integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU="
},
"path-is-absolute": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
"integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18="
},
"pend": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz",
@@ -788,6 +1034,11 @@
"resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz",
"integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc="
},
"printj": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/printj/-/printj-1.1.2.tgz",
"integrity": "sha512-zA2SmoLaxZyArQTOPj5LXecR+RagfPSU5Kw1qP+jkWeNlrq+eJZyY2oS68SU1Z/7/myXM4lo9716laOFAVStCQ=="
},
"process-nextick-args": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
@@ -809,24 +1060,21 @@
}
},
"readable-stream": {
"version": "2.3.7",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
"integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
"version": "3.6.0",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
"integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
"requires": {
"core-util-is": "~1.0.0",
"inherits": "~2.0.3",
"isarray": "~1.0.0",
"process-nextick-args": "~2.0.0",
"safe-buffer": "~5.1.1",
"string_decoder": "~1.1.1",
"util-deprecate": "~1.0.1"
},
"dependencies": {
"safe-buffer": {
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
"integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
}
"inherits": "^2.0.3",
"string_decoder": "^1.1.1",
"util-deprecate": "^1.0.1"
}
},
"readdir-glob": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/readdir-glob/-/readdir-glob-1.1.1.tgz",
"integrity": "sha512-91/k1EzZwDx6HbERR+zucygRFfiPl2zkIYZtv3Jjr6Mn7SkKcVct8aVO+sSRiGMc6fLf72du3d92/uY63YPdEA==",
"requires": {
"minimatch": "^3.0.4"
}
},
"require-directory": {
@@ -853,9 +1101,9 @@
"integrity": "sha1-NoGgCYvYdQRI+L+dof7gn3djdCs="
},
"safe-buffer": {
"version": "5.2.1",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
"integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
"integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
},
"seek-bzip": {
"version": "1.0.6",
@@ -915,13 +1163,6 @@
"integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
"requires": {
"safe-buffer": "~5.1.0"
},
"dependencies": {
"safe-buffer": {
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
"integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
}
}
},
"strip-ansi": {
@@ -949,17 +1190,15 @@
}
},
"tar-stream": {
"version": "1.6.2",
"resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.6.2.tgz",
"integrity": "sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A==",
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz",
"integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==",
"requires": {
"bl": "^1.0.0",
"buffer-alloc": "^1.2.0",
"end-of-stream": "^1.0.0",
"bl": "^4.0.3",
"end-of-stream": "^1.4.1",
"fs-constants": "^1.0.0",
"readable-stream": "^2.3.0",
"to-buffer": "^1.1.1",
"xtend": "^4.0.0"
"inherits": "^2.0.3",
"readable-stream": "^3.1.1"
}
},
"through": {
@@ -1051,9 +1290,9 @@
"integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ=="
},
"y18n": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz",
"integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ=="
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz",
"integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ=="
},
"yargs": {
"version": "14.2.3",
@@ -1090,6 +1329,16 @@
"buffer-crc32": "~0.2.3",
"fd-slicer": "~1.1.0"
}
},
"zip-stream": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-4.1.0.tgz",
"integrity": "sha512-zshzwQW7gG7hjpBlgeQP9RuyPGNxvJdzR8SUM3QhxCnLjWN2E7j3dOvpeDcQoETfHx0urRS7EtmVToql7YpU4A==",
"requires": {
"archiver-utils": "^2.1.0",
"compress-commons": "^4.1.0",
"readable-stream": "^3.6.0"
}
}
}
}

View File

@@ -10,13 +10,14 @@
"test": "echo 'hello'",
"dev": "hexo server -p 5000",
"build": "node build.js && hexo clean && hexo g",
"push": "chmod -R 777 *BQB &&node create_bqb_image_list.js && node rsync.js && node build_2.js && node push.js && git add . && git commit -m 'zhaoolee commit' && git push"
"push": "chmod -R 777 *BQB &&node create_bqb_image_list.js && node rsync.js && node build.js && node push.js && git add . && git commit -m 'zhaoolee commit' && git push"
},
"dependencies": {
"archiver": "^5.3.0",
"axios": "0.19.0",
"chmodr": "1.2.0",
"download": "7.1.0",
"fs-extra": "8.1.0",
"fs-extra": "^8.1.0",
"moment": "2.24.0",
"rsync": "0.6.1",
"showdown": "1.9.1"

BIN
斗图之王BQB.zip Normal file

Binary file not shown.