Nekomentované odkazy III. – final

Takže, nakoniec to nebolo až také neprekonateľné a znásilnil som pôvodné QuickNote k práci podľa mojich potrieb.
Keďže každé riešenie pod názvom Nekomentované odkazy môže byť svojské, najprv popíšem čo som ja chcel, ako som dopadol a ako by ste to mohli implementovať vy.
UPDATE: Pozor, po uverejnení Mozilla Firefox som musel vymeniť funkciu pre konvertovanie diakritiky, viď. Nekomentované odkazy IV.

Čo som chcel

Pri prehliadaní stránok často myslím na jednoduchý spôsob ako si niekde uložiť odkaz na ňu a zverejniť ho. Obľúbené odkazy mi nevyhovali, pretože sú na tento účel nepraktické. Pred dlhším časom som síce naprogramoval konvertovanie Favorites z IE do html ako kópiu pre moju webstránku, ale je to skôr knižnica ako aktuálne doporučenie niekoľko málo odkazov v danej chvíli.
Chcel som dosiahnuť situáciu, keď veľmi rýchlo url prenesiem a zverejním. Zároveň som mal požiadavku, aby k URL bol pripojený aj vhodný text.
Vhodné riešenia sa mi zdali: nejaké tlačítko na lište prehliadača a pod ním skript či program, ktorý by trebárs vykuchal TITLE stránky, ktorú mám práve zobrazenú a spolu s URL kamsi uložil.

Čo som dosiahol

Našiel som dobrú Extension pre Mozillu Firebird pod názvom QuickNote a mala iba niekoľko mušiek:
– nerozumel som diakritike,
– tvar aký vkladal do poznámky som chcel pozmeniť.
Oproti tomu však vedela:
– pri označení textu myšou na stránke a pravým tlačítkom na kontextovom menu pribudol príkaz na odoslanie do „poznámok“,
– quicknote sa zobrazuje ako plávajúce okno, tab alebo sidebar – pre moje účely však nepotrebujem žiadne zobrazenie,
– umožňuje aj drag a drop – chytením odkazu na stránke ho prenesiete na otvorený QuickNote.
Nakoniec som QuickNote upravil maličkými zásahmi a do TXT súboru sa ukladá už hotový tvar odkazu v uzatvorený v LI.
Samotný súbor quicknote.jar je vlastne ZIP archív, ktorý unzipom rozbalíte a môžete upravovať. Moje úpravy sa týkali najmä súboru overlay.xul.
Potom nastal problém ako súbor lokálne na disku preniesť na môj webový server. Samozrejme už dávno to mám poriešené maličkým BATCH skriptom.
Na strane servera som si vybral PHP a aj keď je môj blog v statických stránkach, nečinilo žiadny problém do tohto generovaného HTML vložiť kúsok PHP kódu a zmeniť príponu z HTML na PHP.
Problémom bolo kódovanie textu, čo mi zabralo chvíľku času až som po ICQ s Arthurom dospel k názoru, že je to asi Unicode ale ešte prekódované cez MS URL. Kľúčové funkcie sú teda utf2win(urldecode($line)), z ktorých jednou je Arthurova funkcia z jedného jeho projektu na blogu .devel.

Sprevádzkovanie

Nainštalujte si QuickNote z pôvodného zdroja do Mozilly Firebird.
Odomňa si stiahnite mnou patchnutý QuickNote ako .jar súbor.
Nájdite, kam si Firebird vopchal pôvodný súbor quicknote.jar a vypnite si Firebird. Prekopírujte môj patchnutý QN namiesto pôvodného.
Nakonfigurujte si QuickNote podľa potreby, ja som si nechal iba 1 tab a obsah tabu sa ukladá do súboru d:\links\nekomentovane.txt. Zafajknite pridávanie URL do poznámok.
Textový súbor je nutné nejako dostať na web, ja som použil tento jednoduchý BATCH súbor:
ftp.exe -s:%0
goto done
open adresaftp
kontoftp
hesloftp
cd nejakyadresar
binary
hash
lcd d:\links
put nekomentovane.txt
bye
:done
@echo off
exit

Namiesto adresaftp, kontoftp, hesloftp, nejakyadresar si samozrejme napíšte svoje konkrétne údaje.
Na zobrazenie súboru nekomentovane.txt už musíte poznať svoj systém ako to vložiť do stránky. Ja som k tomu použil kus PHP kódu:

<div class=“perex“>
<div class=“sidetitle“>nekomentované aktuálne odkazy</div>
<ul>
<?php
/* Konverzni funkce mezi UTF8, ISO-8859-2 a WINDOWS-1250, autor:blog@maly.cz */
//doplneno slovenske velke a male O se striskou
$convUTF=array(195,129,196,140,196,142,195,137,196,154,195,141,196,189,197,135,195,147,197,152,197,160,197,164,195,154,197,174,195,
157,197,189,195,161,196,141,196,143,195,169,196,155,195,173,196,190,197,136,195,179,197,153,197,161,197,165,195,186,197,175,195,189,
197,190,195,132,195,139,195,150,195,156,195,164,195,171,195,182,195,188,195,180,195,148);
$convISO=array(193,200,207,201,204,205,165,210,211,216,169,171,218,217,221,174,225,232,239,233,236,237,181,242,243,248,185,187,250,
249,253,190,196,203,214,220,228,235,246,252,244,212);
$convWIN=array(193,200,207,201,204,205,188,210,211,216,138,141,218,217,221,142,225,232,239,233,236,237,190,242,243,248,154,157,250,
249,253,158,196,203,214,220,228,235,246,252,244,212);
function utf2win($txt){
global $convUTF,$convWIN;
$out=“;
$i=0;
while ($i<strlen($txt)){
$act=substr($txt,$i,1);
$z=ord($act);
if ($z>127){
$act2=substr($txt,$i+1,1);
$z2=ord($act2);
$i+=2;
$zn=-1;
for ($j=0;$j<count($convUTF);$j+=2){
if ($z==$convUTF[$j] && $z2==$convUTF[$j+1])
{$zn=$j/2; break;}
}
if ($zn>=0) $out.=chr($convWIN[$zn]); else $out.=’~’;
}
else {
$out.=chr($z);
$i++;
}
}
return $out;
}
$lines = file(‘urladresa/nekomentovane.txt’);
foreach ($lines as $line_num => $line) {
echo utf2win(urldecode($line)) . „\n“;
}
?>
</ul>
</div>

Namiesto urladresa som samozrejme zadal URL cestu k danému súboru.

Používanie

Toto sa mi podarilo uľahčiť si naozaj na minimum potrebné k môjmu otravovaniu mimo samotného sledovania stránok.
Keď som si stránku zobrazil a zaujala ma, označím nejaký text na nej a nad označeným blokom textu stlačím pravé tlačítko čím vyvolám kontextové menu, v ktorom povelom Send to QuickNote odošlem do Extension označený text s URL zobrazenej stránky.
Samotné QuickNote po mojej úprave už nezobrazuje svoje okno a zároveň ale uloží do nastaveného textového súboru na jeho koniec kód v tomto tvare:
<li><a href="http://urlstranky">oznaceny text</a></li>
Samozrejme iný tvar je možný iba pozmenením v QuickNote.
Následne mám spúťanie FTP skriptu na prenos uložené ako Naplánovanú úlohu, aby som sa nemusel trápiť nad tým ako a kedy to preniesť. Na ploche mám ešte odkaz na tento BATCH, ak by som chcel prenos vykonať okamžite.


Pri problémoch s diakritikou mi pomohol Arthur Dent a vycucal som jeho funkcie na konvertovanie z .devel blogu.

Written by rony