tcesni / crossepg

Automatically exported from code.google.com/p/crossepg
GNU Lesser General Public License v2.1
0 stars 0 forks source link

Enhancement of alias - allow alias with time offset #88

Open GoogleCodeExporter opened 8 years ago

GoogleCodeExporter commented 8 years ago
I would like to use the alias facility with a time offset.

In Australia the epg programme details are often identical except that 
programmes are delayed to make the programme times the same in the broadcast 
locality time zone.

Eastern Australia is GMT+10, Central Australia is GMT+9.5, and Western 
Australia is GMT+8.  The southern parts of these use different summer times 
(+1) but the northern parts do not. 

The epg data for programming is available in Eastern Australia, but not 
directly available in North/Central Australia.  This could be solved by using 
crossepg's alias feature if the programming could be offset by +/- 30 minutes.

Eg within alias.conf:
[aliases]
0002-1770-0110=canale 5, -90
7D02-20-1000=03B1-03B0-3202, +30

Regards

Original issue reported on code.google.com by stick5...@gmail.com on 25 Apr 2011 at 2:47

GoogleCodeExporter commented 8 years ago
Aliases in crossepg are really aliases. A channel could be an alias of another 
but they have the same content. So it's a really invasive fix do what you need.

But theorically crossepg and enigma2 doesn't have problems with time offset (or 
day light saving). Every downloaded data will be transformed in GMT+0 without 
daylight by crossepg. After that enigma2 recalculate the event time applying 
your box settings (as time offset and daylight). So the epg time would be right 
everywhere.

Try to check again your time offset and daylight... and let me know.
It should work

Original comment by skama...@gmail.com on 25 Apr 2011 at 10:18

GoogleCodeExporter commented 8 years ago
Sandro, Thanks for your quick reply.

Unfortunately I do need a time offset.  The program is broadcast at different 
times (relative to GMT+0) at different locations using different transponders 
(both satellite and terestrial). Depending on locality, the delayed (or time 
offset) broadcast is enabled for that locality.  The only thing different about 
each locality's broadcast is the time (relative to GMT+0) and the advertising 
(which has local stores ads).

The epg data is available for the eastern Australia versions of the channels 
but using these sources without a time offset applied, results in an incorrect 
epg.

I have had the same problem with e2_loadepg.  I solved the problem by adapting 
two of Alessandro's download modules to include the ability to add offsets 
(oztivo [xml] and australiasat [broadcast]). I can write a crossepg python 
script based on this for oztivo.  However, your module for downloading from 
australiasat (optus C1 satellite) is in C language and I'm not game to dabble 
with this one.

I want to start using crossepg rather than e2_loadepg because it is so much 
faster and loads data without a restart etc.  Crossepg really is a great 
achievement, but if I use too many scripts, I'll loose some of its speed and 
elegance.

cheers
Andrew Miller (aka stick50jr)

Original comment by stick5...@gmail.com on 26 Apr 2011 at 7:17

GoogleCodeExporter commented 8 years ago
I'm going to have a go at modifying the alias.py script to cover my situation.

Original comment by stick5...@gmail.com on 26 Apr 2011 at 3:27

GoogleCodeExporter commented 8 years ago
I've added some lines to the alias.py and it seems to meet my requirements.  
I've attached it in case anyone else wants to use the time offsets as well as 
aliases.
The alias.conf file may now contain:

[aliases]
80F0-0021-1000,30=ABC2,ABC 2
80F1-0021-1000,-30=ABC3,ABC 3

where the number before the "=" is the delta to be added to the source 
programme times in minutes.

Original comment by stick5...@gmail.com on 26 Apr 2011 at 7:38

Attachments:

GoogleCodeExporter commented 8 years ago
I can plan to write a "script" for copy a list of nid,tsid,sid into other 
nid,tsid,sid with a different time offset. So you can simply write a 
configuration with your list of channels and enable australiasat and the script 
in crossepg.

Original comment by skama...@gmail.com on 26 Apr 2011 at 8:18

GoogleCodeExporter commented 8 years ago
Sandro,

Thanks for your offer, that would be ideal but only if you can afford that 
effort.

I'm already using your aliases with the 'somename.conf' file below and 
additionally I'm using the 'alias.py' etc attached above.  Therefore, I have 
now stopped using e2_loadepg and I've become reliant on crossepg.  It really is 
a good programme, thanks for all the work in developing it.

cheers

Original comment by stick5...@gmail.com on 27 Apr 2011 at 2:12

Attachments:

GoogleCodeExporter commented 8 years ago
Thanks stick5..., this enhancement does exactly what I need.

Lots of UK channels have a +1 variant (1 hour later) and a few of them do not 
pay for an EPG with Sky, so, up to now were blank.  This enabled me to map the 
channels onto their +1 variants which gives me an EPG which is 90% accurate 
compared to the 0% I was living with before.  Very neat and clean fix.

This enhancement should become part of the standard build as soon as possible.  
If anyone is interested then here are the lines to add to alias.conf:

# +1s
27EC-0806-0002,60=stv+1,10225
27F6-0806-0002,60=utv+1,10125
ITV4-BSkyB,60=ITV4+1
Showcase-BSkyB,60=Showcase +1

Well done and cheers

Original comment by pjrip...@gmail.com on 2 Jun 2011 at 8:15

GoogleCodeExporter commented 8 years ago
The Alias.py seems to have a problem when there is a special character in the 
description or summaries ie. Á É Ê  etc. It does not copy the data when this 
occurs.

File "alias.py", line 238, in <module>                                       
  script_class.do_epg_alias()                                                
File "alias.py", line 193, in do_epg_alias                                   
  e_title = crossepg.epgdb_read_description(title).encode('utf-8')          
File "/usr/lib/python2.6/encodings/utf_8.py", line 16, in decode             
  return codecs.utf_8_decode(input, errors, True)                            
icodeDecodeError: 'utf8' codec can't decode bytes in position 2-3: invalid data

Original comment by jpcb...@googlemail.com on 1 Jul 2011 at 9:13

GoogleCodeExporter commented 8 years ago
So, after a few weeks of using this I had almost forgotten that I was faking 
the 4 +1 channels, and then along came the Tour de France on ITV4.  No problems 
for the first week but last week the script fell over for me when the Tour went 
somewhere with an accent, just like it did for jpcb....  So, I started digging 
in the code at line 193.

I guess .encode('utf-8') means convert the text from utf-8 to what is needed.  
Could be the other way around, I didn't bother to find out.  What I thought was 
.... we are copying programs already loaded in the DB so any text conversion 
needed should have been done when that program was loaded the 1st time, so we 
simply don't need it here.  So I took it out.

Attached is the modified alias.py which does no conversion on the title and 
summary, and is happily working again with the Tour de France.

I hope this is of use to everyone.

Original comment by pjrip...@gmail.com on 13 Jul 2011 at 7:38

Attachments: