��<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(udkz�^_�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,gz�^��[�v�NUO_c1Y0_c�[b�l�_�~�~b�b#��N0**
4. **�l�_�T�** (WO(udkz�^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�SN}�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
### �]\OAmz
(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�NN_�ny��v�
| y��v | �f | ���c |
|------|------|------|
| **fanqienovel-downloader** | ju�\�N}�hV�Python ���c�O�NN}�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
$ claude mcp add MirrorNovel \
-- python -m otcore.mcp_server <graph>