| Uutiset | Koodikirjasto | Wiki | Keskustelut | FAQ | Info |
Telkku konsoliinKryil 10.02.05 00:34 Telkku.comin tiedot tiivistettynä väritettynä *nix-konsoliin.
Itse käytän seuraavaa komentoa näyttämään tämän suoraan työpöydälläni: Eterm --borderless --buttonbar false --scrollbar false\ --font -*-terminus-medium-*-*-*-*-*-*-*-*-*-*-1 --trans\ --geometry 41x17+2205+795 --no-cursor --exec sh ~/.tp/tptelkku.sh (huom: asun maalla, en näe subtv:tä, joten olen poistanut sen tulostuksen omalta kohdaltani. Ikkunan kokoa on syytä kasvattaa.) -- tptelkku.sh -- #!/bin/bash telkku=~/.tp/tptelkku.php tauko=600 while [ 0 ] do clear php $telkku sleep $tauko done --- Ja php-scripti. Eli tätä on tosiaan tarkoitus ajaa shellissä. Tosin tämä toimii myös ihan nettisivuna ajettuna. Php:tä siksi, että tein puolet scriptistä puolen vuotta sitten, enkä osaa muita scriptikieliä riittävän hyvin. Hyvin se toimii. <?php header("Content-type: text/plain"); //Määritellään tarvittavat muuttujat //$URI = "http://www.telkku.com/ohjelmatiedot00m.shtml"; //Myös menneet $URI = "http://www.telkku.com"; $start = "<table width=100% border=0 cellspacing=0 cellpadding=1>"; $end = "</table>"; $chnames = array('', "Yle 1", "Yle 2", "MTV3", "Nelonen", "SubTV"); $data = file($URI); $copy = false; $channels = array(); $channel = 1; $replace = array("</td>", " "); $to = array("\t", ""); //Välilyöntimäärät formatointia varten $chanspaces = 9; $timespaces = 12; //Ansi-väritys /* *nix-consolissa tekstiä voi värittää tietyillä väreillä. * Tämä tapahtuu niin, että merkkijonoon laitetaan merkki escape (ascii 33) * ja sen perään värikoodi. Eli jos halutaan vihreää tekstiä, se tapahtuu * merkeillä '\033[32m' (ilman hipsuja). Värikoodeja löytyy googettamalla ansi colors */ $doansi = true; $chancolor = "\033[1m\033[32m"; // Boldattu vihreä $chancolorclear = "\033[0m"; //Tekstin normalisointi $timecolor = "\033[31m"; $timecolorclear = ""; $titlecolor = "\033[37m"; $titlecolorclear= ""; for($i=0;$i<count($data);$i++) { if (trim($data[$i]) == $end && $copy == true) { $copy = false; $channel++; if ($channel > 5) $channel = 1; continue; } if (trim($data[$i]) == $start) { $copy = true; continue; } if ($copy == true) { $channels[$channel] .= trim(strip_tags(str_replace($replace, $to, $data[$i]))) ."\n"; } } // Listaa kaiken //for($i=1;$i<=count($channels);$i++) { // print "\n\n{$chnames[$i]}\n{$channels[$i]}"; //} // Tulostetaan "hieno" formatointi ja vain kolme ohjelmatietoa // Tämän olisi voinut tehdä jo aikaisemmassa vaiheessa, mutta // tein tosiaan päivityksen puolen vuotta vanhaan scriptiin. for($i=1;$i<=count($channels);$i++) { if ($doansi) print str_pad($chancolor.$chnames[$i], $chanspaces+strlen($chancolor)).$chancolorclear; else print str_pad($chnames[$i], $chanspaces); $temp = explode("\n", $channels[$i]); $j=0; foreach ($temp as $key => $tieto) { $tiedot = explode("\t", $tieto); if ($doansi) print str_pad($timecolor.$tiedot[0], $timespaces+strlen($timecolor)).$timecolorclear; else print str_pad($tiedot[0], $timespaces); if ($doansi) print $titlecolor; if (strlen($tiedot[1])>20) print substr($tiedot[1], 0, 17) ."...\n"; else print $tiedot[1] ."\n"; if ($doansi) print $titlecolorclear; print str_pad("", $chanspaces); $j++; if ($j>2) break; } print "\n"; } ?> petri_koo 13:48 10.2.05 Helpommin riisuttavat ohjelmatiedot löytyy Ylen sivuilta http://www.yle.fi/ohjelmaopas/index.php?co%5B%5D=tv1&date=20050210&l=f&verbose=no&mode=pda kanavan valinta mukana http://www.yle.fi/ohjelmaopas/index.php?co%5B%5D=tv1&date=20050210&l=f&verbose=no&mode=text riisuttu malli tolle riisutulle mallille kun tekee strip_tags funktion käsittelyn niin loppu käy helposti. Kryil 15:27 10.2.05 No kappas. Täytyykin muistaa tuo seuraavalla kerralla kun tekemisen puute iskee. kinnupa1 00:46 15.2.05 En saanut toimimaan tätä sivuillasni se sanoo jotain tällaista: Warning: Cannot modify header information - headers already sent by (output started at /home/webbiin/public_html/tv2.php:22) in /home/webbiin/public_html/tv2.php on line 23 [1m[32mYle 1 [0m[31m00:20-03:59 [37mUuutisikkuna [31m [37m [1m[32mYle 2 [0m[31m23:45-01:00 [37mMikämikä-tvpeli [31m [37m [1m[32mMTV3 [0m[31m00:20 [37mOstoskanava [31m00:55 [37mCupido [31m01:45-06:10 [37mOldskool Chat [1m[32mNelonen [0m[31m00:10 [37mTuomas & Juuso Ex... [31m01:10 [37mOstosruutu [31m01:40-04:00 [37m4deitti [1m[32mSubTV [0m[31m00:25 [37mNeon Genesis Evan... [31m00:50 [37mSalaiset arkistot [31m01:35-06:00 [37mSub chat voisko joku selittää mitä oon tehnyt väärin. Kopioin vaan ton php scriptin sivuilleni ja kokeilin. Itse en älynnyt mitä pitäis tehdä voiskos joku pro auttaa. editoitu: 16:00 15.2.05 Kryil 15:57 15.2.05 kinnupa1, ensinnäkin, on laitonta laittaa omille nettisivuilleen telkku.com:ista kopioitua tietoa. Tämän scriptin tarkoitus on hakea ne omaan käyttöön itselleen. Eli älä hostaa tätä muille kuin itsellesi. Toiseksi, muokkaamattomana tämä tulostaa *nix-konsoli-yhteensopivan tekstin värityksen, joka siis näyttää juuri tuollaiselta mössöltä kun sitä katselee pelkkänä tekstinä. Eikä se toimi muun sivun osana muokkaamattomana, koska ensimmäisenä se yrittää lähettää headereita. Näin siksi, että sitä voitaisiin ajaa myös nettisivun kautta, jos jollakulla ei sattuisi olemaan php-binääriä koneellaan. Eli ajatus on, että teet shell-scriptin, joka ajaa tuon scriptin määritetyin aikavälein ja laitat sen konsoliin. Sellainen on jo esimerkissä. Jos haluat ajaa tätä nettisivuna, tee seuraavanlainen shell-scripti ja aja sitä konsolissa: #!/bin/bash while [ 0 ] do clear curl -s <sivun urli> sleep 600 done Ja luonnollisesti laitat tuon scriptin <?php-tagista ?>-tagiin yksinään omaan tiedostoonsa. On ystävällistä nukkua pitkä tovi (tässä 10 minuuttia), jotta telkku.com:in kuorma ei kasvaisi suuriin mittoihin. Eivätkä ne tv-ohjelmat vaihdu minuutin välein. |
![]() Haku
|