webprint.nl foto-uploader in Python

Door stereohead op zondag 16 augustus 2009 22:36 - Reacties (11)
Categorie: Python, Views: 4.871

Ik druk regelmatig wat foto's af via de online foto-afdruk dienst van webprint.nl. Meestal gaat dit om kleine hoeveelheden van max. 20 stuks. Je foto's moet je daar uploaden via een flashformulier, allemaal leuk en aardig, maar het moet allemaal een voor een.

Binnenkort wil ik een grote hoeveelheid foto's afdrukken, zeker > 100, en ik heb niet bepaald zin om een hele dag bezig te zijn met het uploaden van een stapel foto's.

Dat moet dus makkelijker, tijd om Wireshark erbij te pakken, en eens te bekijken hoe de foto's worden verstuurd.

Na wat zoeken bleek dat er drie dingen moeten gebeuren om een foto te uploaden.

1) Inloggen
2) Upload-id verkrijgen
3) Foto-uploaden

Deze drie dingen moesten dus worden omgezet in een python script. Gelukkig gaat dat super makkelijk met de hulp van httplib en minidom, en een paar uur en 328 regels code verder had ik een simpel programma dat m'n foto's upload.

Handig voor mij, maar ik wil het graag delen met de rest van de wereld dus bij deze:
broncode download (opslaan als webprint-uploader.py)

Je gebruikt het als volgt:

python webprint-uploader -u username -p password -d foto-directory -f map-waarin-je-fotos-komen


username en password spreken voorzich, dat zijn de inloggegevens voor webprint.nl
met -d geef je de map aan waarin je foto's staan, en met -f geef je aan in welke map op webprint.nl de foto's komen. Deze map wordt zonodig aangemaakt.

Ik heb het alleen getest op linux (ubuntu 9.04) maar dikke kans dat het ook op windows werkt.

That's it, ik hoop dat jullie er wat aan hebben :)

Volgende: Het nummer waar ik kippenvel bij krijg 09-'09 Het nummer waar ik kippenvel bij krijg

Reacties



Door Tweakers user TerraGuy, zondag 16 augustus 2009 23:53

Inderdaad erg cool. :) Mooi om te zien dat je met hacken ook nog positieve doelstellingen kunt bereiken. _/-\o_

Door Tweakers user Puch-Maxi, maandag 17 augustus 2009 02:18

De naam van de map (switch: -f) mag je zelf bedenken?
Netjes gemaakt trouwens!

Door Tweakers user Phyxion, maandag 17 augustus 2009 08:23

Mooi stukje code en werk, dit zijn nou tweakblogs waar je wat aan hebt, ga zo door :) Erg nice dit.

Door Tweakers user mzziol, maandag 17 augustus 2009 08:24

Ziet er netjes uit! Ik programmeer zelf ook in Python.

Is het misschien een idee om nog even een "if __name__ == '__main__': " toe te voegen? Dan kun je het makkelijk integreren in een GUI'tje :). Maar dat heb je vast niet nodig ;).

Door Tweakers user rutgerlak, maandag 17 augustus 2009 11:21

Mooi stukje software en een goede instelling! Misschien kan je het wachtwoord interactief vragen, aangezien je met 'history' zo het wachtwoord terug kan halen. Ik moet binnenkort ook maar eens alle foto's laten afdrukken, zal nog even kijken waar dat het goedkoopste is.

"if ext in ['.jpg', '.jpeg']:"
Als je bij die webservice alleen jpg files kan uploaden, kan je misschien met je code kijken of imagemagick is geinstalleerd. Met "convert foto.png foto.jpg" kan je dan de jpg foto in bijv. /tmp zetten en uploaden.

Door Tweakers user Calamor, maandag 17 augustus 2009 13:18

Dat is wel handig :D

Ze kunnen beter ook een tool maken dat je het in je eigen site kan integreren. Dat de server het upload naar hun en dat je misschien zelf ook nog wat aan kan verdienen omdat je ze naar hun doorsturen.

Zelf ben ik bezig met een foto site. En dat lijk me wel een leuke toevoeging. En het is voor me zelf ook een stuk makkelijker als ik zelf foto's wil afdrukken. Alles in een map op me server gooien en die upload het zelf er na toe.

Door tweaktubbie, maandag 17 augustus 2009 14:04

Kewl, mooi stukje werk. Maar eh... ik stuur geregeld honderden foto's in, en je kunt met een verkenner-schermpje en CTRL-A dan alles in 1x uploaden, dus weet ik niet wat je aan functionaliteit mistte en hiermee ondervangt? Overigens zit er wel een limiet in van iets boven 500 foto's per map.


Door Tweakers user golfdiesel, maandag 17 augustus 2009 21:56

mooi
Ik wordt helemaal ziek van die web based zooi van Webprint.
Nu nog standalone software voor het maken van albums, want dat is echt een drama als je met een paar honderd foto's wil gaan werken...
Ben je net halverwege besluit de KPN ineens om je experiabox te restarten (doen ze vaker) en dan ben je alles kwijt...
Niet de schuld van Webprint, maar met offline software heb je dit probleem niet.

Door Tweakers user stereohead, maandag 17 augustus 2009 22:32

@ Puch-Maxi: Ja die naam mag je zelf verzinnen, er wordt eerst gekeken of er al een map bestaat met die naam, zo niet dan wordt 'ie eerst aangemaakt.

@ rutgerlak: Goede suggesties, als ik tijd heb zal ik die eens inplementeren.

@ tweaktubbie: Dat klopt, maar het zal bij mij niet de eerste keer zijn dat die flash-app vastloopt, en dat is een beetje zonde als ik mn pc een hele nacht heb aantstaan :). Daarnaast heb ik nu ook de mogelijkheid om de foto's te uploaden via m'n server, aangezien die text-based is.

@ golfdiesel: Tja voordeel van web-based is wel dat het cross-platform is. Ikzelf heb liever ook desktop programma's alleen vertikken veel bedrijven om een linux versie te maken :(.


@ iedereen: Dank voor de stimulerende comments :D.

Reageren is niet meer mogelijk