Bestimmte Picons exportieren

    • nein, sollte aber im Order /picons auch nicht gelöscht werden

      sonst einen Ordner in /data oder auf USB, SD Card erstellen
      auf meinen boxen liegen die picons immer auf USB oder SD und der Picon Ordner ist dann verlinkt

      im meinem script kannst du den Zielordner dann frei wählen bzw. wird er auch erstellt, falls noch nicht vorhanden UND sofern um dort um mindestens 1MB mehr freier Speicherplatz vorhanden ist als der Speicherverbrauch aller Picons im Source Ordner
      (das meinte ich mit "Absichern ;) )
      Gruß Fred

      Die Dreambox ist tot, es lebe die Dreambox

      ¯\_(ツ)_/¯

      Quellcode

      1. root@dm920:~$ mount | grep "/ "
      2. /dev/mmcblk1p1 on / type ext4 (rw,relatime,data=ordered)
      3. root@dm920:~$
    • Was macht mehr Sinn?

      einen Link vom picon.png auf den ServiceName oder einen Link vom picon.png auf ServiceName.png?

      Beides ist möglich
      Wenn man ein picon im Ordner suchen will reicht eigentlich der symlink ServiceName.


      Werden picons nach Kanalname noch von E2 unterstützt? Wenn nicht ist das eigentlich sinnlos

      /usr/script/copy-service-picons.sh 8 10 /picons/piconHD /tmp/test linked

      Quellcode

      1. root@dm820:~# /usr/script/copy-service-picons.sh 8 10 /picons/piconHD /tmp/test linked
      2. channel number: 8
      3. service name: arte HD
      4. service reference: 1:0:19:283E:3FB:1:C00000:0:0:0:
      5. picon name: 1_0_19_283E_3FB_1_C00000_0_0_0.png
      6. copy /picons/piconHD/1_0_19_283E_3FB_1_C00000_0_0_0.png to /tmp/test/
      7. create symlink from /tmp/test/1_0_19_283E_3FB_1_C00000_0_0_0.png /tmp/test/arte HD
      8. create symlink from /tmp/test/1_0_19_283E_3FB_1_C00000_0_0_0.png /tmp/test/arte HD.png
      9. channel number: 9
      10. service name: phoenix HD
      11. service reference: 1:0:19:285B:401:1:C00000:0:0:0:
      12. picon name: 1_0_19_285B_401_1_C00000_0_0_0.png
      13. copy /picons/piconHD/1_0_19_285B_401_1_C00000_0_0_0.png to /tmp/test/
      14. create symlink from /tmp/test/1_0_19_285B_401_1_C00000_0_0_0.png /tmp/test/phoenix HD
      15. create symlink from /tmp/test/1_0_19_285B_401_1_C00000_0_0_0.png /tmp/test/phoenix HD.png
      16. channel number: 10
      17. service name: 3sat HD
      18. service reference: 1:0:19:2B8E:3F2:1:C00000:0:0:0:
      19. picon name: 1_0_19_2B8E_3F2_1_C00000_0_0_0.png
      20. copy /picons/piconHD/1_0_19_2B8E_3F2_1_C00000_0_0_0.png to /tmp/test/
      21. create symlink from /tmp/test/1_0_19_2B8E_3F2_1_C00000_0_0_0.png /tmp/test/3sat HD
      22. create symlink from /tmp/test/1_0_19_2B8E_3F2_1_C00000_0_0_0.png /tmp/test/3sat HD.png
      23. completed: /usr/script/copy-service-picons.sh 8 10 /picons/piconHD /tmp/test linked
      24. 3 channel(s) scaned - find list in /tmp/test/service_picon_list_8-10.csv
      25. 3 picon(s) copied to /tmp/test
      26. no errors logged
      27. root@dm820:~#
      Alles anzeigen





      die Suche im Terminal sieht dann so aus:

      ls -l /tmp/test/

      Quellcode

      1. root@dm820:~# ls -l /tmp/test/
      2. total 24
      3. -rw-r--r-- 1 root root 2921 Mai 29 2019 1_0_19_283E_3FB_1_C00000_0_0_0.png
      4. -rw-r--r-- 1 root root 4217 Mai 29 2019 1_0_19_285B_401_1_C00000_0_0_0.png
      5. -rw-r--r-- 1 root root 6221 Mai 29 2019 1_0_19_2B8E_3F2_1_C00000_0_0_0.png
      6. lrwxrwxrwx 1 root root 34 Apr 17 18:28 '3sat HD' -> 1_0_19_2B8E_3F2_1_C00000_0_0_0.png
      7. lrwxrwxrwx 1 root root 34 Apr 17 18:28 '3sat HD.png' -> 1_0_19_2B8E_3F2_1_C00000_0_0_0.png
      8. lrwxrwxrwx 1 root root 34 Apr 17 18:28 'arte HD' -> 1_0_19_283E_3FB_1_C00000_0_0_0.png
      9. lrwxrwxrwx 1 root root 34 Apr 17 18:28 'arte HD.png' -> 1_0_19_283E_3FB_1_C00000_0_0_0.png
      10. lrwxrwxrwx 1 root root 34 Apr 17 18:28 'phoenix HD' -> 1_0_19_285B_401_1_C00000_0_0_0.png
      11. lrwxrwxrwx 1 root root 34 Apr 17 18:28 'phoenix HD.png' -> 1_0_19_285B_401_1_C00000_0_0_0.png
      12. -rw-r--r-- 1 root root 367 Apr 17 18:28 service_picon_list_8-10.csv
      13. root@dm820:~# ls -l /tmp/test/|grep phoenix
      14. lrwxrwxrwx 1 root root 34 Apr 17 18:28 phoenix HD -> 1_0_19_285B_401_1_C00000_0_0_0.png
      15. lrwxrwxrwx 1 root root 34 Apr 17 18:28 phoenix HD.png -> 1_0_19_285B_401_1_C00000_0_0_0.png
      16. root@dm820:~#
      Alles anzeigen


      die Infos stehen dann auch in einer .csv die man mit Excel öffnen/bearbeiten kann

      Quellcode

      1. #SERVICE/PICON list: dm820 - created on Monday, 17. April 2023 at 18:28:53
      2. channel number;service reference;service name;picon name
      3. 8;1:0:19:283E:3FB:1:C00000:0:0:0:;arte HD;1_0_19_283E_3FB_1_C00000_0_0_0.png
      4. 9;1:0:19:285B:401:1:C00000:0:0:0:;phoenix HD;1_0_19_285B_401_1_C00000_0_0_0.png
      5. 10;1:0:19:2B8E:3F2:1:C00000:0:0:0:;3sat HD;1_0_19_2B8E_3F2_1_C00000_0_0_0.png
      Gruß Fred

      Die Dreambox ist tot, es lebe die Dreambox

      ¯\_(ツ)_/¯

      Quellcode

      1. root@dm920:~$ mount | grep "/ "
      2. /dev/mmcblk1p1 on / type ext4 (rw,relatime,data=ordered)
      3. root@dm920:~$

      Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von Fred Bogus Trumper ()

    • so, hat doch länger gedauert - sind doch 343 code zeilen geworden, weil ich es sehr "bedienerfreundlich" gestaltet habe :D

      das script cp2list.sh.tar.gz im Anhang nach Anleitung am Ende auf die Box per FTP schieben und entpacken


      Voraussetzungen:
      - das WebInterface muss aktiv sein (egal ob die Sicherheitsmaßnahmen aktiv sind oder, egal ob ein Passwort gesetzt ist oder nicht)
      - die Pakete curl, coreutils und binutils müssen installiert sein, damit das Script funktioniert
      - Box muss beim Ausführen des Script im active mode sein - im idle funktioniert es nicht (den check habe ich mir erspart einzubauen)
      - es muss mindestens ein Tuner frei sein


      Bedienung:

      /usr/script/cp2list.sh <Startkanalnummer> <Endkanalnummer>

      Die Box springt zum angegebenen Startkanal, liest die Daten aus und springt zum nächsten Kanal, liest die Daten aus usw. bis die gewählte End Kanalnummer erreicht wird.

      Man kann so ein Bouquet nach dem anderen scanen oder auch nur einen Sender, z.B.:

      /usr/script/cp2list.sh 1 50
      /usr/script/cp2list.sh 34 56
      /usr/script/cp2list.sh 5 5


      Dabei wird nur eine .csv mit eine Liste der Informationen in /tmp erstellt
      Kanalnummer;Servicereference;Servicename;Piconname



      Praktisch, wenn man eine Liste erstellen will bevor man eine Kanalsuche startet. Manchmal sind die Sender nicht mehr am Platz und das Picon wird nicht mehr angezeigt weil sich die Servicereference geändert hat.
      Wenn man die Liste vor der Kanalsuche erstellt, findet man in der Liste den alten Picon Namen und muss das Picon im Picon Ordner nur noch umbenennen ohne lange suchen zu müssen damit es wieder angezeigt wird.


      /usr/script/cp2list.sh <Startkanalnummer> <Endkanalnummer> <Picon Ordner> <Zielordner>

      Mit dem command wird wie oben die .csv erstellt und die Picons der ausgewählten Sender werden in den Zielordner kopiert.

      - Wenn der Zielordner nicht existiert wird er automatisch erstellt
      - Wenn der freie Speicherplatz im Zielordner geringer ist als der verbrauchte Speicherplatz im Quellordner bricht das Script mit einer Fehlermeldung ab
      - Wird im Quellordner ein picon nicht gefunden, gibt es eine Fehlermeldung
      - Wenn das script durchgelaufen ist, findet man im Zielordner die .csv und eine_error.log Datei mit der Liste der fehlenden Picons inkl. Kanalnamen

      Beispiele:
      /usr/script/cp2list.sh 28 50 /picons/piconHD/ /tmp/test
      /usr/script/cp2list.sh 107 154 /picons/piconHD/ /media/usb/piconBackup



      /usr/script/cp2list.sh <Startkanalnummer> <Endkanalnummer> <Picon Ordner> <Zielordner> <Symlinkption>



      Symlink Optionen
      ln oder --link-name: erstellt einen Symlink mit dem Namen "Service Name" der auf das servicereference.png zeigt
      lp oder --link-picon: erstellt einen Symlink mit dem Namen "Service Name.png" der auf das servicereference.png zeigt
      lb oder --link-both: erstellt beide Symlinks


      Beispiele:
      /usr/script/cp2list.sh 1 50 /picons/piconHD/ /tmp/test ln
      /usr/script/cp2list.sh 1 10 /picons/piconHD/ /media/usb/piconBackup -link-name



      Es sind noch ein paar andere interaktive Abfragen eingebaut, aber das wirst du schon merken ;)


      Am Ende gibt es noch eine Zusammenfassung und die Info wo die erstellten Dateien liegen und wie sie heißen

      Bespiel 1

      Quellcode

      1. root@dm820:~# cp2list.sh 8 9 /picons/piconHD/ /tmp/test lb
      2. channel number: 8
      3. service name: arte HD
      4. service reference: 1:0:19:283E:3FB:1:C00000:0:0:0:
      5. picon name: 1_0_19_283E_3FB_1_C00000_0_0_0.png
      6. copy /picons/piconHD/1_0_19_283E_3FB_1_C00000_0_0_0.png to /tmp/test/
      7. create symlink from /tmp/test/1_0_19_283E_3FB_1_C00000_0_0_0.png '/tmp/test/arte HD'
      8. create symlink from /tmp/test/1_0_19_283E_3FB_1_C00000_0_0_0.png /tmp/test/arte HD.png
      9. channel number: 9
      10. service name: phoenix HD
      11. service reference: 1:0:19:285B:401:1:C00000:0:0:0:
      12. picon name: 1_0_19_285B_401_1_C00000_0_0_0.png
      13. copy /picons/piconHD/1_0_19_285B_401_1_C00000_0_0_0.png to /tmp/test/
      14. create symlink from /tmp/test/1_0_19_285B_401_1_C00000_0_0_0.png '/tmp/test/phoenix HD'
      15. create symlink from /tmp/test/1_0_19_285B_401_1_C00000_0_0_0.png /tmp/test/phoenix HD.png
      16. /usr/script/cp2list.sh 8 9 /picons/piconHD/ /tmp/test lb completed
      17. 2 channel(s) scaned - find list in /tmp/test/service_picon_list_8-9.csv
      18. 2 picon(s) copied to /tmp/test
      19. no errors logged
      20. root@dm820:~#
      Alles anzeigen




      Bespiel 2


      Quellcode

      1. root@dm820:~# cp2list.sh 10 11 /picons/piconlcd/ /tmp/test --link-both
      2. channel number: 10
      3. service name: 3sat HD
      4. service reference: 1:0:19:2B8E:3F2:1:C00000:0:0:0:
      5. picon name: 1_0_19_2B8E_3F2_1_C00000_0_0_0.png
      6. picon for '3sat HD' /picons/piconlcd/1_0_19_2B8E_3F2_1_C00000_0_0_0.png not found
      7. channel number: 11
      8. service name: ZDF HD
      9. service reference: 1:0:19:2B66:3F3:1:C00000:0:0:0:
      10. picon name: 1_0_19_2B66_3F3_1_C00000_0_0_0.png
      11. picon for 'ZDF HD' /picons/piconlcd/1_0_19_2B66_3F3_1_C00000_0_0_0.png not found
      12. /usr/script/cp2list.sh 10 11 /picons/piconlcd/ /tmp/test --link-both completed
      13. 2 channel(s) scaned - find list in /tmp/test/service_picon_list_10-11.csv
      14. 0 picon(s) copied to /tmp/test
      15. 2 picon(s) not found - find errors in /tmp/test/service_picon_list_10-11_error.log
      16. root@dm820:~#
      Alles anzeigen



      Installation:

      Falls die Pakete curl, binutils und coreutils nicht installiert sind, installieren

      apt-get update && apt-get install curl binutils coreutils


      cp2list.sh.tar.gz per ftp etc. nach /tmp auf die Box schieben und manuell entpacken

      tar vxzf /tmp/cp2list.sh.tar.gz -C /usr/script/
      Dateien
      • cp2list.sh.tar.gz

        (3,64 kB, 122 mal heruntergeladen, zuletzt: )
      Gruß Fred

      Die Dreambox ist tot, es lebe die Dreambox

      ¯\_(ツ)_/¯

      Quellcode

      1. root@dm920:~$ mount | grep "/ "
      2. /dev/mmcblk1p1 on / type ext4 (rw,relatime,data=ordered)
      3. root@dm920:~$

      Dieser Beitrag wurde bereits 6 mal editiert, zuletzt von Fred Bogus Trumper ()

    • Funktioniert super, vielen lieben Dank.

      Aber ein kleiner Nachtrag für diejenigen, die auch gerade Radio hören:
      Auf der Box unbedingt auf Fernsehen schalten, sonst nimmt er die Radio-Sender.
      Ist wahrscheinlich für die meisten sowieso klar gewesen, aber nicht für mich und ev. auch andere nicht so Bedarfte.

      Ansonsten:
      Wieder mal ein Gustostückerl von @Fred Bogus Trumper und ich bedanke mich vielmals für die hervorragende Arbeit.
      Und vielleicht können Andere auch davon profitieren.
    • danke

      also ist die Bedienung einigermaßen intuitiv?

      Ich überlege mir noch, wie man das script nutzen kann, um Partnerbox Picons automatisiert umzubennen.

      Am einfachsten wäre es auf der der Serverbox mit dem eine .csv eines Bouquets oder eines Senders zu generieren und die Picons in einen Ordner zu kopieren - wenn auf der Client Box keine Picons installiert sind

      dann picos und .csv auf die Clientbox kopieren und auf der Clientbox das script mit der 1. Kanalnummer im Partnerbox Bouquet und Angabe des Piconsverzeichnisses starten und mit den Angaben aus der .csv die picons auf der clientbox entsprichen umbennen oder auf ein partnerbox service reference.png verlinken



      der einzige Nachteil ist, dass man dann user/password im picon namen sieht, weil in der Partnerbox service Reference die zugangsdaten gespeichert sind wenn die Web Interface Passwortabfrage aktiviert ist

      Man könnte auch die userbouquets auf der clientbox auslesen und sich das zappen auf der sparen - allerdings muss man dann den bouquetnamen ders Partnerbox bouquets kennen

      ich werde mal beides testen
      Gruß Fred

      Die Dreambox ist tot, es lebe die Dreambox

      ¯\_(ツ)_/¯

      Quellcode

      1. root@dm920:~$ mount | grep "/ "
      2. /dev/mmcblk1p1 on / type ext4 (rw,relatime,data=ordered)
      3. root@dm920:~$
    • Bedienung ist super beschrieben und funktioniert auch tadellos.
      Ich bin jetzt hergegangen und habe mir mit Visual Basic etwas programmiert, welches die Icons, die ich runtergeladen habe, umbenennt in: Nummer - Kanalname.
      Also z.B: 1 - ORF1.png, 2 - ORF 2 Bgld.png, 3 - Das Erste.png usw. usw.
      Denn ich wollte Dich nicht nochmals fragen, ob man eventuell die Picons *.png in Service Name .png umbennen kann. War eh in einer Stunde fertig damit. Somit hatte ich Spaß und Du nicht noch mehr Arbeit :D

      Also:
      Funktioniert tadellos, ist ungemein nützlich für mich (und hoffentlich auch für Andere) und ich bedanke mich nochmals recht herzlich.
    • du hättest im script nur Zeile 263 nur den command 'ln -sf' in 'mv' ändern müssen, dann hätte es mit dem script auch funktioniert ;)

      Quellcode

      1. root@dm820:/usr/script# grep -n "ln -sf" /usr/script/cp2list.sh
      2. 257:ln -sf "$PICON_NAME" "$SERVICE_NAME"
      3. 263:ln -sf "$PICON_NAME" "$SERVICE_NAME.png"
      4. root@dm820:/usr/script#

      Quellcode

      1. root@dm820:/usr/script# grep -n "ln -sf\|mv" /usr/script/cp2list.sh
      2. 257:ln -sf "$PICON_NAME" "$SERVICE_NAME"
      3. 263:mv "$PICON_NAME" "$SERVICE_NAME.png"
      4. root@dm820:/usr/script#
      alternativ hätte man das auch in der shell erledigen können ;)




      aber ja, kann ich einbauen
      Gruß Fred

      Die Dreambox ist tot, es lebe die Dreambox

      ¯\_(ツ)_/¯

      Quellcode

      1. root@dm920:~$ mount | grep "/ "
      2. /dev/mmcblk1p1 on / type ext4 (rw,relatime,data=ordered)
      3. root@dm920:~$

      Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von Fred Bogus Trumper ()

    • Danke schön!

      Ich ziehe mal ein Resümee:
      - Du hast etwas geschaffen, was Dir, mir und hoffentlich auch Anderen hilft
      - Du hattest Deinen Spaß
      - Ich habe etwas dazugelernt
      - Und auch Ich hatte Spaß beim Programmieren

      Was bitte will man mehr?

      :thumbsup:
    • Das ganze wäre auch so wie ich es zumindest verstanden hätte mit dem E-Channelizer (Setting Editor) direkt am PC gegangen... mit der alten kostenlose Version 4.0.1 kann man die Picons unter anderem exportieren/importieren/überflüssige automatisch löschen und dabei unter anderem auch in 4 verschiedenen Versionen abspeichern (mit dem Kanalnamen, dem Originalnamen, der Referenz- Id usw...)
    • OHA!
      Also das wußte ich nicht. Ich habe 4 verschiedene Editoren installiert und lange nach den besten gesucht. Aber der ist mir nicht untergekommen.
      Muss ich mir gleich mal ansehen, danke schön.
      Trotzdem verwende ich jetzt das neue Script von @Fred Bogus Trumper, das ist Spitze.

      edit:
      E-Channelizer installiert und nach 10 Minuten wieder deinstalliert.
      Denn ich wollte ein Bouquet importieren, aber selbst das is, neben dem Import und Export von Picons, nur in der Vollversion enthalten.
      Und ich gebe sicherlich keine 40,- Euro für etwas aus, was es zu Hauf gratis im Internet gibt.
      15,- max. hätte ich akzeptiert, aber 40,- sind viel zu viel.

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von wernho ()

    • vielleicht mal den ganzen Thread lesen

      Die picons sind ja vorhanden und werden angezeigt!

      Die Anforderung ist (auch wenn es gedauert bis alle Infos verhanden waren):
      @wernho möchte bestimmte Serice Reference picons als 'Service Name.png' exportieren die er dann auf die Logitech Harmony übertragen kann. Der Harmony ist egal wie das picon heisst. Ein 'Service Name.png' ist eben human readable ;)
      Gruß Fred

      Die Dreambox ist tot, es lebe die Dreambox

      ¯\_(ツ)_/¯

      Quellcode

      1. root@dm920:~$ mount | grep "/ "
      2. /dev/mmcblk1p1 on / type ext4 (rw,relatime,data=ordered)
      3. root@dm920:~$

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Fred Bogus Trumper ()

    • @telecomic:
      Uups. Sorry, ich habe mal wieder nicht ordentlich gelesen. Habe es bereits gefunden. Danke schön.

      @driftuser:
      Ja, der TE will es so. Denn ansonsten müßte er für 50 Favoriten jeden einzelnen auslesen, das dazugehörige Picon suchen (sehr mühsam, da die Namen sehr kryptisch), es in ein Verzeichnis koperen und dann noch umbennen.
      Und das ist so viel Arbeit, die er sich einfach nicht antun wollte.
      Und nachdem @Fred Bogus Trumper das scripten und dem TE das Programmieren viel Spaß macht, wurde dieses Script von @Fred Bogus Trumper erstellt und der TE ist Ihm dafür sehr dankbar. Und hofft, dass dieses Script auch Anderen hilft.

      Und auch ein Danke an @box8000_oatv für den Link.
    • also wird die Möglichkeit die Service Reference in Service Name.png in umzubenennen nicht mehr benötigt?
      ist eigentlich schnell quick&dirty eingebaut - wenn ich mal wieder Zeit finde

      aber der code kann auch von jedem nach Wunsch angepasst, erweitert oder gekübelt werden ;)
      Gruß Fred

      Die Dreambox ist tot, es lebe die Dreambox

      ¯\_(ツ)_/¯

      Quellcode

      1. root@dm920:~$ mount | grep "/ "
      2. /dev/mmcblk1p1 on / type ext4 (rw,relatime,data=ordered)
      3. root@dm920:~$
    • Naja, wenn Du mal Zeit, Lust und Laune hast: warum nicht.
      Brauche ich dann mein Programm nimmer anwerfen, weil dann eh schon alles fertig ist.
      Und vielleicht hilft es auch Anderen.
      Und ich werde mir mal das script ansehen um etwas Linux zu lernen.