mirror of
https://github.com/NewFuture/DDNS.git
synced 2026-10-21 05:26:51 +00:00
v5
7
Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
08837bbd09 |
feat(agent): define portable project development contract (#734)
Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> |
||
|
|
aba52bc517 |
fix(cloudflare): DNS record query conditions - Boolean encoding and extra filter fallback (#571)
* Initial plan * Fix Boolean values in URL parameters and add fallback logic for extra filters Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> * Add documentation for extra filter and fallback behavior Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> * docs: improve formatting consistency in documentation Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> * refactor: move boolean conversion to cloudflare.py and simplify _query_record Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> * chore: fix ruff linting issues and add format commands to copilot instructions 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> |
||
|
|
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> |
||
|
|
0eea4c6850 |
doc(providers): all providers doc (#522)
* doc(providers): all providers doc - Enhanced No-IP documentation with clearer authentication methods and examples. - Added official links and improved parameter descriptions for No-IP. - Updated TencentCloud documentation to streamline API key acquisition and configuration examples. - Improved troubleshooting sections for both providers, including common issues and error codes. - Standardized JSON configuration examples across both providers. - Added schema validation reference in configuration examples. Co-authored-by: Copilot <175728472+Copilot@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 |
||
|
|
3d155b671e |
Refact(tests): improve base ,test, and instructions (#503)
* refactor(domain): Replace _split_custom_domain and _join_domain with standalone functions * docs: Add contribution guidelines and repository structure documentation * fix(tests): Skip real HTTP integration to avoid too much request * fix(tests): Add retry logic for real callback tests to handle transient failures * Apply suggestions from code review Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * fix(tests): Implement retry logic for provider.set_record calls in real integration tests * fix(tests): Update CI environment checks for real integration tests on macOS and other platforms * Update tests/test_provider_cloudflare.py Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> |