mirror of
https://github.com/NewFuture/DDNS.git
synced 2026-10-20 08:17:43 +00:00
v5
8
Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
7490657d82 |
Use HTTP ipify URL in documentation examples (#694)
* fix(ip): remove unavailable ipify cn endpoint * test(ip): avoid substring matching in fallback test * fix(ip): remove unavailable ipw endpoints * fix(ip): add ddnsip public endpoints * docs: use http ipify URL in examples --------- Co-authored-by: copilot-swe-agent[bot] <198982749+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> |
||
|
|
e66dcf0240 |
feat(config): 支持远程配置文件 add remote HTTP(S) config loading support (#539)
* Initial plan * feat(config): add remote HTTP(S) configuration loading support - Add URL detection in load_config() function to support remote configuration files - Leverage existing ddns.util.http module for HTTP requests with proxy, SSL, and auth support - Support embedded authentication in URLs (https://user:pass@host/config.json) - Maintain full backward compatibility with local file loading - Skip file existence check for URLs in config path validation - Add comprehensive test suite with 16 test cases covering various scenarios - Support all existing configuration formats including v4.1 providers format - Pass proxy and SSL settings from CLI/environment to HTTP requests Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> * fix(config): address code review feedback for remote config loading Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> * docs(config): add remote HTTP(S) configuration examples and update README Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> * fix(config): Python 2 compatibility and code structure improvements - Fix Python 2.7 compatibility in test_config_file_remote.py: - Remove encoding parameter from open() function - Add proper try/except import for URLError (Python 2/3 compatibility) - Extract proxy and SSL parameter extraction outside function call in config/__init__.py - Move remote config example from main README list to CLI usage examples section Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> * fix(config,docs): address PR feedback and lint issues - Remove remote config from README feature list, add as example code instead - Fix proxy_settings fallback chain in config/__init__.py - Add HTTP response body logging in config/file.py and fix line length - Add real integration test for https://ddns.newfuture.cc/tests/config/debug.json - Fix all flake8 lint issues: remove unused imports, clean whitespace Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> * Update ddns/config/file.py Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * fix(docs,test,build): update README.en.md, add real remote tests, and improve test skipping logic Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> * feat(http): add default user-agent and fix lint issues Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> * feat(http): implement default user-agent handling and update related tests * feat(http): add default User-Agent handling in request function and enhance related tests * fix(tests): update proxy handling in multi-config tests and improve user agent type check * fix(http): add retry logic to remote config loading and improve error messages * chore(tests): update test structure for multi-config functionality * fix(tests): remove unnecessary CLI argument mock in multi-config test --------- 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> |
||
|
|
c2cad12380 |
refactor(http.proxy): add "SYSTEM" and fix "DIRECT" proxy, implement proxy list support with automatic fallback (#537)
* feat(http): implement proxy list support with fallback mechanism - Add proxies parameter to request() function for proxy list support - Maintain backward compatibility with single proxy parameter - Implement proxy fallback logic that tries each proxy in order - Update provider base classes to use proxy lists directly - Add comprehensive tests for proxy list functionality - Support None in proxy list to represent direct connection Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> * fix(http): handle empty proxy list edge case and remove duplicate function definition - Fix empty proxy list to default to direct connection - Remove duplicate function definition in request() - Add test case for empty proxy list scenario Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> * fix(tests): correct provider proxy list test mocking - Fix provider test mocking to use HttpResponse objects - All proxy list tests now pass correctly - Provider integration tests verify proxy list functionality Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> * fix(lint): resolve flake8 issues - remove whitespace and fix indentation Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> * refactor(http): remove proxy parameter and implement ProxiesHandler Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> * refactor(http): implement ProxiesHandler based on ProxyHandler with proxy_open override Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> * refactor(http): remove proxy wrapper class and string compatibility per feedback Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> * refactor(http): implement ProxiesHandler with proxy_open override as requested Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> * refactor(http): update endpoint URLs to use HTTP instead of HTTPS for testing * feat: Add support for proxy settings in configuration - Introduced a new "proxy" property in the schema to allow HTTP proxy settings in various formats. - Updated tests to validate the handling of proxy settings, including special values and array formats. - Enhanced environment variable loading to support proxy configurations, ensuring precedence rules are respected. - Added tests for multi-provider configurations with independent proxy settings and global proxy overrides. --------- 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> |
||
|
|
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> |
||
|
|
458f354067 |
fix(http): fix and refactor http (#520)
* refact(http): simplify connection handling and utilize urllib's built-in redirect support * refact(HttpResponse): 修改头部处理方式,支持不区分大小写的查找 * feat(ip): 添加SSL验证配置并优化HTTP请求处理 * refact(ip): 修改导入方式,优化模块结构 * fix error log tests * fix tests * revert: restore test_provider_dnspod.py to master state * add noip tests * 更新构建工作流,移除冗余的可执行文件测试;在HTTP请求测试中添加真实API请求和JSON响应解析的测试用例 |
||
|
|
f759bc3bd1 |
chore(docker): Update glibc.Dockerfile build and tests (#517)
* change Debian source to archive * run real case in docker * update tests |
||
|
|
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 |