|
448 | 448 | text-decoration: underline; |
449 | 449 | } |
450 | 450 |
|
| 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 | + |
451 | 639 | @media (max-width: 768px) { |
452 | 640 | .container { |
453 | 641 | margin: 10px; |
|
474 | 662 | flex: 1 1 50%; |
475 | 663 | min-width: 120px; |
476 | 664 | } |
| 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 | + } |
477 | 692 | } |
478 | 693 | </style> |
479 | 694 | </head> |
@@ -615,6 +830,79 @@ <h3>🔧 技术细节</h3> |
615 | 830 | </div> |
616 | 831 | </div> |
617 | 832 |
|
| 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 | + |
618 | 906 | <!-- 赞助商 --> |
619 | 907 | <div class="section"> |
620 | 908 | <div class="sponsor"> |
|
0 commit comments