Add chapters 86-87: 普鲁兹发电站 and 特伦斯发电站, shift chapters 86-99 to 88-101
This commit is contained in:
parent
8b2fd701f0
commit
28a4c1885c
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"id": 90,
|
"id": 88,
|
||||||
"title": "安图恩攻坚战·黑色火山",
|
"title": "安图恩攻坚战·震颤的大地",
|
||||||
"subtitle": "黑色火山",
|
"subtitle": "震颤的大地",
|
||||||
"content": "摧毁所有黑雾之源,切断安徒恩的四肢后,第一阶段终于完成。\n\n\"现在进入第二阶段——灭杀安徒恩!\"梅尔文通过通讯器说道,\"林克,你们需要通过传送装置进入安徒恩体内,摧毁它的心脏!\"\n\n\"明白。\"林克点头。\n\n\"林克,这次让我和您一起去!\"米娅站了出来。\n\n\"太危险了...\"\n\n\"我不怕!\"米娅坚定地说,\"而且...我想和您一起面对最后的战斗!\"\n\n她握住林克的手,眼中满是坚定。\n\n林克看着她的眼神,最终点头:\"好,但一定要跟紧我。\"\n\n\"嗯!\"\n\n---\n\n传送装置启动,众人被传送到安徒恩体内。\n\n眼前的景象让所有人都震惊了——他们置身于一个巨大的生物体内,四周是蠕动的血肉和流动的能量液体。空气中弥漫着一股令人作呕的气味,温度高得惊人。\n\n\"这就是...使徒的体内?\"泽丁难以置信。\n\n\"太壮观了...\"马琳感叹。\n\n\"小心!\"林克突然喊道。\n\n一群奇怪的生物从血肉中涌出,它们是安徒恩体内的寄生生物,身体如同蠕动的肉块,口中长满锋利的牙齿。\n\n\"极·鬼剑术!\"\n\n林克一剑斩出,将寄生生物消灭。但更多的生物涌来,仿佛无穷无尽!\n\n\"这样下去不是办法!\"梅尔文喊道,\"我们必须找到心脏!\"\n\n\"米娅,能定位心脏的位置吗?\"\n\n\"可以!\"米娅闭上眼睛,通过数据分析,\"心脏在正前方五千米处!但路上有很多障碍!\"\n\n\"不管有什么障碍,都要突破!\"林克大喊,\"跟我来!\"\n\n---\n\n众人在安徒恩体内艰难前行,一路上战斗不断。\n\n他们穿过了血管通道,跨过了消化液湖泊,爬过了肺部气囊。每一处都充满了危险,但在林克的带领下,众人逐渐推进。\n\n\"前面就是心脏区域了!\"米娅指着前方。\n\n那里是一个巨大的空间,中央悬浮着一个巨大的能量核心,散发着令人窒息的威压。那就是安徒恩的心脏!\n\n但在心脏前,站着一个身影。\n\n\"欢迎来到我的体内,冒险家。\"\n\n一个巨大的身影从阴影中走出——那是安徒恩的意识化身!它的身体如同熔岩和钢铁的混合体,眼中是两团如同太阳般巨大的火焰。\n\n\"安徒恩...\"林克低声说。\n\n\"人类...你们竟然能来到这里。\"安徒恩的声音如同雷鸣,\"但你们太渺小了,根本无法理解我的存在。\"\n\n\"安徒恩!\"林克举起细雪之舞,\"你为什么要吞噬天界的能源?\"\n\n\"为什么?\"安徒恩笑了,\"因为我饿了。\"\n\n\"就因为这个?!\"\n\n\"对于使徒来说,生存就是一切。\"安徒恩冷冷道,\"现在,成为我的养分吧!\"\n\n它张开巨口,恐怖的能量风暴席卷而来!\n\n\"极·鬼剑术——暴风式!\"\n\n林克全力爆发,剑气与能量风暴碰撞,整个空间都在颤抖!\n\n\"有点意思...\"安徒恩眼中闪过一丝惊讶,\"但还不够!\"\n\n它的攻击越来越狂暴,林克渐渐支撑不住...\n\n---\n\n\"林克!心脏的弱点在正下方!\"米娅突然大喊,\"那是它的能量输送管道!\"\n\n\"知道了!\"\n\n林克身形一闪,避开安徒恩的攻击,直取心脏下方!\n\n\"不——!!!\"\n\n\"极·鬼剑术——斩铁式!\"\n\n细雪之舞刺入能量管道,安徒恩发出痛苦的咆哮!\n\n\"人类...我记住你了...\"\n\n安徒恩的身影渐渐消散,心脏也停止了运转。\n\n\"成功了...\"米娅瘫坐在地上。\n\n\"不,还没有。\"梅尔文皱眉,\"安徒恩只是被重创,并没有死。它的心脏还在跳动!\"\n\n果然,虽然能量管道被破坏,但心脏依然在缓慢跳动。\n\n\"必须彻底摧毁心脏!\"林克咬牙站起来,\"米娅,还有办法吗?\"\n\n\"有!\"米娅分析道,\"心脏的核心在正中央!只要破坏核心,就能彻底杀死安徒恩!\"\n\n\"但核心被厚厚的甲壳保护着...\"\n\n\"让我来!\"米娅站了出来,\"我可以操控基地的卫星武器,对核心进行精准打击!\"\n\n\"卫星武器?\"\n\n\"是的!但需要时间充能!\"\n\n\"需要多久?\"\n\n\"十分钟!\"\n\n\"好!我给你争取十分钟!\"\n\n林克握紧细雪之舞,挡在心脏前。\n\n\"来吧,安徒恩!让我看看使徒的真正力量!\"\n\n---\n\n(第九十章完)",
|
"content": "摧毁第一个黑雾之源后,林克带领突击队马不停蹄地赶往下一个目标——震颤的大地。\n\n\"震颤的大地是安徒恩的前肢所在。\"米娅通过通讯器解释道,\"如果不切断它,安徒恩就能用前肢攻击我们。\"\n\n\"明白。\"林克点头,\"全速前进!\"\n\n飞艇穿过黑雾,来到了一片巨大的岩石地带。这里的地面不断震动,仿佛随时都会崩塌。远处,两根巨大的触手从地下伸出,如同两座山峰。\n\n\"那就是安徒恩的前肢...\"泽丁难以置信地看着那巨大的触手。\n\n\"太大了...\"马琳也惊呆了。\n\n\"不管多大,都要切断它。\"林克握紧细雪之舞,\"米娅,弱点在哪里?\"\n\n\"触手的根部!那里的甲壳最薄弱!\"\n\n\"好!\"\n\n---\n\n众人降落在震颤的大地上,刚一落地,地面就开始剧烈震动。\n\n\"小心!\"\n\n地面裂开,无数岩石从地下喷涌而出!林克在岩石之间急速闪避,同时向触手的根部冲去。\n\n\"林克,有敌人!\"米娅提醒道。\n\n从地下涌出无数怪物,它们是被安徒恩的魔力侵蚀的岩石生物,身体坚硬如铁。\n\n\"极·鬼剑术!\"\n\n林克一剑斩出,剑气斩在岩石生物身上,发出金属碰撞的声音。这些怪物的防御力极高,普通的攻击很难奏效。\n\n\"林克,它们的弱点是关节处!\"\n\n林克会意,细雪之舞精准地刺向岩石生物的关节。果然,关节处的甲壳较薄,剑气能够穿透。\n\n\"有效!\"\n\n他连续攻击,一只又一只岩石生物被摧毁。但更多的怪物涌来,仿佛无穷无尽。\n\n\"不能在这里浪费时间!\"林克大喊,\"泽丁、马琳,你们挡住它们!我去切断触手!\"\n\n\"明白!\"\n\n泽丁和马琳带领士兵们挡住怪物,为林克争取时间。\n\n---\n\n林克冲向触手的根部,那巨大的触手如同一座山峰,散发着令人窒息的压迫感。\n\n\"米娅,弱点具体在哪里?\"\n\n\"触手根部有一块特殊的甲壳,颜色比其他地方浅!那就是弱点!\"\n\n林克抬头看去,果然在触手根部发现了一块浅色的甲壳。\n\n\"就是那里!\"\n\n他催动斗气,\"猛龙断空斩!\"\n\n金色流光穿透空气,细雪之舞斩在浅色甲壳上!\n\n\"轰——!\"\n\n巨大的冲击力让林克被震飞出去,但浅色甲壳上出现了一道裂痕!\n\n\"有效!\"林克精神一振,再次冲上去。\n\n但就在这时,触手突然动了!它猛地拍向地面,巨大的力量让整个大地都在颤抖!\n\n\"林克!小心!\"\n\n林克被冲击波震飞,重重摔在地上,吐出一口鲜血。\n\n\"该死...这力量太恐怖了...\"\n\n\"林克,触手每次攻击后会有三秒的停顿!\"米娅分析道,\"那是您攻击的机会!\"\n\n\"明白!\"\n\n林克等待触手再次攻击,然后在它停顿的瞬间,全力爆发!\n\n\"极·鬼剑术——暴风式!\"\n\n数十道剑气斩在浅色甲壳上,裂痕越来越大!\n\n\"再来!\"\n\n\"破军升龙击!\"\n\n\"幻影剑舞!\"\n\n剑技连绵不绝,浅色甲壳终于承受不住,轰然碎裂!\n\n\"吼——!\"\n\n触手发出一声痛苦的咆哮,然后无力地垂下,砸在地上,激起漫天尘土。\n\n\"成功了!\"士兵们欢呼起来。\n\n\"还有一根!\"林克咬牙站起来,冲向另一根触手。\n\n---\n\n经过艰苦的战斗,第二根触手也被切断。\n\n安徒恩发出一声愤怒的咆哮,它的一只前肢被完全切断,黑色的血液如同瀑布般流下。\n\n\"第一阶段完成了一半!\"米娅兴奋地说,\"林克,您太厉害了!\"\n\n\"还没结束...\"林克跪倒在地,全身都是伤,\"还有...后腿和...黑雾之源...\"\n\n\"您需要休息!\"\n\n\"不...\"林克咬牙站起来,\"时间紧迫...继续前进...\"\n\n他看向远方,眼中闪烁着坚定的光芒。\n\n\"安徒恩,你的末日就要到了。\"\n\n---\n\n(第八十八章完)",
|
||||||
"desc": "摧毁所有黑雾之源,切断安徒恩的四肢后,第一阶段终于完成。"
|
"desc": "摧毁第一个黑雾之源后,林克带领突击队马不停蹄地赶往下一个目标——震颤的大地。"
|
||||||
}
|
}
|
||||||
@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"id": 91,
|
"id": 89,
|
||||||
"title": "安图恩攻坚战·使徒陨落",
|
"title": "安图恩攻坚战·擎天之柱",
|
||||||
"subtitle": "使徒安徒恩陨落",
|
"subtitle": "擎天之柱",
|
||||||
"desc": "林克挡在安徒恩的心脏前,为米娅争取时间。",
|
"content": "切断安徒恩的前肢后,林克带领突击队赶往下一个目标——擎天之柱。\n\n\"擎天之柱是安徒恩的后腿所在。\"米娅解释道,\"比前肢更加坚固,也更加危险。\"\n\n\"不管多危险,都要切断它。\"林克说。\n\n飞艇穿过黑雾,来到了一片巨大的平原。远处,两根巨大的柱子矗立在地面上,那是安徒恩的后腿,支撑着它庞大的身躯。\n\n\"那就是...擎天之柱...\"\n\n柱子表面覆盖着厚厚的甲壳,散发着金属般的光泽。与普通生物不同,安徒恩的腿如同巨大的石柱,坚不可摧。\n\n\"米娅,弱点在哪里?\"\n\n\"柱子底部有一块特殊的符文,那是安徒恩的魔力核心!只要破坏符文,就能切断柱子!\"\n\n\"明白!\"\n\n---\n\n众人降落在平原上,刚一落地,地面就开始剧烈震动。\n\n\"小心!安徒恩发现我们了!\"\n\n无数怪物从地下涌出,它们比震颤的大地的怪物更加强大,身体覆盖着坚硬的甲壳,眼中跳动着疯狂的红光。\n\n\"这些是被强化过的眷属!\"米娅惊呼,\"林克,小心!\"\n\n\"极·鬼剑术!\"\n\n林克一剑斩出,剑气斩在怪物身上,竟然只留下一道浅浅的痕迹!\n\n\"好硬的甲壳!\"\n\n\"林克,它们的甲壳对物理攻击有极高的抗性!您需要用能量攻击!\"\n\n林克会意,将斗气注入细雪之舞,冰蓝色的剑身散发出刺骨的寒气。\n\n\"冰霜斩!\"\n\n冰蓝色的剑气斩在怪物身上,甲壳被冻结,然后碎裂!\n\n\"有效!\"\n\n林克连续攻击,在怪物群中杀出一条血路,向擎天之柱冲去。\n\n---\n\n来到柱子底部,林克发现了那块特殊的符文。符文散发着暗红色的光芒,不断有魔力从中涌出。\n\n\"就是这里!\"\n\n林克举起细雪之舞,全力斩下!\n\n\"轰——!\"\n\n剑气斩在符文上,符文发出一声哀鸣,光芒暗淡了一些。\n\n\"有效!\"\n\n但就在这时,柱子开始剧烈震动,无数岩石从柱子上脱落,砸向林克!\n\n\"林克!小心!\"\n\n林克在岩石之间急速闪避,同时继续攻击符文。\n\n\"极·鬼剑术——暴风式!\"\n\n数十道剑气斩在符文上,符文的光芒越来越暗淡。\n\n\"再来!\"\n\n\"破军升龙击!\"\n\n\"幻影剑舞!\"\n\n剑技连绵不绝,符文终于承受不住,轰然碎裂!\n\n\"轰——!\"\n\n擎天之柱发出一声巨响,然后开始崩塌!巨大的柱子倒在地上,激起漫天尘土。\n\n\"成功了!\"\n\n\"还有一根!\"林克咬牙冲向另一根柱子。\n\n---\n\n经过更加艰苦的战斗,第二根擎天之柱也被切断。\n\n安徒恩发出一声痛苦的咆哮,它的两只后腿都被切断,庞大的身躯开始倾斜。\n\n\"第一阶段即将完成!\"米娅兴奋地说,\"只要再摧毁剩下的黑雾之源,就能进入第二阶段!\"\n\n\"好...\"林克跪倒在地,全身都是伤,\"继续前进...\"\n\n\"林克!您需要休息!\"\n\n\"不...\"林克咬牙站起来,\"不能给安徒恩...恢复的时间...\"\n\n他看向远方,眼中闪烁着坚定的光芒。\n\n\"走吧...去摧毁最后的黑雾之源...\"\n\n---\n\n(第八十九章完)",
|
||||||
"content": "林克挡在安徒恩的心脏前,为米娅争取时间。\n\n\"还有八分钟!\"米娅的声音从通讯器中传来,\"林克,您一定要坚持住!\"\n\n\"放心!\"林克握紧细雪之舞,\"我不会倒下的!\"\n\n安徒恩的心脏开始剧烈跳动,无数寄生生物从血肉中涌出,向林克扑来!\n\n\"极·鬼剑术!\"\n\n林克一剑斩出,将寄生生物斩碎。但更多的生物涌来,仿佛无穷无尽!\n\n\"里·鬼剑术!\"\n\n\"破军升龙击!\"\n\n\"猛龙断空斩!\"\n\n剑技连绵不绝,林克在怪物群中杀出一条血路。但他的体力在飞速消耗,身上的伤口越来越多。\n\n\"还有五分钟!\"\n\n\"林克!您撑不住了!\"泽丁想要上前帮忙。\n\n\"不要过来!\"林克大喊,\"保护米娅!让她完成充能!\"\n\n他咬紧牙关,再次挥剑。\n\n\"幻影剑舞!\"\n\n数十道剑气从细雪之舞上爆发,将周围的怪物全部撕碎!\n\n但就在这时,安徒恩的心脏突然发出一道强大的能量波!\n\n\"不好!\"\n\n林克被能量波击中,整个人被震飞出去,重重撞在墙壁上,吐出一口鲜血。\n\n\"林克!\"米娅哭着喊道。\n\n\"我...没事...\"林克咬牙站起来,\"还有...多久...\"\n\n\"还有三分钟!\"\n\n\"好...\"林克深吸一口气,将斗气提升到极限,\"我还能...坚持...\"\n\n他冲向心脏,细雪之舞散发出前所未有的光芒!\n\n\"极·鬼剑术——斩铁式!\"\n\n剑气斩在心脏的甲壳上,留下一道深深的痕迹!\n\n\"再来!\"\n\n\"破军升龙击!\"\n\n\"猛龙断空斩!\"\n\n\"幻影剑舞!\"\n\n剑技连绵不绝,心脏的甲壳上出现越来越多的裂痕!\n\n\"还有一分钟!\"\n\n\"啊——!\"林克发出一声怒吼,将全身的力量都注入细雪之舞!\n\n\"极·鬼剑术——暴风式!\"\n\n数十道剑气形成一道剑气风暴,轰击在心脏上!\n\n\"轰——!\"\n\n心脏的甲壳终于承受不住,轰然碎裂!核心暴露了出来!\n\n\"充能完成!卫星武器发射!\"米娅大喊。\n\n天空中,一道巨大的光柱从天而降,精准地击中安徒恩的心脏核心!\n\n\"不——!!!\"\n\n安徒恩发出最后一声痛苦的咆哮,它的心脏在光芒中崩溃,整个身体开始崩塌!\n\n\"成功了...\"林克跪倒在地,\"我们...成功了...\"\n\n---\n\n当林克再次醒来时,他已经躺在了斯曼工业基地的医疗室里。\n\n\"林克!您醒了!\"米娅扑到他怀里,眼泪止不住地流,\"您吓死我了!\"\n\n\"我...睡了多久?\"\n\n\"三天。\"米娅哽咽着说,\"医生说,您的伤势太重了,差点就...\"\n\n她没有说完,但林克明白她的意思。\n\n\"对不起,让你担心了。\"林克轻轻擦去她的眼泪。\n\n\"笨蛋...\"米娅哭着说,\"以后不许再这样拼命了...\"\n\n\"好。\"林克微笑道,\"我答应你。\"\n\n两人相视而笑,然后紧紧拥抱在一起。\n\n---\n\n窗外,天界的阳光格外明媚。使徒安徒恩已经被消灭,天界终于恢复了和平。\n\n皇女艾丽婕亲自来到基地,为林克颁发勋章。\n\n\"林克,你拯救了天界。\"皇女庄严地说,\"从今以后,你就是天界的英雄!\"\n\n\"我只是做了我该做的事。\"林克说。\n\n\"不,你做的远不止这些。\"皇女微笑道,\"你不仅拯救了天界,还拯救了我的心。\"\n\n她看向米娅:\"米娅,你也做得很好。\"\n\n\"谢谢陛下!\"米娅鞠躬道。\n\n\"林克,\"皇女说道,\"朕有一个请求。\"\n\n\"什么请求?\"\n\n\"留在天界,成为朕的...\"皇女脸一红,\"成为朕的夫君。\"\n\n林克愣住了。\n\n\"陛下...\"\n\n\"朕知道你有很多人爱着,\"皇女说道,\"但朕不在乎。朕只想和你在一起。\"\n\n林克看向米娅,米娅微笑着点头:\"林克,接受吧。皇女陛下也是真心爱您的。\"\n\n林克沉默了一会儿,然后点头:\"好。\"\n\n皇女露出幸福的笑容。\n\n---\n\n一个月后,天界皇宫。\n\n林克站在阳台上,看着远方的天空。米娅走到他身边,依偎在他怀里。\n\n\"林克,您在想什么?\"\n\n\"在想阿拉德大陆的大家。\"林克说道,\"赛丽亚、敏泰、莎兰、奥菲利亚、帕丽丝...她们还在等我回去。\"\n\n\"那我们一起回去吧。\"米娅说道,\"我也想见见她们。\"\n\n\"好。\"林克握住她的手,\"我们一起回去。\"\n\n两人相视而笑,在夕阳下紧紧相拥。\n\n天界的篇章结束了,但林克的冒险还在继续。\n\n在阿拉德大陆,还有更多的人在等着他。\n\n---\n\n(第九十一章完)\n\n(安图恩攻坚战篇 完)"
|
"desc": "切断安徒恩的前肢后,林克带领突击队赶往下一个目标——擎天之柱。"
|
||||||
}
|
}
|
||||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
73
alacarte-novel-website/data/update_chapters.js
Normal file
73
alacarte-novel-website/data/update_chapters.js
Normal file
@ -0,0 +1,73 @@
|
|||||||
|
const fs = require('fs');
|
||||||
|
const path = require('path');
|
||||||
|
|
||||||
|
// 章节标题映射
|
||||||
|
const subtitleMap = {
|
||||||
|
1: '初入阿拉德', 2: '剑士之路', 3: '鬼手觉醒', 4: '格兰之森', 5: '牛头巨兽',
|
||||||
|
6: '幽暗密林', 7: '猛毒雷鸣', 8: '冰霜幽暗', 9: '烈焰格拉卡', 10: '暗黑雷鸣',
|
||||||
|
11: '天空之城', 12: '龙人之塔', 13: '人偶玄关', 14: '石巨人塔', 15: '黑暗玄廊',
|
||||||
|
16: '城主宫殿', 17: '光之城主', 18: '西海岸', 19: '天帷巨兽', 20: '神殿外围',
|
||||||
|
21: '树精丛林', 22: '炼狱', 23: '极昼', 24: '第一脊椎', 25: '第二脊椎',
|
||||||
|
26: 'GBL教', 27: '奥菲利亚', 28: '阿法利亚', 29: '蜘蛛洞穴', 30: '浅栖之地',
|
||||||
|
31: '摩根之谜', 32: '暗精灵', 33: '熔岩穴', 34: '暗影迷宫', 35: '邪龙封印',
|
||||||
|
36: '雪山之旅', 37: '冰心少年', 38: '山脊', 39: '利库天井', 40: '白色废墟',
|
||||||
|
41: '布万加', 42: '敏泰', 43: '班图族', 44: '斯卡萨', 45: '冰雪宫殿',
|
||||||
|
46: '斯顿雪域', 47: 'GBL女神殿', 48: '树精繁殖地', 49: '堕落之殿', 50: '诺斯玛尔',
|
||||||
|
51: '盗贼团', 52: '哈穆林', 53: '鼠王', 54: '迷乱之村', 55: '血蝴蝶',
|
||||||
|
56: '帕丽丝', 57: '月光酒馆', 58: '索西雅', 59: '死亡之塔', 60: '迷惘之塔',
|
||||||
|
61: '绝望之塔', 62: '莎兰', 63: '西海岸风云', 64: '暗精灵战争', 65: '克伦特',
|
||||||
|
66: '暗黑城', 67: '暗影迷宫', 68: '无头骑士', 69: '悲鸣洞穴', 70: '启程天界',
|
||||||
|
71: '根特外围', 72: '卡勒特', 73: '皇女艾丽婕', 74: '泽丁', 75: '马琳',
|
||||||
|
76: '夜间袭击', 77: '补给线阻断', 78: '追击歼灭', 79: '夜间奇袭', 80: '夺回东门',
|
||||||
|
81: '夺回南门', 82: '北门反击', 83: '根特防御', 84: '卡勒特总部', 85: '兰蒂卢斯',
|
||||||
|
86: '海上列车', 87: '莫斯提马', 88: '斯曼工业', 89: '安徒恩', 90: '攻坚战',
|
||||||
|
91: '使徒陨落'
|
||||||
|
};
|
||||||
|
|
||||||
|
let updatedCount = 0;
|
||||||
|
|
||||||
|
for (let i = 1; i <= 91; i++) {
|
||||||
|
const filename = i <= 9 ? `chapter-0${i}.json` : `chapter-${i}.json`;
|
||||||
|
const filepath = path.join(__dirname, filename);
|
||||||
|
|
||||||
|
if (!fs.existsSync(filepath)) {
|
||||||
|
console.log(`文件不存在: ${filename}`);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
const content = fs.readFileSync(filepath, 'utf-8');
|
||||||
|
const data = JSON.parse(content);
|
||||||
|
|
||||||
|
let needsUpdate = false;
|
||||||
|
|
||||||
|
// 添加subtitle
|
||||||
|
if (!data.subtitle) {
|
||||||
|
data.subtitle = subtitleMap[i] || `第${i}章`;
|
||||||
|
needsUpdate = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 添加desc
|
||||||
|
if (!data.desc && data.content) {
|
||||||
|
// 提取第一段,清理格式
|
||||||
|
let firstPara = data.content.split('\n')[0].trim();
|
||||||
|
// 移除特殊字符
|
||||||
|
firstPara = firstPara.replace(/["'\n\t\r]/g, '');
|
||||||
|
// 截取前100字符
|
||||||
|
data.desc = firstPara.length > 100 ? firstPara.substring(0, 100) + '...' : firstPara;
|
||||||
|
needsUpdate = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (needsUpdate) {
|
||||||
|
fs.writeFileSync(filepath, JSON.stringify(data, null, 2), 'utf-8');
|
||||||
|
updatedCount++;
|
||||||
|
console.log(`已更新: ${filename}`);
|
||||||
|
} else {
|
||||||
|
console.log(`无需更新: ${filename}`);
|
||||||
|
}
|
||||||
|
} catch (err) {
|
||||||
|
console.error(`处理 ${filename} 时出错:`, err.message);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
console.log(`\n总共更新了 ${updatedCount} 个文件`);
|
||||||
76
alacarte-novel-website/data/update_chapters.py
Normal file
76
alacarte-novel-website/data/update_chapters.py
Normal file
@ -0,0 +1,76 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
import json
|
||||||
|
import os
|
||||||
|
import re
|
||||||
|
|
||||||
|
# 章节标题映射(根据内容生成合适的subtitle)
|
||||||
|
subtitle_map = {
|
||||||
|
1: '初入阿拉德', 2: '剑士之路', 3: '鬼手觉醒', 4: '格兰之森', 5: '牛头巨兽',
|
||||||
|
6: '幽暗密林', 7: '猛毒雷鸣', 8: '冰霜幽暗', 9: '烈焰格拉卡', 10: '暗黑雷鸣',
|
||||||
|
11: '天空之城', 12: '龙人之塔', 13: '人偶玄关', 14: '石巨人塔', 15: '黑暗玄廊',
|
||||||
|
16: '城主宫殿', 17: '光之城主', 18: '西海岸', 19: '天帷巨兽', 20: '神殿外围',
|
||||||
|
21: '树精丛林', 22: '炼狱', 23: '极昼', 24: '第一脊椎', 25: '第二脊椎',
|
||||||
|
26: 'GBL教', 27: '奥菲利亚', 28: '阿法利亚', 29: '蜘蛛洞穴', 30: '浅栖之地',
|
||||||
|
31: '摩根之谜', 32: '暗精灵', 33: '熔岩穴', 34: '暗影迷宫', 35: '邪龙封印',
|
||||||
|
36: '雪山之旅', 37: '冰心少年', 38: '山脊', 39: '利库天井', 40: '白色废墟',
|
||||||
|
41: '布万加', 42: '敏泰', 43: '班图族', 44: '斯卡萨', 45: '冰雪宫殿',
|
||||||
|
46: '斯顿雪域', 47: 'GBL女神殿', 48: '树精繁殖地', 49: '堕落之殿', 50: '诺斯玛尔',
|
||||||
|
51: '盗贼团', 52: '哈穆林', 53: '鼠王', 54: '迷乱之村', 55: '血蝴蝶',
|
||||||
|
56: '帕丽丝', 57: '月光酒馆', 58: '索西雅', 59: '死亡之塔', 60: '迷惘之塔',
|
||||||
|
61: '绝望之塔', 62: '莎兰', 63: '西海岸风云', 64: '暗精灵战争', 65: '克伦特',
|
||||||
|
66: '暗黑城', 67: '暗影迷宫', 68: '无头骑士', 69: '悲鸣洞穴', 70: '启程天界',
|
||||||
|
71: '根特外围', 72: '卡勒特', 73: '皇女艾丽婕', 74: '泽丁', 75: '马琳',
|
||||||
|
76: '夜间袭击', 77: '补给线阻断', 78: '追击歼灭', 79: '夜间奇袭', 80: '夺回东门',
|
||||||
|
81: '夺回南门', 82: '北门反击', 83: '根特防御', 84: '卡勒特总部', 85: '兰蒂卢斯',
|
||||||
|
86: '海上列车', 87: '莫斯提马', 88: '斯曼工业', 89: '安徒恩', 90: '攻坚战',
|
||||||
|
91: '使徒陨落'
|
||||||
|
}
|
||||||
|
|
||||||
|
updated_count = 0
|
||||||
|
|
||||||
|
for i in range(1, 92):
|
||||||
|
# 确定文件名格式
|
||||||
|
if i <= 9:
|
||||||
|
filename = f'chapter-0{i}.json'
|
||||||
|
else:
|
||||||
|
filename = f'chapter-{i}.json'
|
||||||
|
|
||||||
|
filepath = os.path.join('.', filename)
|
||||||
|
|
||||||
|
if not os.path.exists(filepath):
|
||||||
|
print(f'文件不存在: {filename}')
|
||||||
|
continue
|
||||||
|
|
||||||
|
with open(filepath, 'r', encoding='utf-8') as f:
|
||||||
|
data = json.load(f)
|
||||||
|
|
||||||
|
# 检查是否需要更新
|
||||||
|
needs_update = False
|
||||||
|
|
||||||
|
# 添加subtitle
|
||||||
|
if 'subtitle' not in data or not data['subtitle']:
|
||||||
|
data['subtitle'] = subtitle_map.get(i, f'第{i}章')
|
||||||
|
needs_update = True
|
||||||
|
|
||||||
|
# 添加desc(从content提取前100字符)
|
||||||
|
if 'desc' not in data or not data['desc']:
|
||||||
|
content = data.get('content', '')
|
||||||
|
# 提取第一段,去除换行和多余空格
|
||||||
|
first_para = content.split('\n')[0].strip()
|
||||||
|
# 清理内容,只保留纯文本
|
||||||
|
first_para = re.sub(r'["\'\n\t]', '', first_para)
|
||||||
|
# 截取前100字符
|
||||||
|
desc = first_para[:100] + '...' if len(first_para) > 100 else first_para
|
||||||
|
data['desc'] = desc
|
||||||
|
needs_update = True
|
||||||
|
|
||||||
|
if needs_update:
|
||||||
|
with open(filepath, 'w', encoding='utf-8') as f:
|
||||||
|
json.dump(data, f, ensure_ascii=False, indent=2)
|
||||||
|
updated_count += 1
|
||||||
|
print(f'已更新: {filename}')
|
||||||
|
else:
|
||||||
|
print(f'无需更新: {filename}')
|
||||||
|
|
||||||
|
print(f'\n总共更新了 {updated_count} 个文件')
|
||||||
Loading…
Reference in New Issue
Block a user