cabernetwork / cabernet

Cabernet allows control of IPTV streams. Plugins supports DaddyLive, Pluto TV, XUMO, M3U/XMLTV.XML files (SamsungTV, STIRR, DistroTV, Plex TV)
https://cabernetwork.github.io
MIT License
154 stars 22 forks source link

M3U EPG refresh scheduler unexpected exception error #70

Closed daza67 closed 1 year ago

daza67 commented 1 year ago

I have a pretty simple setup a stream from some m3u8 . Here is the config.ini section I have.

[m3u_brisbane] label = Brisbane enabled = True channel-m3u_file = https://i.mjh.nz/au/Brisbane/raw-tv.m3u8 epg-xmltv_file = https://i.mjh.nz/au/Brisbane/epg.xml.gz channel-group_name = brisbane channel-import_groups = True

The EPG update fails whenever I call it with the following seen in the log. Also seems to fail when called at startup with same error. It seems to work fine with older versions of cabernet, tested 0.9.7.5 as working.

2023-04-05 10:11:58,990-DEBUG:schedule Running job Job(interval=120, unit=minutes, do=exec_trigger, args=({'uuid': 'D7BFEA48-D340-11ED-A790-0242AC120002', 'area': 'EPG', 'title': 'Refresh Brisbane EPG', 'timetype': 'interval', 'timelimit': -1, 'timeofday': None, 'dayofweek': None, 'interval': 120, 'randdur': 5, 'taskid': '21763D8C-D33B-11ED-BBB2-0242AC120002', 'namespace': 'M3U', 'instance': 'brisbane', 'funccall': 'refresh_epg', 'lastran': None, 'duration': None, 'priority': 10, 'threadtype': 'thread', 'active': 0, 'description': 'Add triggers to the EPG Refresh based on when the m3u is updated online.'},), kwargs={}) 2023-04-05 10:11:59,000-NOTICE:scheduler Running threaded task EPG:Refresh Brisbane EPG 2023-04-05 10:11:59,039-DEBUG:web_handler [172.18.0.1] "GET /api/schedulehtml?task=21763D8C-D33B-11ED-BBB2-0242AC120002&run=1 HTTP/1.1" 200 - 2023-04-05 10:11:59,052-DEBUG:web_handler [172.18.0.1] "GET /modules/scheduler/scheduler.css HTTP/1.1" 200 - 2023-04-05 10:11:59,052-DEBUG:web_handler [172.18.0.1] "GET /modules/scheduler/scheduler.js HTTP/1.1" 200 - 2023-04-05 10:12:01,599-ERROR:scheduler UNEXPECTED EXCEPTION on GET=object of type 'NoneType' has no len() Traceback (most recent call last): File "/app/lib/schedule/scheduler.py", line 161, in call_trigger results = call_f() File "/app/lib/plugins/plugin_instance_obj.py", line 166, in refresh_epg return self.epg.refresh_epg() File "/app/lib/plugins/plugin_epg.py", line 85, in refresh_epg self.refresh_programs(epg_day, False) File "/app/plugins_ext/provider_video_m3u/lib/epg.py", line 61, in refresh_programs prog_one = next(iterator) File "/app/lib/common/xmltv.py", line 74, in __next__ prog = self.get_program(elem) File "/app/lib/common/xmltv.py", line 131, in get_program not_done = self.get_next_elem(program) File "/app/lib/common/xmltv.py", line 199, in get_next_elem if len(p_date) == 4: TypeError: object of type 'NoneType' has no len() 2023-04-05 10:12:04,064-DEBUG:web_handler [172.18.0.1] "GET /api/schedulehtml?EPG=1& HTTP/1.1" 200 -

Other m3u stream providers from the same site such as https://i.mjh.nz/PlutoTV/ ones seem to work. Using the latest v0.9.12.01 docker version.

Any ideas, thanks in advance.

rocky4546 commented 1 year ago

Fairly surprised the code I slammed in has worked as well as it has. The reason for the issue is the tag \<date\/> which says, here is the date... but NOT. And the code was expecting a date when it was not there. I have a fix for the issue and will be available on the next release. Probably within 24 hours.

rocky4546 commented 1 year ago

Fixed in 0.9.12.02