rss_agent 1.20250828.10740
rss_agent: ^1.20250828.10740 copied to clipboard
A comprehensive RSS/Atom/JSON Feed monitoring service for Dart and Flutter. Provides automatic monitoring, diff detection, smart scheduling, and real-time notifications.
Changelog #
All notable changes to the rss_agent package will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[Unreleased] #
1.20250828.10740 - 2025-08-28 #
Fixed #
- RFC 2822 Timezone Parsing: Fixed critical bug where timezone information in RSS pubDate fields was completely ignored
- Previously:
Thu, 28 Aug 2025 00:46:04 +0800parsed as2025-08-28 00:46:04Z(incorrect) - Now:
Thu, 28 Aug 2025 00:46:04 +0800parses as2025-08-27 16:46:04Z(correct UTC conversion)
- Previously:
- Timezone Support: Added comprehensive timezone parsing support in
Rss2Parser._parseRfc822Date()- Numeric Formats:
+0800,-0500,+0930, etc. - Text Formats:
GMT,UTC,EST,PST,JST,KST,BST,CET, etc. - Proper UTC Conversion: All parsed dates are now correctly converted to UTC timezone
- Numeric Formats:
Added #
- Timezone Validation Tool (
tool/timezone_validator.dart): Comprehensive timezone parsing validation utility- Test individual date strings:
dart run tool/timezone_validator.dart "Thu, 28 Aug 2025 00:46:04 +0800" - Run validation suite:
dart run tool/timezone_validator.dart - Detailed analysis with expected vs actual results and error reporting
- Test individual date strings:
- Timezone Unit Tests (
test/parsers/timezone_parsing_test.dart): Complete test coverage for timezone scenarios- 6 comprehensive test cases covering various timezone formats
- Tests for positive/negative numeric offsets and major text timezones
- 100% pass rate validation for timezone accuracy
Technical Improvements #
- Parser Enhancement: Refactored
_parseRfc822Date()with new_parseTimezoneOffset()method - UTC Handling: Improved DateTime construction to ensure proper UTC marking
- Error Resilience: Maintains backward compatibility with existing date parsing logic
- Test Coverage: Added 6 new timezone-specific tests (total: 92 tests)
Validation Results #
- Before Fix: 0.0% accuracy (7/7 test cases failed)
- After Fix: 100.0% accuracy (7/7 test cases passed)
- Timezone Coverage: Supports 15+ major timezone abbreviations and unlimited numeric formats
1.20250822.10625 - 2025-08-22 #
Added #
- Example Files: Added comprehensive example files (
example/main.dartandexample/example.dart) demonstrating package usage - Platform Declaration: Explicitly declared platform support in
pubspec.yamlfor Android, iOS, Linux, macOS, Windows, and Web
Improved #
- API Documentation: Added missing dartdoc comments for all public constructors:
Feed.newconstructor documentationFeedConfig.newconstructor documentationFeedFormat.displayNameproperty documentationFeedItem.newconstructor documentationMediaContent.newconstructor documentation
Package Score Improvements #
- Example Score: Increased from 0/10 to 10/10 (added example directory with working examples)
Notes #
- Web/WASM platform cannot be supported due to
dart:iodependency requirement for HTTP operations
1.20250821.12157 - 2025-08-21 #
Fixed #
- Test Suite Stabilization: Fixed all XML parsing test failures in RSS generator and analyzer tests
- CDATA Formatting: Resolved XML CDATA content formatting issues by adding proper text trimming
- XML Element Iteration: Fixed
Iterable<XmlElement>vsListconversion issues in test expectations - Command-Line Tool Tests: Completed comprehensive TDD test coverage for all bin/*.dart tools
- Widget Test Stability: Eliminated Timer-related test interference for reliable CI/CD execution
- Lint Compliance: Achieved zero lint issues across entire codebase
Enhanced #
- Test Coverage: Added 34 integration tests for command-line tools (analyzer, generator, batch analyzer)
- Error Handling: Improved error handling for edge cases (missing files, invalid JSON, empty input)
- Code Formatting: Applied Dart formatter across all test files for consistent code style
- Test Utilities: Enhanced BinTestUtils with better process handling and temporary file management
Technical Improvements #
- Total Test Count: 80 tests passing (up from 46 core tests)
- Test Categories: Models (13), Parsers (23), Generators (7), HTTP (3 skipped), Tools (34)
- Quality Metrics: 100% test pass rate, 0 lint issues, enterprise-level stability
- TDD Architecture: Complete test-driven development coverage for all public APIs
Tools Enhanced #
- RSS Analyzer: Multi-input support (URL/file/stdin), JSON/pretty output formats
- RSS Generator: URL-to-RSS conversion with JSON configuration support
- Batch Analyzer: Concurrent processing of multiple RSS feeds with error isolation
- All Tools: Comprehensive error handling, help documentation, and verbose logging
1.20250821.12035 - 2025-08-21 #
Added #
- Initial release of RSS Agent
- Support for RSS 2.0, Atom 1.0, and JSON Feed 1.1 formats
- Automatic feed monitoring with customizable intervals
- Smart diff detection to identify new articles
- Multiple monitoring strategies (fixed, adaptive, peak, efficient)
- Event-driven architecture with streams for real-time updates
- Built-in caching and deduplication
- Comprehensive error handling and recovery
- TDD approach with extensive test coverage
- Version management system with build time tracking
- MIT License for open source distribution
Features #
- Multi-format Support: Parse RSS 2.0, Atom 1.0, and JSON Feed 1.1
- Monitoring Service: Background monitoring with configurable intervals
- Diff Detection: Only notify on truly new content
- Smart Scheduling: Adaptive polling based on feed patterns
- Resource Efficient: Built-in caching and request optimization
- Flutter Ready: Works in both Dart and Flutter applications
- Event Streams: Real-time notifications via Dart streams
- Batch Operations: Monitor multiple feeds simultaneously
Technical #
- Dart SDK >= 3.0.0 compatibility
- Zero breaking dependencies
- Comprehensive unit tests
- Linting and analysis configuration
- Version format: 1.YYYYmmdd.1HHii