This repository has been archived by the owner on Feb 24, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
README
171 lines (119 loc) · 5.83 KB
/
README
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
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
Exhibit by Robert Pufky (github.com/r-pufky):
------------------------------------------------------
Exhibit allows you to export your iPhoto Library meta-data to a SQL database, as
well optionally uploading all of the photos contained within the library VIA
rsync over SSH. The meta-data uploaded includes comments, ratings, modification
dates, rolls (events), captions, keywords, filters, and much, much more.
This is a developers tool and not an end-user product. If you are looking for a
open-box solution, this is not it. Use .MAC. This program is for those people
(like me) who love iPhoto, but use Gallery or another media manager on their own
web servers.
This program was constructed with expandability and portability in mind. This
should be cross platform (i.e. if you want to process your AlbumData.xml files
on the server, etc); and cross-database. A template of the SQL connector used
in this program is provided for those who want to write a postgres SQL, or other
implementation. If you do, please contact me (github.com/r-pufky) and I
will add it to the package with full credit to you.
Latest information and version can be found at:
http://www.crazymonkies.com/projects.php?type=exhibit
Quick Instructions:
-------------------
- Extract files to desired location
- Edit exhibit.config
- ./exhibit -h (for options to use)
- Check further in this document for more usage information
Installation:
-------------
- Extract to any location you wish
- Edit exhibit.config for your specific options
- Read "Specific Configurations" section (below) for specific information on
setting up each type of module, with step-by-step instructions
- If you would like, you can symlink the executable to a directory in your path
allowing you to run the command from anywhere in the system:
ln -s [Exhibit Install Directory]/Exhibit.py [Directory In Your Path]/exhibit
Specific Configurations:
------------------------
- SQL user account permissions
The user account that Exhibit uses must have the following permissions on the
database that the account has access to:
update, insert, delete, select, create table, drop table, truncate table
- MySQLdb Module
This module is not included in the base leopard installation, and requires
compiling from source to include it in a Leopard python2.5 install.
Instructions on how to compile this for Leopard are located here:
./docs/mysql_setup.txt
- SqlTemplate.py:
This is a template created specifically for those developers that want to
write a SQL interface for a different server. More information can be found
in the template file, located here:
./docs/SqlTemplate.py
If you do make a module for a different SQL server, please e-mail me
(github.com/r-pufky) and I will include it in the next release of the
program, with full credit to you.
Usage:
------
First, although you should be able to run this while iPhoto is open, I would
recommend that you close iPhoto first; so that any changes that occur in iPhoto
are committed to the AlbumData file. This will minimize the risk of uploading
already stale data.
The easiest way to figure out how to use this program is by running the
following command in the Exhibit directory:
./exhibit --help
The most typical commands are as follows:
./exhibit -f
- force re-create remote SQL database, and exports encoded images to local
directory, copying the data. This is in the middle for performance, and
also requires at least the size of your iPhoto Library in free space to
export.
./exhibit -f -i
- force re-create remote SQL database, and exports encoded images to local
directory, using symlinks instead of moving data. This is by far the
fatest option, and allows you to move the encoded data anywhere you wish
In the setup that I run at home, I have created a cronjob that runs every night
running the following commands, which automatically updates my gallery with any
changes in my iPhotoLibrary:
exhibit -f -i
rsync --update --size-only --copy-unsafe-links --compress --recursive
--rsh='ssh -p 22' /tmp/exhibit/ myuser@myserver.example.com:/home/exhibit/
Thumbnails:
-----------
In case you are wondering, the iPhoto thumbnail sizes are a max of
- 360 pixels wide
- 360 pixels high
- If the main (Original) Image file is a video, the Thumbnail will be an image
Testing Environment:
--------------------
This code has been completely tested on the following setup:
- OS X Leopard (10.5.2)
- MySql Server 5.0.51a-osx10.5-x86
- Mysql-Python-1.2.2
- Debian etch, running MySql Server 5.0.32-7etch5
- All operations were executed on a remotely mounted filesystem, running gigabit
ethernet.
Though it has not been tested on older versions, it will most likely work with
them.
Performance:
------------
This has been tested against a 16,000 item iPhoto Library, containing images and
videos, all with associated keywords, special characters, ratings, comments,
etc.
Each command was tested on the same enviroment multiple times, clearing any data
before each run. All operations were executed on a remotely mounted filesystem,
running gigabit ethernet as the transport - numbers could be much faster if all
operations were executed locally.
exhibit -f -i:
2 minutes, 32 seconds
exhibit -f:
19 minutes, 29 seconds
Help! It's Not Working:
-----------------------
If it is not working, I'd like to know. I will need the following things to
help you get this working for yourself:
- Exhibit version (printed in help)
- Output from your run of Exhibit, will all error codes
- Versions and flavors of SQL server you are using
- Desktop and Server OS types
Mail to: github.com/r-pufky
If you cannot fit all of the information into one e-mail, just shoot me
multiples with the information attached. I will acknowledge your e-mail and
work on figuring out where it went wrong.