Jetzt hat es geklappt... Nun geht es ans testen
Beiträge von MegaV0lt
-
-
Leider klappt schon das Einspielen nicht:
Codedarkwing@vdr01:~$ mysql -u epg2vdr --password epg2vdr < eventsview_test.sql Enter password: ERROR 1064 (42000) at line 1: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'Null then case when sub_shorttext is Null then '' else case whe...' at line 82
Hier der Abschnitt:
Code/* case when epi_season is Null then '' else concat('|Staffel: ', cast(epi_season as char)) end, */ /* Beispiel: KKP S02 E04. Als der Start von Keefs neuer Initia… */ case when epi_season is Null then case when sub_shorttext is Null then '' else case when REGEXP_INSTR(sub_shorttext, 'S[0-9]+ ') = 0 then '' else concat('||Staffel: ', REGEXP_SUBSTR(sub_shorttext, 'S[0-9]+')) end end else concat('|Staffel: ', cast(epi_season as char)) end,
Kann es sein, dass sub_shorttext nicht geht, weil oben schon bearbeitet?
-
Vielen Dank.
Probiere das aus, sobald ich wieder am VDR bin.
-
Try and Error...
Problem ist, wenn es nicht geht, hab ich keine Anhaltspunkte, was nicht passt...
Die eventsview.sql transferiert doch die Daten von der Datenbank zum VDR. Dann müsste die Datenbank doch immer intakt bleiben?
-
Danke,aber das entspricht in etwa dem, was ich aktuell schon habe. Gerade die Erkennung von Staffel und Episode... Ich will die umstellen wie oben beschrieben.
Wie kann ich das Testen,ohne am VDR alles zu zerschießen?
-
Mit dem Syntax checker bekomme ich Fehler:
Code
Alles anzeigen/* case when epi_season is Null then '' else concat('|Staffel: ', cast(epi_season as char)) end, */ /* Beispiel: KKP S02 E04. Als der Start von Keefs neuer Initia… */ case when epi_season is Null then case when sub_shorttext is Null then '' else case when REGEXP_INSTR(sub_shorttext, 'S[0-9]+ ') = 0 then '' else concat('||Staffel: ', REGEXP_SUBSTR(sub_shorttext, 'S[0-9]+')) end end else concat('|Staffel: ', cast(epi_season as char)) end, /* case when epi_part is Null then '' else concat('|Episode: ', cast(epi_part as char)) end, */ case when epi_part in Null then case when sub_shorttext is Null then '' else case when REGEXP_INSTR(sub_shorttext, 'E[0-9]+.') = 0 then '' else concat('||Staffel: ', REGEXP_SUBSTR(sub_shorttext, 'E[0-9]+')) end end else concat('|Episode: ', cast(epi_part as char)) end,
Edit: Noch eine Frage: Gibt es auch ein cnt_shorttext oder ist sub_shorttext gleich cnt_shorttext bei vom VDR verwalteten ID (vdr:000)?
-
Hänge mich noch mal an den Thread dran. Ich möchte nun die Infos zur Staffel und Episode auch aus dem Kurztext holen, wenn vorhanden und der Kanal keine Id hat
Beispiel:
Ich würde gerne hier ersetzen, da die S*y Kanäle ja schon lange kein Thema mehr sind
Code
Alles anzeigen/*case when epi_season is Null then '' else concat('|Staffel: ', cast(epi_season as char)) end,*/ case when epi_season is Null then case when cnt_longdescription is Null then '' else case when locate('. Staffel, Folge', cnt_longdescription) = 0 then '' else concat('||Staffel: ', substring_index(cnt_longdescription, '.', 1)) end end else concat('|Staffel: ', cast(epi_season as char)) end, /*case when epi_part is Null then '' else concat('|Episode: ', cast(epi_part as char)) end,*/ case when epi_part is Null then case when cnt_longdescription is Null then '' else case when locate('. Staffel, Folge', cnt_longdescription) = 0 then '' else concat('|Episode: ', substring_index(substring_index(cnt_longdescription, 'Folge ', -1), ':', 1)) end end else concat('|Episode: ', cast(epi_part as char)) end,
-
Vielen Dank für die vielen ausführlichen Antworten.
Habe die Rechnung von meinem Antec Fusion Gehäuse inkl Netzteil gefunden: August 2008; Also schon über 15 Jahre
Ich werde das trotzdem erst mal drin lassen und schauen wie lange es noch geht. Habe zum Überbrücken ein NoName Netzteil hier, falls es ausfällt.
Bei meinem Desktop dürfte es ähnlich alt sein.
Das Risiko eines komplettem Disaster ist dann wohl doch nicht so hoch.
-
Klar ist es besser die gesamte Lebensdauer auszuschöpfen. Aber wenn das Netzteil hoch geht, ist es nicht unwahrscheinlich, dass es die anderen Komponenten wie Mainboard oder Festplatten auch gleich grillt.
Ich hatte 2014 den Fall, dass so ein Netzteil in einem scsi-gehäuse, meine Platte gegrillt hat. Zum Glück konnte man die Platte durch Tausch der zvs Diode wiederbeleben... Läuft heute noch
Am blödesten wäre wenn die DVB karte über den Jordan ginge. Die ist ja kaum zu bekommen. Gleichwertiger Ersatz ist ebenfalls nicht zu bekommen
-
MEin VDR, beziehungsweise das Netzteil im Gehäuse ist mindestens 10 Jahre in Betrieb.
Habe nie drüber nachgedacht,aber die Dinger halten doch bestimmt keine 25 Jahre. Wie macht ihr das so? Warten und hoffen oder nach einem Zeitplan tauschen?
Und wie dimensioniert man das? Ich denke 400 Watt Reichen locker.
Momentan hab ich glaube ich das Antec drin. Ich denke mit be! Quiet fährt man ganz gut. Sollte auch so 10 Jahre halten...
-
-
Ja ist ein VDRAdmin Feature. Ich finde es halt praktisch, wenn die wichtigsten Daten schon vor ausgefüllt sind
-
-
Ich suche nach einer Art Liste, aus der hervorgeht, wo her Bilder im Aufnahmeverzeichnis stammen.
Zum Beispiel TVScraper: banner.jpg, fanart.jpg, poster.jpg
Woher kommt zum Beispiel cover_vdr.jpg? Wird vom Skin geladen, aber hab ich nirgends...
Im Moment lege ich nach der Aufnahme einen Symlink von den TVScraper Bildern nach cover_vdr.jpg an. Damit habe ich bei den Aufnahmen wo von TVScraper nichts zurückgegeben wird Bilder im Menü Aufnahmen.
In vdr_record.sh (after):
Code# TVScraper Bild(er) verlinken, falls vorhanden files=(banner.jpg poster.jpg fanart.jpg) # Bilder in der angegebenen Reihenfolge testen for file in "${files[@]}" ; do if [[ -e "${2}/${file}" ]] ; then ln --relative --symbolic "${2}/${file}" "${2}/cover_vdr.jpg" break fi done
VDR_config/local/vdr.d/scripts/vdr_record.sh at 41db7cc31704e37edf077a6c816407c226d49c3b · MegaV0lt/VDR_config_config. Contribute to MegaV0lt/VDR_config development by creating an account on GitHub.github.com -
Ich habe schon ein paar mal beobachtet, dass der Text in der Beschreibung mitten in ... umgebrochen wird. Da ich momentan auch an dem modifizierten textwrapper aus dem skin Elchi arbeite, wollte ich hier mal nachfragen, ob die Lösung so geht, oder ob man das anders machen muss:
Codeif (strchr("-.,:;!?_", *p)) { //! Breaks '...' if (*p != *(p + 1)) { // Next char is different, so use it for 'Delim' Delim = p; Blank = nullptr; } else { dsyslog("flatPlus: FloatingTextWrapper skipping double delimiter char!"); } }
Nach kurzem Testen scheint das zu funktionieren. Performance dürfte hoffentlich auch nicht zu stark leiden...
-
Ist ein Bastel-/Lernprojekt... Fehler sind nicht auszuschließen
Freut mich, wenn es auch noch anderen gefällt
-
Neue Version 1.0.1:
Code
Alles anzeigen2024-01-31: Version 1.0.1 - [fix] Fix scrollbar in timer short view - [fix] Try to fix wrong line breaks in '...' - [add] Add configurable transparency for poster in replay- and channel info - [add] Add option to disable display of format icon in menu recordings - [update] Use '≈' for almost equal - [update] Use 'Ø' for average - [update] Merge SetMediaSize() - [update] *.po files now in 'UTF-8' - [update] Cache 'FontAscender' in 'displaymenu.c' - [update] Update weather script and config - [update] Some internal optimizations
Neu ist unter anderem:
- Poster/Banner in Wiedergabe oder Kanalansicht haben nun eine einstellbare Transparenz
- Formatsymbole in der Aufnahmeliste sind nun abschaltbar
- Verwendung von '≈' für ungefähr und 'Ø' für Durchschnitt
-
Habe das Skript nun im 1. Beitrag in mein Git verlinkt.
VDR_config/local/sbin/AddVideoFormat.sh at main · MegaV0lt/VDR_config_config. Contribute to MegaV0lt/VDR_config development by creating an account on GitHub.github.com -
Stimmt. Hab's geändert
-
Habe mal getopts mit eingebaut
Codedarkwing@MCP-Notebook ~/Schreibtisch $ sudo bash AddVideoFormat.sh -h AddVideoFormat.sh Usage: AddVideoFormat.sh -f Force processing of already processed 'info'. Reuse of original 'info'! AddVideoFormat.sh -r Restore backed up 'info' files AddVideoFormat.sh -v VIDEO_DIR Path to VDR's video directory (default: /video)
Code
Alles anzeigen#!/usr/bin/env bash # # Add Video frame information's to vdr recordings made with vdr <= 2.6.4 # # VERSION=240127 ### Functions f_find_frameinfo() { f_line=($(grep '^F ' "$INFO" 2>/dev/null)) #echo " > Found in 'info': ${f_line[*]}" [[ "${#f_line[*]}" -lt 2 ]] && return 1 # No Framerate. Propably an old PES recording [[ "${#f_line[*]}" -eq 2 ]] && fps="${f_line[1]}" && return 0 # TS recording, but only framerate set [[ "${#f_line[*]}" -eq 6 ]] && return 2 # Frameinfos already set (VDR >= 2.6.5) } f_check_video() { width='' ; height='' ; aspect_ratio='' ; scantype='' ; frame_rate='' local key='' value='' local ts_file="${dir}/00001.ts" # TODO: What if first file is too small? # Read only 100 packets after seeking to position 09:23: 09:23%+#100 result=($(ffprobe -v fatal -select_streams v:0 -read_intervals 9:23%+#100 \ -show_entries stream=width,height,display_aspect_ratio,field_order,r_frame_rate \ -of default=nw=1:nk=0 "$ts_file")) #echo " > ffprobe result: ${result[*]}" for line in "${result[@]}" ; do key="${line%=*}" ; value="${line#*=}" case "$key" in 'width') width="$value" ;; 'height') height="$value" ;; 'display_aspect_ratio') aspect_ratio="$value" ;; 'field_order') scantype=$(echo "$value" | sed -r 's/[bt][bt]/i/g; s/progressive/p/; /^[ip]$/!s/.*/-/') ;; 'r_frame_rate') frame_rate="$value" ;; esac done [[ -n "$width" && -n "$height" && -n "$aspect_ratio" && -n "$scantype" && -n "$frame_rate" ]] && return 0 # Everything found… return 1 # Error detecting values } f_insert_framedata() { # Order of parameters: Framerate, Width, Height, Scantype, Aspectratio echo " > Inserting: F $fps $width $height $scantype $aspect_ratio" sed -i -e "s|^F .*|F $fps $width $height $scantype ${aspect_ratio}|" "$INFO" } f_check_backup() { if [[ -e "${INFO}.bak" ]] ; then if [[ "${FORCE:=false}" == 'true' ]] ; then cp -pf "${INFO}.bak" "$INFO" else echo " > Backup of 'info' found! Use '-f' to rescan. Skipping" return 1 fi else cp -p "$INFO" "${INFO}.bak" fi } f_restore() { # Restore original 'info' and delete backup if [[ -e "${INFO}.bak" ]] ; then echo " > Restoring original 'info'" if cp -pf "${INFO}.bak" "$INFO" ; then rm "${INFO}.bak" fi else echo " !> No backup found! Skipping" fi } f_help() { echo "$0 Usage:" echo -e "\t$0 -f Force processing of already processed 'info'. Reuse of original 'info'!" echo -e "\t$0 -r Restore backed up 'info' files" echo -e "\t$0 -v VIDEO_DIR Path to VDR's video directory (default: /video)" exit 0 } ### Start while getopts ':frv:' opt ; do case "$opt" in f) FORCE=''true ;; r) RESTORE='true' ;; v) VIDEO="$OPTARG";; *) f_help ;; esac done if [[ ! -r "${VIDEO:=/video}" ]]; then echo "Video directory '${VIDEO}' not found or not readable - exiting" exit 1 fi while IFS= read -r dir; do INFO="${dir}/info" ((cnt+=1)) echo "=> (${cnt}) Checking ${dir}" if [[ "${RESTORE:=false}" == 'true' ]] ; then f_restore else if [[ -r "${INFO}.vdr" ]] ; then echo " !> Skipping PES recording" continue fi if [[ ! -w "$INFO" ]] ; then echo " !> 'info' file not found or is not writable! Skipping" continue fi f_check_backup || continue f_find_frameinfo || continue if f_check_video ; then echo " > ffprobe got ${width}x${height} @ ${fps} scantype: $scantype ar: ${aspect_ratio}" f_insert_framedata else echo " !> ffprobe error!" fi fi # if RESTORE done < <(find "${VIDEO}/" -type d -name '*.rec') # End