Mercurial > libervia-backend
annotate sat/tools/common/files_utils.py @ 2816:114cdde9ff96
plugin XEP-0280: priority and "sent" fixes:
- carbon prioriy must be bigger than ones of encryption plugins, because the carbon copied messages must be unwrapped to be decrypted, this patch fixes it
- "sent" carbon elements was only stored and notified to frontends, it is now unwrapped and injected in normal traffic, this way other plugin can manage it, in particular encrypted elements can be decrypted
author | Goffi <goffi@goffi.org> |
---|---|
date | Thu, 28 Feb 2019 18:57:06 +0100 |
parents | 003b8b4b56a7 |
children | ab2696e34d29 |
rev | line source |
---|---|
2593
d78eff6b4487
tools (common): new files_utils module:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
1 #!/usr/bin/env python2 |
d78eff6b4487
tools (common): new files_utils module:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
2 # -*- coding: utf-8 -*- |
d78eff6b4487
tools (common): new files_utils module:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
3 |
d78eff6b4487
tools (common): new files_utils module:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
4 # SAT: a jabber client |
2771 | 5 # Copyright (C) 2009-2019 Jérôme Poisson (goffi@goffi.org) |
2593
d78eff6b4487
tools (common): new files_utils module:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
6 |
d78eff6b4487
tools (common): new files_utils module:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
7 # This program is free software: you can redistribute it and/or modify |
d78eff6b4487
tools (common): new files_utils module:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
8 # it under the terms of the GNU Affero General Public License as published by |
d78eff6b4487
tools (common): new files_utils module:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
9 # the Free Software Foundation, either version 3 of the License, or |
d78eff6b4487
tools (common): new files_utils module:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
10 # (at your option) any later version. |
d78eff6b4487
tools (common): new files_utils module:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
11 |
d78eff6b4487
tools (common): new files_utils module:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
12 # This program is distributed in the hope that it will be useful, |
d78eff6b4487
tools (common): new files_utils module:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
13 # but WITHOUT ANY WARRANTY; without even the implied warranty of |
d78eff6b4487
tools (common): new files_utils module:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
d78eff6b4487
tools (common): new files_utils module:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
15 # GNU Affero General Public License for more details. |
d78eff6b4487
tools (common): new files_utils module:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
16 |
d78eff6b4487
tools (common): new files_utils module:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
17 # You should have received a copy of the GNU Affero General Public License |
d78eff6b4487
tools (common): new files_utils module:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
18 # along with this program. If not, see <http://www.gnu.org/licenses/>. |
d78eff6b4487
tools (common): new files_utils module:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
19 |
d78eff6b4487
tools (common): new files_utils module:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
20 """tools to help manipulating files""" |
d78eff6b4487
tools (common): new files_utils module:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
21 import os.path |
d78eff6b4487
tools (common): new files_utils module:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
22 |
d78eff6b4487
tools (common): new files_utils module:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
23 |
d78eff6b4487
tools (common): new files_utils module:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
24 def get_unique_name(path): |
d78eff6b4487
tools (common): new files_utils module:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
25 """generate a path with a name not conflicting with existing file |
d78eff6b4487
tools (common): new files_utils module:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
26 |
d78eff6b4487
tools (common): new files_utils module:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
27 @param path(unicode): path to the file to create |
d78eff6b4487
tools (common): new files_utils module:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
28 @return (unicode): unique path (can be the same as path if there is not conflict) |
d78eff6b4487
tools (common): new files_utils module:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
29 """ |
d78eff6b4487
tools (common): new files_utils module:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
30 ori_path = path |
d78eff6b4487
tools (common): new files_utils module:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
31 idx = 1 |
d78eff6b4487
tools (common): new files_utils module:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
32 while os.path.exists(path): |
2624
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2593
diff
changeset
|
33 path = ori_path + u"_" + unicode(idx) |
2593
d78eff6b4487
tools (common): new files_utils module:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
34 idx += 1 |
d78eff6b4487
tools (common): new files_utils module:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
35 return path |