diff options
| author | Andreas Brachold <vdr07@deltab.de> | 2010-01-20 16:14:04 +0000 |
|---|---|---|
| committer | Andreas Brachold <vdr07@deltab.de> | 2010-01-20 16:14:04 +0000 |
| commit | e2add39d4d27be842011c6299f1e13c1ef1a3052 (patch) | |
| tree | d99f41b62cb589e61eff81c3d641d8f83c0d885a /lib | |
| parent | 1f3e833bd0f75cfed788034df2a290b0713b4aec (diff) | |
| download | xxv-e2add39d4d27be842011c6299f1e13c1ef1a3052.tar.gz xxv-e2add39d4d27be842011c6299f1e13c1ef1a3052.tar.bz2 | |
* change way to generate channel id, support plugin provided channels
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/XXV/MODULES/CHANNELS.pm | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/lib/XXV/MODULES/CHANNELS.pm b/lib/XXV/MODULES/CHANNELS.pm index e0da981..200e649 100644 --- a/lib/XXV/MODULES/CHANNELS.pm +++ b/lib/XXV/MODULES/CHANNELS.pm @@ -298,11 +298,11 @@ sub _prepare { } - # ID - my $freqID = $data->[1]; - if ( $data->[3] eq 'C' or $data->[3] eq 'T') { - while(length($freqID) > 3) { - $freqID = substr($freqID, 0, length($freqID)-3); + # Build alternative transponder ID from frequency + my $altid = CORE::int($data->[1]); + if ($data->[3] !~ /^S/sig) { + while($altid > 20000) { + $altid = CORE::int($altid / 1000); } } @@ -312,9 +312,9 @@ sub _prepare { # By DVB-C gabs Probleme weil die Zahl grösser 100 war # Siehe auch http://www.vdr-portal.de/board/thread.php?sid=&postid=364373 if($data->[12] && $data->[12] > 0) { - $id = sprintf('%s-%u-%u-%u-%u', $data->[3], $data->[10], ($data->[10] || $data->[11]) ? $data->[11] : $freqID, $data->[9],$data->[12]); + $id = sprintf('%s-%u-%u-%u-%u', $data->[3], $data->[10], ($data->[10] || $data->[11]) ? $data->[11] : $altid, $data->[9],$data->[12]); } else { - $id = sprintf('%s-%u-%u-%u', $data->[3], $data->[10], ($data->[10] || $data->[11]) ? $data->[11] : $freqID, $data->[9]); + $id = sprintf('%s-%u-%u-%u', $data->[3], $data->[10], ($data->[10] || $data->[11]) ? $data->[11] : $altid, $data->[9]); } my $attr = { |
