Programma om plaatjes mee op te slaan van websites

Pagina: 1
Acties:
  • 106 views sinds 30-01-2008
  • Reageer

  • CmdrKeen
  • Registratie: Augustus 2000
  • Laatst online: 27-05 21:11

CmdrKeen

Krentenboltosti

Topicstarter
(Mods: ik plaats dit hier omdat als je zoekt op "plaatjes opslaan site" je meestal alleen zoekt in Software Algemeen. Ik heb nog eens de FAQ doorgelezen en ik geloof dat ik met deze post geen regels breek.)

Je kent ze wel: de topics die vragen om programma's waarmee je plaatjes van websites kan opslaan, het liefst gratis. De programma's die je erin terugvindt zijn meestal óf erg ingewikkeld óf niet gratis, en da's tóch vervelend als je je copyright-vrije vakantiefoto's gemakkelijk op wilt slaan van de site van je schoonmoeder.

Nu reikt mijn kennis van C++ niet zo ver dat ik een normaal programma kan schrijven dat dat doet, en met ASP en VBScript kom ik ook al niet zo ver. Gelukkig spreek ik een paar woorden batch en ik heb op mijn vrije zondagavond een scriptje voor dit doeleinde in elkaar gedraaid.

Commentaar op het script is welkom, maar ik zet het hier voornamelijk neer omdat ik weet dat veel mensen een dergelijke functionaliteit zoeken. Mocht je zelf een beter en/of een gratiser programma hebben: post aub een link, ik hou mij aanbevolen (mijn schoonmoeder gaat vaak op vakantie).

Ik heb het script geschreven en alleen getest op Windows XP Pro NL. Het zou ook moeten werken met andere talen en Windows 2000.

Het script werkt alsvolgt:
1. kopieer de code die hieronder staat;
2. sla de code op als getp.cmd;
3. open het bestand met Notepad;
4. pas indien nodig regels 24, 25 en 26 aan (de variabelen);
5. open een command line interpreter console, oftewel een DOS-box;
6. geef het commando GETP CLEAN, dit wist de JPG-bestanden uit je map Tijdelijke Internet-bestanden;
7. ga naar de site van je schoonmoeder waar je vakantiefoto's op staan en laat de pagina met foto's helemaal laden;
8. optioneel: geef het commando GETP SHOW, dit laat zien welke foto's in aanmerking komen om lokaal te worden opgeslagen;
9. geef het commando GETP <mapnaam>, waar <mapnaam> de naam van de te maken directory in je foto-archief is, de foto's worden nu vanuit je cache verplaatst naar deze nieuwe map in je archief.

Tip van oma: je kan in snelkoppelingen command line parameters meegeven, dus je kan icoontjes maken die wijzen naar GETP CLEAN en GETP als je wilt (het script vraagt dan in een DOS-box om een nieuwe naam) en eventueel GETP SHOW.

Tweede tip van oma: kopieer van de site van je schoonmoeder de naam van de fotoserie. Die kan je plakken in de DOS-box door daarin te klikken met je rechter muisknop.

Afbeeldingslocatie: http://www.xs4all.nl/~mhuijgen/martin/got/getp.gif

Hier is het script, veel plezier ermee.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
@echo off

:: getp, saves pictures from websites.
:: By Vilenin.
:: Usage:
:: getp [directory name] -- copies pictures from cache to [directory name]
:: getp clear -- clears cache
:: getp show -- shows files and their sizes in cache

:: Set variables below
:: TempInetFiles = where Internet Explorer keeps your Temporary Internet Files
:: Archive = where your collection is stored (for example: c:\my pictures\)
:: threshold = only download pictures this amount of kB's or over
:: In TempInetFiles and Archive location, please mind the ending backslash.
::
:: Example variable set (these settings should work just fine):
:: =====================================================================
:: set TempInetFiles=C:\Documents and Settings\%username%\Local Settings\Temporary Internet Files\Content.IE5\
:: set Archive=C:\Documents and Settings\%username%\Bureaublad\My holiday photos\
:: set threshold=15
:: =====================================================================

:: ==================================================SET OF VARIABLES
set TempInetFiles=C:\Documents and Settings\%username%\Local Settings\Temporary Internet Files\Content.IE5\
set Archive=C:\Documents and Settings\%username%\Bureaublad\My holiday photos\
set threshold=15
:: ==================================================END OF VARIABLES

:: Convert threshold to bytes
set /a threshold=1024*%threshold%

:: Did the user enter a Target Directory name as an argument?
:: If so, glue space separated input together.
if [%1]==[] goto :AskName
if not [%1]==[] set TargetDir=%1
if not [%2]==[] set TargetDir=%TargetDir% %2
if not [%3]==[] set TargetDir=%TargetDir% %3
if not [%4]==[] set TargetDir=%TargetDir% %4
if not [%5]==[] set TargetDir=%TargetDir% %5
if not [%6]==[] set TargetDir=%TargetDir% %6
if not [%7]==[] set TargetDir=%TargetDir% %7
if not [%8]==[] set TargetDir=%TargetDir% %8
if not [%9]==[] set TargetDir=%TargetDir% %9

:: Set special arguments
if [%1]==[clear] goto :clear

:: Remove percent signs from files. Using weird characters in file names should be punishable by law.
for /F "delims=*" %%I in ('cd') do set StartDir="%%I"
set sdstat=%StartDir:~1,2%
set sdpad=%StartDir:~3,-1%
for /F "delims=*" %%I in ('dir "%TempInetFiles%" /a:d /b') do call :KillPercent "%TempInetFiles%%%I"
%sdstat%
cd "%sdpad%"

:: Set more special arguments
if [%1]==[show] goto :show

:: Ask for a different folder name if the one specified exists
:ChkName
if not exist "%Archive%%TargetDir%" goto :MkTargetDir
echo Deze map bestaat al.
:AskName
set /p TargetDir=Hoe moet de nieuwe map heten?
goto :ChkName

:: Make new folder
:MkTargetDir
mkdir "%Archive%%TargetDir%"

:: Move big enough files
for /F "delims=*" %%I in ('dir "%TempInetFiles%*.jpg" /s /b') do call :MovePic %%~zI "%%I" "%%~nxI" "%Archive%" "%TargetDir%"

goto :eof

:: ========Subroutines

:MovePic
:: Move the files that are large enough to their new location
set size=%1
if %size% lss %threshold% goto :eof
set ofn=%2
set nfn="%3"
set Archive=%4
set TargetDir=%5
set nfn=%nfn:[1]=%
move "%ofn:~1,-1%" "%Archive:~1,-1%%TargetDir:~1,-1%\%nfn:~2,-2%"
goto :eof

:show
:: Only show the files which would be copied
for /F "delims=*" %%I in ('dir "%TempInetFiles%*.jpg" /s /b') do call :DoShow "%%~nxI" %%~zI %threshold%
goto :eof

:DoShow
set size=%2
set threshold=%3
if %size% lss %threshold% goto :eof
set fn=%1
set fn=%fn:[1]=%
set size=%2
set /a size=%size%/1024
set threshold=%3
echo %fn:~1,-1% (%size% kB)
goto :eof

:clear
:: delete all pictures in the temporary internet files directory
del "%TempInetFiles%*.jpg" /s /q>nul
echo.
echo De bestanden zijn verwijderd.
goto :eof

:KillPercent
set curdir=%1
set stat=%curdir:~1,2%
set pad="%curdir:~3,-1%"
%stat%
cd "%curdir:~3,-1%"
if exist "*%%*.jpg" for /f "tokens=1,* delims=%%" %%f in ('dir /b "*%%*.jpg"') do ren "%%f%%%%g" "%%f-%%g"
if exist "*%%*.jpg" for /f "tokens=1,* delims=%%" %%f in ('dir /b "*%%*.jpg"') do ren "%%f%%%%g" "%%f-%%g"
if exist "*%%*.jpg" for /f "tokens=1,* delims=%%" %%f in ('dir /b "*%%*.jpg"') do ren "%%f%%%%g" "%%f-%%g"
if exist "*%%*.jpg" for /f "tokens=1,* delims=%%" %%f in ('dir /b "*%%*.jpg"') do ren "%%f%%%%g" "%%f-%%g"
if exist "*%%*.jpg" for /f "tokens=1,* delims=%%" %%f in ('dir /b "*%%*.jpg"') do ren "%%f%%%%g" "%%f-%%g"
if exist "*%%*.jpg" for /f "tokens=1,* delims=%%" %%f in ('dir /b "*%%*.jpg"') do ren "%%f%%%%g" "%%f-%%g"

goto :eof


Disclaimer: gebruik van dit script is op eigen risico.

[ Voor 30% gewijzigd door CmdrKeen op 26-04-2004 22:13 . Reden: Plaatje toegevoegd. ]

Bloed, zweet & koffie


  • addictive
  • Registratie: Maart 2003
  • Laatst online: 01-08 12:10
file>>save page as ? dan slaat ie ook alle plaatjes op in een map... of mis ik nu iets?

edit:

Hey, commander keen als sig! Goede oude tijd :P :D Ik ben wel pas 17 maar commander keen ken ik wel :)

[ Voor 44% gewijzigd door addictive op 26-04-2004 21:21 ]


  • CmdrKeen
  • Registratie: Augustus 2000
  • Laatst online: 27-05 21:11

CmdrKeen

Krentenboltosti

Topicstarter
addictive schreef op 26 april 2004 @ 21:20:
file>>save page as ? dan slaat ie ook alle plaatjes op in een map... of mis ik nu iets?

edit:

Hey, commander keen als sig! Goede oude tijd :P :D Ik ben wel pas 17 maar commander keen ken ik wel :)
Keen regelt ;) (* CmdrKeen steekt duim omhoog) Check deze link: vol met coole dingen over Keen, inclusief teksten van muziek zonder tekst en andere inside-info over Commander Keen ;)

Je plaatjes krijgen dan allemaal "[1]" achter de naam.

[ Voor 22% gewijzigd door CmdrKeen op 26-04-2004 21:24 ]

Bloed, zweet & koffie


  • addictive
  • Registratie: Maart 2003
  • Laatst online: 01-08 12:10
Vilenin schreef op 26 april 2004 @ 21:22:
[...]

Keen regelt ;) (* addictive steekt duim omhoog) Check deze link: vol met coole dingen over Keen, inclusief teksten van muziek zonder tekst en andere inside-info over Commander Keen ;)

Je plaatjes krijgen dan allemaal "[1]" achter de naam.
offtopic:
Thanks! Keen is stoer!

  • Tim
  • Registratie: Mei 2000
  • Laatst online: 23-07 15:18

Tim

wget is niet zo moeilijk hoor. Iig makkelijker dan een heel batch script schrijven

http://studwww.ugent.be/~...fetch.pl?dl=wget/wget.exe
wget.exe -r -l1 -nd -A .jpg,.jpeg <url-van-site>

  • addictive
  • Registratie: Maart 2003
  • Laatst online: 01-08 12:10
Timpie schreef op 26 april 2004 @ 21:58:
wget is niet zo moeilijk hoor. Iig makkelijker dan een heel batch script schrijven

http://studwww.ugent.be/~...fetch.pl?dl=wget/wget.exe
wget.exe -r -l1 -nd -A .jpg,.jpeg <url-van-site>
daar kun je ook een leuke batch voor schrijven, dat je alleen de site url in hoeft te geven... :)

  • CmdrKeen
  • Registratie: Augustus 2000
  • Laatst online: 27-05 21:11

CmdrKeen

Krentenboltosti

Topicstarter
Ik had anders nogal wat moeite met wget, maar dat zal wel aan mij liggen ;) Doorgaans begrijp ik mijn eigen code beter dan die van iemand anders. Ik wou met deze code gewoon wat mensen blij maken die ook problemen hadden met wget.

Bloed, zweet & koffie

Pagina: 1