Zunächst vielen Dank dem Ersteller des Scriptes.
Ich stand gerade vor demselben Problem. Ich bin von OpenElec zu Libreelec gewechselt. Leider funktionieren die Scripte in aktuellen Python-Versionen nicht.
Hier gibt es eine aktuellere Version: https://kodinerds3.rssing.com/chan-64020539/article84716.html
Leider funktionierte auch diese nicht, allerdings konnte ich sie relativ einfach zum Laufen bringen.
- urllib.urlopen gibt es so nicht mehr -> urllib.request.urlopen (der Import musste auch angepasst werden)
- das JSON aus meine Logdateien enthielt Leerzeichen, diese müssen umgewandelt werden (api_string = api_string.replace(" ","%20")), eventuell reicht auch entfernen
- Optional: der Speicherort alt unterscheidet sich vom Speicherort neu (api_string = api_string.replace(old_folder,new_folder))
- Optional: tvheadend lief auf Grund der Menge in einen HTTP 400 Fehler, ein erneuter Import führte zu doppelten Einträgen, deshalb wird nach einem Import der Logdatei diese gelöscht (nur nutzen wenn ihr ein Backup der Logdateien habt) somit kann das Script immer wieder ausgeführt werden. Das Löschen ist auskommentiert und muss, wenn gewünscht, einkommentiert werden.
Code
#!/usr/bin/env python3
# -*- coding: UTF-8 -*-
#This script has the purpose to import old TVHeadend recordings in a new TVHeade
#https://tvheadend.org/boards/5/topics/28252?r=29113#message-29113 by user ullix
#Variables have to be adapted to personal situation.
import json, urllib.request, time, datetime, subprocess, os
#Input variables
logdir = "/var/media/sda1-ata-TOSHIBA_MK5059GS/backup/log/"
api_url = "http://192.168.178.51:9981/api/dvr/entry/create?conf="
old_folder = "/hdd/"
new_folder = "/var/media/sda1-ata-TOSHIBA_MK5059GS/"
#Functions
def importLog(log, url):
"""Takes existing json log file and sends a recording timer to the serve
f = open(log,"r")
mask = f.read()
new_mask = json.loads(mask)
api_string = url + json.dumps(new_mask)
api_string = api_string.replace(old_folder,new_folder)
api_string = api_string.replace(" ","%20")
print(api_string)
with urllib.request.urlopen(api_string) as filehandle:
print ("Server Answer:", filehandle.read())
#os.remove(log)
#Iterating through log files
files = os.listdir(logdir)
for log in files:
importLog(logdir+log, api_url)
Alles anzeigen