Mercurial > libervia-web
comparison src/pages/files/list/page_meta.py @ 1113:cdd389ef97bc
server: code style reformatting using black
author | Goffi <goffi@goffi.org> |
---|---|
date | Fri, 29 Jun 2018 17:45:26 +0200 |
parents | 2dab7692eae7 |
children |
comparison
equal
deleted
inserted
replaced
1112:f287fc8bb31a | 1113:cdd389ef97bc |
---|---|
8 from libervia.server import pages_tools | 8 from libervia.server import pages_tools |
9 from sat.core.log import getLogger | 9 from sat.core.log import getLogger |
10 from sat.tools.common import uri | 10 from sat.tools.common import uri |
11 import json | 11 import json |
12 import os | 12 import os |
13 log = getLogger('pages/files/list') | 13 |
14 log = getLogger("pages/files/list") | |
14 """files handling pages""" | 15 """files handling pages""" |
15 | 16 |
16 name = u'files_list' | 17 name = u"files_list" |
17 access = C.PAGES_ACCESS_PROFILE | 18 access = C.PAGES_ACCESS_PROFILE |
18 template = u"file/overview.html" | 19 template = u"file/overview.html" |
19 | 20 |
21 | |
20 def parse_url(self, request): | 22 def parse_url(self, request): |
21 self.getPathArgs(request, ['service', '*path'], min_args=1, service='jid', path='') | 23 self.getPathArgs(request, ["service", "*path"], min_args=1, service="jid", path="") |
24 | |
22 | 25 |
23 @defer.inlineCallbacks | 26 @defer.inlineCallbacks |
24 def prepare_render(self, request): | 27 def prepare_render(self, request): |
25 data = self.getRData(request) | 28 data = self.getRData(request) |
26 thumb_limit = data.get('thumb_limit', 300) | 29 thumb_limit = data.get("thumb_limit", 300) |
27 template_data = request.template_data | 30 template_data = request.template_data |
28 service, path_elts = data[u'service'], data[u'path'] | 31 service, path_elts = data[u"service"], data[u"path"] |
29 path = u'/'.join(path_elts) | 32 path = u"/".join(path_elts) |
30 profile = self.getProfile(request) or C.SERVICE_PROFILE | 33 profile = self.getProfile(request) or C.SERVICE_PROFILE |
31 | 34 |
32 files_data = yield self.host.bridgeCall('FISList', service.full(), path, {}, profile) | 35 files_data = yield self.host.bridgeCall("FISList", service.full(), path, {}, profile) |
33 for file_data in files_data: | 36 for file_data in files_data: |
34 try: | 37 try: |
35 extra_raw = file_data[u'extra'] | 38 extra_raw = file_data[u"extra"] |
36 except KeyError: | 39 except KeyError: |
37 pass | 40 pass |
38 else: | 41 else: |
39 file_data[u'extra'] = json.loads(extra_raw) if extra_raw else {} | 42 file_data[u"extra"] = json.loads(extra_raw) if extra_raw else {} |
40 dir_path = path_elts + [file_data['name']] | 43 dir_path = path_elts + [file_data["name"]] |
41 if file_data[u'type'] == C.FILE_TYPE_DIRECTORY: | 44 if file_data[u"type"] == C.FILE_TYPE_DIRECTORY: |
42 page = self | 45 page = self |
43 elif file_data[u'type'] == C.FILE_TYPE_FILE: | 46 elif file_data[u"type"] == C.FILE_TYPE_FILE: |
44 page = self.getPageByName('files_view') | 47 page = self.getPageByName("files_view") |
45 | 48 |
46 ## thumbnails ## | 49 ## thumbnails ## |
47 try: | 50 try: |
48 thumbnails = file_data[u'extra']['thumbnails'] | 51 thumbnails = file_data[u"extra"]["thumbnails"] |
49 if not thumbnails: | 52 if not thumbnails: |
50 raise KeyError | 53 raise KeyError |
51 except KeyError: | 54 except KeyError: |
52 pass | 55 pass |
53 else: | 56 else: |
54 thumbnails.sort(key = lambda t: t['size']) | 57 thumbnails.sort(key=lambda t: t["size"]) |
55 thumb = thumbnails[0] | 58 thumb = thumbnails[0] |
56 for thumb_data in thumbnails: | 59 for thumb_data in thumbnails: |
57 if thumb_data['size'][0] > thumb_limit: | 60 if thumb_data["size"][0] > thumb_limit: |
58 break | 61 break |
59 thumb = thumb_data | 62 thumb = thumb_data |
60 if u'url' in thumb: | 63 if u"url" in thumb: |
61 file_data['thumb_url'] = thumb['url'] | 64 file_data["thumb_url"] = thumb["url"] |
62 elif u'id' in thumb: | 65 elif u"id" in thumb: |
63 try: | 66 try: |
64 thumb_path = yield self.host.bridgeCall('bobGetFile', service.full(), thumb[u'id'], profile) | 67 thumb_path = yield self.host.bridgeCall( |
68 "bobGetFile", service.full(), thumb[u"id"], profile | |
69 ) | |
65 except Exception as e: | 70 except Exception as e: |
66 log.warning(_(u"Can't retrieve thumbnail: {reason}").format(reason=e)) | 71 log.warning( |
72 _(u"Can't retrieve thumbnail: {reason}").format(reason=e) | |
73 ) | |
67 else: | 74 else: |
68 filename = os.path.basename(thumb_path) | 75 filename = os.path.basename(thumb_path) |
69 session_data = self.host.getSessionData(request, session_iface.ISATSession) | 76 session_data = self.host.getSessionData( |
70 file_data['thumb_url'] = os.path.join(session_data.cache_dir, filename) | 77 request, session_iface.ISATSession |
78 ) | |
79 file_data["thumb_url"] = os.path.join( | |
80 session_data.cache_dir, filename | |
81 ) | |
71 else: | 82 else: |
72 raise ValueError(u'unexpected file type: {file_type}'.format(file_type=file_data[u'type'])) | 83 raise ValueError( |
73 file_data[u'url'] = page.getURL(service.full(), *dir_path) | 84 u"unexpected file type: {file_type}".format(file_type=file_data[u"type"]) |
85 ) | |
86 file_data[u"url"] = page.getURL(service.full(), *dir_path) | |
74 | 87 |
75 ## comments ## | 88 ## comments ## |
76 comments_url = file_data.get(u'comments_url') | 89 comments_url = file_data.get(u"comments_url") |
77 if comments_url: | 90 if comments_url: |
78 parsed_url = uri.parseXMPPUri(comments_url) | 91 parsed_url = uri.parseXMPPUri(comments_url) |
79 comments_service = file_data[u'comments_service'] = parsed_url['path'] | 92 comments_service = file_data[u"comments_service"] = parsed_url["path"] |
80 comments_node = file_data[u'comments_node'] = parsed_url['node'] | 93 comments_node = file_data[u"comments_node"] = parsed_url["node"] |
81 try: | 94 try: |
82 comments_count = file_data[u'comments_count'] = int(file_data['comments_count']) | 95 comments_count = file_data[u"comments_count"] = int( |
96 file_data["comments_count"] | |
97 ) | |
83 except KeyError: | 98 except KeyError: |
84 comments_count = None | 99 comments_count = None |
85 if comments_count and data.get('retrieve_comments', False): | 100 if comments_count and data.get("retrieve_comments", False): |
86 file_data[u'comments'] = yield pages_tools.retrieveComments(self, | 101 file_data[u"comments"] = yield pages_tools.retrieveComments( |
87 comments_service, | 102 self, comments_service, comments_node, profile=profile |
88 comments_node, | 103 ) |
89 profile=profile) | |
90 | 104 |
91 template_data[u'files_data'] = files_data | 105 template_data[u"files_data"] = files_data |
92 template_data[u'path'] = path | 106 template_data[u"path"] = path |
93 if path_elts: | 107 if path_elts: |
94 template_data[u'parent_url'] = self.getURL(service.full(), *path_elts[:-1]) | 108 template_data[u"parent_url"] = self.getURL(service.full(), *path_elts[:-1]) |
95 |