Beteg vagyok, úgyhogy van időn játszani.
Talán közismert, hogy a Közbeszerzési Értesítő Interneten is elérhető. Kicsit hektikusan jelenik meg, és már nagyon untam, hogy három naponta végigmazsolázzak több száz oldalt azért, hogy lássam, még mindig nem jelent meg, amit keresek :-) (Közben meg agyvérzést kapok, mik jelennek meg, de ezt inkább hagyjuk...)
Persze van egy csomó cég, aki némi pénz ellenében szívesen átveszi a feladatot, de szerintem sokkal izgibb Ubuntun online "pályázatfigyelni".
Az alábbi kis szösszenetet php-ban írtam, történeti okok miatt (része egy nagyobb rendszernek), tehát a futtatáshoz szükség lehet a php5-cli csomag telepítésére, ami a php kódot "rendes" interpreterként futtatja.
A kód tartalmaz néhány egyedi dolgot (pl. elég hülye helyen tartom az Értesítők helyi másolatait) meg néhány olyan dolgot, amire nincs mindenkinek szüksége (pl. e-mail törzs konvertálása ISO-8859-2 formára). Én úgy használom, hogy az óránkénti cron feladatokhoz (türelmetlen vagyok...) hozzáadom az ezt tartalmazó file nevét - persze futtathatóra állítva (chmod 777 /var/www/chk-kbe.php mint gyors és mocskos megoldás) .
Az alapelv nagyon egyszerű:
-Először beolvassuk a Közbeszerzési Értesítő Online "Letöltések" oldalát 2010-re
-KBExxx.pdf névre keresünk balról, mert pl. a 7. szám a KBE007.pdf néven jelenik meg...
-Megnézzük, megvan-e már a helyi tükrön (ez nálam /FSzerver/KBEk alatt van. Tudom, furcsa. Ez van...)
-Ha még nincs meg:
-Letöltjük
-Konvertáljuk
-grep-elünk
-Ha találat történt, értesítünk
Ennyi. Ja és a kód (nálam /var/www/chk-kbe.php néven van, így az intranetünkről bármikor lehet soron kívüli frissítést indítani, de persze a név bármi lehet):
#!/usr/bin/php
// Beolvassuk az index file tartalmát
$content = file_get_contents('http://www.mhk.hu/kozbesz/index.php?menuindex=0100\&pageindex=2010');
$offs = 0; // keresés kezdőindex
do {
$found = strpos($content,"pdf/2010/KBE",$offs); // így néz ki
if ($found==FALSE) break; // találtunk ilyesmit?
$substr = substr($content,$found,19);
$offs = $found+20; // odébblökjük a keresés kezdetét
$locfname = "/FSzerver/KBEk/".substr($substr,9,10); // helyi path a pdf file-nak
$loctxt = "/FSzerver/KBEk/".substr($substr,9,7)."txt"; // helyi path a txt file-nak
$remfname = "http://www.mhk.hu/kozbesz/".$substr;
if (!file_exists ($locfname)) { // Ha még nincs letöltve
$okok="";
exec("wget -q $remfname -O $locfname"); // letöltjük
exec("pdftotext -q -enc UTF-8 $locfname $loctxt"); // Szöveggé alakítjuk
$result1 = exec("grep -i kulcs1 $loctxt"); // keressük az első kulcsszót
if ($result1) $okok .= "kulcs1 ";
$result2 = exec("grep -i kulcs2 $loctxt"); // keressük a kulcsszót
if ($result2) $okok .= "kulcs2 ";
.....................................
.....................................
unlink($loctxt); // csak hogy rend legyen...
if ($okok) { // ha volt találat: mail összeállítás, küldés
exec("echo $locfname > /FSzerver/KBEk/kbemail.txt");
exec("echo 'A következő kulcsszavak fordultak elő:' >> /FSzerver/KBEk/kbemail.txt");
exec("echo '$okok' >> /FSzerver/KBEk/kbemail.txt");
exec("echo 'Üdvözlettel: KBE Figyelő' >> /FSzerver/KBEk/kbemail.txt");
exec("iconv -f UTF-8 -t ISO-8859-2 /FSzerver/KBEk/kbemail.txt -o /FSzerver/KBEk/kbemail2.txt"); // na mi a mail kliensem ? :-)
exec("mail -s 'KBE találat!' nekem@cegem.hu neked@cegem.hu < /FSzerver/KBEk/kbemail2.txt");
}
}
} while ($found);
?>