Package: python-xmltvalt
python-xmltvalt============Introduction------------python-xmltvalt is a Python module that provides access to XMLTV data. XMLTV isan XML format for storing TV listings.More information on XMLTV can be found at http://wiki.xmltv.org.This is a fork of the original 'pythong-xmltv' project(https://pypi.org/project/python-xmltv/) and has some slight modificationsto resolve issues I found when trying to implement solutions for another(forthcoming) open source project.Many thanks to the original author, and the individual who cloned theoriginal code (https://github.com/mforkel/python-xmltv).Requirements------------There are no requirements for Python 3.12 and up.Usage-----Usage of the module is generally straight-forward::import xmltv_altfrom pprint import pprint# If you need to change the locale:# xmltv_alt.locale = 'Latin-1'# If you need to change the date format used in the XMLTV file:# xmltv_alt.date_format = '%Y%m%d%H%M%S %Z'filename = '/path/to/xmltv/file'# Print info for XMLTV file (source, etc.)pprint(xmltv_alt.read_data(open(filename, 'r')))# Print channelspprint(xmltv_alt.read_channels(open(filename, 'r')))# Print programmespprint(xmltv_alt.read_programmes(open(filename, 'r')))There are currently three functions for reading that should be used:**read_data** ``(file_object) -> dict``Get the source and other info from an XMLTV file.Returns a dictionary of <tv> attributes, eg::{'date': u'20030702230041 -0300','generator-info-name': u'tv_grab_na V3.20030629','generator-info-url': u'http://sourceforge.net/projects/xmltv','source-info-name': u'Zap2It','source-info-url': u'http://www.zap2it.com'}**read_channels** ``(file_object) -> list``Get all of the channels.Returns a list of hashes, each representing a channel, eg::[{'display-name': [(u'Channel 10 ELTV', u'')],'id': u'C10eltv.zap2it.com'},{'display-name': [(u'Channel 11 CBHT', u'')],'icon': [{'desc': '','src': u'http://tvlistings2.zap2it.com/tms_network_logos/cbc.gif'}],'id': u'C11cbht.zap2it.com'}]**read_programmes** ``(file_object) -> list``Get all of the programmes.Returns a list of hashes, each representing a programme, eg::[{'audio': [{'stereo': [u'stereo']}],'category': [(u'Biz', u''), (u'Fin', u'')],'channel': u'C23robtv.zap2it.com','start': u'20030702000000 ADT','stop': u'20030702003000 ADT','title': [(u'This Week in Business', u'')]},{'audio': [{'stereo': [u'stereo']}],'channel': u'C36wuhf.zap2it.com','desc': [(u'In an effort to grow up, George proposes marriage to former girlfriend Susan.',u'')],'rating': [{'system': u'VCHIP', 'value': u'PG'}],'start': u'20030702000000 ADT','stop': u'20030702003000 ADT','sub-title': [(u'The Engagement', u'')],'subtitles': [{'type': u'teletext'}],'title': [(u'Seinfeld', u'')]}]There is also a Writer class. It should always write proper XMLTV data. Allstrings, except for dictionary keys, should be in Unicode.It contains the following methods:**__init__** ``(fp, encoding="iso-8859-1", date=None, source_info_url=None, source_info_name=None, generator_info_url=None, generator_info_name=None)`` -> ``Writer``Returns a Writer object.Arguments:``fp``A File object to write XMLTV data to``encoding``The text encoding that will be used. *Defaults to``iso-8859-1``*``date``The date this data was generated. *Optional*``source_info_url``A URL for information about the source of the data. *Optional*``source_info_name``A human readable description of ``source_info_url``.*Optional*``generator_info_url``A URL for information about the program that is generating theXMLTV document. *Optional*``generator_info_name``A human readable description of ``generator_info_url``.*Optional***write_channel** ``(channel)``Write a channel dictionaryHere's an example channel dictionary::{'display-name': [(u'Channel 11 CBHT', u'en')],'icon': [{'src': u'http://tvlistings2.zap2it.com/tms_network_logos/cbc.gif'}],'id': u'C11cbht.zap2it.com','url': u:'http://www.cbc.com'}**write_programme** ``(programme)``Write a programme dictionaryHere's an example programme dictionary::{'audio': [{'stereo': u'stereo'}],'category': [(u'Comedy', u'')],'channel': u'C36wuhf.zap2it.com','country': [(u'USA', u'')],'credits': [{'producer': [u'Larry David'], 'actor': [u'Jerry Seinfeld']}],'date': [u'1995'],'desc': [(u'In an effort to grow up, George proposes marriage to former girlfriend Susan.',u'')],'episode-num': [(u'7 . 1 . 1/1', u'xmltv_ns')],'language': [(u'English', u'')],'last-chance': [(u'Hah!', u'')],'length': [{'units': u'minutes', 'length': 22}],'new': [1],'orig-language': [(u'English', u'')],'premiere': [(u'Not really. Just testing', u'en')],'previously-shown': [{'channel': u'C12whdh.zap2it.com','start': u'19950921103000 ADT'}],'rating': [{'icon': [{'height': u'64','src': u'http://some.ratings/PGicon.png','width': u'64'}],'system': u'VCHIP','value': u'PG'}],'star-rating': [{'icon': [{'height': u'32','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'')],'video': [{'colour': 1, 'aspect': u'4:3', 'present': 1}]}**end** ``()``Write end tagCall this before closing a file.Reporting Bugs--------------Please send all bugs, comments, and questions to the github repohttps://github.com/justinhorner/python-xmltv-altChangelog=========Version 1.5.0-------------* changes specifically for free-iptv* renamed project to 'xmltv_alt' to easily differentiate between existing projectVersion 1.4.4-------------* cleanup & changed from github forkVersion 1.4.3* Add pretty_print option to Writer.write()Version 1.4.2-------------* Text encoding fixes. (Patch from Jan Sušnik)Version 1.4.1-------------* Updated MANIFEST.in to include all doc filesVersion 1.4-----------* Updated to reflect current XMLTV DTD (patch from Igor Sobolev)* Clean up for pypi release