author | Radek Brich <radek.brich@devl.cz> |
Mon, 19 Aug 2013 16:32:33 +0200 | |
changeset 10 | 51b7e98e1f41 |
parent 1 | ee31f1bf17c1 |
permissions | -rw-r--r-- |
1
ee31f1bf17c1
Add ansicolor, prettysize, makeurl and README.
Radek Brich <radek.brich@devl.cz>
parents:
diff
changeset
|
1 |
from unicodedata import normalize, combining |
ee31f1bf17c1
Add ansicolor, prettysize, makeurl and README.
Radek Brich <radek.brich@devl.cz>
parents:
diff
changeset
|
2 |
|
ee31f1bf17c1
Add ansicolor, prettysize, makeurl and README.
Radek Brich <radek.brich@devl.cz>
parents:
diff
changeset
|
3 |
|
ee31f1bf17c1
Add ansicolor, prettysize, makeurl and README.
Radek Brich <radek.brich@devl.cz>
parents:
diff
changeset
|
4 |
def uncombine(text): |
ee31f1bf17c1
Add ansicolor, prettysize, makeurl and README.
Radek Brich <radek.brich@devl.cz>
parents:
diff
changeset
|
5 |
return ''.join([c for c in normalize('NFKD', text) if not combining(c)]) |
ee31f1bf17c1
Add ansicolor, prettysize, makeurl and README.
Radek Brich <radek.brich@devl.cz>
parents:
diff
changeset
|
6 |
|
ee31f1bf17c1
Add ansicolor, prettysize, makeurl and README.
Radek Brich <radek.brich@devl.cz>
parents:
diff
changeset
|
7 |
|
ee31f1bf17c1
Add ansicolor, prettysize, makeurl and README.
Radek Brich <radek.brich@devl.cz>
parents:
diff
changeset
|
8 |
def makeurl(title): |
ee31f1bf17c1
Add ansicolor, prettysize, makeurl and README.
Radek Brich <radek.brich@devl.cz>
parents:
diff
changeset
|
9 |
norm = uncombine(title) |
ee31f1bf17c1
Add ansicolor, prettysize, makeurl and README.
Radek Brich <radek.brich@devl.cz>
parents:
diff
changeset
|
10 |
url = norm.lower() |
ee31f1bf17c1
Add ansicolor, prettysize, makeurl and README.
Radek Brich <radek.brich@devl.cz>
parents:
diff
changeset
|
11 |
url = url.replace(' ', '-') |
ee31f1bf17c1
Add ansicolor, prettysize, makeurl and README.
Radek Brich <radek.brich@devl.cz>
parents:
diff
changeset
|
12 |
url = url.replace('.', '-') |
ee31f1bf17c1
Add ansicolor, prettysize, makeurl and README.
Radek Brich <radek.brich@devl.cz>
parents:
diff
changeset
|
13 |
url = url.replace(':', '-') |
ee31f1bf17c1
Add ansicolor, prettysize, makeurl and README.
Radek Brich <radek.brich@devl.cz>
parents:
diff
changeset
|
14 |
url = url.replace('\'', '') |
ee31f1bf17c1
Add ansicolor, prettysize, makeurl and README.
Radek Brich <radek.brich@devl.cz>
parents:
diff
changeset
|
15 |
url = url.replace('(', '') |
ee31f1bf17c1
Add ansicolor, prettysize, makeurl and README.
Radek Brich <radek.brich@devl.cz>
parents:
diff
changeset
|
16 |
url = url.replace(')', '') |
ee31f1bf17c1
Add ansicolor, prettysize, makeurl and README.
Radek Brich <radek.brich@devl.cz>
parents:
diff
changeset
|
17 |
url = url.replace('\"', '') |
ee31f1bf17c1
Add ansicolor, prettysize, makeurl and README.
Radek Brich <radek.brich@devl.cz>
parents:
diff
changeset
|
18 |
url = url.replace('?', '') |
ee31f1bf17c1
Add ansicolor, prettysize, makeurl and README.
Radek Brich <radek.brich@devl.cz>
parents:
diff
changeset
|
19 |
url = url.strip('-') |
ee31f1bf17c1
Add ansicolor, prettysize, makeurl and README.
Radek Brich <radek.brich@devl.cz>
parents:
diff
changeset
|
20 |
url = url.replace('--', '-') |
ee31f1bf17c1
Add ansicolor, prettysize, makeurl and README.
Radek Brich <radek.brich@devl.cz>
parents:
diff
changeset
|
21 |
url = url.replace('--', '-') |
ee31f1bf17c1
Add ansicolor, prettysize, makeurl and README.
Radek Brich <radek.brich@devl.cz>
parents:
diff
changeset
|
22 |
return url |
ee31f1bf17c1
Add ansicolor, prettysize, makeurl and README.
Radek Brich <radek.brich@devl.cz>
parents:
diff
changeset
|
23 |
|
ee31f1bf17c1
Add ansicolor, prettysize, makeurl and README.
Radek Brich <radek.brich@devl.cz>
parents:
diff
changeset
|
24 |
|
ee31f1bf17c1
Add ansicolor, prettysize, makeurl and README.
Radek Brich <radek.brich@devl.cz>
parents:
diff
changeset
|
25 |
def fix_unicode_chars(text): |
ee31f1bf17c1
Add ansicolor, prettysize, makeurl and README.
Radek Brich <radek.brich@devl.cz>
parents:
diff
changeset
|
26 |
# replace latin2-unencodable chars with their escape codes |
ee31f1bf17c1
Add ansicolor, prettysize, makeurl and README.
Radek Brich <radek.brich@devl.cz>
parents:
diff
changeset
|
27 |
return unicode(text.encode('iso-8859-2', 'backslashreplace').replace('\\x','#'), 'iso-8859-2') |
ee31f1bf17c1
Add ansicolor, prettysize, makeurl and README.
Radek Brich <radek.brich@devl.cz>
parents:
diff
changeset
|
28 |