mirror of
https://github.com/euzu/tuliprox.git
synced 2026-09-16 06:02:27 +02:00
* **New Features** * Added configurable mapping stages for `mapping.yml`: `processing` (default) and `after_epg`. * `after_epg` mappings now run after EPG enrichment and can react to enriched EPG fields. * **Bug Fixes** * Stage-aware playlist mapping: if no mappings match, the source is left unconsumed. * Mapping directory merges now reject conflicting stages for the same mapping id and report both files clearly. * **Documentation** * Updated mapping DSL and target `processing_order` docs to describe stage timing and guarantees. * **Tests** * Added coverage for stage-restricted mapping behavior, merge conflicts, and AfterEpg timing.
48 lines
1.3 KiB
YAML
48 lines
1.3 KiB
YAML
mappings:
|
|
templates:
|
|
- name: bbc
|
|
value: 'Title ~ "^BBC"'
|
|
- name: documentary
|
|
value: '(Group ~ "(Documentary|Outdoor)")'
|
|
- name: entertainment
|
|
value: 'Group ~ "Entertainment"'
|
|
- name: pluto_tv
|
|
value: '(Caption ~ "Pluto TV") AND NOT(Caption ~ "Sports")'
|
|
- name: business
|
|
value: 'Group ~ "Business"'
|
|
|
|
mapping:
|
|
- id: iptv-org
|
|
match_as_ascii: true
|
|
mapper:
|
|
- filter: "!bbc!"
|
|
script: |
|
|
@Group = "BBC"
|
|
- filter: "!documentary!"
|
|
script: |
|
|
@Group = "Documentary"
|
|
- filter: "!entertainment!"
|
|
script: |
|
|
@Group = "Entertainment"
|
|
- filter: "!pluto_tv!"
|
|
script: |
|
|
@Group = "Pluto TV"
|
|
- filter: "!business!"
|
|
script: |
|
|
@Group = "News"
|
|
- filter: 'Input ~ "iptv-org"'
|
|
script: |
|
|
@Caption = concat(@Caption, " (iptv-org)")
|
|
|
|
# stage: after_epg runs once EPG channel IDs and logos are enriched.
|
|
# Uncomment to mirror the EPG channel id onto the channel name (sample only).
|
|
# - id: epg-name-sync
|
|
# stage: after_epg
|
|
# mapper:
|
|
# - filter: 'Name ~ ".*"'
|
|
# script: |
|
|
# epg = @epg_channel_id ~ "(.+)"
|
|
# match {
|
|
# epg => @Name = epg.1
|
|
# }
|