MCPcopy Index your code
hub / github.com/Aerdelan/MirrorNovel

github.com/Aerdelan/MirrorNovel @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
212 symbols 416 edges 70 files 73 documented · 34%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

��<p align="center"> <a href="#readme-zh"><���<��� -N�e</a> � <a href="#readme-en"><���<��� English</a> </p> --- <a id="readme-zh"></a> # MirrorNovel (MirrorNovel) > ju�\� N}�0Θ<h����0AI �~�QN�mr��]wQ <�� (W�~SO��: [http://43.159.149.223:5173/](http://43.159.149.223:5173/) > KmՋ&��S�test@xiaoshuo.com / test888��Q+T 1,000,000 Token ��S�v�cSO��hQ萟R�� � --- ## �&� MQ#��Xf ,gy��v�v@b g�Nx�N�Of[N�Txvz�v�vO(u0** 1. **�NP�f[N  ,gy��v�e(W.^�R�S�f[N Node.js ,rk��b/g0OmȉhVꁨRS0AI �e,gubI{ z�wƋ �**%N�y(u�N�NUOFUN(u�b^��l_r)RL�:N**0 2. **HrCgR_^\**  ju�\��fanqienovel.com �s^�S N�v@b g�Q�[�S�bFO NP��N\�e,g0W[SO�e�NI{ ��vHrCgGWR_vQ�S�YCg)R�N@b g0,gy��v NX[�P0 NR�S�NUO�SHrCg�O�b�v�Q�[0 3. **(u7b#��N**  **(u7b�[O(udk z�^_�S�v�NUO�l�_#��N�TΘi�� ghQ�#��N0** O(u��^�L�nx�OvQO(uL�:N&{T@b(W0W�l�_�lĉ�S,{ N�es^�S�v g�Rag>k0**y��v\O��Ty��v!�.s� N�[�VO(u,g z�^ ��[�v�NUO_c1Y0_c�[b�l�_�~�~b�b#��N0** 4. **�l�_�T�**  (WO(udk z�^KNMR ���nx�O��]t�v^u��[�vsQ�l��lĉ�N�SQ�z�vO(u?eV{0�Y g�NUO�u�b�b� ����T��l�~��0 5. �ybkFUNS  %N�y\,gy��v�v�NxbM�u�N�T(u�N�NUOb_�vFUN g�R0�N9�s^�S0b�NUO�S���O�r�S�Ys^�SCg�v�v:Wof0 6. �e�O��  ,gy��v c"�S7h"�c�O � N�c�O�NUOf:yb�f:y�v�O�� �S�bFO NP��N��'0yr�[(u��(u'�T^��OCg'0 > �Y�g�/fju�\�vHrCg�ebЏ%��e ���:N,gy��v�O�r�N��vT�lCg�v ���T��|y��v\O� �b�N\(W8h�[T,{N�e��Yt0 --- ## �R��yr' | �R�� | �f | |------|------| | =��� ju�\� N}� | ��eQ Book ID sS�S N}�te,g\��/ec��[�z�� � �ꁨRYt PUA W[SO�S,r | | >��� Θ<h���� | �Nju�\�b N O�v TXT -N�c�SΘ<hyr����OY0(u͋0�SI{ � �(u�N AI �N�Q | | '� AI �~�Q/ub | /ecte,g�TUS�z!j ��V�NQ�e + �e{�\��S�d | | (' �e,g�mr� | ꁚ[IN�mr��eHh � Tek�S AI sTYt �Am���Q�[�e��ȉ | | <د� Θ<h�[P� | ub�eꁨR9SM������^-N�v�S�Θ<h �O AI ���Q�f4�T�vhΘ<h | | <�8� {�\�ub | �e ACGN Θ<h �/ec �^\'0�R;ua�c�Q �6 �y{�\�{|�W | | <�� **-N��S�** | Lub�/ec-N�e/English N.�Rbc | --- ## �_�/T�R ### MRn��Bl - Node.js >= 18 - MongoDB >= 6.0 - Playwright Chromium�(u�Nju�\� N}� � ### 1. KQ��y��v bash git clone git@github.com:Aerdelan/MirrorNovel.git cd MirrorNovel ### 2. �[ň�OV� bash cd server && npm install cd ../client && npm install cd ../admin && npm install ### 3. M�n�s�X bash cd server cp .env.example .env �� server/.env �sQ.�M�n� env MONGODBURI=mongodb://localhost:27017/mirrornovel JWTSECRET=yourrandomjwtsecrethere JWTEXPIRESIN=7d ADMINEMAIL=admin@example.com ADMINPASSWORD=youradminpassword AIAPIBASE=https://api.siliconflow.cn/v1 AIAPIKEY=yourapikeyhere AIMODEL=deepseek-ai/DeepSeek-V4-Flash > �{tXT&��S(W g�R/T�R�e**ꁨRR�^** �؞�� admin@xiaoshuo.com / admin888 �**��!k�rT���O9e؞���[x**0 ### 4. �[ň Playwright Chromium bash cd server npx playwright install chromium ### 5. /T�R g�R bash # �~�z 1 - T�z API��z�S 3001 � cd server && npm run dev # �~�z 2 - MR�zu�b���z�S 5173 � cd client && npm run dev # �~�z 3 - �{tT�S��z�S 5174 � cd admin && npm run dev ### 6. ��� g�R bash # MR�S�(u7b�z � http://localhost:5173 # �{tT�S http://localhost:5174 # u�N�s�X HTTPS�����~{ T��fN �,{N!k�����p"ؚ�~�!�~�~MR�" � https://43.159.149.223:5173 ### 7. M�nju� Cookie 1. Chrome Sb_ https://fanqienovel.com v^{vU_ 2. c F12 �! Application �! Cookies �! fanqienovel.com 3. �S.��Na cookie �! ">f:y�N URL x" �! hQ � Y6R 4. Sb_ MirrorNovel MR�z �! ���� �! Cookie ��n �! �|4��OX[ --- ## y��v�~�g MirrorNovel/ %%% server/ # T�z g�R�Express + MongoDB � % %%% config/ # M�n�\�{|�W0�SAIsTĉRI{ � % %%% routes/ # API �1u % %%% services/ # 8h� g�R�AI0ju��b�S0W[SO�x � % %%% models/ # Mongoose penc!j�W % %%% middleware/ # t�Cg-N���N %%% client/ # MR�z�Vue 3 + Pinia + Vite � % %%% src/ % %%% views/ # u�b��~�N % %%% stores/ # �r�{t % %%% composables/ # �~T_�Qpe�i18n I{ � % %%% locales/ # �VE�S�ы�-N/� � % %%% components/ # lQqQ�~�N %%% admin/ # �{tT�S�Vue 3 � %%% test_fanqie/ # KmՋ�,g --- ## �& 8^��� ### Ollama ,g:gޏ�c1Y%� �Y�gu�b��Ǐ HTTP �����Y http://43.159.149.223:5173 � �Chrome/Edge O�bb�[ localhost:11434 �v��Bl ��b CORS ��0 ㉳Q�R�l� N �N �� 1. O(u HTTPS �����cP� ��https://43.159.149.223:5173 ���!k��p"ؚ�~�!�~�~MR�_"sS�S 2. �O9eOmȉhV flags�chrome://flags/#block-insecure-private-network-requests 9e:N Disabled 3. bc Firefox OmȉhV��l gُNP�6R --- ## ju�\� N}��St MirrorNovel O(u Playwright �e4YOmȉhV�Nt eg�~Ǐju�\�v�S,r:g6R� 1. abogus ~{ T  �ǏOmȉhV�Su fetch ꁨRub ��e��T�{�l 2. PUA W[SOx  �Nu�b��RN}�W[SO�e�N �(u fontkit �g�^ f\T�x 3. **��[�z��**  �Ǐ�[�e API (/api/reader/full) ���S�[te�Q�[ �M�T SVIP Cookie ### �]\OAm z (u7b��eQ Book ID �! g�RhV/T�R Playwright �e4YOmȉhV �! OmȉhV�R}� fanqienovel.com�R�YS abogus JS � �! �(u API ���S�z��Rh� + �[te�Q�[ �! �c�SW[SO�e�N �! fontkit �g�^ PUA f\ �! �x:Nck8^-N�e �! ���Q TXT / Θ<h���� --- ## �b/gh | B\ | �b/g | |----|------| | **MR�z** | Vue 3, Pinia, Vite | | **T�z** | Express, Mongoose | | **penc�^** | MongoDB | | **AI** | OpenAI |Q�[ API / Ollama | | **OmȉhVꁨRS** | Playwright | | **W[SO㉐g** | fontkit | --- ## �S��v_�ny��v ,gy��v�v_�SǏ z-N�S�bO(u�N�N N_�ny��v� | y��v | �f | ���c | |------|------|------| | **fanqienovel-downloader** | ju�\� N}�hV�Python � ��c�O�N N}�T API R�g�S� | [ying-ck/fanqienovel-downloader](https://github.com/ying-ck/fanqienovel-downloader) | | fanqienovel-decryptor | ju�\�W[SO��[ �font_mapping.json W[&{ f\eg�n�Ndk | [romcere/fanqienovel-decryptor](https://github.com/romcere/fanqienovel-decryptor) | | Playwright | �o��Q�T�vOmȉhVꁨRSFh�g �(u�NYt abogus ~{ T | [microsoft/playwright](https://github.com/microsoft/playwright) | | fontkit | ؚ�~W[SO_�d �(u�N㉐g woff2 W[SO�e�N | [foliojs/fontkit](https://github.com/foliojs/fontkit) | --- ## License AGPL-3.0  O(u,gy��v�v�n�Nx�e ���u��[ [AGPL-3.0 OS��](https://www.gnu.org/licenses/agpl-3.0.html) �v��Bl0 --- <a id="readme-en"></a> # MirrorNovel > Fanqie Novel download, style distillation, AI continuation & polishing tool <�� Online Demo: [http://43.159.149.223:5173/](http://43.159.149.223:5173/) > Test Account: test@xiaoshuo.com / test888 (1,000,000 Tokens included, try all features directly) --- ## �&� Disclaimer All code in this project is provided for educational and research purposes only. 1. Educational Purpose Only  This project is intended to help developers learn web scraping techniques, browser automation, AI text generation, and related programming knowledge. Commercial use or any profit-making activities are strictly prohibited. 2. Copyright Ownership  All content on the fanqienovel.com platform (including but not limited to novel texts, font files, etc.) belongs to its respective rights holders. This project does not store or distribute any copyrighted content. 3. User Responsibility  Users bear full responsibility for any legal consequences and risks arising from the use of this program. Users must ensure their usage complies with applicable laws, regulations, and third-party platform terms of service. The project authors and contributors shall not be held liable for any loss, damage, or legal disputes resulting from the use of this program. 4. Legal Consultation  Before using this program, please ensure you understand and comply with relevant laws, regulations, and website usage policies. Consult a legal professional if you have any questions or concerns. 5. No Commercial Use  The code or derivative works of this project must not be used in any form of commercial service, paid platform, or any scenario that may infringe upon the rights of the original platform. 6. No Warranty  This projec

Extension points exported contracts — how you extend this code

ComponentCustomOptions (Interface)
(no doc)
app/shims-uni.d.ts
ComponentCustomOptions (Interface)
(no doc)
app/src/shime-uni.d.ts

Core symbols most depended-on inside this repo

streamGenerate
called by 23
server/services/aiService.js
resolveApiConfig
called by 21
server/services/aiService.js
deductTokens
called by 14
server/routes/novel.js
safeSet
called by 8
app/src/stores/auth.js
countTokens
called by 8
server/services/aiService.js
processChapter
called by 7
server/services/chapterToolchain.js
finalSave
called by 6
server/routes/novel.js
checkTokenBalance
called by 6
server/routes/novel.js

Shape

Function 205
Class 3
Interface 2
Method 2

Languages

TypeScript98%
Java2%

Modules by API surface

client/src/stores/auth.js21 symbols
app/src/stores/auth.js21 symbols
server/routes/novel.js16 symbols
server/services/aiService.js14 symbols
client/src/stores/novel.js14 symbols
server/services/fanqieScraper.js13 symbols
client/src/stores/reference.js12 symbols
app/src/stores/novel.js10 symbols
tmp_upload/fanqieScraper.js9 symbols
server/services/playwrightProxy.js8 symbols
server/services/novelContext.js8 symbols
server/services/chapterToolchain.js7 symbols

Datastores touched

NovelCollection · 1 repos
ReferenceNovelCollection · 1 repos
SysConfigCollection · 1 repos
UserCollection · 1 repos
VerificationCodeCollection · 1 repos
(mongodb)Database · 1 repos

For agents

$ claude mcp add MirrorNovel \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page