Google paranoja a záloha web 2.0

Dnes som sa trochu hrabal v službách Google a natrafil som na neznámu službu Google Bookmarks. Nič nezvyčajné, keby boli bookmarky prázdne, no zrejme koncom februára a v marci sa mi tam neznámym spôsobom podarilo niečo popridávať.

Pozitívne na tej službe je, že vľavo je odkaz na Web History, kde som si skontroloval, že ukladanie všetkých údajov by malo byť vypnuté.

Zároveň mi teda napadlo, že by som si mal zálohovať bookmarky, ktoré som si vytvoril na del.icio.us, a vôbec aj ďalších služieb, kde mám aspoň relatívne cenné dáta.

last.fm

Začnem teda od konca, kedy som sa po zložitom hľadaní dopracoval k užitočnej utilite lfmCOL.pl - last.fm Data Collector.

Použitie je veľmi jednoduché, stačí nahradiť USER prihlasovacím menom:

perl lfmCOL.pl -xmlfile=myLovedTracks.xml method=user.getLovedTracks user=USER
# Collect your complete scrobbling history:
perl lfmCOL.pl -xmlfile=myRecentTracks.xml method=user.getRecentTracks limit=50 user=USER
# Collect your complte music library:
perl lfmCOL.pl -xmlfile=myMusicLibrary.xml method=library.getTracks user=USER

YouTube

Tu ma zaujímajú iba obľúbené videá, ale dopracovať sa k správnemu spôsobu dolovania dát chvíľu trvalo.

API poskytuje XML výstup na adrese http://gdata.youtube.com/feeds/api/users/USER/favorites?max-results=50&start-index=1. Počiatočný index musí byť 1 a potom môžeme pridávať po 50. Počet som si musel zistiť z profilu.

ČSFD

Tu nie je žiadne API, ale dá sa stiahnuť jednoducho HTML výstup, ktorý obsahuje komentáre a ohodnotenia. Keď zistíme počty, tak je to pomerne jednoduché sťahovanie.

del.icio.us

Úplne bez problémov výstup: http://delicious.com/settings/bookmarks/export

Záver

V závere sa podelím o škaredé kombinácie Ruby/shell skriptov, ktoré sú pre mňa dostatočné: source tarball.

Ešte by som spomenul, že napriek existencii Data Liberation Front, ktorý má pomáhať s extrakciou dát uložených v aplikáciách od Google, zrejme nie je možné nijak dostať z Google Reader nič okrem zoznamu feedov.

soup.io a web 2.0

Čo sa týka mňa, tak som konzervatívny v prijímaní nových web 2.0 služieb. Ani nie tak kvôli paranoji, ale pretože pre mňa často nemajú žiaden praktický význam. No napriek tomu samozrejme niektoré využívam.

soup.io je je lepidlom pre rôzne web 2.0 služby, o ktorom som sa dozvedel už na prvom slovenskom BarCampe, ale doteraz som ho nemal ako využiť. Taktiež poskytuje aj funkcie takzvaného “microblogu”, ale bez obmedzenia na 140 znakov (demencia). Výsledok som nazval “ramble”.

V procese vytvárania mojej polievočky som si narýchlo napísal skript, ktorý prevádza ČSFD hodnotenia na RSS feed:

csfd-hodnotenia-feed.php
<?php
echo '<?xml version="1.0" encoding="utf-8"?>';
 
// cast URL zavisla na konkretnom uzivatelovi
$USER = '';
 
//$MAX_ITEMS = 25;
$MAX_ITEMS = 100;
 
$pattern = '/<td colspan="2">.+?<img src="(.+?)".+?>.+?<a href="(.+?)">(.+?)<\/a>.+?\((.+?)\).+?<\/td>.+?<td.+?>(.+?)<\/td>.+?<td.+?>(\d+).(\d+).(\d+)<\/td>/';
 
//if (ini_get('allow_url_fopen') == '1') {
//   echo "OK"; // use fopen() or file_get_contents()
//}
 
ini_set('user_agent', 'My-Application/2.5');
$f = file_get_contents('http://www.csfd.cz/uzivatel/'.$USER.'/hodnoceni/');
$str = str_replace("\n", '', $f);
 
preg_match_all($pattern, $str, $matches, PREG_SET_ORDER);
//print_r($matches);
 
/*
 
  0 - matched block
  1 - globalne hodnotenie (img)
  2 - film - relative url
  3 - nazov filmu
  4 - rok
  5 - osobne hodnotenie
  6-8 - den, mesiac, rok hodnotenia
 
 */
 
?>
<rss version="2.0">
  <channel>
    <title>disorder - csfd.cz hodnotenia</title>
    <link>http://www.csfd.cz/</link>
    <description><![CDATA[disorder - csfd.cz hodnotenia]]></description>
    <lastBuildDate><?php echo date(DATE_RFC2822) ?></lastBuildDate>
    <generator>csfd.cz hodnotenia RSS extractor</generator>
    <ttl>360</ttl>
 
<?php $i = 0; ?>
<?php foreach ($matches as $m): ?>
<?php if ($i++ > $MAX_ITEMS) break; ?>
<item>
<guid isPermaLink="true">http://www.csfd.cz<?php echo $m[2]?></guid>
<title><?php echo trim($m[3])." ($m[4])" ?></title>
<pubDate><?php echo date(DATE_RFC2822, mktime(12, 0, 0, (int)$m[7], (int)$m[6], (int)$m[8]))?></pubDate>
  <link>http://www.csfd.cz<?php echo $m[2]?></link>
<description><![CDATA[
<a href="http://www.csfd.cz<?php echo $m[2] ?>"><img src="<?php echo $m[1] ?>" /> <?php echo trim($m[3]) ?></a> <?php echo trim($m[4]) ?>
&nbsp;<b><?php echo trim($m[5]) ?></b>
]]></description>
</item>
<?php endforeach ?>
  </channel>
</rss>
weblog.txt · Last modified: 2010/08/03 06:21 by 127.0.0.1