Piggy 0.4.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (101) hide show
  1. data/CHANGES.txt +91 -0
  2. data/INSTALL.txt +77 -0
  3. data/LICENCE.txt +339 -0
  4. data/README.txt +27 -0
  5. data/UNINSTALL.txt +24 -0
  6. data/bin/directory_diff +6 -0
  7. data/bin/ftp_browser +6 -0
  8. data/bin/piggy +6 -0
  9. data/lib/directory_diff.rb +35 -0
  10. data/lib/ftp_browser.rb +33 -0
  11. data/lib/icons/auto-select-for-del.ico +0 -0
  12. data/lib/icons/auto-select-right.ico +0 -0
  13. data/lib/icons/auto-upload-right.ico +0 -0
  14. data/lib/icons/back.ico +0 -0
  15. data/lib/icons/checked.ico +0 -0
  16. data/lib/icons/copy.png +0 -0
  17. data/lib/icons/cut.png +0 -0
  18. data/lib/icons/dir.ico +0 -0
  19. data/lib/icons/dirup.ico +0 -0
  20. data/lib/icons/file.ico +0 -0
  21. data/lib/icons/fileopen.png +0 -0
  22. data/lib/icons/filesave.ico +0 -0
  23. data/lib/icons/gallery.ico +0 -0
  24. data/lib/icons/generate.ico +0 -0
  25. data/lib/icons/minus.png +0 -0
  26. data/lib/icons/move-right-dir.ico +0 -0
  27. data/lib/icons/move-right-file.ico +0 -0
  28. data/lib/icons/newer-file.ico +0 -0
  29. data/lib/icons/next-image.ico +0 -0
  30. data/lib/icons/paste.png +0 -0
  31. data/lib/icons/plus.png +0 -0
  32. data/lib/icons/preview.png +0 -0
  33. data/lib/icons/previous-image.ico +0 -0
  34. data/lib/icons/reload.ico +0 -0
  35. data/lib/icons/remove-selected.ico +0 -0
  36. data/lib/icons/rotate.ico +0 -0
  37. data/lib/icons/slides.ico +0 -0
  38. data/lib/icons/stop-slides.ico +0 -0
  39. data/lib/icons/unchecked-dir.ico +0 -0
  40. data/lib/icons/unchecked.ico +0 -0
  41. data/lib/icons/upload-selected.ico +0 -0
  42. data/lib/icons/upload.ico +0 -0
  43. data/lib/piggy-core/alive_check.rb +44 -0
  44. data/lib/piggy-core/debug.rb +21 -0
  45. data/lib/piggy-core/encoding.rb +11 -0
  46. data/lib/piggy-core/environment.rb +66 -0
  47. data/lib/piggy-core/exifr_adapter.rb +85 -0
  48. data/lib/piggy-core/file_info.rb +218 -0
  49. data/lib/piggy-core/ftp_adapter.rb +106 -0
  50. data/lib/piggy-core/htmlgen.rb +242 -0
  51. data/lib/piggy-core/nconvert_thumbsgen.rb +73 -0
  52. data/lib/piggy-core/options.rb +116 -0
  53. data/lib/piggy-core/options_persistence.rb +54 -0
  54. data/lib/piggy-core/progress.rb +48 -0
  55. data/lib/piggy-core/rmagick_thumbnail_page_generator.rb +30 -0
  56. data/lib/piggy-core/thumbnail_generator.rb +79 -0
  57. data/lib/piggy-core/thumbnail_page_generator.rb +542 -0
  58. data/lib/piggy-core/upload_info.rb +41 -0
  59. data/lib/piggy-core/version.rb +18 -0
  60. data/lib/piggy-core/winshell.rb +240 -0
  61. data/lib/piggy-gui/directory_diff_widget.rb +398 -0
  62. data/lib/piggy-gui/filtered_file_list.rb +243 -0
  63. data/lib/piggy-gui/fox_thumbsgen.rb +18 -0
  64. data/lib/piggy-gui/ftp_browser_widget.rb +395 -0
  65. data/lib/piggy-gui/html_generation_dialog.rb +157 -0
  66. data/lib/piggy-gui/image_processor.rb +140 -0
  67. data/lib/piggy-gui/multiimagecanvas.rb +163 -0
  68. data/lib/piggy-gui/options_dialog.rb +85 -0
  69. data/lib/piggy-gui/piggy_image_browser.rb +776 -0
  70. data/lib/piggy-gui/pipe_log.rb +67 -0
  71. data/lib/piggy-gui/progress_with_dialog.rb +51 -0
  72. data/lib/piggy-gui/require-fox.rb +87 -0
  73. data/lib/piggy.rb +35 -0
  74. data/lib/templates/fuss.htm +10 -0
  75. data/lib/templates/kopf.htm +13 -0
  76. data/lib/templates/navigation.htm +11 -0
  77. data/lib/templates/slideshow.htm +129 -0
  78. data/lib/templates/slideshow.js +691 -0
  79. data/lib/templates/styles/basic/style.css +27 -0
  80. data/lib/templates/styles/black/style.css +64 -0
  81. data/lib/templates/styles/roundedbox/roundedbox_lo.gif +0 -0
  82. data/lib/templates/styles/roundedbox/roundedbox_lu.gif +0 -0
  83. data/lib/templates/styles/roundedbox/roundedbox_ro.gif +0 -0
  84. data/lib/templates/styles/roundedbox/roundedbox_ru.gif +0 -0
  85. data/lib/templates/styles/roundedbox/style.css +70 -0
  86. data/lib/templates/styles/shadow/lo.gif +0 -0
  87. data/lib/templates/styles/shadow/lu.gif +0 -0
  88. data/lib/templates/styles/shadow/ro.gif +0 -0
  89. data/lib/templates/styles/shadow/ru.gif +0 -0
  90. data/lib/templates/styles/shadow/style.css +63 -0
  91. data/test/file_info_test.rb +117 -0
  92. data/test.rb +8 -0
  93. data/web/IMAGE_PROCESSING.txt +53 -0
  94. data/web/INSTALL.txt +74 -0
  95. data/web/extern.gif +0 -0
  96. data/web/ftp-browser.png +0 -0
  97. data/web/index-de.html +60 -0
  98. data/web/index.html +57 -0
  99. data/web/piggy.png +0 -0
  100. data/web/style.css +14 -0
  101. metadata +177 -0
@@ -0,0 +1,64 @@
1
+ body {
2
+ color: #FFFFFF;
3
+ background:black;
4
+ }
5
+
6
+ body.thumbs {
7
+ text-align: center;
8
+ }
9
+
10
+ a:link {
11
+ color: #FFFF00;
12
+ text-decoration: underline;
13
+ }
14
+
15
+ a:visited {
16
+ color: #FFFF00;
17
+ text-decoration: underline;
18
+ }
19
+
20
+ a:hover {
21
+ color: #AAAAAA;
22
+ text-decoration: underline;
23
+ }
24
+
25
+ a:active {
26
+ color: #FFFF00;
27
+ text-decoration: none;
28
+ }
29
+
30
+ dl {
31
+ max-width: 600px;
32
+ }
33
+
34
+ /* no max-width in IE < 7 */
35
+ * html dl {
36
+ width: 600px;
37
+ }
38
+
39
+ dd {
40
+ margin:0;
41
+ padding: 0;
42
+ width: 110px;
43
+ height: 114px;
44
+ float: left;
45
+ vertical-align: top;
46
+ text-align: center;
47
+ }
48
+
49
+ img {
50
+ border-style: none
51
+ }
52
+
53
+ div {
54
+ margin:0;
55
+ }
56
+
57
+ .thumb {
58
+ margin:0;
59
+ }
60
+
61
+ .thumb p {
62
+ margin:0;
63
+ padding:0;
64
+ }
@@ -0,0 +1,70 @@
1
+ body {
2
+ background-color:#F1EDCF;
3
+ }
4
+
5
+ body.thumbs {
6
+ text-align: center;
7
+ }
8
+
9
+ h1,h2,h3 {
10
+ color:#667553;
11
+ }
12
+
13
+ dl {
14
+ margin-left: auto;
15
+ margin-right: auto;
16
+ max-width: 600px;
17
+ }
18
+
19
+ /* no max-width in IE < 7 */
20
+ * html dl {
21
+ width: 600px;
22
+ }
23
+
24
+ dd {
25
+ margin:0;
26
+ padding: 0;
27
+ width: 130px;
28
+ height: 130px;
29
+ float: left;
30
+ vertical-align: top;
31
+ text-align: center;
32
+ }
33
+
34
+ div {
35
+ margin:0;
36
+ }
37
+
38
+ .preview {
39
+ background:url(roundedbox_ro.gif) top right no-repeat;
40
+ }
41
+
42
+ .thumb {
43
+ margin:0;
44
+ background:url(roundedbox_lo.gif) top left no-repeat;
45
+ }
46
+
47
+ .thumb p {
48
+ margin:0;
49
+ padding:0;
50
+ background:url(roundedbox_ru.gif) bottom right no-repeat;
51
+ }
52
+
53
+ .thumb p a {
54
+ display: block;
55
+ background:url(roundedbox_lu.gif) bottom left no-repeat;
56
+ padding: 6px 20px 20px 6px;
57
+ }
58
+
59
+ img {
60
+ border:none;
61
+ }
62
+
63
+ .image_page img {
64
+ max-width: 100%;
65
+ }
66
+
67
+ /* IE 6 image height */
68
+ * html .thumb p a {
69
+ padding-bottom: 16px;
70
+ }
Binary file
Binary file
Binary file
Binary file
@@ -0,0 +1,63 @@
1
+ body.thumbs {
2
+ text-align: center;
3
+ }
4
+
5
+ div {
6
+ margin:0;
7
+ }
8
+
9
+ dl {
10
+ margin-left: auto;
11
+ margin-right: auto;
12
+ max-width: 600px;
13
+ }
14
+
15
+ /* no max-width in IE < 7 */
16
+ * html dl {
17
+ width: 600px;
18
+ }
19
+
20
+ dd {
21
+ margin:0;
22
+ padding: 0;
23
+ width: 110px;
24
+ height: 114px;
25
+ float: left;
26
+ vertical-align: top;
27
+ text-align: center;
28
+ }
29
+
30
+ .preview {
31
+ background:url(ro.gif) top right no-repeat;
32
+ }
33
+
34
+ .thumb {
35
+ background:url(lo.gif) top left no-repeat;
36
+ }
37
+
38
+ .thumb p {
39
+ margin:0;
40
+ padding:0;
41
+ background:url(ru.gif) bottom right no-repeat;
42
+ }
43
+
44
+ .thumb p a {
45
+ display: block;
46
+ background: url(lu.gif) bottom left no-repeat;
47
+ padding: 0px 9px 9px 0px;
48
+ }
49
+
50
+ .thumb p a img {
51
+ border:none;
52
+ }
53
+
54
+ .image_page img {
55
+ max-width: 100%;
56
+ }
57
+
58
+ /* IE 6 image height */
59
+ * html .thumb p a {
60
+ padding-bottom: 5px;
61
+ }
62
+
63
+
@@ -0,0 +1,117 @@
1
+ #!/usr/bin/ruby
2
+ #$Id: file_info_test.rb 130 2005-12-14 14:39:20Z Sascha $
3
+
4
+ require 'test/unit'
5
+ require 'piggy-core/file_info'
6
+
7
+ class FilePathTest < Test::Unit::TestCase
8
+ def test_internPath
9
+ assert_equal('C:/', FilePath.internPath('C:'))
10
+ assert_equal('C:/', FilePath.internPath("C:\\"))
11
+ assert_equal('C:/bla/bla', FilePath.internPath("C:\\bla\\bla"))
12
+ assert_equal('C:/bla/bla/', FilePath.internPath("C:\\bla\\bla\\"))
13
+
14
+ assert_equal('C:/bla/bla', FilePath.internPath("C:/bla/bla"))
15
+ assert_equal('/bla/bla', FilePath.internPath("/bla/bla"))
16
+ end
17
+
18
+ def test_join
19
+ assert_equal('/bla', FilePath.join('', '/bla'))
20
+ assert_equal('bla', FilePath.join('', 'bla'))
21
+ assert_equal('C:', FilePath.join('', 'C:'))
22
+ assert_equal('C:/', FilePath.join('', 'C:/'))
23
+
24
+ assert_equal('/bla', FilePath.join('/bla', ''))
25
+ assert_equal('bla', FilePath.join('bla', ''))
26
+ assert_equal('C:', FilePath.join('C:', ''))
27
+ assert_equal('C:/', FilePath.join('C:/', ''))
28
+
29
+ assert_equal('C:/bla', FilePath.join('C:', '/bla'))
30
+ assert_equal('C:/bla', FilePath.join('C:/', 'bla'))
31
+ assert_equal('C:/bla', FilePath.join('C:/', '/bla'))
32
+ assert_equal('/bla/bla', FilePath.join('/bla', 'bla'))
33
+ assert_equal('/bla/bla', FilePath.join('/bla', '/bla'))
34
+ end
35
+
36
+ def test_split
37
+ assert_equal(['C:', 'bla', 'bla'], FilePath.split('C:/bla/bla'))
38
+ end
39
+
40
+ def test_oneDirUp
41
+ assert_equal(['C:', 'bla', 'bla'], FilePath.split('C:/bla/bla'))
42
+ end
43
+ end
44
+
45
+ class FileNameTest < Test::Unit::TestCase
46
+ def test_c_bla_bla_bla
47
+ fn = FileName.new('bla')
48
+ fn.path = "C:\\bla\\bla"
49
+ assert_equal('C:/bla/bla/bla', fn.nameWithPath)
50
+ assert_equal(['C:', 'bla', 'bla'], fn.pathSections)
51
+ end
52
+ end
53
+
54
+ class FileInfoTest < Test::Unit::TestCase
55
+ def test_c_bla_bla_bla
56
+ fn = FileInfo.new('bla')
57
+ fn.path = "C:\\bla\\bla"
58
+ assert_equal('C:/bla/bla/bla', fn.nameWithPath)
59
+ assert_equal(['C:', 'bla', 'bla'], fn.pathSections)
60
+ end
61
+
62
+ def test_directory
63
+ fn = FileInfo.new('bla')
64
+ assert(!fn.directory?)
65
+ fn.directory!
66
+ assert(fn.directory?)
67
+ end
68
+ end
69
+
70
+ class DirectoryContentsTest < Test::Unit::TestCase
71
+ def test_initialize
72
+ to = DirectoryContents.new('bla')
73
+ assert_equal([], to.keys)
74
+ end
75
+
76
+ def test_directoriesAndFiles
77
+ to = DirectoryContents.new('bla')
78
+ fnDir = FileInfo.new('blubbDir')
79
+ fnDir.directory!
80
+ fn = FileInfo.new('blubb')
81
+ to.add(fnDir)
82
+ to.add(fn)
83
+ assert_equal(['blubbDir'], to.directories)
84
+ assert_equal(['blubb'], to.files)
85
+ assert_equal(['blubb', 'blubbDir'], to.keys)
86
+ end
87
+
88
+ def test_duplicates
89
+ to = DirectoryContents.new('bla')
90
+ fn = FileInfo.new('blubb')
91
+ fnDir = fn.clone
92
+ fnDir.directory!
93
+ to.add(fn)
94
+ to.add(fnDir)
95
+ assert_equal(['blubb'], to.directories)
96
+ assert_equal([], to.files)
97
+ assert_equal(['blubb'], to.keys)
98
+ end
99
+ end
100
+
101
+ class FileRepositoryTest < Test::Unit::TestCase
102
+ def test_smokeTest
103
+ to = FileRepository.new
104
+ infArray = Array.new
105
+ infArray.push(FileInfo.new('dir1', 'f'))
106
+ infArray.push(FileInfo.new('dir2', 'f'))
107
+ infArray.push(FileInfo.new('dir2', 'f'))
108
+ infArray.push(FileInfo.new('dir', 'f2'))
109
+ (0..3).each { |i|
110
+ infArray[i].size = i + 1
111
+ to.add(infArray[i])
112
+ }
113
+ assert_equal(infArray[2], to.get(FileName.new('dir2', 'f')))
114
+ assert_equal(4, to.get(FileName.new('dir', 'f2')).size)
115
+ end
116
+ end
117
+
data/test.rb ADDED
@@ -0,0 +1,8 @@
1
+ require 'test/unit'
2
+
3
+ Dir.glob("test/*.rb").collect { |f|
4
+ f[0..-4]
5
+ }.each { |test|
6
+ puts test
7
+ require test
8
+ }
@@ -0,0 +1,53 @@
1
+ Piggy is capable of building thumbnail all by using plain Ruby and FXRuby but you might
2
+ want to increase the quality of the result by switching options and make Piggy use
3
+ one of the following tools:
4
+ - RMagick
5
+ - Nconvert (the batch processing application of the great image converter XNview)
6
+
7
+ *** RMagick
8
+
9
+ Homepage: http://rubyforge.org/projects/rmagick/
10
+
11
+ Installation on Windows:
12
+
13
+ This is, what worked for me:
14
+ 1. Download binary distribution.
15
+ 2. Unpack e. g. into something like F:\transfer
16
+ 3. Open console window on the RMagick-Folder
17
+
18
+ Now the gem installation and postinstall:
19
+ >>
20
+ F:\transfer\RMAGIC~1.3-W>gem install RMagick-win32-1.9.2-mswin32.gem
21
+ Attempting local installation of 'RMagick-win32-1.9.2-mswin32.gem'
22
+ Successfully installed RMagick-win32, version 1.9.2
23
+
24
+ F:\transfer\RMAGIC~1.3-W>postinstall
25
+ RMagick 1.9.2 win32 Post Installation (see enclosed README for license informati
26
+ on)
27
+ detecting available fonts, writing to config/type-windows.xml...Warning: Ignored
28
+ file c:/winnt/fonts/micross.ttf, exception occurred.
29
+ Warning: Ignored file c:/winnt/fonts/MICN__DB.TTF, exception occurred.
30
+ [...]
31
+ Warning: Ignored file c:/winnt/fonts/21205___.TTF, exception occurred.
32
+ ok.
33
+ setting MAGICK_CONFIGURE_PATH to 'E:/ruby/lib/ruby/gems/1.8/gems/RMagick-win32-1
34
+ .9.2-mswin32/config'.
35
+ setting is only for current user.
36
+ Copying 5 dlls to E:/ruby/bin...done.
37
+ all done.
38
+ <<
39
+
40
+ Installation on Linux is most easy if you run a Debian flavoured Linux: Simply
41
+ download and install the Debian package.
42
+
43
+
44
+ *** NConvert
45
+
46
+ Homepage: http://perso.wanadoo.fr/pierre.g/xnview/en_nconvert.html
47
+
48
+ Installation on Windows:
49
+
50
+ Copy nconvert.exe into a directory of your choice which is part of the PATH variable, e. g
51
+ into C:\ruby\bin.
52
+
53
+ For Linux there are RPM packages availiable.
data/web/INSTALL.txt ADDED
@@ -0,0 +1,74 @@
1
+ ------------------
2
+ Piggy Installation
3
+ ------------------
4
+
5
+ Installation depends on operation system and ruby version.
6
+
7
+ Intallation includes the following applications
8
+ - piggy
9
+ - directory_diff
10
+ - ftp_browser
11
+
12
+ ------------------
13
+ Windows NT/2000/XP
14
+ ------------------
15
+
16
+ You might be using the Ruby Windows Installer, so you
17
+ probably have FXRuby and most of the other required libraries
18
+ installed on your system.
19
+
20
+ Continue with the gem installation.
21
+
22
+ ------------
23
+ Debian Linux
24
+ ------------
25
+
26
+ Use any package manager you like (apt, aptitude, kpackage,...)
27
+ to install the following debian packages:
28
+
29
+ libruby
30
+ libyaml-ruby
31
+ libzlib-ruby
32
+ rdoc
33
+
34
+ Install FXRuby.
35
+
36
+ There is a gem availiable but I recommend that you use a debian package
37
+ instead. You'll have to add the following lines to the sources.list:
38
+
39
+ >>
40
+ # FreeRIDE
41
+ deb http://freeride.rubyforge.org/debian/ deb/
42
+ deb-src http://freeride.rubyforge.org/debian/ src/
43
+ <<
44
+
45
+ (You may do this via the graphical user interface provided by kpackage.
46
+ Don't forget to update the apt package list afterwards.)
47
+
48
+ Continue with the gem installation.
49
+
50
+ ----------------
51
+ Gem installation
52
+ ----------------
53
+
54
+ It's quite obvious that you'll need RubyGems to be installed
55
+ for this. It is packaged with actual windows installer versions.
56
+ On other systems you'll have to download and install it yourself
57
+ but installation is pretty easy, RubyGems comes with an install.rb
58
+ script.
59
+
60
+ You can now install piggy with the gem install command
61
+
62
+ gem install Piggy-x.x.x.x.gem
63
+
64
+ where x.x.x.x is a
65
+ placeholder for the downloaded version of Piggy.
66
+
67
+ (Note that for now the gem command won't check if
68
+ FXRuby is installed on your system.)
69
+
70
+ Gem installation might fail if you don't have the rights
71
+ to write the gem directories. You'll need to become root/admin
72
+ to get rid of these errors.
73
+
74
+
data/web/extern.gif ADDED
Binary file
Binary file
data/web/index-de.html ADDED
@@ -0,0 +1,60 @@
1
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2
+ <html>
3
+ <head>
4
+ <title>Piggy</title>
5
+ <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
6
+ <meta name="author" content="Sascha Doerdelmann">
7
+ <link rel="stylesheet" type="text/css" href="style.css">
8
+ </head>
9
+ <body>
10
+ <h1>Piggy</h1>
11
+ <div class="languages"><a href="index.html">englisch (english)</a>
12
+ </div>
13
+ <div class="content">
14
+ <p>Am Anfang habe ich die Bildseiten h&auml;ndisch mit Hilfe von <a
15
+ class="extern" href="http://perso.wanadoo.fr/pierre.g/" title="XNview">XNview</a>
16
+ und einiger selbstgestrickter Unix-Scripte erstellt. Inzwischen habe ich
17
+ mir ein kleines Ruby-Programm geschrieben. Dies erm&ouml;glicht eine
18
+ komfortable Bildauswahl, generiert die Seiten auf Knopfdruck und hat
19
+ einen rudiment&auml;ren FTP-Browser f&uuml;r das Hochladen in's Netz integriert.</p>
20
+ <p>Im Bildbetrachter k&ouml;nnen Bilder angesehen und ausgew&auml;hlt werden.
21
+ Die jeweils angeklickte Bilddatei ist im Mittelteil des Fensters zu
22
+ sehen. Jetzt kann man entscheiden, ob es im Album enthalten sein soll:
23
+ <ul>
24
+ <li>Beim Wechsel in ein anderes Verzeichnis wird die aktuelle
25
+ Auswahl verworfen und durch die Bilddateien im neu gew&auml;hlten Verzeichns
26
+ ersetzt.</li>
27
+ <li>&Uuml;ber die Schaltfl&auml;che &quot;-&quot; lassen sich Bilder aus dem
28
+ Album l&ouml;schen. Dabei wird nicht das Bild selbst gel&ouml;scht.</li>
29
+ <li>Analog f&uuml;gt man &uuml;ber die Schaltfl&auml;che &quot;+&quot; das
30
+ aktuelle Bild dem Album zu.</li>
31
+ </ul>
32
+ <p>Man kann &uuml;ber Pfeiltasten durch die gew&auml;hlten Bilder bl&auml;ttern, um
33
+ sicher zu gehen, dass das Album nur Bilder enth&auml;lt, die man wirklich
34
+ ver&ouml;ffentlichen m&ouml;chte. Es gibt auch eine Vorschau. Diese l&auml;sst sich
35
+ &uuml;ber den Optionen-Dialog aktivieren. Die Vorschau verlangsamt allerdings
36
+ Verzeichniswechsel deutlich.</p>
37
+ <p>Das jeweils aktuelle Bilde kann gedreht und unter neuem Namen
38
+ gespeichert werden. Beim Drehen verringert sich etwas die Bildqualit&auml;t,
39
+ man sollte also das Original aufbewahren.</p>
40
+ <p>Um das so vorbereitete Album zu erzeugen klickt man auf die
41
+ Schaltfl&auml;che &quot;HTML&quot;. Es &ouml;ffnet sich ein Eingabefenster. Dort
42
+ w&auml;hlt man einen Seitentitel und den Namen f&uuml;r ein noch nicht
43
+ vorhandenes(!), unter C:\temp\bild zu erstellendes Unterverzeichnis.
44
+ Nach dem &quot;Accept&quot; werden die ausgew&auml;hlten Bilder kopiert,
45
+ verkleinert und evtl. in einen anderen Dateityp konvertiert oder
46
+ nachgesch&auml;rft. Index, Frameseite und Bilder&uuml;bersicht werden neu
47
+ erstellt, die Navigationsseite aktualisiert.</p>
48
+ <ul>
49
+ <li>Screenshots: <a href="piggy.png">piggy</a>, <a
50
+ href="ftp-browser.png">ftp-browser</a></li>
51
+ <li><a href="INSTALL.txt">Installationsanweisung (englisch)</a></li>
52
+ <li><a class="extern"
53
+ href="http://www.gnu.de/documents/gpl.de.html">Lizenz (GPL)</a></li>
54
+ <li>Download, Newsfeed, Bugtracker und mehr:
55
+ <a href="http://rubyforge.org/projects/piggy/">Rubyforge: Piggy</a></li>
56
+ <li><a href="http://sourceforge.net/projects/piggy/">&Auml;ltere Versionen</a></li>
57
+ </ul>
58
+ </div>
59
+ </body>
60
+ </html>
data/web/index.html ADDED
@@ -0,0 +1,57 @@
1
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Strict//EN">
2
+ <html>
3
+ <head>
4
+ <title>Piggy</title>
5
+ <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
6
+ <meta name="author" content="Sascha Doerdelmann">
7
+ <link href="style.css" rel="stylesheet" type="text/css">
8
+ </head>
9
+ <body>
10
+ <h1>Piggy</h1>
11
+ <div class="languages"><a href="index-de.html">german
12
+ (deutsch)</a></div>
13
+ <div class="content">
14
+ <p>In the beginning I created internet picture albums step by step
15
+ using <a class="extern" href="http://perso.wanadoo.fr/pierre.g/"
16
+ title="XNview">XNview</a> and some quick and dirty Unix
17
+ scripts.Meanwhile I wrote a little Ruby program. This allows a
18
+ comfortable selection of pictures, generates web pages and includes a
19
+ very basic FTP browser which can be used to upload the album to the
20
+ webspace of your choice.</p>
21
+ <p>The main view of the application is a kind of image viewer.
22
+ Select an image file and it will be shown in the middle frame of the
23
+ application. You may decide if you want this image to be included in the
24
+ internet picture album:
25
+ <ul>
26
+ <li>Changing the directory will clear the list of chosen images
27
+ and choose all image files found in the actual folder.</li>
28
+ <li>Remove images with the button &quot;-&quot;.</li>
29
+ <li>Add images with the button &quot;+&quot;.</li>
30
+ </ul>
31
+ <p>Step through the chosen images with the next and previous buttons
32
+ to be sure that only images you really want to publish are chosen. You
33
+ can also enable a preview table on the right side but image loading into
34
+ the preview will slow down directory changes.</p>
35
+ <p>You may rotate the currently shown image and then save it under a
36
+ new name. Rotation will introduce a loss in quality which is acceptable
37
+ for the internet picture album but please, keep the original image.</p>
38
+ <p>Html-generation is done by clicking the generation button. You'll
39
+ be prompted for page title, destination path and a name for a
40
+ subdirectory. Piggy will create two resized copies of every preselected
41
+ image into the subdirectory of the destination and html-pages to show
42
+ them.</p>
43
+ <ul>
44
+ <li>Screenshots: <a href="piggy.png">piggy</a>, <a
45
+ href="ftp-browser.png">ftp-browser</a></li>
46
+ <li><a href="INSTALL.txt">How to install</a></li>
47
+ <li><a class="extern" href="http://www.gnu.org/licenses/gpl.html">Licence
48
+ (GPL)</a></li>
49
+ <li>Download, Newsfeed, Bugtracker and more:
50
+ <a href="http://rubyforge.org/projects/piggy/">Rubyforge: Piggy</a></li>
51
+ <li><a href="http://sourceforge.net/projects/piggy/">Older releases</a></li>
52
+ <li><a href="IMAGE_PROCESSING.txt">Further notes on image
53
+ processing tools</a></li>
54
+ </ul>
55
+ </div>
56
+ </body>
57
+ </html>
data/web/piggy.png ADDED
Binary file
data/web/style.css ADDED
@@ -0,0 +1,14 @@
1
+ body{
2
+ background:aliceblue
3
+ }
4
+
5
+ .extern{
6
+ background:transparent url(extern.gif) no-repeat center left;
7
+ padding-left:12px;
8
+ }
9
+
10
+ .languages{
11
+ position:absolute;
12
+ top:10px;
13
+ right:10px;
14
+ }