OLD | NEW |
1 # Copyright 2013 The Chromium Authors. All rights reserved. | 1 # Copyright 2013 The Chromium Authors. All rights reserved. |
2 # Use of this source code is governed by a BSD-style license that can be | 2 # Use of this source code is governed by a BSD-style license that can be |
3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
4 | 4 |
5 from itertools import groupby | 5 from itertools import groupby |
6 from operator import itemgetter | 6 from operator import itemgetter |
7 import posixpath | 7 import posixpath |
8 | 8 |
9 from data_source import DataSource | 9 from data_source import DataSource |
10 from extensions_paths import JSON_TEMPLATES, PUBLIC_TEMPLATES | 10 from extensions_paths import JSON_TEMPLATES, PUBLIC_TEMPLATES |
(...skipping 14 matching lines...) Expand all Loading... |
25 self._api_categorizer = server_instance.api_categorizer | 25 self._api_categorizer = server_instance.api_categorizer |
26 | 26 |
27 def _GenerateChangesListWithVersion(self, platform, whats_new_json): | 27 def _GenerateChangesListWithVersion(self, platform, whats_new_json): |
28 return [{ | 28 return [{ |
29 'id': change_id, | 29 'id': change_id, |
30 'type': change['type'], | 30 'type': change['type'], |
31 'description': change['description'], | 31 'description': change['description'], |
32 'version': change['version'] | 32 'version': change['version'] |
33 } for change_id, change in whats_new_json.iteritems()] | 33 } for change_id, change in whats_new_json.iteritems()] |
34 | 34 |
35 def _GetApiVersion(self, platform, api_name): | 35 def _GetAPIVersion(self, platform, api_name): |
36 version = None | 36 version = None |
37 category = self._api_categorizer.GetCategory(platform, api_name) | 37 category = self._api_categorizer.GetCategory(platform, api_name) |
38 if category == 'chrome': | 38 if category == 'chrome': |
39 channel_info = self._availability_finder.GetApiAvailability( | 39 channel_info = self._availability_finder.GetAPIAvailability( |
40 api_name).channel_info | 40 api_name).channel_info |
41 channel = channel_info.channel | 41 channel = channel_info.channel |
42 if channel == 'stable': | 42 if channel == 'stable': |
43 version = channel_info.version | 43 version = channel_info.version |
44 return version | 44 return version |
45 | 45 |
46 def _GenerateApiListWithVersion(self, platform): | 46 def _GenerateAPIListWithVersion(self, platform): |
47 data = [] | 47 data = [] |
48 for api_name, api_model in self._api_models.IterModels(): | 48 for api_name, api_model in self._api_models.IterModels(): |
49 version = self._GetApiVersion(platform, api_name) | 49 version = self._GetAPIVersion(platform, api_name) |
50 if version: | 50 if version: |
51 api = { | 51 api = { |
52 'name': api_name, | 52 'name': api_name, |
53 'description': api_model.description, | 53 'description': api_model.description, |
54 'version' : version, | 54 'version' : version, |
55 'type': 'apis', | 55 'type': 'apis', |
56 } | 56 } |
57 data.append(api) | 57 data.append(api) |
58 data.sort(key=itemgetter('version')) | 58 data.sort(key=itemgetter('version')) |
59 return data | 59 return data |
60 | 60 |
61 def _GenerateWhatsNewDict(self): | 61 def _GenerateWhatsNewDict(self): |
62 whats_new_json_future = self._parse_cache.GetFromFile( | 62 whats_new_json_future = self._parse_cache.GetFromFile( |
63 posixpath.join(JSON_TEMPLATES, 'whats_new.json')) | 63 posixpath.join(JSON_TEMPLATES, 'whats_new.json')) |
64 def _MakeDictByPlatform(platform): | 64 def _MakeDictByPlatform(platform): |
65 whats_new_json = whats_new_json_future.Get() | 65 whats_new_json = whats_new_json_future.Get() |
66 platform_list = [] | 66 platform_list = [] |
67 apis = self._GenerateApiListWithVersion(platform) | 67 apis = self._GenerateAPIListWithVersion(platform) |
68 apis.extend(self._GenerateChangesListWithVersion(platform, | 68 apis.extend(self._GenerateChangesListWithVersion(platform, |
69 whats_new_json)) | 69 whats_new_json)) |
70 apis.sort(key=itemgetter('version'), reverse=True) | 70 apis.sort(key=itemgetter('version'), reverse=True) |
71 for version, group in groupby(apis, key=itemgetter('version')): | 71 for version, group in groupby(apis, key=itemgetter('version')): |
72 whats_new_by_version = { | 72 whats_new_by_version = { |
73 'version': version, | 73 'version': version, |
74 } | 74 } |
75 for item in group: | 75 for item in group: |
76 item_type = item['type'] | 76 item_type = item['type'] |
77 if item_type not in whats_new_by_version: | 77 if item_type not in whats_new_by_version: |
(...skipping 14 matching lines...) Expand all Loading... |
92 if data is None: | 92 if data is None: |
93 data = self._GenerateWhatsNewDict().Get() | 93 data = self._GenerateWhatsNewDict().Get() |
94 self._object_store.Set('whats_new_data', data) | 94 self._object_store.Set('whats_new_data', data) |
95 return data | 95 return data |
96 | 96 |
97 def get(self, key): | 97 def get(self, key): |
98 return self._GetCachedWhatsNewData().get(key) | 98 return self._GetCachedWhatsNewData().get(key) |
99 | 99 |
100 def Cron(self): | 100 def Cron(self): |
101 return self._GenerateWhatsNewDict() | 101 return self._GenerateWhatsNewDict() |
OLD | NEW |