sobota, lipca 26, 2008

libgmail - aby zaoszczędzić klikania

Byłem dzisiaj w górach. Jak zwykle po takiej wyprawie przychodzi czas dzielenia się zdjęciami. Obrobiwszy co potrzeba zostało mi do wysłania 71 MB. Spakować się tego za bardzo nie da, na płytkę pakować nie opłaca się... Zdecydowałem się wysłać to wszystko mailem. Ponieważ jednak przesyłanie kilkuste plików jest mocno niepraktyczne, spakowałem wszystko w kilka archiwów po 15 MB:

> 7z a rudawy.7z -mx=0 -v15mb *.jpg

Świetnie, mam teraz tylko 5 plików do wysłania. Kto jednak kiedyś wysyłał duże pliki przez maila doskonale wie, że wysyłają się one okropnie długo i często nie sposób jest wysłać wszystkiego na raz - trzeba cierpliwie plik po pliku ładować je na konto.
Ale! Od czego są biblioteki? Komenda

> yum search gmail

zdradziła mi, że Fedora oferuje między innymi następujący pakiet:

> python-libgmail.noarch : Library to provide access to Gmail via Python

Zainstalowałem, poszperałem nieco w dokumentacji i teraz pliki radośnie wgrały się na moje konto:

>>> import libgmail
>>> import getpass
>>> import glob
>>> ga = libgmail.GmailAcount(getpass.getpass("Podaj konto"), getpass.getpass("Podaj hasło"))
>>> ga.login()
>>> _7z = glob.glob("*7z")
>>> _7z
['rudawy.7z.003', 'rudawy.7z.001', 'rudawy.7z.004', 'rudawy.7z.005', 'rudawy.7z.002']
>>> map( lambda x: ga.storeFile( x, "rudawy" ), _7z )

I po sprawie :-)

4 komentarze:

  1. Ja jeszcze skaluję zdjęcia. Nie zdarzyło mi się, żeby ktoś zwrócił na to uwagę ;-) Większość osób i tak ma ustawioną przeglądarkę tak, że obraz jest skalowany do wielkości ekranu.

    Można wykorzystać Image Magick. Na pewno jest bind do Pythona.

    OdpowiedzUsuń
  2. Do skalowania zdjęć używam z reguły Irfan View. Działa pod wine :-) i jest szybki w obsłudze.

    OdpowiedzUsuń
  3. Anonimowy2:25 PM

    a nie lepiej i prościej wrzucić zdjęcia na picase ?

    OdpowiedzUsuń
  4. Korzystanie z Picasy ma kilka wad, które powodują, że wolę jej unikać.

    Poza tym, to rozwiązanie jest bardziej uniwersalne, gdyż można w ten sposób przesyłać nie tylko obrazki, lecz dowolne inne duże pliki.

    OdpowiedzUsuń