abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 08:11 | Nová verze

    Google Chrome 136 byl prohlášen za stabilní. Nejnovější stabilní verze 136.0.7103.59 přináší řadu novinek z hlediska uživatelů i vývojářů. Podrobný přehled v poznámkách k vydání. Opraveno bylo 8 bezpečnostních chyb. Vylepšeny byly také nástroje pro vývojáře.

    Ladislav Hagara | Komentářů: 0
    včera 20:55 | Nová verze

    Homebrew (Wikipedie), správce balíčků pro macOS a od verze 2.0.0 také pro Linux, byl vydán ve verzi 4.5.0. Na stránce Homebrew Formulae lze procházet seznamem balíčků. K dispozici jsou také různé statistiky.

    Ladislav Hagara | Komentářů: 0
    včera 16:22 | Nová verze

    Byl vydán Mozilla Firefox 138.0. Přehled novinek v poznámkách k vydání a poznámkách k vydání pro vývojáře. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 138 je již k dispozici také na Flathubu a Snapcraftu.

    Ladislav Hagara | Komentářů: 0
    včera 15:55 | Pozvánky

    Šestnáctý ročník ne-konference jOpenSpace se koná 3. – 5. října 2025 v Hotelu Antoň v Telči. Pro účast je potřeba vyplnit registrační formulář. Ne-konference neznamená, že se organizátorům nechce připravovat program, ale naopak dává prostor všem pozvaným, aby si program sami složili z toho nejzajímavějšího, čím se v poslední době zabývají nebo co je oslovilo. Obsah, který vytvářejí všichni účastníci, se skládá z desetiminutových

    … více »
    Zdenek H. | Komentářů: 2
    včera 15:44 | IT novinky Ladislav Hagara | Komentářů: 2
    včera 13:55 | Komunita

    Richard Stallman přednáší ve středu 7. května od 16:30 na Technické univerzitě v Liberci o vlivu technologií na svobodu. Přednáška je určená jak odborné tak laické veřejnosti.

    Ladislav Hagara | Komentářů: 10
    28.4. 23:33 | Nová verze

    Jean-Baptiste Mardelle se v příspěvku na blogu rozepsal o novinkám v nejnovější verzi 25.04.0 editoru videa Kdenlive (Wikipedie). Ke stažení také na Flathubu.

    Ladislav Hagara | Komentářů: 0
    28.4. 17:22 | Zajímavý projekt

    TmuxAI (GitHub) je AI asistent pro práci v terminálu. Vyžaduje účet na OpenRouter.

    Ladislav Hagara | Komentářů: 0
    28.4. 17:00 | Nová verze

    Byla vydána nová verze R14.1.4 desktopového prostředí Trinity Desktop Environment (TDE, fork KDE 3.5, Wikipedie). Přehled novinek i s náhledy v poznámkách k vydání. Podrobný přehled v Changelogu.

    Ladislav Hagara | Komentářů: 5
    27.4. 21:33 | Nová verze Ladislav Hagara | Komentářů: 0
    Jaký filesystém primárně používáte?
     (58%)
     (1%)
     (9%)
     (21%)
     (4%)
     (1%)
     (2%)
     (0%)
     (1%)
     (3%)
    Celkem 486 hlasů
     Komentářů: 18, poslední 17.4. 12:41
    Rozcestník

    Stahování rss

    8.1.2007 09:53 | Přečteno: 1111× | blog | poslední úprava: 9.1.2007 07:57

    Pro čtení rss aktuálně používám mutt a pro jejich stahování kombinaci programů rsstool a sqlite3 (+ nějaké standardní příkazy) ve vlastním scriptu. Zmínil jsem se o tom a někdo jej chtěl vidět :-). Celý script je velmi jednoduchý a tady je.

    Nejprve jsem si vytvořil cache pro stažené rss kanály. Je to standardní databáze sqlite3 v souboru $HOME/.rss.db:

      /* Pracovní tabulka pro aktuálně stažená data */
      CREATE TABLE rsstool_table (
        rsstool_dl_url     text,
        rsstool_dl_date    integer,
        rsstool_site       text,
        rsstool_url        text,
        rsstool_url_md5    varchar(32),
        rsstool_url_crc32  varchar(8),
        rsstool_date       integer,
        rsstool_title      text,
        rsstool_title_md5  varchar(32),
        rsstool_title_crc32 varchar(8),
        rsstool_desc       text
      );
      
      /* vlastní cache položek */
      create table feeds_data 
        ( rss_site varchar(255)
        , rss_url text
        , rss_title text
        , rss_description text
        , rss_date date
        , generated boolean
        );
    

    Vlastní script vypadá takto. Největší počet řádků připadá na výpis položky :-).

      #!/bin/bash
      
      # konfigurace
      RSSDB="$HOME/.rss.db"
      SRCDB="$HOME/.rss_sources"
      MDA="maildrop $HOME/.mailfilter"
      DELETE_BEFORE=7
      
      SQL="/usr/bin/sqlite3"
      GDATE="/usr/bin/date"
      GREP="/usr/bin/grep"
      RECODE="/usr/bin/cstocs utf8 il2"
      SED="/usr/bin/sed"
      FOLD="/usr/bin/fold -s"
      RSSTOOL="/usr/local/bin/rsstool --sql --shtml --slf"
      
      # výpis položky ve formátu pro mail
      print_message() {
        URL=$1
        echo 'To: Martin Lebeda <mlebeda@centrum.cz>'
        echo 'Content-Transfer-Encoding: 8bit'
        echo 'Content-Type: text/plain; charset="iso-8859-2"'
        echo 'X-target: rss'
        $SQL $RSSDB "select 'Subject: '||rss_title from feeds_data where rss_url = '$URL'"
        $SQL $RSSDB "select 'From: '||rss_site from feeds_data where rss_url = '$URL'"
        echo -n "Date: "
          RSSDATE=`$SQL $RSSDB "select rss_date from feeds_data where rss_url = '$URL'"`
          $GDATE -R -d "1970-01-01 UTC $RSSDATE seconds"
        echo
        $SQL $RSSDB "select rss_description from feeds_data where rss_url = '$URL'" | $FOLD
        echo
        echo $URL
        $SQL $RSSDB "update feeds_data set generated = 1 where rss_url = '$URL'"
      }
      
      # vlastní stažení ze seznamu kanálů 
      for i in `$GREP -v '^#' $SRCDB | $GREP -v '^$'`; do
        $RSSTOOL "$i" | $GREP 'INSERT INTO' | $RECODE | $SED -e 's/\\'\''//g' | $SQL $RSSDB
      done
      
      # vložení nových položek do hlavní tabulky 
      $SQL $RSSDB " insert into feeds_data ( rss_site, rss_url, rss_title,
          rss_description, rss_date, generated ) 
        select rsstool_site, rsstool_url, rsstool_title, rsstool_desc, rsstool_date, 0 
          from rsstool_table 
         where not exists (select 1 from feeds_data where rss_url = rsstool_table.rsstool_url)" && \
      
      # čistka
      $SQL $RSSDB "delete from rsstool_table"
      DELDATE=`date +%s -d -${DELETE_BEFORE}days` && \
      $SQL $RSSDB "delete from feeds_data where rss_date < $DELDATE"
      
      # vypsat nové položky
      for url in `$SQL $RSSDB 'select rss_url from feeds_data where generated = 0'`; do
        print_message "$url" | $MDA
      done
    

    v $HOME/.rss_sources je co řádek, to url (ukázka části):

      http://www.linuxexpres.cz/modules/rss/rss.php
      http://www.abclinuxu.cz/auto/abc.rss
      http://www.abclinuxu.cz/auto/zpravicky.rss
    

    Určitě by to chtělo pár věcí dopracovat (např. respektování kódování v hlavičce kanálu), ale jinak mi už několik měsíců spolehlivě slouží.

           

    Hodnocení: 100 %

            špatnédobré        

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    Komentáře

    Vložit další komentář

    8.1.2007 10:25 Michal Čihař | skóre: 61 | blog: Bláboly | Praha
    Rozbalit Rozbalit vše Re: Stahování rss
    Takže to dělá zhruba to samé jako rss2email nebo feed2imap? :-)
    8.1.2007 13:21 Martin Lebeda | skóre: 22 | blog: Martinuv_blog | Plzeň
    Rozbalit Rozbalit vše Re: Stahování rss

    Neumím odpovědět, neboť tyto programy neznám.

    Jak se tak zběžně koukám na stránky rss2email, tak asi ano, ale je to rozhodně mnohem jednodužší.

    Josef Kufner avatar 8.1.2007 15:43 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: Stahování rss
    rss2email používám už hodně dlouho. Má pár chybiček, ale jinak je celkem fajn.
    Hello world ! Segmentation fault (core dumped)
    David Watzke avatar 8.1.2007 15:21 David Watzke | skóre: 74 | blog: Blog... | Praha
    Rozbalit Rozbalit vše Re: Stahování rss
    CSS komentáře v Bashi, docela fun :-D
    “Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
    8.1.2007 16:12 Filip Jirsák | skóre: 68 | blog: Fa & Bi
    Rozbalit Rozbalit vše Re: Stahování rss
    CSS? Spíš C++, ne?
    David Watzke avatar 8.1.2007 16:47 David Watzke | skóre: 74 | blog: Blog... | Praha
    Rozbalit Rozbalit vše Re: Stahování rss
    CSS snad ne?
    “Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
    Josef Kufner avatar 8.1.2007 17:35 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: Stahování rss
    Ehm, nehádejte se, tyhle komentáře fungují jak v CSS tak C++ i C, ale v bashi ne.
    Hello world ! Segmentation fault (core dumped)
    8.1.2007 20:10 Filip Jirsák | skóre: 68 | blog: Fa & Bi
    Rozbalit Rozbalit vše Re: Stahování rss
    Fungují, ale komentáře ve stylu C nebo C++ se jim snad říká, ale ve stylu CSS jsem slyšel (vlastně četl) poprvé. A mezi C a C++ jsem se rozhodl snadno – za prvé, C++ se s CSS rýmuje :-) a za druhé jsem si nebyl jist, který komentář je původní C (právě tenhle /* … */) a který přišel až s C++(//)
    9.1.2007 07:56 Martin Lebeda | skóre: 22 | blog: Martinuv_blog | Plzeň
    Rozbalit Rozbalit vše Re: Stahování rss
    Sorry - to je tím, že jsem to dopisoval až pro veb, v původním souboru nejsou.

    Založit nové vláknoNahoru

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.