-
Notifications
You must be signed in to change notification settings - Fork 0
/
README
103 lines (88 loc) · 2.5 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
urchin-fs
=========
**in-progress**
A FUSE-based filesystem which reads arbitrary metadata
and presents a faceted-search-style view on the containing directories.
Motivation
----------
Media file organization: id3 is insufficient for correctly organized
mp3 collections, video/media collections have no such standard.
Most media management programs organize only files, but the logical
unit of organization is the *directory*, not the file. An "album"
may contain mp3/flac/ogg files, cover/cd scans, text files, etc. A
"movie" may contain multiple video files, samples, subtitles, cover
scans, etc.
Usage
-----
urchin-fs supports filtering on multiple facets, where the result is
entries which match all given facets. Facets are nested in a `^`
directory, where `^` is the symbol for the
[AND](http://en.wikipedia.org/wiki/Logical_conjunction) operation.
```
$ ls -1 example/
^
Easter Parade (1948, color)
Kiss Me Deadly (1955, bw)
The Lady Vanishes (1938, bw)
The Naked City (1948, bw)
$ ls -1 example/^/
color
year
$ ls -1 example/^/year/1948/
^
+
Easter Parade (1948, color)
The Naked City (1948, bw)
$ ls -1 example/^/year/1948/^/color/bw/
^
+
Easter Parade (1948, color)
The Naked City (1948, bw)
```
Each facet can be specified with multiple values, where the results
have one of these values. Values are nested in a `+` directory,
where `+` is the symbol for the
[OR](http://en.wikipedia.org/wiki/Logical_disjunction) operation.
(`v` was not used since it would be sorted as a letter, `∨`
([vel](http://en.wikipedia.org/wiki/Vel_%28symbol%29)) was not used
since it cannot easily be typed on an average keyboard, and `|` was
not used since it has special meaning on the command line).
```
$ ls -1 example/
^
Easter Parade (1948, color)
Kiss Me Deadly (1955, bw)
The Lady Vanishes (1938, bw)
The Naked City (1948, bw)
$ ls -1 example/^/year/
1938
1948
1955
$ ls -1 example/^/year/1948/
^
+
Easter Parade (1948, color)
The Naked City (1948, bw)
$ ls -1 example/^/year/1948/+/1955/
^
+
Easter Parade (1948, color)
Kiss Me Deadly (1955, bw)
The Naked City (1948, bw)
```
Originally, urchin-fs prefixed its facets with `+` and used `+OR` for
providing additional values, but
[UTF-8 collation rules](http://unicode.org/reports/tr10/#Multi_Level_Comparison)
ignore punctuation in the first sorting stage, which resulted in the
facets being mixed in with the directory listings.
Installation
------------
```
sudo apt-get install fuse libfuse-dev python-fuse python-mutagen
```
```
pip install inotify
```
```
python setup.py sdist
```