„Csak guruknak” – konyhanyelven…

Kezdőlap Fórumok Programozás „Csak guruknak” – konyhanyelven…

10 bejegyzés megtekintése - 71-80 / 151
  • Szerző
    Bejegyzés
  • #2081738
    milfer
    Felhasználó

      Uzsolt: És nálad mit csinál ?

      Szerk: Megvan. Senki ne felejtsen el a tvmusor.cfg-ben a sor végén ENTERT ütni.cheesy.gif

      #2081739
      uzsolt
      Felhasználó

        Ja, igen, soronként egy csatorna 🙂

        Majd ha jobban ráérek, megpróbálom azt is megoldani, hogy csak a jelen és a jövő műsorait írja ki (tehát aminek már három órája vége, azt ne). Persze ha tud valaki ilyesmi honlapot, ahonnan viszonylag egyszerű ezeket kiszedni, az ne tartsa magában!

        #2081740
        milfer
        Felhasználó
          uzsolt wrote:
          Ja, igen, soronként egy csatorna 🙂

          Majd ha jobban ráérek, megpróbálom azt is megoldani, hogy csak a jelen és a jövő műsorait írja ki (tehát aminek már három órája vége, azt ne).

          Meg azt is, hogy ne késsen 1 napot. Ma is (11.16 péntek) a csütörtöki műsort mutogatja

          #2081741
          uzsolt
          Felhasználó

            Sajna az a honlap szerkesztőin múlik. Bár azért segíthetünk rajta:

            Code:
            #!/bin/bash

            CONFIG_FILE=~/.config/tvmusor.cfg

            function PrintChanell () {
                    FILE=$1
                    TMP_FILE=$(mktemp)
                    w3m -dump http://tvmusor.aweben.hu/$FILE > $TMP_FILE
                    MIN_SOR=$(grep -n „$(LANG=hu_HU date ‘+%B %d.’)” $TMP_FILE | awk -F „:” {‘print $1’})
                    MAX_SOR=$(sed -n „${MIN_SOR},$ p” $TMP_FILE | grep -n tvmusor | sed -n „1p” | awk -F „:” {‘print $1’})
                    MAX_SOR=$((MAX_SOR+MIN_SOR-1))
                    sed -n „${MIN_SOR},$((MAX_SOR-1)) p” $TMP_FILE | sed „2,$ s@^@  @g” | sed „s/  [^0-9].*//g” | grep -v -e „^[t ]*$”
                    rm $TMP_FILE
            }

            exec 9>&0 < $CONFIG_FILE
                    while read egysor; do
                            PrintChanell $egysor
                            echo
                    done

            Ha esetleg igényel egy kis magyarázatot, szívesen. Most meggyúrom az időt is…

            #2081742
            milfer
            Felhasználó

              „Most meggyúrom az időt is…”

              Csak gyorsan. Már csinálom a zenity-s frontendet. 21.gif

              #2081743
              uzsolt
              Felhasználó

                Na, ne sürgess! 😉

                Code:
                #!/bin/bash

                CONFIG_FILE=~/.config/tvmusor.cfg

                function PrintChanell () {
                        FILE=$1
                        TMP_FILE=$(mktemp)
                        w3m -dump http://tvmusor.aweben.hu/$FILE > $TMP_FILE
                        MIN_SOR=$(grep -n „$(LANG=hu_HU date ‘+%B %d.’)” $TMP_FILE | awk -F „:” {‘print $1’})
                        MAX_SOR=$(sed -n „${MIN_SOR},$ p” $TMP_FILE | grep -n tvmusor | sed -n „1p” | awk -F „:” {‘print $1’})
                        MAX_SOR=$((MAX_SOR+MIN_SOR-1))
                        TMP_FILE_2=$(mktemp)
                        sed -n „${MIN_SOR},$((MAX_SOR-1)) p” $TMP_FILE | sed „2,$ s@^@  @g” | sed „s/  [^0-9].*//g” | grep -v -e „^[t ]*$”
                        shift
                        echo $@
                        CUR_TIME=$(date +%H%M) ; MUSOR_TIME=0000
                        (grep ”  [0-9]” $TMP_FILE_2 | awk {‘print $1’} | sed „s@:@@g”) | (
                                while [ $MUSOR_TIME -lt $CUR_TIME ]; do
                                        read MUSOR_TIME
                                done
                                MUSOR_TIME=$( echo $MUSOR_TIME | sed -r „s@([0-9]{2})([0-9])@1:2@g” )
                                MIN_SOR=$(grep -n „$MUSOR_TIME” $TMP_FILE_2 | awk -F „:” {‘print $1’})
                                MIN_SOR=$((MIN_SOR-1))
                                export MIN_SOR
                                sed -n „${MIN_SOR},$ p” $TMP_FILE_2
                        )
                        rm $TMP_FILE{,_2}
                }

                exec 9>&0 < $CONFIG_FILE
                        while read egysor; do
                                PrintChanell $egysor
                                echo
                        done

                A konfig-fájl szerkezete módosult, mégpedig aképp, hogy a sort ki lehet bővíteni, és a második paramétertől kezdődően mindet tv-adó nevének „nyomtat” ki. Tehát pl.

                Code:
                m1 Az m1 adó műsora

                az m1 adót (fájlt) szedi a honlapról, és mielőtt az aktuális műsorát kinyomtatná, az „Az m1 adó műsora” szöveget vési be elé.
                Ami kell: hogy legyen hu_HU, hogy a hónapot jól keresse.
                Igaz, ékezetes hónapneveken még nem próbáltam, de idén az már úgyse érdekes 😉

                #2081744
                milfer
                Felhasználó

                  Idáig jut.

                  /usr/local/bin/tvmusor1: line 18: [: -lt: unary operator expected
                  sed: érvénytelen kapcsoló — 1

                  #2081745
                  uzsolt
                  Felhasználó

                    Remélem, nem megint valami lokalizációs hülyeség lesz.
                    Adj nekem egy date +%H%M kimenetet!

                    #2081746
                    pointux
                    Felhasználó
                      milfer wrote:
                      Idáig jut.

                      /usr/local/bin/tvmusor1: line 18: [: -lt: unary operator expected
                      sed: érvénytelen kapcsoló — 1

                      $((SZÁM))

                      #2081747
                      milfer
                      Felhasználó
                        uzsolt wrote:
                        Remélem, nem megint valami lokalizációs hülyeség lesz.
                        Adj nekem egy date +%H%M kimenetet!

                        mondjuk :  2210

                      10 bejegyzés megtekintése - 71-80 / 151
                      • Be kell jelentkezni a hozzászóláshoz.