[] feat: runs every night at 1am
Some checks failed
Update EPG (m3u4u) / update-files (push) Failing after 19s
Update EPG / update-files (push) Failing after 34s

This commit is contained in:
2025-02-17 15:54:05 -06:00
parent da895e3190
commit 9f108a78c0
10 changed files with 201871 additions and 203640 deletions

4
.gitignore vendored Normal file
View File

@@ -0,0 +1,4 @@
.idea
.DS_Store
.venv

11
Dockerfile Normal file
View File

@@ -0,0 +1,11 @@
FROM python:3.12-alpine
RUN apk update && apk add openssh
COPY ./ /app
COPY --chmod=0600 ./build/id_rsa /root/.ssh/
RUN pip3 install requests
WORKDIR /app
CMD ["python3", "./epg-grabber/getEpgs.py"]

3
bash/build-deploy.sh Executable file
View File

@@ -0,0 +1,3 @@
docker buildx build -t code.caldwell.digital/tools/moveonjoy-m3u:latest . --platform=linux/amd64
docker push code.caldwell.digital/tools/moveonjoy-m3u:latest
DOCKER_HOST="ssh://ansible@web03.caldwell.local" docker stack deploy -c deploy.compose.yml epg-grabber

50
build/id_rsa Normal file
View File

@@ -0,0 +1,50 @@
-----BEGIN OPENSSH PRIVATE KEY-----
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
MEBQ==
-----END OPENSSH PRIVATE KEY-----

6
compose.yml Normal file
View File

@@ -0,0 +1,6 @@
services:
app:
build: .
command: python3 /app/epg-grabber/getEpgs.py
volumes:
- ./:/app

13
deploy.compose.yml Normal file
View File

@@ -0,0 +1,13 @@
services:
app:
image: code.caldwell.digital/tools/moveonjoy-m3u:latest
command: python3 /app/epg-grabber/getEpgs.py
deploy:
mode: replicated
replicas: 0
labels:
- "swarm.cronjob.enable=true"
- "swarm.cronjob.schedule=0 1 * * *"
- "swarm.cronjob.skip-running=false"
restart_policy:
condition: none

View File

@@ -59,6 +59,10 @@ def filter_and_build_epg(urls):
tree.write(f, encoding='utf-8', xml_declaration=True)
print(f"New EPG saved to {output_file_gz}")
def copy_to_server():
os.system('scp -o StrictHostKeyChecking=no '+output_file_gz+' brock@192.168.1.10:/var/www/iptv.caldwell.local/epg.xml.gz')
os.system('ssh -o StrictHostKeyChecking=no brock@192.168.1.10 -t ')
urls = [
'https://www.dropbox.com/scl/fi/i7kgakvjubjwiscuab467/m3u4u-103216-595281-EPG.xml?rlkey=ykvw6gyhx93erycl19sa6xft5&st=tlrrz59n&dl=1',
'https://epgshare01.online/epgshare01/epg_ripper_US1.xml.gz',
@@ -68,4 +72,5 @@ urls = [
]
if __name__ == "__main__":
filter_and_build_epg(urls)
# filter_and_build_epg(urls)
copy_to_server()

405417
epg.xml

File diff suppressed because it is too large Load Diff

Binary file not shown.

BIN
epgs/epg.xml.gz Normal file

Binary file not shown.