linuxserver / docker-tvheadend

GNU General Public License v3.0
169 stars 90 forks source link

xmltv.sock #172

Closed Chris230291 closed 2 years ago

Chris230291 commented 3 years ago

Hello. I am using the webgrab and tvh containers. I mount the xmltv.sock of tvh inside my webgrab container. This works and the output of my webgrab scripts pass all of my xmls to tvh. The issue I have is that restarting tvh requires webgrab to restart so that the socket will work again. Is there/could we have a nicer way of throwing data at the socket from outside of the tvh container? I understand there is a webgrab module inside tvh but that is no good to me with how I want to run my setup.

tobbenb commented 3 years ago

There is no reason to use a sock for this. Just set webgrab to output the XML to the folder specified in the tvheadend readme and use the webgrab grab module in tvheadend.

Chris230291 commented 3 years ago

There is a reason. I have multiple config dirs, 1 per country. I execute them all in parallel. Some take seconds, some take minutes and some take hours depending on post processing. I don't want any of the epgs being held up by the slow ones. I don't want to worry about merging them and getting tv_grab_wg and webgrab crons in "sync"

Its not the end of the world, I'll just keep using it as I am. But if anything could be done to improve this I would appreciate it.

tobbenb commented 3 years ago

I fail to see how we can do anything about the issue you have. You might want to look into having the volume mount in slave mode and see if that works. You can set up compose to deal with restarting both containers so you don't have the issue.

When I used tvheadend I got EPG for 14 days, so not sure how a couple of hours to finish all the grabbing will slow down the anything.

Chris230291 commented 3 years ago

Is is possible to expose the socket to a port? Then I can just send the data to <tvh-ip>:<xmltv.sock-port> from my webgrab script.

Some sites don't have data for more than a couple days. Since schedules often change, especially sports, I prefer to just grab for a single day or two depending on site and run the grab twice a day.

tobbenb commented 3 years ago

A socket is not a port. If you want that changed, that is something you have to talk to the software authors about. We just package it into a container.

Chris230291 commented 3 years ago

I have managed to achieve what I want by customizing the containers. Whether or not you want to build it in is up to you, but this is how I did it...

<-volume->/custom-cont-init.d/socat.sh

apk add socat socat TCP-LISTEN:12345,fork UNIX-CONNECT:/config/epggrab/xmltv.sock &

Then with socat also installed inside the webgrab container...

socat -u FILE:<path/to/xml> TCP:<IP address>:12345

github-actions[bot] commented 3 years ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.