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;

Comments Closed

10 Comments

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

  2. 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!!"

  3. 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… ;]

  4. 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

  5. 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ą.

  6. 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.

Comments are closed.