playlist szerkesztése

Kezdőlap Fórumok Vegyes gondok playlist szerkesztése

10 bejegyzés megtekintése - 11-20 / 35
  • Szerző
    Bejegyzés
  • #2199951
    pointux
    Felhasználó

      Na, csináltam egy olyat, ami html-be lementi az éppen játszottak időpontját és címét (out-playlist.html), ilyen formában
      Most játszott:

      2010.06.24. 17:32:49: Valami 1
      2010.06.24. 17:32:59: Valami 2

      Meg lementi a tervet is (in-playlist.html), ilyen formában
      Terv:

      2010.06.24. 17:32:49 + 0 s: Valami 1
      2010.06.24. 17:32:49 + 10 s: Valami 2

      Ehhez, persze az kell, hogy a playlistben benne legyen a zene hossza (és ne üres legyen ez a „mező”), mert különben honnan tudná.
      (Majd valaki összeadja a dátumot a hosszal (sec).)

      És fel lehet rakni a weboldalra is.

      #!/bin/bash

      PLAYER="mplayer -ao alsa -quiet "
      IN_PLAYLIST="./in-playlist.m3u" # ezt a listat fogja lejatszani
      OUT_PLAYLIST="./out-playlist.m3u" # ebbe menti el, amit jatszott
      IN_PLAYLIST_HTML="./in-playlist.html" # ebbe menti el, amit jatszott
      TMP_OUT_PLAYLIST_HTML="./tmp-out-playlist.html" # ebbe menti el, amit jatszott
      OUT_PLAYLIST_HTML="./out-playlist.html" # ebbe menti el, amit jatszott
      # (" - Last played: datummal" a neve utan, nem fogja halmozni a last played-eket)
      Q_ON_SIGTSTP="true" # kilepes STOP szignal eseten (CTRL+Z), megvaltoztatasa nem ajanlott!
      # a szam jatszasanak megszakitasa kilepessel pl. mplayer eseten a 'q' betuvel tortenik

      # terv lementese html-be
      plan_to_html(){
      touch ${IN_PLAYLIST_HTML}
      echo -e "

      Terv:

      " > ${IN_PLAYLIST_HTML}
      LINES="1"
      secs="0"
      secs2="0"
      while [ $((LINES)) -le $(($(cat ${IN_PLAYLIST} | wc -l))) ];do
      line=$(head -n $LINES ${IN_PLAYLIST} | tail -n 1)
      if [ "$(echo ${line} | grep -c "#EXTINF")" != "0" ];then
      ((LINES++))
      extinf=`echo "${line}" | sed 's/,/#elsovesszo/;s/(.*)#elsovesszo//;s/~ Last played: (.*)//'`
      ((secs2+=`echo "${line}" | sed 's/#EXTINF://;s/,(.*)//'`))
      # ezt majd osszeadja valaki
      echo -e " $(date +%Y.%m.%d. %H:%M:%S) + ${secs} s: ${extinf}
      " >> ${IN_PLAYLIST_HTML}
      secs=${secs2}
      fi
      ((LINES++))
      done
      echo -e "

      " >> ${IN_PLAYLIST_HTML}
      }

      # most jatszott mentese html-be
      now_playing_header_to_html(){
      touch ${OUT_PLAYLIST_HTML}
      echo -e "

      Most j�tszott:

      " > ${OUT_PLAYLIST_HTML}
      }

      # most jatszott mentese html-be
      now_playing_to_html(){
      extinf=`echo "${line}" | sed 's/,/#elsovesszo/;s/(.*)#elsovesszo//;s/~ Last played: (.*)//'`
      head -n -2 ${OUT_PLAYLIST_HTML} > ${TMP_OUT_PLAYLIST_HTML}
      echo -e "
      $(date +%Y.%m.%d. %H:%M:%S): ${extinf}

      " >> ${TMP_OUT_PLAYLIST_HTML}
      mv ${TMP_OUT_PLAYLIST_HTML} ${OUT_PLAYLIST_HTML}
      }

      # ha nincs kimeno file, akkor letrehozza
      if [ ! -f ${OUT_PLAYLIST} ];then
      touch ${OUT_PLAYLIST}
      fi

      # ha az elso sor nem #EXTM3U, akkor nem m3u file, ugy ujat hoz letre
      head=$(head -n 1 ${IN_PLAYLIST} | tail -n 1)
      if [ "$(echo ${head} | grep -c "#EXTM3U")" == "0" ];then
      echo "#EXTM3U" > ${OUT_PLAYLIST}
      fi

      plan_to_html
      now_playing_header_to_html

      extinf="."
      path="."
      LINES="1"
      exitcode="0"

      # soronkent nezi a file-t
      while [ $((LINES)) -le $(($(cat ${IN_PLAYLIST} | wc -l))) ];do

      line=$(head -n $LINES ${IN_PLAYLIST} | tail -n 1)

      # lementi a kimeno listaba es lejatsza
      if [ "$(echo ${line} | grep -c "#EXTINF")" != "0" ];then
      extinf=`echo "${line}" | sed 's/~ Last played: (.*)//'`
      ((LINES++))
      path=$(head -n $LINES ${IN_PLAYLIST} | tail -n 1)
      echo -e "${extinf} ~ Last played: $(date +%Y.%m.%d. %H:%M:%S)n${path}" >> ${OUT_PLAYLIST}

      now_playing_to_html

      #${PLAYER} "${path}"
      #exitcode=$?
      fi

      if [ "${Q_ON_SIGTSTP}" == "true" ];then
      if [ $exitcode -eq 1 ];then
      exit
      fi
      fi

      ((LINES++))

      done

      #2199952
      Tony Magic
      Felhasználó

        A jóisten áldja meg a segítőkész lelkedet :-)))
        Kipróbálom, megnézem mit értek meg belőle és jelentkezek amint jutok valamire. Őszinte hálával köszönöm Neked, hogy foglalkozol a problémámmal.

        #2199953
        pointux
        Felhasználó

          (Az out-playlist.html természetesen törlődik induláskor, mert tájékoztató, nem úgy mint az out-playlist.m3u, amiből készítheted az ismétlést és mentheted újra az in-playlist.m3u-ba.)

          #2199954
          Tony Magic
          Felhasználó

            Ha jól látom alsát adtál meg a programodban, Én viszont Pulseaudio-t használok. Gond lesz ez ha elindítom a programodat?
            Nem merek addig semmit sem csinálni míg nem tudom. Ez a fájl: in-playlist.m3u hol legyen elmentve? Ha jól olvastam ennek meg kell lennie.

            #2199955
            pointux
            Felhasználó
              Tony Magic wrote:
              Ha jól látom alsát adtál meg a programodban, Én viszont Pulseaudio-t használok. Gond lesz ez ha elindítom a programodat?
              Azért adtam meg, mert oss-t akart nekem elindítani és már futott nálam valami alsán. (Egyébként nyugodtan módosíthatod.)
              Egyébként nem lesz gond, maximum nem szólal meg. (A tesztelésnél egyébként kommentelheted, vagy echo-zhatod az mplayer sort a kódrészben.)

              Tony Magic wrote:
              Ez a fájl: in-playlist.m3u hol legyen elmentve? Ha jól olvastam ennek meg kell lennie.
              Ahol akarod. 🙂
              Csak a scriptben is ott legyen megadva az útvonal. a „.” az aktuális könyvtárat jelenti… de lehet bárhol. (De m3u formátum legyen, mert a script csak ezt dolgozza fel. Persze másra is lehet feldolgozó scriptet írni, de persze minek.)
              #2199956
              Tony Magic
              Felhasználó

                Most mertem csak elindítani amit készítettél. Azonos mappában van a scripted aminek a neve playlist.sh és az in-playlist.m3u . A következő hibaüzenetet kaptam konzolban:

                sh playlist.sh
                „)syntax error: invalid arithmetic operator (error token is „�jjel �rkezem
                „)syntax error: invalid arithmetic operator (error token is „�lni n�lk�led
                „)syntax error: invalid arithmetic operator (error token is „�voll�t – Sz�csi P�l
                „)syntax error: invalid arithmetic operator (error token is „�ter – F�ltelek
                És ez ment végig az összes listában lévő mp3-al.

                A html fájl viszont szépen létrejött, az elejét bemásolom:

                Terv:
                2010.07.09. 12:05:43 + 0 s: 2 EIVISSA – Meaning Of Life (Radio Version
                2010.07.09. 12:05:43 + 209 s: Éjjel Érkezem
                2010.07.09. 12:05:43 + 209 s: VA – Track 4
                A +209 s nem pontos, nem tudom az idjc program honnan szedi az mp3 lejátszási idejét de ő pontosan látja az mp3 hosszát, de a VA – Track 4-nél a scripted által kiírt 209s az első mp3-ra igaz csak, utána majdnem a dupláját kellett volna kiírja.

                Úgy tűnik ezzel már el lehet indulnom valamerre, csak az a kérdésem merre? 🙂
                Direkt rejtett fájlként hozza létre a scripted a html-eket? Mert nekem rejtettek lettek 🙂

                #2199957
                pointux
                Felhasználó

                  ")syntax error: invalid arithmetic operator (error token is "�jjel �rkezem
                  No, ezt fogalmam nincs, hogy mi írja ki és miből.
                  Nálam, mind utf-8, mind iso-2 karakterkészlettel hiba nélkül fut a script.
                  Talán ha feltöltenéd a lejátszólistádat, akkor megnézném, hogy abban mi van.

                  A +209 s nem pontos, nem tudom az idjc program honnan szedi az mp3 lejátszási idejét de ő pontosan látja az mp3 hosszát

                  Amikor szerkeszted a listát, akkor „ráérsz” arra, hogy a szerkesztő lekérdezze a lejátszandó file-ból hosszát (elvileg az sem biztos módszer) és lementi a listába.
                  Persze ezt meg lehet csinálni lejátszás előtt is minimális késedelem árán ugye. (Végül is nem jelentős – hacsak nem 1000 file van, mert azon eltart egy darabig, amíg végigfutsz -, csak bonyolítja a dolgot, főként, hogy scripttel dolgozunk és parancssori kimenetekkel és nem könnyen kezelhető függvényekkel. Meg ugye lassítja is.)
                  Ez is kiderülne a lejátszási listából..

                  Direkt rejtett fájlként hozza létre a scripted a html-eket?

                  Miért lennének rejtettek?
                  Nem cserélted meg véletlenül a ./-t /.-ra, mert (jelen esetben) az előbbi azt jelenti aktuális könyvtár, a második rejtett file a gyökérkönyvtárban.

                  #2199958
                  Tony Magic
                  Felhasználó

                    Sajnos csak később tudom megnézni és elküldeni amit kértél, annyira emlékszek, hogy egy az egyben másoltam be a scriptedet és úgy indítottam el, hozzá sem mertem nyúlni, vagyis nem merek benne semmit sem átírni 🙂

                    #2199959
                    Tony Magic
                    Felhasználó

                      A számozott playlistek kiterjesztése m3u és a számozatlanoké html.

                      #2199960
                      pointux
                      Felhasználó

                        Nálam hibaüzenet nélkül fut… még windowsos sorvégekkel is. A számozás is jónak néz ki.
                        Csak annyi, mivel a windózos sorvége áll egy mekes + egy linugzos és csak a linugzost tartja annak, ezért a mekest otthagyja. Bár ez szerintem nem zavaró, de át lehet alakítani egy univerzálissá előtte.

                        Terv:

                        2010.07.10. 17:34:03 + 0 s: 2 EIVISSA - Meaning Of Life (Radio Version

                        2010.07.10. 17:34:03 + 209 s: �jjel �rkezem

                        2010.07.10. 17:34:03 + 582 s: VA - Track 4

                        2010.07.10. 17:34:03 + 851 s: _szaxofon duett_miss saigon_szinetar_bereczki

                        2010.07.10. 17:34:03 + 1129 s: VA - Mariah Carey-Butterfly

                        2010.07.10. 17:34:03 + 1403 s: Jnani - Hold & Raise Your Energy

                        2010.07.10. 17:34:03 + 1737 s: Leningrad Cowboys - Katjusha

                        Esetleg feltöltöm csatolva is, hátha a kimásolás során történt volna gond.
                        (Ha mégsem működik, akkor valami kód sorának a számát nem ír a hibáknál?)

                      10 bejegyzés megtekintése - 11-20 / 35
                      • Be kell jelentkezni a hozzászóláshoz.