Skip to content

Commit 8f9b069

Browse files
committed
Add GitHub workflow files
1 parent 9a8db68 commit 8f9b069

1 file changed

Lines changed: 288 additions & 0 deletions

File tree

index.html

Lines changed: 288 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -448,6 +448,194 @@
448448
text-decoration: underline;
449449
}
450450

451+
/* API 服务推广样式 */
452+
.api-service-promo {
453+
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
454+
border-radius: 12px;
455+
padding: 30px;
456+
color: white;
457+
margin-top: 20px;
458+
}
459+
460+
.api-header {
461+
text-align: center;
462+
margin-bottom: 30px;
463+
}
464+
465+
.api-header h3 {
466+
font-size: 24px;
467+
margin-bottom: 10px;
468+
color: white;
469+
}
470+
471+
.api-header p {
472+
font-size: 14px;
473+
opacity: 0.95;
474+
}
475+
476+
.api-features {
477+
display: grid;
478+
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
479+
gap: 20px;
480+
margin-bottom: 30px;
481+
}
482+
483+
.api-feature-item {
484+
background: rgba(255, 255, 255, 0.15);
485+
border-radius: 8px;
486+
padding: 20px;
487+
display: flex;
488+
align-items: flex-start;
489+
gap: 15px;
490+
transition: all 0.3s;
491+
}
492+
493+
.api-feature-item:hover {
494+
background: rgba(255, 255, 255, 0.25);
495+
transform: translateY(-2px);
496+
}
497+
498+
.feature-icon {
499+
font-size: 32px;
500+
flex-shrink: 0;
501+
}
502+
503+
.feature-content h4 {
504+
font-size: 16px;
505+
margin-bottom: 8px;
506+
color: white;
507+
}
508+
509+
.feature-content p {
510+
font-size: 13px;
511+
opacity: 0.9;
512+
line-height: 1.5;
513+
}
514+
515+
.docker-deploy {
516+
background: rgba(255, 255, 255, 0.15);
517+
border-radius: 8px;
518+
padding: 20px;
519+
margin-bottom: 25px;
520+
}
521+
522+
.docker-deploy h4 {
523+
font-size: 16px;
524+
margin-bottom: 15px;
525+
color: white;
526+
}
527+
528+
.docker-deploy .code-block {
529+
background: rgba(0, 0, 0, 0.3);
530+
color: #00ff88;
531+
padding: 15px;
532+
border-radius: 6px;
533+
font-family: 'Monaco', 'Menlo', monospace;
534+
font-size: 13px;
535+
overflow-x: auto;
536+
margin-bottom: 10px;
537+
white-space: pre;
538+
}
539+
540+
.deploy-hint {
541+
font-size: 13px;
542+
opacity: 0.9;
543+
margin: 0;
544+
}
545+
546+
.deploy-hint code {
547+
background: rgba(255, 255, 255, 0.2);
548+
padding: 2px 6px;
549+
border-radius: 3px;
550+
font-family: 'Monaco', 'Menlo', monospace;
551+
}
552+
553+
.api-endpoints {
554+
background: rgba(255, 255, 255, 0.15);
555+
border-radius: 8px;
556+
padding: 20px;
557+
margin-bottom: 25px;
558+
}
559+
560+
.api-endpoints h4 {
561+
font-size: 16px;
562+
margin-bottom: 15px;
563+
color: white;
564+
}
565+
566+
.endpoint-list {
567+
display: flex;
568+
flex-direction: column;
569+
gap: 10px;
570+
}
571+
572+
.endpoint-item {
573+
display: flex;
574+
align-items: center;
575+
gap: 12px;
576+
background: rgba(255, 255, 255, 0.1);
577+
padding: 10px 15px;
578+
border-radius: 6px;
579+
font-size: 14px;
580+
}
581+
582+
.method {
583+
display: inline-block;
584+
padding: 4px 10px;
585+
border-radius: 4px;
586+
font-weight: 600;
587+
font-size: 12px;
588+
min-width: 50px;
589+
text-align: center;
590+
}
591+
592+
.method-get {
593+
background: #28a745;
594+
color: white;
595+
}
596+
597+
.method-post {
598+
background: #ff9800;
599+
color: white;
600+
}
601+
602+
.endpoint-item .path {
603+
font-family: 'Monaco', 'Menlo', monospace;
604+
font-weight: 600;
605+
flex-shrink: 0;
606+
}
607+
608+
.endpoint-item .desc {
609+
opacity: 0.9;
610+
font-size: 13px;
611+
}
612+
613+
.api-links {
614+
display: flex;
615+
gap: 15px;
616+
flex-wrap: wrap;
617+
justify-content: center;
618+
}
619+
620+
.api-link {
621+
display: inline-block;
622+
background: rgba(255, 255, 255, 0.2);
623+
color: white;
624+
padding: 12px 24px;
625+
border-radius: 6px;
626+
text-decoration: none;
627+
font-weight: 500;
628+
font-size: 14px;
629+
transition: all 0.3s;
630+
border: 2px solid rgba(255, 255, 255, 0.3);
631+
}
632+
633+
.api-link:hover {
634+
background: rgba(255, 255, 255, 0.3);
635+
transform: translateY(-2px);
636+
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
637+
}
638+
451639
@media (max-width: 768px) {
452640
.container {
453641
margin: 10px;
@@ -474,6 +662,33 @@
474662
flex: 1 1 50%;
475663
min-width: 120px;
476664
}
665+
666+
/* API 服务推广移动端样式 */
667+
.api-service-promo {
668+
padding: 20px;
669+
}
670+
671+
.api-header h3 {
672+
font-size: 20px;
673+
}
674+
675+
.api-features {
676+
grid-template-columns: 1fr;
677+
}
678+
679+
.api-links {
680+
flex-direction: column;
681+
}
682+
683+
.api-link {
684+
width: 100%;
685+
text-align: center;
686+
}
687+
688+
.docker-deploy .code-block {
689+
font-size: 11px;
690+
padding: 12px;
691+
}
477692
}
478693
</style>
479694
</head>
@@ -615,6 +830,79 @@ <h3>🔧 技术细节</h3>
615830
</div>
616831
</div>
617832

833+
<!-- API 服务推广 -->
834+
<div class="section">
835+
<div class="api-service-promo">
836+
<div class="api-header">
837+
<h3>🚀 支持 API 服务调用</h3>
838+
<p>批量处理、自动化解密、服务器端部署 - 满足您的专业需求</p>
839+
</div>
840+
841+
<div class="api-features">
842+
<div class="api-feature-item">
843+
<div class="feature-icon"></div>
844+
<div class="feature-content">
845+
<h4>高性能 API</h4>
846+
<p>基于 Playwright + WASM,完美兼容微信官方加密算法</p>
847+
</div>
848+
</div>
849+
<div class="api-feature-item">
850+
<div class="feature-icon">🐳</div>
851+
<div class="feature-content">
852+
<h4>Docker 一键部署</h4>
853+
<p>开箱即用,支持 ARM64/AMD64 多架构</p>
854+
</div>
855+
</div>
856+
<div class="api-feature-item">
857+
<div class="feature-icon">📡</div>
858+
<div class="feature-content">
859+
<h4>RESTful API</h4>
860+
<p>简洁易用的 HTTP 接口,支持批量解密和密钥流生成</p>
861+
</div>
862+
</div>
863+
</div>
864+
865+
<div class="docker-deploy">
866+
<h4>🐳 一键部署(使用 Docker Hub 镜像)</h4>
867+
<div class="code-block">docker run -d --name wechat-decrypt-api -p 3000:3000 evil0ctal/wechat-decrypt-api:latest</div>
868+
<p class="deploy-hint">💡 访问 <code>http://localhost:3000</code> 查看 API 文档和服务状态</p>
869+
</div>
870+
871+
<div class="api-endpoints">
872+
<h4>📚 API 端点</h4>
873+
<div class="endpoint-list">
874+
<div class="endpoint-item">
875+
<span class="method method-get">GET</span>
876+
<span class="path">/health</span>
877+
<span class="desc">健康检查</span>
878+
</div>
879+
<div class="endpoint-item">
880+
<span class="method method-post">POST</span>
881+
<span class="path">/api/keystream</span>
882+
<span class="desc">生成密钥流</span>
883+
</div>
884+
<div class="endpoint-item">
885+
<span class="method method-post">POST</span>
886+
<span class="path">/api/decrypt</span>
887+
<span class="desc">完整视频解密</span>
888+
</div>
889+
</div>
890+
</div>
891+
892+
<div class="api-links">
893+
<a href="https://github.com/Evil0ctal/WeChat-Channels-Video-File-Decryption/tree/main/api-service" target="_blank" class="api-link">
894+
📖 查看 API 文档
895+
</a>
896+
<a href="https://hub.docker.com/r/evil0ctal/wechat-decrypt-api" target="_blank" class="api-link">
897+
🐳 Docker Hub
898+
</a>
899+
<a href="https://github.com/Evil0ctal/WeChat-Channels-Video-File-Decryption" target="_blank" class="api-link">
900+
⭐ GitHub 仓库
901+
</a>
902+
</div>
903+
</div>
904+
</div>
905+
618906
<!-- 赞助商 -->
619907
<div class="section">
620908
<div class="sponsor">

0 commit comments

Comments
 (0)