doh
[mediagoblin-stock:mediagoblin-hidden_original.git] / README.rst
1 =================
2  Hidden Original
3 =================
4
5 This plugin stashes away the original file, and uses a downsized one
6 as the `original` for mediagoblins purposes. The full size original is
7 available in the media entry field `hidden_original`.
8
9 The hidden original gets a non-guessable path (currently using
10 python's `uuid.uuid4()` to generate it). If you're using SSL, this
11 should keep your original files well hidden.
12
13 This plugin is licensed under the GNU APGL v3+.
14
15 Currently requires a patched mediagoblin to make it run image
16 preprocessing hooks, check out branch `stock` of
17 https://gitorious.org/mediagoblin-stock/mediagoblin
18
19 Installation
20 ============
21
22 If you've checked out this plugin and mediagoblin in the same parent
23 directory, you should be able to build and install with
24
25     ../mediagoblin/bin/python setup.py build
26     ../mediagoblin/bin/python setup.py install
27
28 Tests
29 =====
30
31 After installing, run the built-in unit tests by invoking `python2
32 setup.py test` in the root directory. The tests require an installed
33 version of GNU MediaGoblin to be available for importing. If you've
34 checked out this plugin and mediagoblin in the same parent directory,
35 you should be able to run
36
37     ../mediagoblin/bin/python setup.py test
38
39 TODO
40 ====
41
42 - Functions to re-create the secret urls (mv the file from the old
43   secret url to a new randomly created one). One function for a
44   particular entry, one that does it for all of them.
45
46 - *Long term*: The hidden original should probably be completely
47   inaccessible by default (in some "private_storage"?); and there
48   should be a function `reveal_hidden(entry)` which makes the original
49   accessible through some secret url for sharing that original, and
50   another function `revoke_revelation(secret_url)` to revoke a
51   particular share. One entry should be able to have several such
52   published secret urls, so a user can share with otheruser1 and
53   otheruser2, one url each, and then e.g. revoke the first url without
54   the second one being revoked as well.