i got to playing recently with an old tv card i hadn't touched in 10 years and as a part of that casual project i came across your program. i was really pleased with how well thought out it is, and the documentation is just stellar: everything you need without a whole bunch of fluff making it tedious. props to Jan and Francis, and also Blackbear199 for the inis he wrote, including this's original, and for all the forum support he's given people, which i most definitely made use of.
so i saw that there's all this well-made documentation for a well-made program, but when i went into the inis to look for something to mimic, i found that most the stuff was encrypted, and the most thorough-looking one for me to ape wasn't working anymore. i thought that was a shame enough that i decided to make a little sub-project of updating the tvguide.com.ini as best as i could to the best-practices extolled by the documentation and the documented config files. i checked tvguide over for all that could populate the available elements, optimized the regexes for large files, and commented everything for easy reading. i hit a wall partway through, but i've pretty much accomplished my goals, and it gets basic data fine now. check my comments in the header about keepindexpage if using it.
the one gap in the documentation that really stymied me was figuring out what wg+ was doing with the showsplit regex. now that i've figured it out, i made a little explanation / demo of how wg+ parses regex matches in the showsplit, to hopefully save anyone else some time and stress: see also: https://regex101.com/r/itVcnE/
so after working with it a while, i have a couple constructive observations:
it would be nice if the B number format could be opened up alongside the F and D formats for conversion. That would allow dec->bool and then using substring to find a 1 at a set position instead of having to AND on decimal values for a bitwise lookup value. it'd be more readable and easier to work with.
it would be nice if keepindexpage could be cached more granularly, ie, 1 url per channelgroup (zip etc) when that's how the source provides it, instead of either by channel or by whole site. right now i choose between using the "keepindexpage" option and dividing zipcode-feeds among separate config.xmls so that the massive indexpage is only req'd once, or leaving "keepindexpage" off and rerequing it every channel to enable mixed zipcodes in the same config.
a json parser would sometimes be nicer than regexes, it'd be convenient to be doing node.last/child/etc instead of building regexes that deal with inner nodes that share the same name as outer nodes and such. same with a html dom object.
an extra parameter to add a random delay between 0-x above and beyond the *-delay config options would be neat.
is there a way to preemptively cleanup a whole response for the urlshow->showdetails & urlsubdetail->showsubdetails scopes like showsplit.modify{cleanup(style=jsondecode)} does for the indexshowdetails scope?
the regex engine doesn't like valid ways of dealing with escaped quotes (\") inside two quotes like "((?:[^"\\]|\\.)*)" or "((?:\\.|[^"])+)"
index_urlshow{url|file://.. doesn't seem to work whereas url_index{url|file://.. does, i haven't gotten as far as detail_urlsubdetail
in the showdetails scope, none of these seem to work when element 1 and 2 have the same content:
detail_element2.modify {clear([='detail_element1'])}
detail_element2.modify {clear(['detail_element1' = 'detail_element2'])}
detail_element2.modify {clear(['detail_element1' ~ 'detail_element2'])}
detail_element2.modify {clear(['detail_element2' ~ 'detail_element1'])}
detail_element2.modify {set|###'detail_element1'###'detail_temp1'###}
yields <element2>###detail_element1###detail_temp1###</element2>
whereas these things work in the indexshowdetails scope with their respective index_ counterparts.
if the above 2 are just a thing for non-donators, maybe could variable substitutions be opened up to use at least just within the options ()s so that app behavior doesn't vary in the showdetails scope between donated/non versions?
i was going to finish out the showsubdetails scope if i could, but i'm held up by the file:// options not working for me in some scopes, and being unable to test anything with variable substitutions in the showdetails scope, so that's as far as i can get. its fixed enough for decent index listings, and it still can serve well enough as a decent template for others i think. enjoy!