E2m3u2bouquet - discussion & support

There are 1,215 replies in this Thread which was already clicked 90,569 times. The last Post () by pepsik.

  • I have the impression that you do not want to deal with this case. Until now it wasn't annoying but recently it's annoying because during a certain period anything is displayed in the epg

    ***-sort-override.xml - has NOTHING to do with EPG import or any of its "meanings" in one form or another. There is no relationship at all... In the post above I described the whole procedure from start to finish... There, apart from XMLTV and the correspondence table channel_id (from XMLTV) and serviceref, nothing else is involved...


    "want to deal with this case" - What are you about ? Try to understand everything that I wrote to you above. What does the answer you quoted have to do with importing EPGs?

  • anything is displayed in the epg

    This plugin has NO relation to displaying EPG... Once again... The task of the plugin, when importing data from XMLTV, is to generate a data tuple in a certain format and give it to the STANDARD FUNCTION OF THE IMAGE YOU ARE USING... this function is “engaged” in importing the received data (line by line)

  • I'm speaking about epg import.

    RE: E2m3u2bouquet - discussion & support - Here you quoted my answer about the principle of forming an override template in connection with problems with EPG


    My last 4-5 posts describe in detail the logic of how events are imported... Tell me in which of them there is something you don’t understand. I will write with examples from XMLTV and tuples that are passed to the “image” to close this issue once and for all

  • The problem is not an understanding but just that during a laps of time the epg is "disturbed"

    What is "disturbed"? How is this expressed? Just need to understand where and when this can happen... I have an event import algorithm in the plugin... more precisely, the formation of data tuples based on data received from XMLTV - I haven’t changed it for more than a year


    The tuple contains the event start date (obtained from XMLTV), event duration (obtained from XMLTV), serviceref (obtained from the lookup table), event description (obtained from XMLTV) and event title (obtained from XMLTV)... All this is given to the image function eEPGCache.importEvent() , which “does import” this data tuple....

  • Not quite like that... XML is converted into OrderedDict... and only then “playing” with OrderedDict - we get (generate) records in bouquet files. tvg-id is used to form a hash of the string... If you quickly read the topic 5-10 pages ago you will see a correspondence with jeepcook about this and why this is so...

    youre absolutely right, if XML data is collected to dict, it makes more sense to put the information in a <marker> tag.


    How soon can you implement this ?

    Edited 2 times, last by Box313 ().

  • How soon can you implement this ?

    Good question... I can’t give a time frame yet... depending on the availability of free time... the main thing is to figure out how to implement this with little cost so that these changes do not lead to the loss of existing functionality


    The idea itself is interesting, I don’t think it will be in great demand, but as an opportunity to add “beauty” to a bouquet, it has its place

  • thank you for the aknowledgement ;)


    i think it s very easy. I would place it where you parse the overwrite.xml tree to the channels dict.


        for channel in group:
            if channel.attribute.tvg-id = "Marker" then:

    dict['serviceref] = "1:64:0:0:0:0:0:0:0:0:"


    i dont see how it should interfere with anything else ?

    Edited 14 times, last by Box313 ().

  • i think it s very easy.

    i dont see how it should interfere with anything else ?

    Everything is a little different from what it seems to you.. The fact is that before it comes to the very approximate logic of forming strings in the bouquet file that you described, there is a little “magic” associated with several OrederedDict objects... for example, finding the symmetrical difference between two dictionaries - the resulting from the template (xml) and from the current m3u playlist, preserving the order of entries you specify ... As you understand, in an OrderedDict obtained from m3u there are no markers... But in a dictionary obtained from a template, they may be... they may not be... And if they are, they can be anywhere in any group... So the task of preliminary data analysis and formation of the resulting dictionary is a little more complicated than you think at first glance


    There are no unsolvable problems... you just need to “sleep” with this thought and think about a solution ... Give me time to think a little about the problem... It is not very trivial and interesting in terms of algorithms

  • for example, finding the symmetrical difference between two dictionaries

    Moreover, to speed up the process, this all happens in “different threads”... roughly speaking, groups of channels are processed in parallel, which is then “assembled” into the resulting dictionary... Otherwise, it would all work extremely slowly.. especially on playlists like @jeepcook uses (about 400,000+ records in m3u)


    In general... believe me... there is something to think about =)

  • Hello,


    On the next compiled versions of OATV 7.4, installation of e2m3u2b 1.2 is ok but after enigma2 restart the folder /usr/lib/enigma2/python/Plugins/Extensions/E2m3u2bouquet is deleted.


    The big difference I see is now python3 is on version 3.12.1. But something must have been added to have this deletion.


    It's a strange situation. I will check commits.


    OpenATV 7.4 rev33053+30dc116.


    If you need more informations, tell me. For now I will go back to the 20240118 compilation rev33052+276055f, python 3.11.5.

    Edited once, last by jeepcook ().

  • ok you're the 19th on the list ;-)

    Although ))) I can avoid waiting in line and “assemble” everything on my MacBook... it’s a matter of installing Python 3.12))) ...10 min time)) I just don’t see a single python 3 “bun” in the python code of the OpenATV image (like in any other)... and all these versions of python in assemblies are "fraud" )))


    p.s. But in the OpenATV C++ code - yes... there are a lot of changes and all the old functionality is preserved... this is good and I like it there

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!