def parse_day(n, xmltv, rawclist):
    i = n + 130
    logger.info("Reading day " + str(i - 130))
    epgstream = TvaStream("239.0.2." + str(i), config["mcast_port"])
    epgstream.getfiles()
    for i in epgstream.files().keys():
        logger.info("Parsing " + i)
        epgparser = TvaParser(epgstream.files()[i])
        epgparser.parseepg(OBJ_XMLTV, rawclist)
    return
def parse_day(n, xmltv, rawclist):
    i = n + 130
    logger.info("Reading day " + str(i - 130))
    epgstream = TvaStream('239.0.2.' + str(i), config['mcast_port'])
    epgstream.getfiles()
    for i in epgstream.files().keys():
        logger.info("Parsing " + i)
        epgparser = TvaParser(epgstream.files()[i])
        epgparser.parseepg(OBJ_XMLTV, rawclist)
    return
Exemple #3
0
ch = logging.StreamHandler()
ch.setLevel(logging.DEBUG)

formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
ch.setFormatter(formatter)
fh.setFormatter(formatter)
logger.addHandler(fh)
logger.addHandler(ch)

if len(sys.argv) == 2:
    IP = sys.argv[1]
    MCAST_PORT=3937
    print "Download xml files into /tmp/: "+IP
elif len(sys.argv) == 3:
    IP = sys.argv[1]
    MCAST_PORT = int(sys.argv[2])
else:
    print "Usage: "+ sys.argv[0]+' MULTICAST_GROUP [MULTICAST_PORT]'  
    exit()

logger.info("Getting xmls")

stream = TvaStream(IP,MCAST_PORT)
stream.getfiles()
for i in stream.files().keys():
    fM3u = open("/tmp/raw_"+IP+"_"+i+".xml", 'w+')
    fM3u.write(stream.files()[i])
    fM3u.close

exit()
                json.dump(config, outfile)
        except:
            logger.info("Config file can not be saved")

    logger.info("Init. DEM=" + str(config['demarcation']) + " TVPACKS=" +
                str(config['tvpackages']) + " ENTRY_MCAST=" +
                str(config['mcast_grp_start']) + ":" +
                str(config['mcast_port']))

    ENCODING_EPG = 'utf-8'
    ENCODING_SYS = sys.getdefaultencoding()
    sys.setdefaultencoding(ENCODING_EPG)

    # Main starts

    demarcationstream = TvaStream(config['mcast_grp_start'],
                                  config['mcast_port'])
    demarcationstream.getfiles()
    demarcationxml = demarcationstream.files()["1_0"]

    logger.info("Getting channels source for DEM: " +
                str(config['demarcation']))
    MCAST_CHANNELS = TvaParser(demarcationxml).get_mcast_demarcationip(
        config['demarcation'])

    now = datetime.datetime.utcnow()
    OBJ_XMLTV = ET.Element(
        "tv", {
            "date": now.strftime("%Y%m%d%H%M%S +0000"),
            "source_info_url": "https://go.tv.movistar.es",
            "source_info_name": "Grabber for internal multicast of MovistarTV",
            "generator_info_name": "python-xml-parser",
OBJ_XMLTV = ET.Element(
    "tv", {
        "date": now.strftime("%Y%m%d%H%M%S"),
        "source_info_url": "https://go.tv.movistar.es",
        "source_info_name": "Grabber for internal multicast of MovistarTV",
        "generator_info_name": "python-xml-parser",
        "generator_info_url": "http://wiki.xmltv.org/index.php/XMLTVFormat"
    })
#OBJ_XMLTV = ET.Element("tv" , {"date":now.strftime("%Y%m%d%H%M%S")+" +0200"})

first_day = int(sys.argv[1])
last_day = int(sys.argv[2])

logger.info("Getting channels list")

channelsstream = TvaStream(MCAST_CHANNELS, MCAST_PORT)
channelsstream.getfiles()
xmlchannels = channelsstream.files()["2_0"]

channelparser = TvaParser(xmlchannels)
OBJ_XMLTV = channelparser.channels2xmltv(OBJ_XMLTV)

channelsm3u = channelparser.channels2m3u()
if os.path.isfile(FILE_M3U):
    os.remove(FILE_M3U)
fM3u = open(FILE_M3U, 'w+')
fM3u.write(channelsm3u)
fM3u.close

for day in range(first_day, last_day):
    i = int(day) + 130
        + str(config["demarcation"])
        + " TVPACKS="
        + str(config["tvpackages"])
        + " ENTRY_MCAST="
        + str(config["mcast_grp_start"])
        + ":"
        + str(config["mcast_port"])
    )

    ENCODING_EPG = "utf-8"
    ENCODING_SYS = sys.getdefaultencoding()
    sys.setdefaultencoding(ENCODING_EPG)

    # Main starts

    demarcationstream = TvaStream(config["mcast_grp_start"], config["mcast_port"])
    demarcationstream.getfiles()
    demarcationxml = demarcationstream.files()["1_0"]

    logger.info("Getting channels source for DEM: " + str(config["demarcation"]))
    MCAST_CHANNELS = TvaParser(demarcationxml).get_mcast_demarcationip(config["demarcation"])

    now = datetime.datetime.utcnow()
    OBJ_XMLTV = ET.Element(
        "tv",
        {
            "date": now.strftime("%Y%m%d%H%M%S +0000"),
            "source_info_url": "https://go.tv.movistar.es",
            "source_info_name": "Grabber for internal multicast of MovistarTV",
            "generator_info_name": "python-xml-parser",
            "generator_info_url": "http://wiki.xmltv.org/index.php/XMLTVFormat",
                                             'src': u'http://some.star/icon.png',
                                             'width': u'32'}],
                                   'value': u'4/5'},
                   'start': u'20030702000000 ADT',
                   'stop': u'20030702003000 ADT',
                   'sub-title': [(u'The Engagement', u'')],
                   'subtitles': [{'type': u'teletext', 'language': (u'English', u'')}],
                   'title': [(u'Seinfeld', u'')],
                   'url': [(u'http://www.nbc.com/')],
                   'video': {'colour': True, 'aspect': u'4:3', 'present': True,
                             'quality': 'standard'}}]


# Main starts

demarcationstream = TvaStream(MCAST_GRP_START,MCAST_PORT)
demarcationstream.getfiles()
demarcationxml = demarcationstream.files()["1_0"]
logger.info("Getting channels source for DEM: "+str(DEMARCATION))
MCAST_CHANNELS = TvaParser(demarcationxml).get_mcast_demarcationip(DEMARCATION)

logger.info("Getting channels list from: "+MCAST_CHANNELS)
now = datetime.datetime.now()
OBJ_XMLTV = ET.Element("tv" , {"date":now.strftime("%Y%m%d%H%M%S"),"source_info_url":"https://go.tv.movistar.es","source_info_name":"Grabber for internal multicast of MovistarTV","generator_info_name":"python-xml-parser","generator_info_url":"http://wiki.xmltv.org/index.php/XMLTVFormat"})
#OBJ_XMLTV = ET.Element("tv" , {"date":now.strftime("%Y%m%d%H%M%S")+" +0200"})

channelsstream = TvaStream(MCAST_CHANNELS,MCAST_PORT)
channelsstream.getfiles()
xmlchannels = channelsstream.files()["2_0"]
xmlchannelspackages = channelsstream.files()["5_0"]