Moblogas

Vakar naktį pasidariau moblogą. Tai turbūt vienas iš tų projektų kur dariau nes galiu padaryt, o ne todėl kad reikia. Faktiškai Perlo kodo rašymas visada malonus, net jei ir nepildysiu to moblogo ateityje – iš manęs fotografas tai kaip iš mano bobulės perlininkė.

Visam šitam daiktui tiesiog persikopijavau savo svetainės kodą į kitą direktoriją, šiek tiek pataisiau šablonus (bet ne iki galo, nes vakar jau labai norėjosi miego), sukūriau porą SQL lentelių, pataisiau kodą, kad dirbtų su tomis naujomis lentelėmis ir parašiau el. pašto apdorojimo programėlę. Pakeitimų ne tiek daug kaip atrodo ;)

Štai kodas, kuris apdoroja gautą el. paštą, surašo kur reikia attachmentu atėjusias JPG bylas ir įterpia reikiamus duomenų bazės įrašus:

#!/usr/bin/perl -w

use strict;use MIME::Parser;

use FileHandle;

use File::Path;

use DBI;

$|++; # Autoflush on

# Prisijungiam prie MySQL

my $dbh = DBI->connect("DBI:mysql:database=moxliukas;dbhost=localhost",

        'moxliukas', 'passwordas');

# katalogų keliai - laikinas ir output

my $tmp_dir = '/home/moxliukas/tmp';

my $output_dir = '/home/moxliukas/public_html/moblog/images';

my $parser = MIME::Parser->new;

$parser->output_dir($tmp_dir);

# Skaitom viską iš STDIN

my $entry = $parser->parse(*STDIN);

# Kiekvienai MIME daliai...

for my $part ($entry->parts) {

       # Žiūrim koks duomenų tipas

        my $mime = $part->mime_type;

        if($mime =~ /jpeg/) {  # jei tai JPG...

             # sukuriam bylos pavadinimą pagal unix timestamp

                my $url = time() . '.jpg';

                my $fh = FileHandle->new($output_dir . '/' . $url, 'w');

                binmode($fh);

                my $ifh = $part->open('r');

             # perkopijuojam bylas kur reikia

                $fh->print($ifh->getlines);

                $_->close for($fh, $ifh);

             # įterpiam į duombazę

                my $sql = "INSERT INTO moblogs SET kada=NOW(), url='$url'";

                $dbh->do($sql);

        } else {

          # Jei tai ne JPG, praleidžiam šią dalį

                next;

        }

}

$dbh->disconnect;

Komentarų: 10

  1. why2liz > September 24, 2003

    jegele :) Bloginimo lygis lietuvoje kyla…

    kas padarys audio bloginima?

  2. moxliukas > September 24, 2003

    Teoriškai galima ir audio pridėt per mobilką prie MMS, o paskui išsiparsint emailą. Ne problema ;-)

  3. Lakunas > September 24, 2003

    o kam tas audio? manai man idomu butu tavo balsa klausyti?

  4. moxliukas > September 24, 2003

    Mačiau pas kažką prie moblogo buvo ir kai kurios nuotraukos su audio. Tai labiausiai patiko įrašas kuriame bičas taip sukrizena ir pasako "haha, i'm wasting your bandwidth!!"

  5. shvln_paranojikas > September 24, 2003

    Taip jau linksmai buvo įsigytas naujasis aparatas ir taip netyčiom prarastas senasis, kad net susidaro įspūdis, neva, aparatas buvo tyčia pamestas ir pasirinktas naujasis… ;]

  6. why2liz > September 24, 2003

    ash kazkaip irgi noriu pamesti netycia…. bet neiseina (ir korteles gaila… nors backupas kompe sedi.. visi numeriai telefe).. tada leisciau sau nauja prikti… o dabar

  7. moxliukas > September 24, 2003

    Huh… na jei taip "netyčia pamest" tai kortelę būčiau pasilikęs ;) O ir seną mobilką būčiau prakalęs už porą šimtų litų. Tad jūsų konspiraicjos teorija nepagrįsta. Nors iš tikrųjų galvojau apie naują mobilką.

  8. LG > September 24, 2003

    Kai kuris ruosites netycia mobilka pamest, nepamirskit perspet, kur eisti tai daryt ;)

  9. why2liz > September 24, 2003

    sutarta :)

  10. Mindze > February 24, 2004

    Hm…. Labai gera įdėja…. Tiesa sakant net nebuvau susiduręs su tokiu įdomiu dalyku. Reiks bandyti tai įdiegt pas save į saituką… Tik manau nebus taip lengva. Jei ka – kreipsiuos pagalbos.

Palik komentarą