Conky a LUA - TV program

17. 3. 2016 7:22 (aktualizováno) Vladislav Konopík

Modul pro Conky zobrazující právě vysílaný pořad na vybraných stanicích. Pokud máte dvb-t kartu v PC, spustí se ve VLC stanice po kliknutí na její název (nutno doplnit frekvence, podle vašeho příjmu)

Tento modul je sice funkční, ale stále jej považuji za testovací (2 večery – narychlo splácaný skript). Prosím vás o případné poznatky chování modulu (i návrhy ohledně dalších modulů).

Pro použití tohoto modulu jsou potřebné tyto změny ve stávajícím skriptu:

nahradit funkci conky_wget() novou verzí, kterou naleznete na konci

pokud používáte modul_pocasi je nutné změnit na začátku modulu počasí:

wget = {}

na:

wget.pocasi = nil

Nastavení modulu TV program:

Nad hlavní již uveřejněnou funkcí je nutno vložit proměnou:

--absolutní cesta k adresáři se soubory pro Conky
--(musí končit /)
conky_adr = "/home/vlk/conky/"

Výsledek bude např. takto:

pocasi_soubor = "/home/vlk/conky/conky_pocasi" --umístění a název souboru s daty
pocasi_hodnoty = nil --data s předpovědí
pocasi_url = "www.in-pocasi.cz" --adresa pro stahování dat

--absolutní cesta k adresáři se soubory pro Conky
--(musí končit /)
conky_adr = "/home/vlk/conky/"

--tabulka pro stahování pomocí funkce conky_wget()
wget = {}

Dále je potřeba doplnit název do tabulky ‚modul‘, aniž by mezi jednotlivými moduly vzniklo prázdné místo (např.):

modul.name[1] = "system"
modul.name[2] = "network"
modul.name[3] = "pocasi"
modul.name[4] = "disky"
modul.name[5] = "tvprogram"
modul.name[6] = "procesy"

A doplnit tabulky pro update (hodnoty neměnit), interval (hodnotu zle měnit) a klik_menu(0=zavřené menu, 1=otevřené menu):

update = {
  ["system"] = nil,
  ["procesy"] = nil,
  ["disky"] = nil,
  ["network"] = nil,
  ["pocasi"] = nil,
  ["tvprogram"] = nil,
}

interval = {
  ["system"] = 300,
  ["procesy"] = 3,
  ["disky"] = 5,
  ["network"] = 4,
  ["pocasi"] = 10,
  ["tvprogram"] = 300,
}

klik_menu = {
  ["procesy"] = 0,
  ["disky"] = 0,
  ["network"] = 0,
  ["pocasi"] = 0,
  ["tvprogram"] = 0,
}

Nastavení výpisu a spuštění TV ve vlc:

Za podmínkou pro interval dat modulu se nachází 2 proměnné.

tv_pocet = 2 --číslo pro počet vysílaných programů stanice
tv_vlc = 0 --pro spouštění televize ve VLC (1 = spustí vlc / 0 = jen výpis programů)

Seznam stanic se řídí podle cookies ze stránek a výpis skriptu lze těmito cookies usměrnit.

 --jména potřebných souborů s daty
 local soubor = "conky_tvprogram" --soubor s daty
 local cookies = "cookies.txt" --soubor s cookies
 local url = "www.csfd.cz/televize/?day=0" --url adresa pro stahování dat

Pokud vám postačí výpis programů na stanicích: Nova, Prima, ČT1, ČT2, Barrandov, Nova Cinema, Prima Cool a Prima Love, vymažte proměnnou ‚cookies‘ takto:

local cookies = "" --soubor s cookies

V opačném případě proveďte na stránkách (‚url‘) požadované úpravy a poté musíte vyexportovat cookies ze svého prohlížeče do textového formátu (google napoví). Tento textový soubor musí obsahovat všechny záznamy z navštívené stránky (ostatní možno smazat) a musí být ve stejném adresáři uvedeném u proměnné ‚conky_adr‘ nad hlavní funkcí.

Pokud chcete spouštět stanice ve VLC, nejprve upravte hodnoty v tabulce ‚stanice_vlc‘:

stanice_vlc = {
      [1] = {["N"] = "Nova", ["P"] = "frequency=634000000 --program=513",},
      [2] = {["N"] = "Prima", ["P"] = "frequency=634000000 --program=773",},
      [3] = {["N"] = "ČT1", ["P"] = "frequency=570000000 --program=257",},
      [4] = {["N"] = "ČT2", ["P"] = "frequency=570000000 --program=258",},
      [5] = {["N"] = "Barrandov", ["P"] = "frequency=634000000 --program=2050",},
      [6] = {["N"] = "Nova Cinema", ["P"] = "frequency=634000000 --program=514",},
      [7] = {["N"] = "Prima Cool", ["P"] = "frequency=634000000 --program=770",},
      [8] = {["N"] = "Prima Love", ["P"] = "frequency=746000000 --program=772",},
      [9] = {["N"] = "", ["P"] = "",},
    }

Jméno stanice musí být ve stejném formátu jako ve výpisu modulu a frekvenci včetně čísla programu naleznete ve svém souboru *.xspf, který VLC používá pro přehrávání DVB. Soubor xspf lze vytvořit např. pomocí aplikace ‚w-scan‘:

w_scan -L > channels.xspf

Skript modulu tvprogram:

function modul_tvprogram()
------------------------------------------------------------
--                       VLKODLAK
--                     2016 ver 0.1
------------------------------------------------------------
-- přehled právě vysílaných pořadů s možností spustit ve VLC
-- vybranou televizní stanici
--
--##########################################################
--
-- pro svou činnost potřebuje: funkce
--[[

kurzor()
pozadi(poz,vyska)
conky_wget()

--]]
--
-- pro svou činnost potřebuje: globální tabulky (před hlavní funkcí - conky_main())
--[[

wget = {}

update = {
  ["tvprogram"] = nil,
}

interval = {
  ["tvprogram"] = 300,
}

klik_menu = {
  ["tvprogram"] = 0,
}

--]]
--
-- pro svou činnost potřebuje: globální proměnné (před hlavní funkcí - conky_main())
--[[

pozadi_menu           --nastavuje pozadí pro menu
pozadi_panel          --nastavuje pozadí pro panel
pozadi_barva          --nastavuje barvu pozadí

rozmer_panelu_x       --rozměr panelu v pixelech, musí se shodovat s nastavením
                      --hodnoty 'minimum_size' v conky.rc

conky_adr             --absolutní cesta k adresáři se soubory pro Conky

--]]
--
-- pro svou činnost potřebuje: nainstalované aplikace
--[[

wget                  --pro stažení dat
vlc                   --pro spuštění stanice

--]]

------------------------------------------------------------

  --proměnná pro identifikaci modulu
  local name = "tvprogram"

  --vymazání tabulky pro stahování souborů
  wget.tvprogram = nil

  ----------------------------------------
  --podmínky pro interval dat modulu
  ----------------------------------------

  if tonumber(update[tostring(name)]) == nil then--první průchod skriptem

    --nastavení intervalu
    update[tostring(name)] = updates + tonumber(interval[tostring(name)])

    ----------------------------------------
    --nastavení chování výpisu programů
    tv_pocet = 2 --číslo pro počet vysílaných programů stanice
    tv_vlc = 0 --pro spouštění televize ve VLC (1 = spustí vlc / 0 = jen výpis programů)

    ----------------------------------------
    --tabulka nastavení frekvencí pro VLC
    --např.: [1] = {["N"] = "Nova", ["P"] = "frequency=634000000 --program=513",},
    stanice_vlc = {
      [1] = {["N"] = "Nova", ["P"] = "frequency=634000000 --program=513",},
      [2] = {["N"] = "Prima", ["P"] = "frequency=634000000 --program=773",},
      [3] = {["N"] = "ČT1", ["P"] = "frequency=570000000 --program=257",},
      [4] = {["N"] = "ČT2", ["P"] = "frequency=570000000 --program=258",},
      [5] = {["N"] = "Barrandov", ["P"] = "frequency=634000000 --program=2050",},
      [6] = {["N"] = "Nova Cinema", ["P"] = "frequency=634000000 --program=514",},
      [7] = {["N"] = "Prima Cool", ["P"] = "frequency=634000000 --program=770",},
      [8] = {["N"] = "Prima Love", ["P"] = "frequency=746000000 --program=772",},
      [9] = {["N"] = "", ["P"] = "",},
    }

    ----------------------------------------
    --jména potřebných souborů s daty
    local soubor = "conky_tvprogram" --soubor s daty
    local cookies = "cookies.txt" --soubor s cookies
    local url = "www.csfd.cz/televize/?day=0" --url adresa pro stahování dat

    ----------------------------------------
    --tabulka pro nastavení modulu
    tvprogram_tab = {
      ["tl"] = 0,--pro aktualizaci dat po ručním stažení souboru
      ["akt"] = nil,--stav aktuálnosti dat
      ["soubor"] = 0,--pro přítomnost souboru s daty
      ["brana"] = 0, --dostupnost brány
      ["pozice_y"] = nil,--pozice 'y' pro modul
    }

    --smyčka pro nastavení pozice modulu
    for a = 1,#modul.name do
      local text = tostring(modul.name[a])
      if string.match(text, "(%S*)") == tostring(name) then
        tvprogram_tab.pozice_y = a
        break
      end--if string.match(text, "(%S)") == tostring(name) then
    end--for a = 1,#modul.name do

    ----------------------------------------
    --definování tabulky pro data
    tv_program = {}  --hlavní tabulka

    ----------------------------------------
    --test přítomnosti a aktuálnosti souboru
    local data = io.popen("ls --full-time "..conky_adr..soubor.." 2> /dev/null")
    local line = data:read("*l")
    data:close()
    if line == nil then
      tvprogram_tab.soubor = 0 --soubor neexistuje
    else
      tvprogram_tab.soubor = 1 --soubor je přítomen

      --datum ze souboru
      z,k,vyber = string.find(line,"[%S%s]*%d%d%d%d%p(%d%d%p%d%d)")

      --systémový datum
      local d = conky_parse("${time %e}")
      d = string.gsub (d, " ", "0")
      local m = conky_parse("${time %m}")
      local datum = m.."-"..d

      if tostring(datum) == tostring(vyber) then tvprogram_tab.akt = 1 end --data jsou aktuální
    end--if line == nil then

    ----------------------------------------
    --uložení aktuálních dat
    if tvprogram_tab.akt == 1 then

      local tv = 0

      for line in io.lines(conky_adr..soubor) do

        z,k,vyber = string.find(line, "%pimg%ssrc%p+img%pcsfd%pcz%S+%salt%p+([%S%s]*)%p%sclass")
        if vyber ~= nil and vyber ~= "poster" then
          tv = tv + 1
          tv_program[tonumber(tv)] = {}
          tv_program[tonumber(tv)].name = vyber

          tv_program[tonumber(tv)].prg = {
            ["time"] = {},
            ["minuty"] = {},
            ["name"] = {},
            ["year"] = {},
            ["series"] = {},
            ["genres"] = {},
          }
        end--if vyber ~= nil and vyber ~= "poster" then

        if tv > 0 then

          z,k,vyber = string.find(line,"time%p%p(%d+%p%d+)")
          if vyber ~= nil then
            table.insert(tv_program[tonumber(tv)].prg.time, vyber)
            local minuty = tonumber(string.match(vyber,"(%d%d)%p") * 60) + tonumber(string.match(vyber,"%p(%d%d)"))
            table.insert(tv_program[tonumber(tv)].prg.minuty, minuty)
          end--if vyber ~= nil then

          z,k,vyber = string.find(line,"name%p%p(%S%S)")
          if vyber ~= nil then
            if vyber ~= "<a" then
              z,k,vyber = string.find(line,"name%p%p([%S%s]*)%p%pspan%p")
              table.insert(tv_program[tonumber(tv)].prg.name, vyber)
            else
              z,k,vyber = string.find(line,"name%p%p[%S%s]*film%s%S%S%S%S([%S%s]*)%p%pa%p")
              table.insert(tv_program[tonumber(tv)].prg.name, vyber)
              z,k,vyber = string.find(line,"film%pyear%p%p%p(%d%d%d%d)%p%p%p", k)
              table.insert(tv_program[tonumber(tv)].prg.year,#tv_program[tonumber(tv)].prg.name, vyber)
            end--if vyber ~= "<a" then
          end--if vyber ~= nil then

          z,k,vyber = string.find(line,"series%p%p([%S%s]*)%p%pspan%p")
          if vyber ~= nil then
            table.insert(tv_program[tonumber(tv)].prg.series,#tv_program[tonumber(tv)].prg.name, vyber)
          end

          z,k,vyber = string.find(line,"genres%p%p([%S%s]*)%p%pdiv%p")
          if vyber ~= nil then
            table.insert(tv_program[tonumber(tv)].prg.genres,#tv_program[tonumber(tv)].prg.name, vyber)
          end

        end--if tv > 0 then
      end--for line in io.lines(tv_soubor) do
    end--if tvprogram_tab.akt == 1 then

    ----------------------------------------
    --test brány
    local data = io.popen("ip route")
    while true do
      local line = data:read("*l")
      if line == nil then break end
      z,k,vyber = string.find(line,"default%svia%s(%S+)%s") --ip adresa
      if vyber ~= nil then
        tvprogram_tab.brana = 1
        break
      end--if vyber ~= nil then
    end--while true do
    data:close()

    --soubor neexistuje, nebo je zastaralý
    if tvprogram_tab.soubor == 0 or tvprogram_tab.akt == nil or tvprogram_tab.akt == 0 then
      if tvprogram_tab.brana == 1 then
        if tostring(cookies) == "" then
          wget.tvprogram = "${texeci 25 wget -q "..url.." -O "..conky_adr..soubor.." }"
        else
          wget.tvprogram = "${texeci 25 wget --load-cookies "..conky_adr..cookies.." -q "..url.." -O "..conky_adr..soubor.." }"
        end--if tostring(cookies) == "" then
        tvprogram_tab.tl = 8 --odpočet pro update == nil
      else
        tvprogram_tab.tl = 15 --odpočet pro update == nil
      end--if tvprogram_tab.brana == 1 then
    end--if tvprogram_tab.soubor == 0 or tvprogram_tab.akt == nil or tvprogram_tab.akt == 0 then

  elseif tonumber(update[tostring(name)]) <= updates then

    --nastavení intervalu
    update[tostring(name)] = updates + tonumber(interval[tostring(name)])

    if tvprogram_tab.akt == 0 then
      --test brány
      local data = io.popen("ip route")
      while true do
        local line = data:read("*l")
        if line == nil then break end
        z,k,vyber = string.find(line,"default%svia%s(%S+)%s") --ip adresa
        if vyber ~= nil then
          if tostring(cookies) == "" then
            wget.tvprogram = "${texeci 25 wget -q "..url.." -O "..conky_adr..soubor.." }"
          else
            wget.tvprogram = "${texeci 25 wget --load-cookies "..conky_adr..cookies.." -q "..url.." -O "..conky_adr..soubor.." }"
          end--if tostring(cookies) == "" then
          break
        end--if vyber ~= nil then
      end--while true do
      data:close()
    end--if tvprogram_tab.akt == 0 then

  end--if tonumber(update[tostring(name)]) == nil then--první průchod skriptem

  ----------------------------------------
  --odpočet pro aktualizaci dat
  if tvprogram_tab.tl > 0 then
    tvprogram_tab.tl = tvprogram_tab.tl - 1
    if tvprogram_tab.tl == 0 then update[tostring(name)] = nil end
  end--if tvprogram_tab.tl > 0 then

  ----------------------------------------
  --vypis dat modulu
  ----------------------------------------

  local x = 0
  local y = modul.pozice[tonumber(tvprogram_tab.pozice_y)]
  --nastavení fontu
  cairo_select_font_face (cr, "Mono", CAIRO_FONT_SLANT_NORMAL, CAIRO_FONT_WEIGHT_NORMAL);

  ----------------------------------------
  --vykreslení pozadí pro menu
  if pozadi_menu == 1 then pozadi(y - 12,15) end

  ----------------------------------------
  --konstrukce pro klikutí na menu
  local menu = "TV PROGRAM"
  local delka = tonumber(string.len(menu)*7)

  --linie - první část
  cairo_select_font_face (cr, "Mono", CAIRO_FONT_SLANT_NORMAL, CAIRO_FONT_WEIGHT_BOLD);
  cairo_set_font_size (cr, 12.0);
  cairo_set_source_rgba (cr, 1,0.7,0,1);

  local linie1 = (rozmer_panelu_x - delka)/2 - 5
  cairo_rectangle (cr, x,y-5,linie1,1);cairo_fill (cr);

  --pozice kurzoru/kliknutí
  if mx>=x+linie1+5 and mx<=x+linie1+5+delka+3 and my<=y and my>=y-12 then
    cairo_set_source_rgba (cr, 0.7,0.7,0.7,1);
    if mx == kx and my == ky and klik_menu[tostring(name)] == 0 then
      klik_menu[tostring(name)] = 1
    elseif mx == kx and my == ky and klik_menu[tostring(name)] == 1 then
      klik_menu[tostring(name)] = 0
    end--kliknutí
  else
    cairo_set_source_rgba (cr, 1,0.7,0,1);
  end--pozice kurzoru

  cairo_move_to (cr, x+linie1+5, y);cairo_show_text (cr, menu);--text menu

  --linie - druhá část
  cairo_set_source_rgba (cr, 1,0.7,0,1);
  local linie2 = rozmer_panelu_x - (linie1+5+delka+7)
  cairo_rectangle (cr, x+linie1+5+delka+7,y-5,linie2,1);cairo_fill (cr);

  ----------------------------------------
  --otevřený panel
  y = y + 3

  if klik_menu[tostring(name)] == 1 then

    cairo_select_font_face (cr, "Mono", CAIRO_FONT_SLANT_NORMAL, CAIRO_FONT_WEIGHT_NORMAL);
    cairo_set_font_size (cr, 10.0);

    --soubor neexistuje,nebo je zastaralý
    if tvprogram_tab.soubor == 0 or tvprogram_tab.akt ~= 1 then

      if pozadi_panel == 1 then pozadi(y+2,46) end

      y = y + 25
      local text = "Soubor "..tv_soubor
      local delka = tonumber(string.len(text)*6)
      local pozice = (rozmer_panelu_x - delka) / 2
      cairo_set_source_rgba (cr, 0.9,0.9,0.9,1);
      cairo_move_to (cr, pozice,y-1);cairo_show_text (cr, text);

      y = y + 15
      if tvprogram_tab.soubor == 0 then
        text = "neexistuje, nebo je poškozený."
        delka = 30*6
      elseif tvprogram_tab.akt ~= 1 then
        text = "obsahuje zastaralá data."
        delka = 24*6
      end
      local pozice = (rozmer_panelu_x - delka) / 2
      cairo_set_source_rgba (cr, 0.9,0.9,0.9,1);
      cairo_move_to (cr, pozice,y-1);cairo_show_text (cr, text);
      y = y + 4

    elseif tvprogram_tab.akt == 1 then--data jsou aktuální

      --pozadí pro televizní program
      if pozadi_panel == 1 then
        local poz = y+2
        local vyska = (tonumber(tv_pocet * 15) + 15) * #tv_program
        pozadi(poz,vyska+2)
      end--if pozadi_panel == 1 then

      if tvprogram_tab.vyber == nil or tvprogram_tab.vyber >= updates then
        tvprogram_tab.vyber = updates + 60

        local sys_time = conky_parse("${time %H:%M}")
        local minuty = tonumber(string.match(sys_time,"(%d%d)%p")*60) + tonumber(string.match(sys_time,"%p(%d%d)"))

        for a = 1,#tv_program do
          y = y + 15

          --pozice kurzoru/kliknutí
          if mx>=x+5 and mx<=rozmer_panelu_x-5 and my<=y and my>=y-12 then
            cairo_set_source_rgba (cr, 0.7,0.7,0.7,1);
            if mx == kx and my == ky and tv_vlc == 1 then
              local run = tv_program[tonumber(a)].name
              for r = 1,#stanice_vlc do
                if tostring(stanice_vlc[tonumber(r)].N) == tostring(run) then
                  os.execute("killall vlc")
                  os.execute("vlc --one-instance dvb-t://"..tostring(stanice_vlc[tonumber(r)].P).." 2>/dev/null &")
                  break
                end--if tostring(table_vlc[tostring(run)]) ~= nil then
              end--for r = 1,#table_vlc do
            end--kliknutí
          else
            cairo_set_source_rgba (cr, 1,0.7,0,1);
          end--pozice kurzoru
          cairo_move_to (cr, x+10,y-1);cairo_show_text (cr, tv_program[tonumber(a)].name);

          --výpis pořadů
          for b = 1,#tv_program[tonumber(a)].prg.time do

            --if tonumber(b+tv_pocet) <= #tv_program[tonumber(a)].prg.time then
              if tonumber(minuty) <= tonumber(tv_program[tonumber(a)].prg.minuty[tonumber(b+1)]) then

                local cas_od = tv_program[tonumber(a)].prg.time[tonumber(b)]
                local cas_do = tv_program[tonumber(a)].prg.time[tonumber(b+1)]
                local name = tv_program[tonumber(a)].prg.name[tonumber(b)]
                local series = tv_program[tonumber(a)].prg.series[tonumber(b)]
                local year = tv_program[tonumber(a)].prg.year[tonumber(b)]
                --právě teď vysílají
                cairo_set_source_rgba (cr, 0.9,0.9,0.9,1);
                cairo_show_text (cr, "  "..cas_od.."-"..cas_do);
                y = y + 15
                cairo_move_to (cr, x+25,y-1);
                cairo_set_source_rgba (cr, 0.9,0.9,0.9,1);
                cairo_show_text (cr, "  "..name.."  ");
                cairo_set_source_rgba (cr, 0.7,0.7,0.7,1);
                cairo_show_text (cr, series);
                cairo_set_source_rgba (cr, 0.7,0.7,0.7,1);
                cairo_show_text (cr," ");
                cairo_show_text (cr,year);

                local p = tonumber(tv_pocet-1)
                if tonumber(p) >= 1 then
                  for n = 1, tonumber(p) do
                    local cas_od = tv_program[tonumber(a)].prg.time[tonumber(b+n)]
                    local cas_do = tv_program[tonumber(a)].prg.time[tonumber(b+1+n)]
                    local name = tv_program[tonumber(a)].prg.name[tonumber(b+n)]
                    local series = tv_program[tonumber(a)].prg.series[tonumber(b+n)]
                    local year = tv_program[tonumber(a)].prg.year[tonumber(b+n)]
                    y = y + 15
                    cairo_move_to (cr, x+20,y-1);
                    cairo_set_source_rgba (cr, 0.7,0.7,0.7,1);
                    cairo_show_text (cr, cas_od.."-"..cas_do);
                    cairo_set_source_rgba (cr, 0.7,0.7,0.7,1);
                    cairo_show_text (cr, "  "..name.."  ");
                    cairo_set_source_rgba (cr, 0.7,0.7,0.7,1);
                    cairo_show_text (cr, series);
                    cairo_set_source_rgba (cr, 0.7,0.7,0.7,1);
                    cairo_show_text (cr," ");
                    cairo_show_text (cr,year);
                  end--for n = 1, tonumber(p) do
                end--if tonumber(p) > 1 then
                break
              end--if tonumber(minuty) <= tonumber(tv_program[tonumber(a)].prg.minuty[tonumber(b+1)])

            --else

              --tvprogram_tab.akt = 0 --data jsou neaktuální

            --end--if tonumber(b+tv_pocet) <= #tv_program[tonumber(a)].prg.time

          end--for b = 1,#tv_program[tonumber(a)].prg.time do
        end--for a = 1,#tv_program do
      end--if tvprogram_tab.vyber == nil or tvprogram_tab.vyber >= updates then
    end--if tvprogram_tab.soubor == 0 or tvprogram_tab.akt ~= 1 then
  end--if klik_menu[tostring(name)] == 1 then

  ----------------------------------------
  --pozice pro další modul
  if klik_menu[tostring(name)] == 1 then
    next_y = y + 18
  else
    next_y = y + 14
  end--if klik_menu[tostring(name)] == 1 then

  modul.pozice[tonumber(tvprogram_tab.pozice_y)+1] = next_y

  return modul

end--function modul_tvprogram()
--############################################################

Skript nové verze funkce conky_wget()

function conky_wget()
------------------------------------------------------------
--                VLKODLAK   2016 ver 0.3
------------------------------------------------------------
-- stáhne požadovaný soubor pomoci Conky ${texeci }
------------------------------------------------------------
-- pro správnou funkci potřebuje globální tabulku
-- wget = {}
------------------------------------------------------------
-- nastavení v conky.rc
--
-- template9 ${lua_parse wget}
-- TEXT
-- ${template9}
------------------------------------------------------------
  local vypis = ""

  if wget.pocasi ~= nil then--stahování pro modul_pocasi
    vypis = tostring(wget.pocasi)
  end

  if wget.tvprogram ~= nil then--stahování pro modul_tvprogram
    vypis = tostring(wget.tvprogram)
  end


  return tostring(vypis)

end--function conky_wget()
--############################################################

Sdílet