mirror of
https://github.com/NewFuture/DDNS.git
synced 2026-10-20 00:16:45 +00:00
master
16
Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
8c42e248d6 |
ci(release): support immutable publishing (#737)
* ci(release): support immutable publishing Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> * fix(ci): address release review feedback Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> * fix(ci): validate release state before publishing Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> * fix(ci): simplify release tag preparation Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> --------- Co-authored-by: Future New (WEILAI LIU) <weilail@microsoft.com> Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> |
||
|
|
d14594f14d |
feat(web): add local management dashboard (#718)
* feat(web): add local management dashboard Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> * fix(web): address review and Python 2 compatibility Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> * chore: remove design session artifacts Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> * fix(web): harden packaged resources and HTTP semantics Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> * test(web): support Python 2 handler mocks Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> * fix(web): detect all external schedulers Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> --------- Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> |
||
|
|
a336bf2d9b |
Fix release body version substitution: correct docs path typo (#668)
* Initial plan * fix: update patch.py to include version in file description and Docker annotations - Modified add_nuitka_file_description() to accept version parameter and append it to description - Updated Docker build annotations to include version-specific description - Removed hardcoded file-description from Windows standalone build in publish.yml - Version now correctly appears in descriptions (e.g., [v4.1.0]) instead of "latest" Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> * chore: revert unintended Python 2 compatibility removal Restore systemd.py and http.py to previous state. These files were accidentally modified during testing of patch.py script. Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> * docs: add solution summary for version description fix Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> * fix: restore Python 2 compatibility code in systemd.py and http.py Properly restore the Python 2/3 compatibility try-except blocks that were accidentally removed during testing. Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> * fix: correct path to release.md for GitHub release body updates Fix typo in patch.py where it references 'doc/release.md' instead of 'docs/release.md'. This caused the release body to always show 'latest' instead of the actual version tag because the file was never found and updated. Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> * revert: remove Nuitka description changes, keep only docs path fix As requested, reverted all changes except the single-line fix changing 'doc' to 'docs' in patch.py line 468. This ensures only the GitHub release body version substitution fix is included. Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> * Fix release body version substitution: correct docs path typo Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> Co-authored-by: New Future <NewFuture@users.noreply.github.com> |
||
|
|
0e466dc496 |
feat(docs): add automated documentation website builder using VitePress 2.0 (#634)
* Initial plan * feat(docs): add static documentation website builder script Add build_docs.py script to convert markdown docs to static HTML website with: - Responsive navigation bar with collapsible directory tree - In-page table of contents (right sidebar, hidden on small screens) - Language switcher (Chinese/English) - Pure static HTML output (no server-side processing) - Footer with GitHub links and edit page link - Mobile-friendly responsive design Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> * style: format build_docs.py with ruff Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> * refactor(docs): use MkDocs with Material theme instead of custom parser Replace custom markdown parser with industry-standard tools: - MkDocs: Popular static site generator for documentation - Material for MkDocs: Modern, feature-rich theme Benefits: - Mature, well-tested codebase used by thousands of projects - Built-in features: search, navigation, TOC, code highlighting - Active development with regular updates - Extensive documentation and community support - Beautiful, responsive design out of the box - Easy to maintain with configuration-based approach Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> * refactor(docs): use VitePress instead of MkDocs for documentation Replace MkDocs with VitePress - a Vue-powered static site generator: - VitePress: Modern, fast, designed for documentation - Vue 3 + Vite stack with instant HMR - Built-in i18n, search, dark mode, responsive design - Chinese-friendly (created by Evan You) Features: - Responsive navigation with collapsible sidebar - In-page TOC automatically generated - Bilingual support (Chinese/English) - Local search with keyboard shortcuts - Light/Dark mode toggle - Edit page links to GitHub - Pure static HTML output Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> * feat(docs): add automated setup and build with npm run build Add automated directory setup for VitePress build: - Created scripts/setup-docs.mjs to auto-setup docs structure - Updated package.json with 'build' command that runs setup + build - Updated docs:dev to include setup automatically - Simplified workflow to one command: npm run build Changes: - npm run build now handles everything automatically - No need for separate bash script - Directory structure created on-demand - Updated BUILD_DOCS.md with simplified instructions Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> * fix(docs): improve VitePress configuration per feedback Addressed all feedback items: 1. Fixed edit link mapping: index.html now correctly maps to README.md/README.en.md in GitHub 2. Added schema directory to build output via public/ directory 3. Removed /doc/ prefix from all URLs - doc/ is now the web root 4. Fixed path references in README files during setup Changes: - Updated editLink to use function for proper README mapping - Modified setup script to copy doc/ contents to docs root (not docs/doc/) - Added schema/ to public/ directory for static asset serving - Fixed /doc/ path references in copied README files - Updated all navigation and sidebar paths to remove /doc/ prefix URLs now work as: - / (homepage from README.md) - /docker, /install (no /doc/ prefix) - /config/cli, /providers/dnspod (clean paths) - /schema/v4.0.json (accessible in build) Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> * fix(docs): preserve original /doc/ paths in documentation Per user feedback, reverted path modifications: - No longer replace /doc/ paths in README files - Restored doc/ directory structure (docs/doc/) - Updated VitePress navigation to use /doc/ prefix - Edit links correctly map to source files in doc/ directory Changes: - setup-docs.mjs: removed path replacement, copy doc/ to docs/doc/ - config.mts: restored /doc/ prefix in all navigation and sidebar paths - URLs now match original documentation: /doc/docker, /doc/providers/dnspod This preserves the original documentation structure and paths as they appear in the source repository. Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> * fix(docs): remove /doc/ prefix from URLs and ignore intermediate files Per user feedback, changed URLs from /doc/xxx.html to /xxx.html: Changes: 1. Updated setup-docs.mjs to copy doc/ contents to docs/ root (not docs/doc/) 2. Modified path replacement to handle both links and image src attributes 3. Updated VitePress config.mts to remove /doc/ prefix from all nav/sidebar paths 4. Updated .gitignore to exclude intermediate copied files from commits 5. Removed docs/index.md and docs/en/index.md from git tracking URLs now: - /docker.html instead of /doc/docker.html - /providers/dnspod.html instead of /doc/providers/dnspod.html - /config/cli.html instead of /doc/config/cli.html - Images at /img/ddns.svg instead of /doc/img/ddns.svg - Schema files remain at /schema/v4.0.json Intermediate files generated during build are now gitignored and won't be committed. Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> * refactor(docs): move build scripts to doc/ directory Moved documentation build scripts from root and scripts/ to doc/ directory: - Moved scripts/setup-docs.mjs → doc/setup-docs.mjs - Moved build_docs.sh → doc/build_docs.sh - Removed empty scripts/ directory - Updated package.json to reference new script locations - Updated BUILD_DOCS.md with new directory structure This organizes all documentation-related files under doc/ directory, keeping the repository root cleaner. Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> * refactor(docs): consolidate into single doc/ directory Eliminated docs/ directory, consolidated everything under doc/: - Moved docs/.vitepress/ → doc/.vitepress/ - Removed docs/ directory entirely - Updated package.json to use doc/ instead of docs/ - Updated .gitignore to reflect new structure (doc/.vitepress/dist/, doc/index.md, doc/en/, doc/public/) - Updated setup-docs.mjs to generate files within doc/ - Updated BUILD_DOCS.md documentation Structure now: - doc/ contains source files, VitePress config, and generated intermediate files - All build artifacts stay within doc/.vitepress/dist/ - Simpler single-directory structure without doc/docs nesting Commands remain the same: - npm run build - npm run docs:dev - npm run docs:preview Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> * refactor(docs): move package.json to doc/ directory Moved package.json to doc/ directory to consolidate all documentation-related files: - Moved package.json from root → doc/package.json - Updated package.json scripts to use relative paths (. instead of doc) - Updated BUILD_DOCS.md with new usage instructions (cd doc first) - Updated build_docs.sh to work from within doc/ directory - .gitignore already handles node_modules/ globally All documentation dependencies and configuration now in single doc/ directory. Usage: ```bash cd doc npm install npm run build ``` Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> * feat(docs): add install.sh to public, auto-redirects, and ensure README→index.html mapping Implemented three enhancements: 1. Copy install.sh to public/ directory - install.sh now accessible at /install.sh in build - Users can download directly from documentation site 2. Add automatic redirects for old URLs - Created custom VitePress theme with redirect logic - /doc/xxx URLs redirect to /xxx - /doc/xxx.en.html URLs redirect to /en/xxx.html - Maintains backward compatibility with old links 3. README.md renders as index.html with correct edit links - Already configured: index.md maps to README.md for editing - en/index.md maps to README.en.md for editing - Edit links work correctly for both Chinese and English homepages Updated BUILD_DOCS.md with new features documentation. Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> * feat(docs): upgrade to VitePress 2.0 (next) Upgraded VitePress from v1.x to v2.0 (next tag): - Updated package.json to use "vitepress": "next" - Currently using v2.0.0-alpha.15 - Tested build successfully - all features working - Updated BUILD_DOCS.md to reflect VitePress 2.0 VitePress 2.0 benefits: - Better performance and faster build times - Improved developer experience - Enhanced features and bug fixes - Future-ready with latest Vue 3 + Vite improvements Build tested and confirmed working with no breaking changes. Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> * fix(docs): remove redundant build script and fix copyright years Changes per user feedback: 1. Removed doc/build_docs.sh (redundant - standard npm commands sufficient) 2. Updated copyright in config.mts line 133: "Copyright © 2016 ~ 2024 NewFuture" 3. Updated copyright in config.mts line 305: "Copyright © 2016 ~ 2024 NewFuture" Usage now simplified to standard npm commands: - cd doc && npm install - npm run build - npm run docs:dev - npm run docs:preview Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> * fix(docs): dynamic copyright year, move redirects to esa.js, update providers link Per user feedback: 1. Made copyright year dynamic: `${new Date().getFullYear()}` (line 305) 2. Moved redirect logic from theme/index.ts to esa.js for server-side handling 3. Changed providers link from "概述 /providers/README" to "所有服务商 /providers/index" (line 70) Changes: - config.mts: Dynamic copyright calculation, updated providers navigation - esa.js: Added redirect logic for /doc/ URLs (301 permanent redirects) - theme/index.ts: Removed client-side redirect logic (now handled server-side) Redirects now handled at edge function level for better SEO and performance. Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> * fix(docs): improve redirects, provider link, and add code-to-GitHub link conversion Per user feedback (comment #3736692270): 1. Moved .en.html redirect logic before general /doc/ redirect in esa.js 2. Added /index.en.html → /en/ redirect 3. Changed providers/README URL to providers/ (line 39) 4. Added markdown transformer to convert code links (e.g., /ddns/provider/dnspod.py) to GitHub links Changes: - esa.js: Reordered redirect logic (en first), added index.en.html redirect - config.mts: Changed providers link from /providers/README to /providers/ - config.mts: Added markdown.config to transform inline code paths to GitHub links Code paths like `/ddns/provider/dnspod.py` in documentation will now automatically link to GitHub repository. Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> * feat(docs): enable dead link check, add sitemap, llms.txt, and GitHub Actions build Per user feedback (comment #3736806631): 1. Changed redirects to 301 permanent redirects in esa.js (line 183) 2. Enabled dead link checking in config.mts (ignoreDeadLinks: false) 3. Added sitemap generation (sitemap.hostname: https://ddns.newfuture.cc) 4. Added llms.txt generation via buildEnd hook for AI/LLM context 5. Created GitHub Actions workflow (.github/workflows/build-docs.yml) to build docs on push Changes: - esa.js: Clarified 301 redirect comment - config.mts: Enabled dead link check, added sitemap config, added buildEnd hook for llms.txt - .github/workflows/build-docs.yml: New workflow to build and optionally deploy docs GitHub Action triggers on: - Push to master/main (doc/, README*, schema/ paths) - Pull requests - Manual workflow dispatch Build output includes sitemap.xml and llms.txt for better SEO and AI integration. Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> * fix(docs): update Node.js to v24, retention to 7 days, simplify BUILD_DOCS Per user feedback (comment #3736833266): 1. Updated Node.js version from v20 to v24 in build-docs.yml (line 33) 2. Changed artifact retention from 30 to 7 days (line 50) 3. Simplified BUILD_DOCS.md - removed verbose explanations, kept essentials Changes: - .github/workflows/build-docs.yml: Node 24, 7-day retention - BUILD_DOCS.md: Condensed from 327 to 40 lines, focused on quick start and essential commands BUILD_DOCS.md now provides concise reference instead of lengthy tutorial. Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> * Apply suggestions from code review Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * refactor(docs): simplify link transformer, extract llms.txt template, add docs agent Per user feedback (comment #3737275691): 1. Simplified markdown transformer to only process link (a tag) hrefs instead of code_inline tokens 2. Extracted llms.txt content to separate template file (doc/llms.txt) with: - Complete documentation structure with all page URLs - All schema file URLs (v4.0, v2.8, v2) - Template variable {{DATE}} for build-time replacement 3. Deleted BUILD_DOCS.md and created .github/agents/docs.agent.md: - Comprehensive documentation maintenance agent - Full guide for updating docs, navigation, providers - Build/test procedures and common tasks - Guidelines for writing and link handling Changes: - config.mts: Transform link hrefs (not inline code), read llms.txt from template - doc/llms.txt: New template with full doc/schema URLs - .github/agents/docs.agent.md: New documentation maintenance agent - BUILD_DOCS.md: Deleted (replaced by agent instructions) Link transformer now only modifies existing <a> tags, preserving markdown styling. Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> * fix(docs): add metadata to docs agent, fix markdown syntax, add v4.1.json schema Per user feedback (comment #3737334654): 1. Added YAML metadata to docs.agent.md (name, description) following new-provider.agent.md format 2. Fixed markdown syntax to be GitHub-compatible: - Changed inline code blocks in list items to properly formatted code blocks - Ensured all code examples are in fenced code blocks 3. Added missing v4.1.json schema to llms.txt (was only showing v4.0, v2.8, v2) Changes: - .github/agents/docs.agent.md: Added YAML frontmatter, fixed markdown formatting - doc/llms.txt: Added v4.1 schema URL (first in list as newest version) All schema files now documented: v4.1, v4.0, v2.8, v2 Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> * refactor(docs): restructure to docs/ directory with cleaner organization Per user feedback (comment #3737399407): 1. Renamed doc/ → docs/ 2. Moved all .en.md files → docs/en/*.md (removed .en suffix) 3. Moved install.sh → docs/install.sh (source file, not copied) 4. Moved favicon.ico → docs/favicon.ico (source file) 5. Simplified setup-docs.mjs - no longer copies English files or install.sh 6. Updated all path references: - GitHub Actions workflow: doc/ → docs/ - .gitignore: doc/ → docs/ - VitePress config: edit links now map to docs/ - Documentation agent: updated structure docs New Structure: - docs/ (was doc/) - config/, providers/, dev/ (Chinese markdown) - en/ (English markdown, no .en suffix) - config/, providers/, dev/ - install.sh (source) - favicon.ico (source) - llms.txt (template) Build command unchanged: cd docs && npm run build All English documentation now sourced directly from docs/en/ instead of being generated. Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> * fix(docs): update documentation links from /doc/ to docs/ in README files Per user feedback (comment #3737497400): 1. Updated setup-docs.mjs to properly replace /doc/ → docs/ → / in README processing 2. Updated all /doc/ links to docs/ in README.md: - Image src: /doc/img/ddns.svg → docs/img/ddns.svg - Docker docs: /doc/docker.md → docs/docker.md - Config docs: /doc/config/* → docs/config/* - Provider docs: /doc/providers/* → docs/providers/* 3. Updated all /doc/ links to docs/en/ in README.en.md: - Image src: /doc/img/ddns.svg → docs/img/ddns.svg - Docker docs: /doc/docker.en.md → docs/en/docker.md - Config docs: /doc/config/*.en.md → docs/en/config/*.md - Provider docs: /doc/providers/*.en.md → docs/en/providers/*.md Changes: - docs/setup-docs.mjs: Two-step replacement (/doc/ → docs/ → /) for GitHub links - README.md: All documentation links now use docs/ prefix - README.en.md: All documentation links now use docs/en/ prefix Verified: No /doc/ links remain in README files or .github markdown files. Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> * refactor(docs): simplify setup script and move to .vitepress directory Per user feedback (comment #3737562776): 1. Moved setup-docs.mjs to docs/.vitepress/ directory 2. Simplified link replacement logic: - Removed unnecessary /doc/ processing code - Now only converts docs/ → / (Chinese version) - And docs/en/ → / (English version) - Since README files already use correct docs/ prefix 3. Updated package.json script paths to reference .vitepress/setup-docs.mjs 4. Updated path variables in script to work from .vitepress/ location Changes: - docs/.vitepress/setup-docs.mjs: New location, simplified logic - docs/package.json: Updated setup script path - Removed obsolete /doc/ → docs/ replacement steps Build process now simpler and cleaner. Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> * fix(docs): fix all broken documentation links Per user feedback (comment #3737640946): Fixed all broken links throughout the documentation: 1. Fixed providers/README links → providers/ (clean URL) 2. Removed all .en.md suffixes from links (files now in docs/en/ with .md extension) 3. Fixed /doc/ prefix references → proper docs/ paths 4. Fixed cross-references between Chinese and English docs: - Chinese providers/README.md → ../en/providers/*.md for English docs - English docs use relative paths within en/ directory 5. Fixed redirect_to URLs in dnscom.md files 6. Fixed image URL: /doc/img/ → /img/ Changes affect 28 files: - All config documentation (cli.md, env.md, json.md) in both languages - All provider documentation in both languages - Developer documentation (dev/config.md) - Docker documentation - Provider README files All dead links now resolved. Documentation navigation works correctly. Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> * fix(docs): fix remaining dead links in generated index.md and provider files Per user feedback (comment #3737692822): Fixed all remaining dead links: 1. Enhanced setup-docs.mjs to handle ./doc/ prefix links: - Added replacement for (./doc/ → (/ - Added replacement for /providers/index → /providers/ - Now correctly converts README links to clean web URLs 2. Fixed provider documentation links: - callback.md and debug.md: Added "Return to All Providers" links - English versions: Added /en/providers/ links - Removed broken ./../../README links All dead links now resolved: - ./doc/install → /install - ./doc/providers/* → /providers/* - ./doc/config/* → /config/* - /providers/index → /providers/ - Provider files now link to /providers/ and /en/providers/ Dead link checking should now pass successfully. Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> * fix(docs): fix all remaining dead links in documentation Per user feedback (comment #3737728554): Fixed all remaining dead links throughout documentation: 1. Enhanced setup-docs.mjs: - Added replacement for ](doc/ pattern - Handles more link format variations 2. Fixed config files (6 files): - config/cli.md: providers/ → ../providers/, providers/callback → ../providers/callback - config/json.md: docker.md → ../docker.md, providers/ → ../providers/ - en/config/env.md: providers/callback → ../providers/callback, docker → ../docker, providers/ → ../providers/ - en/config/json.md: docker.md → ../docker.md, providers/ → ../providers/ 3. Fixed provider files (6 files): - providers/callback.md, debug.md, README.md: ../../README.md → / - en/providers/callback.md, debug.md: ../../README.md → /en/ - en/providers/he.md: ../json.md → ../config/json.md All dead links resolved: ✓ ./providers/index → ../providers/ ✓ ./providers/callback → ../providers/callback ✓ ./docker → ../docker ✓ ./../../README → / (or /en/) ✓ ../json → ../config/json ✓ ](doc/ → ](/ Dead link checking should now pass successfully with zero errors. Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> * fix(docs): add VitePress rewrites to map providers/README.md to /providers/ Per user feedback (comment #3737780259): Fixed `/providers/index` dead links by adding VitePress rewrites configuration. Changes to docs/.vitepress/config.mts: 1. Added rewrites mapping: - providers/README.md → providers/index.md - en/providers/README.md → en/providers/index.md 2. Updated sidebar links: - /providers/index → /providers/ - /en/providers/index → /en/providers/ This tells VitePress that the README.md files in providers directories should be accessible via the /providers/ URL (with cleanUrls enabled). All /providers/index links now correctly resolve to /providers/ Dead link checking should now pass with zero errors. Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> * fix(docs): fix providers/index links and simplify setup script Per user feedback (comment #3737836475): 1. Fixed dead links in config/env.md files: - ./providers/ → ../providers/ (both Chinese and English) 2. Simplified setup-docs.mjs: - Removed unnecessary doc/ processing (README no longer contains doc/) - Merged logic for both README files into single processReadme function - Cleaner, more maintainable code with less duplication Changes: - docs/config/env.md: Fixed providers/ link - docs/en/config/env.md: Fixed providers/ link - docs/.vitepress/setup-docs.mjs: Refactored with shared function Dead link checking should now pass with zero errors. Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> * refactor(docs): remove providers/index replacement from setup script Per user feedback (comment #3737887893): Removed `/providers/index` → `/providers/` replacement from setup-docs.mjs. This should be fixed in markdown files instead, not in the setup script. Simplified setup script by removing unnecessary transformation logic. Changes: - docs/.vitepress/setup-docs.mjs: Removed line 29 replacement Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> * fix(docs): update remaining /doc/ references to docs/ in README files Per user feedback (comment #3737970179): Updated all remaining /doc/ references to docs/ or docs/en/ in both README files. Changes in README.md: - doc/install.md → docs/install.md - All doc/providers/*.md → docs/providers/*.md (10 provider links) Changes in README.en.md: - doc/install.en.md → docs/en/install.md - doc/providers/dnspod.en.md → docs/en/providers/dnspod.md - doc/providers/alidns.en.md → docs/en/providers/alidns.md All documentation links now correctly use docs/ prefix for GitHub navigation. Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> * fix(docs): update all remaining doc/ references to docs/ in README files Per user feedback (comment #3738298603): Updated ALL remaining doc/ references to docs/ or docs/en/ in both README files. Changes in README.md (13 links): - doc/providers/edgeone.md → docs/providers/edgeone.md - doc/providers/noip.md → docs/providers/noip.md - doc/config/cli.md → docs/config/cli.md (3 occurrences) - doc/config/json.md → docs/config/json.md (2 occurrences) - doc/config/env.md → docs/config/env.md (2 occurrences) - doc/providers/ → docs/providers/ (3 occurrences) Changes in README.en.md (13 links): - doc/providers/*.en.md → docs/en/providers/*.md (9 provider links) - doc/config/cli.en.md → docs/en/config/cli.md - doc/config/json.en.md → docs/en/config/json.md - doc/config/env.en.md → docs/en/config/env.md - doc/providers/ → docs/en/providers/ All documentation links now use correct docs/ prefix with NO /doc/ references remaining. Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> * refactor(docs): integrate setup logic into config.mts Per user feedback (comment #3738600577): Integrated setup-docs.mjs functionality into config.mts. Changes: 1. Removed standalone setup-docs.mjs file 2. Added setupDocs() function in config.mts that runs before config export 3. Simplified package.json scripts - removed setup step 4. Setup now runs automatically when config loads (works for both dev and build) Benefits: - Single configuration file - easier to maintain - No separate setup script needed - Automatic execution on both dev and build - Cleaner package.json scripts - Same functionality, simpler implementation Build command: `npm run build` or `npm run docs:dev` Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> * update link * /doc/img/ddns.svg * fix docs paths * fix docs * fix docs url --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> Co-authored-by: New Future <NewFuture@users.noreply.github.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> |
||
|
|
f99fd8f0b3 |
feat(provider): add EdgeOne DNS provider for non-accelerated domain records (#588)
* Initial plan * feat(provider): add EdgeOne DNS provider for non-accelerated domains Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> * docs(provider): add EdgeOne DNS documentation for non-accelerated domains Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> * fix(provider): update EdgeOne provider aliases per feedback - Acceleration domains: edgeone, edgeone_acc, teo_acc - DNS records: edgeone_dns, teo_dns, edgeone_noacc - Removed: teo, tencentedgeone, neo_acc, neo - Updated documentation to reflect new aliases Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> * feat(provider): add extra parameter support and update documentation index - Add edgeone_dns to provider index documentation (README.md) - Add "teo" alias for backward compatibility (not documented) - Enable EdgeOneProvider to support both acceleration and DNS records via extra['dns_record'] parameter - Update provider aliases and documentation Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> * docs: create comprehensive new-provider agent guide - Add detailed step-by-step guide for creating new DNS providers - Include API analysis, implementation, testing, and documentation steps - Provide code templates and examples for both BaseProvider and SimpleProvider - Add completion checklist and common pitfalls - Document all requirements including compatibility checks and index updates Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> * refactor(provider): change extra parameter from dns_record to teoDomainType - Change EdgeOneProvider to use teoDomainType parameter instead of dns_record - Support values: "dns" or "acceleration" (default) - Parameter is case-insensitive - EdgeOneDnsProvider now uses extra parameter to control behavior - All 55 tests passing Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> * refactor(provider): simplify EdgeOneDnsProvider with helper method - Extract common extra parameter preparation into _prepare_extra() method - Reduces code duplication across _query_record, _create_record, _update_record - All 55 tests passing Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> * refactor(provider): make EdgeOneDnsProvider more elegant and concise - Use class attribute _default_domain_type = "dns" for clarity - Replace _prepare_extra() with inline setdefault() for more Pythonic code - setdefault() allows users to override teoDomainType if needed - All 55 tests passing Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> * refactor(provider): use options instead of extra for teoDomainType - Move teoDomainType from per-call extra to instance-level options - More appropriate since provider type is fixed per instance - EdgeOneProvider reads teoDomainType from self.options at initialization - EdgeOneDnsProvider sets teoDomainType="dns" in __init__ - Simplified implementation: 28 lines vs 43 lines for EdgeOneDnsProvider - All 55 tests passing Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> * refactor(provider): support both extra and options for teoDomainType with priority - Remove __init__ from EdgeOneProvider, read directly from self.options - Support teoDomainType in both extra (per-call) and options (initialization) - extra parameter has higher priority than options - Priority: extra > options > default ("acceleration") - All 55 tests passing Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> * docs(provider): add teoDomainType parameter documentation for EdgeOne - Document how to switch between acceleration domains and DNS records - Explain extra.teoDomainType parameter usage - Add configuration examples for both modes - Update parameter tables with teoDomainType and extra - Document priority: extra > initialization parameter - Add bilingual documentation (Chinese and English) Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> * docs(provider): remove initialization parameter config example from EdgeOne - Remove the example showing teoDomainType via initialization parameters - Only document usage via extra parameter - Remove priority note since only one method is documented - Keep recommendation to use EdgeOneDnsProvider for cleaner code - Update both Chinese and English documentation Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> * docs(agent): update new-provider guide with relative paths and schema notes - Update CLI compatibility note to mention checking --dns parameter choices - Change schema note to only require v4.0 (latest format) updates - Replace "multi-provider format" with "latest schema format" - Convert all absolute paths to relative paths from project root - Remove /home/runner/work/DDNS/DDNS/ prefix from all file paths Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> * docs(agent): correct latest schema version to v4.1 - Update schema compatibility section to reference v4.1 instead of v4.0 - v4.1 is the latest schema format that requires updates Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> * feat(config): add edgeone_dns to CLI and schema v4.1 - Add edgeone_dns to CLI --dns parameter choices - Add edgeone_dns to schema v4.1 provider enum (both legacy and multi-provider sections) - Update provider descriptions to include EdgeOne DNS Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> * Apply suggestions from code review Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Refactor labels_to_prompts_mapping format * fix(provider): filter teoDomainType from extra params before API call - Remove teoDomainType from extra dict before passing to Tencent Cloud API - Fixes "UnknownParameter - The parameter `extra_teoDomainType` is not recognized" error - teoDomainType is internal parameter for routing, not for API requests - All 55 tests passing Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> * docs(provider): update schema references to v4.1.json in EdgeOne docs - Update all $schema references from v4.0.json to v4.1.json - Applied to edgeone.md, edgeone.en.md, edgeone_dns.md, edgeone_dns.en.md - Ensures documentation references the latest schema format Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> * Changes before error encountered Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> * fix(config): preserve nested extra dict from JSON/ENV config - Process "extra" dict before extra_ prefixed keys to avoid flattening - Fixes issue where {"extra":{"teoDomainType":"dns"}} was incorrectly transformed to {"extra_teoDomainType":"dns"} - Maintains backward compatibility with extra_ prefixed keys - Priority: explicit extra dict > extra_ prefixed keys > unknown keys Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> * Apply suggestions from code review Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Apply suggestions from code review Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update tests/test_provider_edgeone_dns.py Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update tests/test_provider_edgeone_dns.py Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * style: apply ruff formatting fixes - Format 9 files with ruff - Fix 2 linting issues automatically - One complexity warning remains (C901) but doesn't affect functionality - All code now follows consistent formatting standards Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> * docs(agent): add ruff installation instructions to new-provider guide - Add pip3 install ruff command before formatting/linting steps - Ensures developers have required tools before running verification - Prevents common setup errors Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> * docs(config): clarify extra dict and extra_ prefix priority within config sources - Add comments explaining that extra_ prefixed keys override nested extra dict values within the same source - Improves code documentation clarity for config flattening logic - Addresses feedback about intra-source priority ordering Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> * refactor(config): reduce complexity of _collect_extra method - Extract _process_extra_from_source helper method to reduce cyclomatic complexity - Fixes ruff C901 error (complexity was 14, now under threshold) - Maintains all existing functionality and test coverage - All 60 extra-related tests passing Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> Co-authored-by: New Future <NewFuture@users.noreply.github.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> |
||
|
|
6f5984c588 | fix(scheduler ): scheduler path and check (#550) | ||
|
|
1463020411 |
fix(scheduler): 优化 Windows 打包和定时任务 and command executio… (#547)
* feat(scheduler): enhance Windows task scheduling and command execution handling fix(install): update version fetching logic in installation script test(scheduler): refactor tests to remove VBS script dependency and validate command execution * feat(versioning): enhance version resolution logic and update release links in documentation * feat(scheduler): improve DDNS command retrieval and set working directory for task scheduling * test: update command assertions to handle list output and improve readability * fix: update curl command to use progress meter in installation scripts and documentation * fix: adjust packaging to include contents of .dist folder directly and update release notes for EXE warnings * feat: add Windows app build and packaging steps to publish workflow |
||
|
|
b9bd2ab333 | ci:update patch release | ||
|
|
f7a92b3903 |
chore(lint): replace flake8 and black with ruff for unified linting and formatting (#544)
* Initial plan * feat: replace flake8 and black with ruff for unified linting and formatting Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> * refactor: use astral-sh/ruff-action@v3 for cleaner CI workflow Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> * run format * use fmt skip * fix cloudflare * fix cron * fix cron * fix fileio tests * fix fileio tests * fix cron --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> Co-authored-by: New Future <NewFuture@users.noreply.github.com> |
||
|
|
6c24557505 |
feat(cli): add task subcommand for automated scheduled task management (#541)
* Initial plan * feat(cli): implement task subcommand with cross-platform scheduler support Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> * docs(cli): add task subcommand documentation Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> * fix(cli,task): address review feedback - move task handler to cli, remove defaults, improve fallback status checking Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> * refactor(task): convert TaskManager class to functions and handle task commands entirely in CLI Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> * fix(cli,tests): remove handle_task_command from exports and rename test file Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> * feat(task): add enable and disable commands for scheduled tasks * add task tests * refactor(task): simplify task command handling and update status retrieval * update task * test(task): update subcommand tests to assert exit codes and rename delete to uninstall * Add unit tests for DDNS task subcommand functionality and enhance existing tests - Introduced comprehensive unit tests for the DDNS task subcommand, covering help, status, install, enable, disable, delete, and argument handling. - Added tests for file I/O operations in the ddns.util.fileio module, ensuring proper directory creation, file reading/writing, and error handling. - Enhanced test coverage for task scheduling functions, including systemd and cron installations, with additional checks for argument handling. - Updated existing tests to improve compatibility and reliability across different operating systems, particularly for path handling on Windows. - Refactored task command building tests to ensure correct command generation with various argument types, including lists and boolean flags. * refactor(task): improve command execution and path handling for DDNS tasks * remove DEVNULL * fix(task): ensure proper task interval handling and add sudo for task commands in test script * add and fix tests * fix lint * refactor(cli): organize DDNS arguments into groups and improve task subcommand handling * fix tests * +x * fix py2 and types * rm sudo * fix(tests): use sudo for task installation and uninstallation in test script * update test command * always force * fix format * docs: add task management parameters and usage examples to CLI documentation * update log * docs: update CLI task management instructions and examples * fix py2 * fix task in python2 * fix lint * refactor tasks * update tests * add schtasks-based task scheduler implementation and unit tests * Enhance scheduler functionality and improve error handling - Added a 60-second timeout to subprocess calls in BaseScheduler to prevent hanging. - Improved error logging in BaseScheduler to capture command failures. - Refactored CronScheduler to remove unnecessary variable initialization. - Updated SystemdScheduler to handle PermissionError and provide user feedback for permission issues. - Enhanced file I/O functions in fileio.py to return default values on exceptions. - Improved unit tests for scheduler classes to ensure robust testing of functionality and error handling. - Added lifecycle operation tests for SystemdScheduler to validate install, enable, disable, and uninstall processes. - Ensured consistent status reporting across multiple calls in SystemdScheduler. - Cleaned up test code for better readability and maintainability. * fix lint * Refactor scheduler command execution and enhance error handling in BaseScheduler and LaunchdScheduler tests * fix tests * Add unittest configuration to settings and improve SchtasksScheduler error handling * Refactor code for improved readability and maintainability in various test files and the DnspodProvider class * Refactor LaunchdScheduler tests for improved readability and error handling * fix py2 * fix mac launchd test * fix lint * fix macos tests * fix windows test * patch readme * update doc * Update tests/test_scheduler_cron.py Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> Co-authored-by: New Future <NewFuture@users.noreply.github.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> |
||
|
|
96b4ca2e0c |
feat(config): 支持多配置文件和多服务商 优化http support multi config/providers (#531)
* Initial plan * Implement multi-provider and multi-config file support Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> * Complete multi-provider and multi-config support with comprehensive testing Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> * Address code review feedback: fix exit behavior, remove special env handling, fix log level Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> * Add object-with-configs array support for improved JSON schema validation Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> * Address code review feedback: simplify config path handling, remove load_config function, and improve debug provider logic Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> * Address final code review feedback: improve log handling, provider logging, and debug assignment logic Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> * Address final review feedback: simplify debug provider logic and remove array format support Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> * Fix lint issues: remove whitespace from blank lines and apply black formatting Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> * Implement schema v4.1 with multi-provider support using providers array format Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> * Address code review feedback: rename tests, use global log settings, simplify config logic, remove configs format support Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> * Fix lint issues and simplify complex functions to reduce cyclomatic complexity Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> * Address code review feedback: enhance config functions and inline simple logic Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> * Fix Python 2.7 compatibility and lint issues in test_config_schema_v4_1.py Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> * Simplify config logic, fix Python 2.7 compatibility, and improve code formatting Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> * Optimize config logic and enhance schema v4.0/v4.1 compatibility tests Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> * Update file.py * Update file.py * Update file.py * Update file.py * Fix critical bug in multi-provider config processing and clean up lint issues Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> * fix * 优化测试代码格式,移除多余空行并调整注释位置 * refactor: update HTTP request handling and improve error processing - Refactored imports for better clarity and organization. - Added custom HTTP error processor to handle all HTTP error status codes gracefully. - Enhanced SSL certificate loading with additional paths for Windows. - Updated test cases to use HTTP instead of HTTPS for testing endpoints. - Added tests for handling HTTP 400 Bad Request and SSL auto fallback behavior. * update http * update docs * refactor: enhance SSL handling in SSLAutoFallbackHandler for better compatibility * add multi tests * fix patch and add rename fileds * refactor: update provider field naming in configuration tests for consistency * update doc link * fix encoding * fix * 清理编码问题 * fix 编码问题 --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> |
||
|
|
f1a764d3c2 |
refact(provider): 巨大重构 (#484)
* abc * update base * update * add doc * dnspod class provider * lint * fix lint * 类型检查 * add alidns * cloudflare * dnspod 国际版 * Update pyproject.toml Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * update dnscom * Update dnspod.py * fix lint * 提供兼容的encode 和 quote 方法 * huawei dns * 名称兼容 * join domain * static * update base * add callback * update http * fix and update hw * merge * refactor: reorganize imports and enhance logging in provider modules * refactor: update method signatures to use None as default for extra parameters * Apply suggestions from code review Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update ddns/provider/__init__.py Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * resolve comments * update doc * update doc * using self logger * update format * Refactor config handling and update provider docs Refactored argument parsing and config file logic in ddns/util/config.py for clarity and improved debug handling. Updated provider development documentation to clarify standard and non-standard DNS provider requirements and examples. Added 'print' as a valid DNS provider in the v4.0 schema and improved enum formatting for log options. Minor logging and message adjustments in ddns/__main__.py. * Rename PrintProvider to DebugProvider and update references Renamed PrintProvider to DebugProvider and updated all references in the codebase, including configuration defaults and schema. This change standardizes the provider naming and improves clarity by using 'debug' instead of 'print' for the default DNS provider. * Add logger support to Cache and BaseProvider classes Introduced logger injection for Cache and BaseProvider to improve logging consistency and flexibility. Updated main entry to pass logger instances, enhanced debug log formats, and fixed a documentation reference in provider.md. * update callback * fix lint * Add and refine provider authentication validation Introduces a _validate method to BaseProvider and its subclasses to ensure authentication credentials are properly set. Refactors CallbackProvider to simplify parameter replacement and validation. Adds stricter validation for CloudflareProvider, requiring a valid email for auth_id. Updates HTTP parameter handling in BaseProvider for improved query and body management. * fix py2 * fix import * fix dnspod and Improve logging and robustness in DDNS provider and utils Enhanced logging throughout the DDNS provider base and main entrypoint for better traceability, including more informative log messages and additional warning/critical logs. Improved the robustness of domain splitting and zone ID resolution logic. Updated dnspod provider methods with doc links and fixed parameter handling. Refactored config to disable cache in debug mode, and standardized string quoting and regex usage in IP utility functions for consistency. * Mask sensitive data in logs for URL and body Introduced the _mask_sensitive_data method to obfuscate sensitive information such as authentication tokens in URLs and request bodies before logging. Updated logging statements to use this masking for improved security. * Add unit tests for BaseProvider and update CI workflow Introduces a test suite for BaseProvider in tests/test_base_provider.py and initializes the tests package. Updates the GitHub Actions workflow to run unit tests as part of the build process. * Remove unused encoding parameter from _quote method The _quote static method in BaseProvider no longer accepts the unused 'encoding' parameter, aligning its signature with actual usage and simplifying the code. * Remove unused 'errors' parameter from _quote method The _quote static method in BaseProvider no longer accepts the 'errors' parameter, as it was not used. The type annotation and call to quote have been updated accordingly. * Refactor CallbackProvider and add unit tests Refactored CallbackProvider to improve variable replacement and HTTP method handling in set_record. Added comprehensive unit tests for CallbackProvider covering initialization, variable replacement, HTTP request logic, and error handling. Minor cleanup in get_system_info_str to remove redundant comment. * Rename and update provider test files, add DebugProvider tests Renamed test_base_provider.py to test_provider_base.py and test_callback_provider.py to test_provider_callback.py for consistency. Updated imports and minor formatting in test_provider_callback.py. Added comprehensive unit and integration tests for DebugProvider in new test_provider_debug.py. * he tests * Refactor tests to use shared BaseProviderTestCase Introduces a new test_base.py with BaseProviderTestCase to provide common setup and utilities for provider tests. Refactors test_provider_base.py, test_provider_callback.py, test_provider_debug.py, and test_provider_he.py to inherit from BaseProviderTestCase, reducing code duplication and improving maintainability. * Improve test configuration and Python 2.7 compatibility Added mock installation for Python 2.7 in CI and as an optional dependency. Enhanced pyproject.toml with unified unittest and pytest configuration, coverage, and flake8 settings. Added a comprehensive tests/README.md for running and writing tests. Refactored test_provider_base.py to use _TestProvider for clarity and consistency. * fix py2 pip * fix pip2 * install pip * tmp dir * Use PY env variable for Python 2.7 setup in CI Replaces hardcoded 'python2' with the PY environment variable in the build workflow for Python 2.7. This improves flexibility and consistency in the CI setup. * Add stub DNS record methods to DebugProvider and HeProvider Introduces _query_zone_id, _create_record, _update_record, and _query_record methods to DebugProvider and HeProvider. DebugProvider raises NotImplementedError for create/update, while HeProvider returns False for these methods. This prepares both providers for a unified interface and future extension. * fix debug * fix tests * fix typos * fix id check * callback 兼容python2 * add SimpleProvider * fix * fix lint * remove duplicate code * fix lint * fix tests * query with condition * fix test for py2 * fix debug tests * run ut in more system * add unit tests for SimpleProvider and update README * Refactor dnspod provider and add comprehensive tests Refactored the DnspodProvider to improve record querying logic, parameter handling, and logging. Expanded the provider development guide with detailed instructions and best practices for both SimpleProvider and BaseProvider. Added a full-featured test suite for DnspodProvider, including unit and integration tests, and updated test documentation for improved clarity and usage instructions. * fix type * format * Add unit tests for AlidnsProvider and CloudflareProvider Added comprehensive unit and integration tests for AlidnsProvider and CloudflareProvider in tests/test_provider_alidns.py and tests/test_provider_cloudflare.py. Also updated type hints in set_record methods in ddns/provider/_base.py for better type accuracy. * Add and update provider tests; fix datetime usage Added comprehensive unit and integration tests for DnscomProvider and HuaweiDNSProvider. Updated test authorship to GitHub Copilot. Improved test structure and naming for SimpleProvider. Fixed datetime usage in alidns.py and huaweidns.py to use timezone-aware UTC. Cleaned up and clarified test README instructions. * Use datetime.utcnow() for UTC timestamps Replaced usage of datetime.now(timezone.utc) with datetime.utcnow() in AlidnsProvider and HuaweiDNSProvider to avoid deprecation warnings and ensure compatibility. Updated related tests to mock datetime.utcnow() instead of datetime.now(). * Add unit tests for DnspodComProvider Introduces unit and integration tests for the DnspodComProvider class, verifying class constants, initialization, inheritance, API endpoint differences, and default line settings. * feat: Add TencentCloudProvider and implement related unit tests - Introduced TencentCloudProvider for Tencent Cloud DNSPod API integration. - Updated existing provider classes to utilize datetime.utcnow() for consistent UTC timestamp handling. - Refactored unit tests for AlidnsProvider, CallbackProvider, DnscomProvider, and HuaweiDNSProvider to use the new now() method for timestamp generation. - Added comprehensive unit tests for TencentCloudProvider covering initialization, validation, signature generation, record querying, creation, and updating. - Ensured compatibility with existing functionality while enhancing test coverage and reliability. * fix tests * always use the time * fix TencentCloudProvider * fix lint * Add new feature to process user input Introduced a function to handle and validate user input, improving the robustness of the input processing workflow. * Update unit tests for various DNS providers * Refactor test imports to use base_test.py for consistency across provider tests * Enhance CallbackProvider and HTTP utilities - Updated CallbackProvider to include User-Agent header in requests. - Improved handling of GET and POST methods based on the presence of auth_token. - Added a new HTTP utilities module for better HTTP request handling, including SSL verification and redirect following. - Implemented comprehensive unit tests for the new HTTP utilities, covering various scenarios including SSL handling, redirects, and error responses. - Added real integration tests for CallbackProvider using httpbin.org to validate actual HTTP interactions. - Enhanced test coverage for SimpleProvider, including verification of sensitive data masking and initialization options. * Refactor provider constants and response handling - Changed class constants from CamelCase (ContentType, DecodeResponse) to snake_case (content_type, decode_response) for consistency across providers. - Updated the default value of `verify_ssl` to "auto" in SimpleProvider. - Adjusted the initialization of providers to accept `verify_ssl` as a parameter. - Modified the handling of headers in HTTP requests to ensure `accept` and `content-type` are set correctly. - Updated tests to reflect changes in constant naming and initialization parameters. - Enhanced error handling in HTTP requests to provide more informative messages. * Refactor unit tests to use MagicMock for improved clarity and consistency * Enhance TencentCloudProvider with improved zone ID querying and response handling in unit tests * Refactor HTTP callback handling and enhance error logging - Improved error handling in CallbackProvider to log exceptions and empty responses. - Introduced HttpResponse class to encapsulate HTTP response details, including status, reason, headers, and body. - Updated send_http_request to return HttpResponse objects instead of raw response strings. - Enhanced tests for CallbackProvider and send_http_request to validate logging and response handling. - Added unit tests for HttpResponse and decoding response bodies with various character sets. * Enhance TencentCloudProvider with improved header handling and signature generation in unit tests * Enhance error handling and logging in DnspodProvider and TencentCloudProvider unit tests * Enhance Python 2/3 compatibility in test_util_http.py with utility functions for string encoding and decoding * fix py2 and time * fix tests * disable push build * Apply suggestions from code review Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update tests/test_provider_cloudflare.py Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * update doc * Refactor TencentCloudProvider methods to use consistent parameter naming for subdomains; update documentation for DNSPod provider authentication methods; enhance error handling in tests to return False instead of raising exceptions for non-existent records; improve masking of sensitive data in URLs; add tests for URL-encoded sensitive data handling. * Add Callback Provider documentation and enhance DNSPod and Tencent Cloud guides - Introduced a comprehensive documentation for the Callback Provider, detailing configuration, request methods, variable replacements, usage scenarios, and troubleshooting tips. - Updated DNSPod documentation to include a link to Tencent Cloud DNSPod for better user guidance. - Added a new Tencent Cloud DNS configuration guide in both English and Chinese, outlining authentication methods, configuration examples, optional parameters, and troubleshooting steps. - Enhanced test cases for AlidnsProvider to validate signature generation and request handling, ensuring proper HTTP interactions and error handling. - Improved error message validation in DNSPod tests to ensure clarity in authentication failure messages. * Enhance documentation and validation for DNS providers; add Callback Provider configuration guide and improve error handling messages for Cloudflare, DNS.COM, HE.net, and HuaweiDNS providers. * Update tests/test_provider_callback.py Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update tests/test_provider_dnscom.py Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update tests/test_provider_debug.py Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update tests/test_provider_he.py Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> |
||
|
|
860e601be5 |
fix(pypi): patch.py version (#482)
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> |
||
|
|
baf1fdc30c |
refact(py): Refactor structure (#481)
* 目录结构重构 * update config * rename dns to provider * patch version info * remove version replace Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * add ENV GITHUB_REF_NAME to docker build --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> |
||
|
|
d673108f77 |
chore(ci): 重构pipeline using prebuilt docker (#478)
* remove pyinstaller and use prebuilt docker * Attest * add prebuilt in production * add lto * auto add hidden modules * add png * Apply suggestions from code review Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * fix build --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> |
||
|
|
f051cc9d40 |
build(bin): 统一Linux build python 版本,添加Glibc 支持 (#473)
* build(bin): glibc versions * fix patch * fix binary build * use python3.8 for all linux and docker build * fix encoding and tests |