| OLD | NEW |
| 1 # Copyright (c) 2014 The Chromium Authors. All rights reserved. | 1 # Copyright (c) 2014 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 import base64 | 5 import base64 |
| 6 import xml.dom.minidom as minidom | 6 import xml.dom.minidom as minidom |
| 7 from xml.parsers.expat import ExpatError | 7 from xml.parsers.expat import ExpatError |
| 8 | 8 |
| 9 import crash_utils | 9 import crash_utils |
| 10 from repository_parser_interface import ParserInterface | 10 from repository_parser_interface import ParserInterface |
| (...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 86 if len(trs) != 3: | 86 if len(trs) != 3: |
| 87 continue | 87 continue |
| 88 | 88 |
| 89 # Retrieve git hash. | 89 # Retrieve git hash. |
| 90 githash = trs[0].getElementsByTagName('a')[0].firstChild.nodeValue | 90 githash = trs[0].getElementsByTagName('a')[0].firstChild.nodeValue |
| 91 | 91 |
| 92 # Retrieve and set author. | 92 # Retrieve and set author. |
| 93 author = trs[1].getElementsByTagName( | 93 author = trs[1].getElementsByTagName( |
| 94 'td')[0].firstChild.nodeValue.split('<')[0] | 94 'td')[0].firstChild.nodeValue.split('<')[0] |
| 95 revision['author'] = author | 95 revision['author'] = author |
| 96 revision['time'] = trs[1].getElementsByTagName( |
| 97 'td')[0].firstChild.nodeValue |
| 96 | 98 |
| 97 # Retrive and set message. | 99 # Retrive and set message. |
| 98 revision['message'] = pre.firstChild.nodeValue | 100 revision['message'] = pre.firstChild.nodeValue |
| 99 | 101 |
| 100 # Set url of this CL. | 102 # Set url of this CL. |
| 101 revision_url_part = self.url_parts_map['revision_url'] % githash | 103 revision_url_part = self.url_parts_map['revision_url'] % githash |
| 102 revision['url'] = base_url + revision_url_part | 104 revision['url'] = base_url + revision_url_part |
| 103 | 105 |
| 104 # Go through changed files, they are in li. | 106 # Go through changed files, they are in li. |
| 105 lis = ul.getElementsByTagName('li') | 107 lis = ul.getElementsByTagName('li') |
| (...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 176 json_revision = crash_utils.LoadJSON(response[5:]) | 178 json_revision = crash_utils.LoadJSON(response[5:]) |
| 177 if not json_revision: | 179 if not json_revision: |
| 178 return | 180 return |
| 179 | 181 |
| 180 # Create a map representing object and get githash from the JSON object. | 182 # Create a map representing object and get githash from the JSON object. |
| 181 revision = {} | 183 revision = {} |
| 182 githash = json_revision['commit'] | 184 githash = json_revision['commit'] |
| 183 | 185 |
| 184 # Set author, message and URL of this CL. | 186 # Set author, message and URL of this CL. |
| 185 revision['author'] = json_revision['author']['name'] | 187 revision['author'] = json_revision['author']['name'] |
| 188 revision['time'] = json_revision['author']['time'] |
| 186 revision['message'] = json_revision['message'] | 189 revision['message'] = json_revision['message'] |
| 187 revision['url'] = url | 190 revision['url'] = url |
| 188 | 191 |
| 189 # Iterate through the changed files. | 192 # Iterate through the changed files. |
| 190 for diff in json_revision['tree_diff']: | 193 for diff in json_revision['tree_diff']: |
| 191 file_path = diff['new_path'] | 194 file_path = diff['new_path'] |
| 192 file_change_type = diff['type'] | 195 file_change_type = diff['type'] |
| 193 | 196 |
| 194 # Normalize file action so that it fits with svn_repository_parser. | 197 # Normalize file action so that it fits with svn_repository_parser. |
| 195 file_change_type = _ConvertToFileChangeType(file_change_type) | 198 file_change_type = _ConvertToFileChangeType(file_change_type) |
| (...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 276 # If we are in the right region, get the information from the line. | 279 # If we are in the right region, get the information from the line. |
| 277 revision = blame_line['commit'] | 280 revision = blame_line['commit'] |
| 278 author = blame_line['author']['name'] | 281 author = blame_line['author']['name'] |
| 279 revision_url_parts = self.url_parts_map['revision_url'] % revision | 282 revision_url_parts = self.url_parts_map['revision_url'] % revision |
| 280 revision_url = base_url + revision_url_parts | 283 revision_url = base_url + revision_url_parts |
| 281 # TODO(jeun): Add a way to get content from JSON object. | 284 # TODO(jeun): Add a way to get content from JSON object. |
| 282 content = None | 285 content = None |
| 283 | 286 |
| 284 (revision_info, _) = self.ParseChangelog(component, revision, revision) | 287 (revision_info, _) = self.ParseChangelog(component, revision, revision) |
| 285 message = revision_info[revision]['message'] | 288 message = revision_info[revision]['message'] |
| 286 return (content, revision, author, revision_url, message) | 289 time = revision_info[revision]['time'] |
| 290 return (content, revision, author, revision_url, message, time) |
| 287 | 291 |
| 288 # Return none if the region does not exist. | 292 # Return none if the region does not exist. |
| 289 return None | 293 return None |
| OLD | NEW |