Commit 93a5649
authored
feat: complete Python and Node.js bindings for all namespaces (#36)
* feat(python): add complete bindings for GeoRSS, Media RSS, Dublin Core, and Podcast 2.0
Phase 1: Python Bindings Implementation
New types:
- PyGeoLocation (geo_type, coordinates, srs_name)
- PyMediaThumbnail (url, width, height)
- PyMediaContent (url, type, filesize, width, height, duration)
- PyPodcastChapters (url, type)
- PyPodcastSoundbite (start_time, duration, title)
- PyPodcastEntryMeta (transcript, chapters, soundbite, person)
New Entry getters:
- geo, dc_creator, dc_date, dc_date_parsed, dc_rights, dc_subject
- media_thumbnails, media_content, podcast
New FeedMeta getters:
- geo
All types include __repr__ and __eq__ implementations.
Comprehensive test coverage with 23 new tests.
* feat(node): add type definitions for all namespaces
Phase 2: Node.js Type Definitions
New types (13 total):
- GeoLocation (geoType, coordinates, crs)
- MediaThumbnail (url, width, height)
- MediaContent (url, type, filesize, width, height, duration)
- ItunesFeedMeta (author, owner, categories, explicit, image, keywords, podcastType, complete, newFeedUrl)
- ItunesOwner (name, email)
- ItunesCategory (text, subcategory)
- PodcastMeta (transcripts, funding, persons, guid, value)
- PodcastFunding (url, message)
- PodcastEntryMeta (transcript, chapters, soundbite, person)
- PodcastChapters (url, type)
- PodcastSoundbite (startTime, duration, title)
- PodcastValue (type, method, suggested, recipients)
- PodcastValueRecipient (name, type, address, split, fee)
Security: SSRF warnings on all URL fields
Documentation: Enhanced with format examples and security notes
* feat(node): add field bindings and complete feature parity
Phase 3: Node.js Field Bindings
FeedMeta new fields:
- geo: Option<GeoLocation>
- itunes: Option<ItunesFeedMeta>
- podcast: Option<PodcastMeta>
Entry new fields:
- geo, dcCreator, dcDate, dcSubject, dcRights
- mediaThumbnails, mediaContent
- podcast: Option<PodcastEntryMeta>
- itunes: Option<ItunesEntryMeta>
Improvements:
- Added ItunesEntryMeta type (duration, episode, season, episodeType, etc.)
- Fixed camelCase naming for FeedMeta DC fields and SyndicationMeta
- Optimized entries Vec with capacity pre-allocation
- Added SSRF security notes to all URL fields
- Enhanced SyndicationMeta documentation
Tests: 24 new integration tests, 72 total passing
* style: apply rustfmt formatting1 parent 2b973d2 commit 93a5649
File tree
16 files changed
+2511
-67
lines changed- crates
- feedparser-rs-core/src
- feedparser-rs-node
- __test__
- src
- feedparser-rs-py
- src
- types
- tests
16 files changed
+2511
-67
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
68 | 68 | | |
69 | 69 | | |
70 | 70 | | |
71 | | - | |
72 | | - | |
73 | | - | |
74 | | - | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
75 | 75 | | |
76 | 76 | | |
77 | 77 | | |
| |||
0 commit comments