mirror of
https://github.com/NewFuture/DDNS.git
synced 2026-10-20 00:16:45 +00:00
master
8
Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
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> |
||
|
|
06fceed0f7 |
feat(cache): add configurable cache max age (#709)
* feat(cache): add configurable cache max age Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> * test(cache): cover cache max age integration paths Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> * test(cache): fix portable regression test formatting Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> * style(test): format cache max age run test 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> |
||
|
|
8afc0920dd |
docs: update schema references from v4.0.json to v4.1.json (#651)
* Initial plan * docs: update schema references from v4.0.json to v4.1.json Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> * fix: revert schema/v4.0.json to keep v4.0 definition unchanged Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> * docs: update schema file links to v4.1.json in provider README 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> |
||
|
|
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> |
||
|
|
d9b0b825d1 |
feat(config): 支持当行注释 Add JSON comment support with # and // styles for configuration files (#515)
* Add JSON comment support with # and // styles Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> * Fix Python 2.7 compatibility and remove trailing whitespace Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> * Fix lint issues and simplify comment removal logic 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> |
||
|
|
485e6a3e26 |
Refact(config): 统一配置 (#506)
* Add unit tests for configuration loading and JSON handling - Introduced comprehensive unit tests for the ddns.config.__init__ module, covering various scenarios for the load_config function, including configuration merging, error handling, and CLI integration. - Created a new test suite for the JSON configuration module, validating loading, saving, and edge cases for JSON files. - Removed outdated SSL configuration tests that are no longer relevant to the current implementation. * feat(provider): add endpoint parameter to SimpleProvider and update user agent format feat(cli): add endpoint argument to load_config test(tests): add tests for endpoint handling and user agent formatting * feat(doc): add comprehensive configuration documentation for DDNS system * feat: Update environment variable handling and documentation - Changed default values for DDNS_INDEX4 and DDNS_INDEX6 from "default" to ["default"] in env.md and json.md. - Enhanced documentation for index4 and index6 to clarify handling of special prefixes (regex, cmd, shell) and their impact on splitting. - Updated schema to reflect new default values and added support for custom API endpoints and SSL settings. - Improved test coverage for environment variable handling, including special cases for proxy and SSL settings. - Refactored tests to ensure proper handling of environment variables and their precedence over defaults. - Minor adjustments to test cases for consistency and clarity. * fix config and tests * fix error * fix tests * fix tests * fix * Add comprehensive unit tests for configuration file loading - Introduced a new test suite for the configuration file loading module, covering JSON and AST parsing, fallback logic, error handling, and various edge cases. - Replaced references to `load_json_config` with `load_file_config` in existing tests to unify configuration loading methods. - Removed the outdated `test_config_json.py` file as its functionality is now covered in the new test suite. * Fix test_load_config_priority_order mock parameter names for clarity * Add main entry point for test execution in configuration tests * Enhance Config class to flatten single-element lists and improve configuration loading tests * fix tests * update tests * fix: 修复类型注释以支持 None 类型并更新测试用例描述 * fix lint * fix py2.7 * feat: 添加对51dns和aliesa的支持,并更新SSL参数处理 * Refactor unit tests for configuration modules - Updated test descriptions to specify the ddns.config.env and ddns.config.file modules. - Removed redundant comments and improved clarity in test cases. - Consolidated test cases for loading configurations from various sources, ensuring better readability and maintainability. - Enhanced edge case handling and validation in load_config tests. - Improved assertions and mock setups for better accuracy in testing configuration loading behavior. * fix unicode_literals * fix lint and tests * fix tests * fix py2 tests * fix tests and update doc * fix py2.7 test * fix py2 patch * 更新配置文件加载器,修复编码问题 * fix encoding for py2 * 更新 get_ip 函数参数,修改文档以支持阿里云ESA和No-IP自定义端点,添加多个DNS服务示例 * Refactor documentation for DNS providers: - Updated DNSpod documentation by removing redundant configuration examples and enhancing the complete configuration example. - Added English and Chinese documentation for HE.net (Hurricane Electric) with detailed configuration steps and troubleshooting tips. - Introduced English and Chinese documentation for Huawei Cloud DNS, including access key authentication and endpoint configuration. - Enhanced No-IP documentation by clarifying authentication methods and providing comprehensive configuration examples. - Improved Tencent Cloud DNS documentation with additional endpoint options and detailed permission requirements. * Add documentation for new DNS providers and update existing provider guides - Introduced Debug Provider documentation in both English and Chinese. - Added DNS.COM configuration guide in English and Chinese, including authentication methods and troubleshooting. - Updated DNSPod documentation to include separate guides for DNSPod China and DNSPod Global, with detailed configuration examples. - Revised HE.net documentation to streamline configuration examples and optional parameters. - Enhanced Huawei Cloud DNS documentation with clearer endpoint selection and optional parameters. - Updated No-IP documentation to clarify authentication methods and response codes. * Fix stdout and stderr encoding in test setup for compatibility with non-UTF-8 systems * Update environment variable documentation to remove dot-to-underscore conversion * Refactor configuration loading and error handling in ddns.config module - Removed logging in favor of direct stderr/stdout output for error messages. - Simplified the configuration generation logic in load_config. - Enhanced error handling for missing configuration files and invalid formats. - Updated unit tests to reflect changes in output handling and error scenarios. * update config document * fix lint * 更新 Python 配置文档,添加 GitHub Copilot 使用指南和配置生成逻辑,优化配置加载流程 * Refactor Config class to replace dict() method with md5() for generating hash of configurations; update tests to reflect changes in default values and utility methods. * Enhance environment variable handling in load_config function; prioritize DDNS_PROXY over standard proxies, and improve test coverage for proxy configurations and environment variable management. * 添加缓存模块及其测试用例,支持文件缓存功能;新增调试和回调配置文件,更新构建工作流以测试不同配置 * rename * 优化测试用例以确保在空配置情况下正确退出;使用临时目录避免干扰 * fix env test |