Skip to content

Instantly share code, notes, and snippets.

@bluelovers
Last active January 28, 2018 10:49
Show Gist options
  • Save bluelovers/f00347e33208428d0ab23150952c6935 to your computer and use it in GitHub Desktop.
Save bluelovers/f00347e33208428d0ab23150952c6935 to your computer and use it in GitHub Desktop.
合併小說txt為單一整合txt
#!/usr/bin/env node
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const novelGlobby = require("node-novel-globby");
const path = require("path");
const Promise = require("bluebird");
const node_novel_info_1 = require("node-novel-info");
const crlf_normalize_1 = require("crlf-normalize");
const fs_iconv_1 = require("fs-iconv");
let TXT_PATH;
TXT_PATH = path.join(process.cwd());
let globby_patterns;
let globby_options = {
cwd: TXT_PATH,
useDefaultPatternsExclude: true,
};
{
let ret = novelGlobby.getOptions(globby_options);
[globby_patterns, globby_options] = [ret.patterns, ret.options];
}
(async () => {
let meta;
const PATH_CWD = globby_options.cwd || process.cwd();
console.info(`PATH_CWD: ${PATH_CWD}\n`);
meta = await novelGlobby.globbyASync([
'README.md',
], globby_options)
.then(novelGlobby.returnGlobList)
.tap(function (ls) {
})
.then(async function (ls) {
let data = await fs_iconv_1.default.readFile(ls[0]);
return node_novel_info_1.mdconf_parse(data, {
throw: false,
});
})
.tap(function (ls) {
})
.catch(function () {
console.warn('[SKIP] README.md not exists!');
});
let hr_len = 15;
let hr1 = '='.repeat(hr_len);
let hr2 = '-'.repeat(hr_len);
await novelGlobby.globbyASync(globby_options)
.tap(function (ls) {
})
.then(function (_ls) {
const eol = '\n';
if (!_ls || !Object.keys(_ls).length) {
return Promise.reject();
}
let count_f = 0;
let count_d = 0;
return Promise
.mapSeries(Object.keys(_ls), async function (val_dir, index, len) {
let ls = _ls[val_dir];
let volume_title = ls[0].volume_title;
let txt = `${hr1}CHECK\n${volume_title}\n${hr1}\n`;
let a = await Promise.mapSeries(ls, async function (row) {
let data = await fs_iconv_1.default.readFile(row.path);
let txt = `${hr2}BEGIN\n${row.chapter_title}\n${hr2}BODY\n\n${data}\n\n${hr2}END\n\n`;
count_f++;
return txt;
});
a.unshift(txt);
count_d++;
return a.join(eol);
})
.then(async function (a) {
if (meta && meta.novel) {
let txt = `${meta.novel.title}\n${meta.novel.author}\n${meta.novel.source || ''}\n\n${meta.novel.preface}\n\n`;
let a2 = [];
if (Array.isArray(meta.contribute) && meta.contribute.length) {
a2.push(meta.contribute.join('、') + "\n\n");
}
if (a2.length) {
a2.unshift(hr2);
txt += a2.join(crlf_normalize_1.CRLF);
}
a.unshift(txt);
}
let txt = a.join(eol);
txt = crlf_normalize_1.crlf(txt, crlf_normalize_1.CRLF);
let filename = 'temp';
if (meta && meta.novel && meta.novel.title) {
filename = meta.novel.title;
}
let filename2 = fs_iconv_1.trimFilename(filename)
.replace(/\./, '_')
.replace(/^[_+\-]+|[_+\-]+$/, '');
filename2 = fs_iconv_1.trimFilename(filename2.split('').slice(0, 10).join(''));
if (!filename2) {
console.log(`Bad Filename: ${filename} => ${filename2}`);
filename2 = 'temp';
}
filename2 = `${filename2}.out.txt`;
await fs_iconv_1.default.outputFile(path.join(PATH_CWD, `out/${filename2}`), txt);
;
return filename2;
})
.tap(function (filename) {
console.log('[DONE] done.');
console.info(`Total D: ${count_d}\nTotal F: ${count_f}\n\n[FILENAME] ${filename}`);
})
.catchThrow(function (e) {
console.error(`[ERROR] something wrong!!`);
console.trace(e);
return e;
});
})
.catch(function (e) {
console.error(`[ERROR] can't found any file in '${PATH_CWD}'`);
console.trace(e);
});
})();
{
"name": "tmp-npx-txt-merge",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"bin": "./index.js",
"keywords": [],
"author": "",
"license": "ISC",
"dependencies": {
"crlf-normalize": "^1.0.0",
"fs-iconv": "^1.1.3",
"moment": "^2.20.1",
"node-novel-globby": "^1.3.1",
"node-novel-info": "^1.0.1"
}
}
npx https://gist.github.com/bluelovers/f00347e33208428d0ab23150952c6935
虫虫酱むいむいたん
無為無策の雪ノ葉
http://ncode.syosetu.com/n4069cm/
主角(男)某天醒來發現自己變成一條蟲,然後機緣巧合之下得到數個外掛。在遇到落難的冒險者シロネ(半森人族(elf))後,開始了冒險者的生活。然而於某次意外近乎失去所有,身外內的魔石、隨身的裝備物品通通都被奪去、在這個連話都無法多說的情況下,為了變得更強去奪回所有,向著攻略世界八大迷宮的目標出發(誤)。然而好境不常,三人的團隊最終被分開...?(第三章中段)
伴隨著故事的進展,每章主角都會跟八大迷宮拉上關係,對於玩過各種RPG的讀者們迷宮的設定應該不會陌生。在各種事件裡認識到不同的人然後一起攻略迷宮,開了商會甚至拯救朋友。世界的真相以及陰謀在無能的主角的努力之下逐漸被揭開...
---------------
信仰狂熱者
===============CHECK
1  プロローグ
===============
---------------BEGIN
1-1 本当の意味で魔法使いになった
---------------BODY
1-1 成为了真正意义上的魔法师(序)
自从醒过来后就已经不是很明白的情况。
 总感觉视野很奇怪。
 就本来而言,视力也不能算是很好,现在却真正的几乎只看到朦胧的象是眼睛变得看不见了一样。在这之前,视野更是变得十分奇怪。
 就象电脑的多显示器一样的视野的右边三个,左边三个画面的感觉。真是的,就算能看见的地方增加却也不知道该看着何处才好弄得脑袋很混乱啊。
 总之先遵从着本能吃着在脚下大大地张开的叶子吧。我啃我啃我啃我啃。
 再一次,确认现状。
 从昨天的夜露堆积而成的水珠上看见了倒影在上面的自己的样子。青色的外皮和一节节的身体,不知道是手还是脚的左右各四条的肢体……嘛嘛就是芋虫啦,万分感谢。呃,这是怎样啊—!? 为什么是芋虫!? 嘛,嘛,不要想太多继续吃着叶子吧。我啃我啃我啃我啃。
 进一步确认现状。现在,自己好象是乘在很大的叶子上面POI。而且叶子也好象能够很美味地吃掉。我啃我啃我啃我啃。是只有吃完就睡的生活。
 再者注意到一件事。脚下的叶子无论吃了多少(話虽如此但对叶子而言自己吃的份儿也不过是开了小孔的尺寸)到了第二天也会復原。次日,本应是被吃掉而弄出来的小孔会不见了的呢。就是说为食粮感到烦恼什么的根本不用!综合上述我再啃再啃再啃再啃。
 接着一直我啃我啃的吃着的同时思考了关于现状的各种各样的东西。(原文:「さてもしゃもしゃ食べているだけでは何なので色々現状を考えることにする」)
 睡醒起来后就变得现在的样子了。
 不知不觉地累积着压力的暗淡的工作结束后(有压力很多的就是现代社会呢)在便利店买了晚饭和水果蛋糕……对了,我想起来了!
 那是生日的前一天。一个人寂寞地为了生日而来到便利店买了蛋糕,终于自己还是成为了魔法师的一员了呢,然后悲哀地在被褥中哭到睡着的呢。因为已经,想不到自己会成为魔術师而真的太伤心了。
 年龄=没女朋友。
 真的,没能受欢迎的。
 自己来说也太那啥,不过并不认为样子太差。稍微有点中性的背影没有很高但有着看不出年龄来的几分年轻感的普通中等程度的外表。
 性格方面也不算不好……嗯,大概,我想是不要紧的,是想要这样想的。确实馬上就有『去死掉比较好吧』或者『自灭吧』之类的被这样说过的记忆,不过这是普通的吧? 对吧?是公司的后辈的孩子也能亲近的……不对,那个家伙只有在请客时才是「真不愧是,前辈呢。我也想变得象前辈一样」的感觉说着好孩子的話,不过馬上就「呃,前辈,这个年纪还是一个女朋友也不没有吗?m9(^Д^)」「因为一起回家而被误解之类的会感到困扰的—」或是竟然会这样调戏我的『去死掉比较好吧』的有着这一面的人物呢。呃,我或许,其实没那么被仰慕着? 哎? 嘛,这个那个地说着离题了吧但到生日的前一天为止的记忆是有的啊。
 那么怎么会变成这样了呢。
 ……嘛,因为不太明白所以来吃叶子吧。我啃我啃我啃。
 重覆着我啃我啃的吃完就睡。
 然后变化突然地造访了。
 视野变得象『霾雾』的一样。最初想是起雾了吧,是这样想的,但是怎么也和雾有着不同的感觉。颜色时已红色,时而蓝色,时而黑色……够了,最初是终于都疯了吗!的这样想的。
 遵从着本能,把那个雾?大口吸入。进来肚子后意识到有的不可思意的器官在吸收。接連不断地吸入。为什么,不明白自己会那样做的原因,因为这就是本能吧!
 不知道已经吸入了多少。一直累积积存起来的神秘的雾在谜之器官中精制后吐出来。
——《吐絲》——
 从口中吐出絲了……那个? 不管怎样总之思考一下吧。
 这个,虽是从口里出来的感觉却不是口而是身体里的谜之器官吧。
 吐出几次絲线这个那个地试着确认。
 无法連续吐出絲线。这是象重置时间(recasting time)那样的东西吗?
(译:上面括号中的英语是原文直译,字典上是重铸时间,英转日的名词)
 为了弄出絲线而累了。怎样说呢感到了叫象是心的什么东西被削减的感觉。
 能够以自己的意志改变絲线的长度,吐出来的力度也能够改变。越是伸长便越来越累的感觉。
 吐出的絲线是(連接住口中)那絲线有着粘力,能够贴上各种各样的东西上。快要完全变成象某蜘蛛人的那样了。
 切断絲线的話粘力会消失。变成非常结实漂亮的絲线那样的感觉。
 絲线吐得累了,就吃在脚下的叶子,睡一觉,起来又吐出絲线,反覆地实验。
 一次又一次地吐出絲线后象延迟时间的间隙变短了变得可以連续线吐出来了……。技能等級提高了的感觉。
 一次又一次地吐出絲线时注意到的,不过这个是象魔法的什么吗? 从周圍看上去象是从口中出来的样子,不过却是从积蓄着不可意义的能源的谜之器官中放出来的『不是平常的物理法则』的呢—。
 虽然遵从着芋虫的本能放出絲线但如果能够熟练后或者可以生出其他的什么吗? 那是『奇迹在闪耀的一刻还是必然呢』这样的词组浮现出来的一时的想法。
 如果,这个世界是象异世界的什么的話,飘浮的雾一样的东西是象作为魔力的什么吗……!?
 那是象轻小说一样的厨二的一时的想法。
 首先是联想冰吧。在游戏中不擅长的事很多而冰魔術则是因为自己非常喜欢,想象冰吧。
 用吐出絲线时一样的感觉打算把冰精炼出来……但不是很顺利。不过,在谜之器官里有什么快要出来了的感觉。是想象力是不足,还是方法什么的不足……。
 反覆几次进行错误的尝试,终于有了一些反应。大概,这个,就是想象力吧。
 首先联想水。然后想象把水冻结起来变成冰柱的力量。
——[冰刺]——
 不知什么时候手的在自己眼前有手掌大小的小冰枪飘浮着。
 这样,做到了!
 呜啊啊啊啊,是魔法。是魔法啊!
 以看得见的形式的在现实中的魔法啊!
 那个瞬间,我以真正的意义上成为了魔法师。
 然后又突然伴随着象是全部气力被取走一样的感觉一起我昏了过去。
---------------END
---------------BEGIN
1-2 起
---------------BODY
1-2 起
先吃饭吧,もしゃもしゃ
所以就这样.把握现状。
有魔法的是异世界?啊,啊。这是经常有的异世界转生吗。不过不是人,是芋虫转生啦,要是婴儿转生之类就太好了。
啊?也就是说,难道不是芋虫,而是芋虫型的怪物!?
但是嗯,芋虫型的怪物是初期的杂鱼,只有在中盘的程度的雑魚怪物以外的印象。说起来,我呀,雷尼○数据的一面吧,邮件○ンタ。(俺ってばルネ○タぽいよね、ル○ンタ。这句真心不懂,作者是○了什么名称)雑魚怪物转生之类的,这样的感觉啊。真的没有现实感啊。
在上位类的等級上升之类的没有吗?因此这样的还是饶了雑魚的我吧。虽说有魔法,但是也没有提升等級吗?
或着青虫怪兽是上位怪兽的可能性!?这是一次会呢!?
反正,在这里各种各样的想法也没有回答……
这个要是不去人类的村子里看一下也不会有结果的吧(不过这也要再有人类的村子的前提下)不过嘛,如果真的要去人类的村子,也要在某种程度上积蓄【增长?】力量才行,不然还是很可怕的,毕竟我是个怪物【魔兽?】啊(毕竟还是在有魔法的世界里)
首先是力量。
在任何情况下是这样的。幸运的是,吃饭是可以靠在脚下的叶子吃就好的,活下去没有困难 。即使是千年我也要忍耐。HAHAHA
即使放出魔法和吐絲累了,只要吃脚下的叶子就可以回復活力
真的,很厉害的叶子!这个,真的,是什么叶子啊。
叶子,但要说叶子,但就在脚下的叶子本身的尺寸是自己的身高为基准的横芋虫8只分,纵芋虫10只分左右。稍微有一坐学校的教室的宽广的感觉就好了。
在那宽广的广袤的中,使用絲像某蜘蛛人一样似的移动。
因为树叶是眼睛的近视了的我也能充分看到尽头的大小,注意不要掉下。如果掉下的話就即死了吧……。
啊,然后,这个身体,走的非常慢。所以无论如何都只能用吐絲来移动啊,总之就是移动=吐絲的练习。总有一天我会说『樱花的时速是5公里,真是厉害啊』的吧。是的,叶子的尺寸,但我想起了自己以外也有同伴。叶子的测量尺寸的时候注意到了,有很多的叶子上有和自己相像的芋虫在了。从一端看见。紧接着左右的距离,和我一样もしゃもしゃ地吃着叶子的身影。哎呀,这下不寂寞了啊。虽然身体颜色不是像自己这样的青色而是绿色的,但是这个种族是没有错的。嗯,没错。
他?的名字是《青虫次郎》你吧。(自己是长子,他?在次子这一事上,)今后也要观察他的动向。
训练的成果,魔法使冰块增大到手掌大增加到6个左右并能浮起了啊。
但问题发生。
把冰块和其他的叶子碰上也不会有一点伤痕……。也不会摇晃。可见隐约发着青光的冰块破碎散落。或许,我的魔法是很弱的吗?不,还没有!或许叶子有超耐久力的可能性!
就是在这样的感觉中每天每天都在练习……。
那一天,像往常一样地用絲线的移动练习,魔法的练习。这时从远处看,顺着树枝有什么人来了。虽然很想待在树叶的上面,但是这样的事是第一次。
在和我的地方有相当的距离,现在以的自己的视力的話大体上的身姿以外不明白,不过,在前头穿的皮鎧甲的女孩子?(金色的长头发、女孩子和判断)都警戒着什么,慢慢地走着。其次是重量的金属鎧甲和大块的背包。我担心树枝不会折断。最后穿长袍的男人?这个距离看只戴着风帽吗?左右以外的以外的没有判别。
这是那个。盗贼,戦士,魔法师的冒险者队伍把? ,我想接近 。想跟别人搭話!
她们走在树的枝头。和芋虫次郎君的住所的叶子更近了呢。哦,次郎君好象注意到了冒险者。你的方法是怎样的呢?期待着的呢……。
慢慢的女盗贼?向靠近的吐絲。女盗贼被絲捆住。不,不,突然地吐絲,次郎君你也很吃惊,应该是警戒的女盗贼先生没有注意到了 被次郎君的絲缠绕,是无能的吗?
然后一瞬间。
在女盗贼后面的戦士一瞬间就消除了与次郎君的间隔。然后把手里的长剑一闪。次郎君变成了两个。
……哈啊?
这个、我的声音。问答无用。确实突然吐絲的次郎是不对,但立馬杀死。真的,没有。
虽然说想接近,但是这是不可能的。真的,没有办法。
戦士拿着长剑和后面的魔法师用魔法把女 盗贼身上缠絡 的絲线焼掉切断了。女人盗贼总觉得看上去非常生气。
三人走在树枝上。然后,就这样沿着树枝和树叶进入了树的里面。啊,那样的地方有树吗?……。如果努力的話我也可以去。
要是再稍微修行下的話就去看一下吧。
不,真的,如果能做到的話,我也会变成次郎君那样。哈……。
不过次郎君 ,退场太快了。你的事我不会忘的。
---------------END
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment