| # Copyright 2013 The Chromium Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| |
| class UnknownColumnNameException(Exception): |
| """Exception type raised when encountering an unknown column name.""" |
| def __init__(self, column_name): |
| self.column_name = column_name |
| def __str__(self): |
| return repr(self.column_name) |
| |
| |
| def SerializeProfiles(profiles): |
| """Returns a serialized string for the given |profiles|. |
| |
| |profiles| should be a list of (field_type, value) string pairs. |
| |
| """ |
| |
| lines = [] |
| for profile in profiles: |
| # Include a fixed string to separate profiles. |
| lines.append("---") |
| for (field_type, value) in profile: |
| if field_type == "ignored": |
| continue; |
| |
| lines.append("%s: %s" % (field_type, value)) |
| |
| return '\n'.join(lines) |
| |
| |
| def ColumnNameToFieldType(column_name): |
| """Converts the given |column_name| to the corresponding AutofillField type. |
| |
| |column_name| should be a string drawn from the column names of the |
| autofill_profiles table in the Chromium "Web Data" database. |
| |
| """ |
| |
| column_name = column_name.lower() |
| field_type = "unknown" |
| if column_name in ["guid", "label", "country", "date_modified"]: |
| field_type = "ignored" |
| elif column_name == "first_name": |
| field_type = "NAME_FIRST" |
| elif column_name == "middle_name": |
| field_type = "NAME_MIDDLE" |
| elif column_name == "last_name": |
| field_type = "NAME_LAST" |
| elif column_name == "email": |
| field_type = "EMAIL_ADDRESS" |
| elif column_name == "company_name": |
| field_type = "COMPANY_NAME" |
| elif column_name == "address_line_1": |
| field_type = "ADDRESS_HOME_LINE1" |
| elif column_name == "address_line_2": |
| field_type = "ADDRESS_HOME_LINE2" |
| elif column_name == "city": |
| field_type = "ADDRESS_HOME_CITY" |
| elif column_name == "state": |
| field_type = "ADDRESS_HOME_STATE" |
| elif column_name == "zipcode": |
| field_type = "ADDRESS_HOME_ZIP" |
| elif column_name == "country_code": |
| field_type = "ADDRESS_HOME_COUNTRY" |
| elif column_name == "phone": |
| field_type = "PHONE_HOME_WHOLE_NUMBER" |
| else: |
| raise UnknownColumnNameException(column_name) |
| |
| return field_type |