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 | 5 |
6 class UnknownColumnNameException(Exception): | 6 class UnknownColumnNameException(Exception): |
7 """Exception type raised when encountering an unknown column name.""" | 7 """Exception type raised when encountering an unknown column name.""" |
8 def __init__(self, column_name): | 8 def __init__(self, column_name): |
9 self.column_name = column_name | 9 self.column_name = column_name |
10 def __str__(self): | 10 def __str__(self): |
11 return repr(self.column_name) | 11 return repr(self.column_name) |
12 | 12 |
13 | 13 |
14 def SerializeProfiles(profiles): | 14 def SerializeProfiles(profiles): |
15 """Returns a serialized string for the given |profiles|. | 15 """Returns a serialized string for the given |profiles|. |
16 | 16 |
17 |profiles| should be a list of (field_type, value) string pairs. | 17 |profiles| should be a list of (field_type, value) string pairs. |
18 | 18 |
19 """ | 19 """ |
20 | 20 |
21 lines = [] | 21 lines = [] |
22 for profile in profiles: | 22 for profile in profiles: |
23 # Include a fixed string to separate profiles. | 23 # Include a fixed string to separate profiles. |
24 lines.append("---") | 24 lines.append("---") |
25 for (field_type, value) in profile: | 25 for (field_type, value) in profile: |
26 if field_type == "ignored": | 26 if field_type == "ignored": |
27 continue; | 27 continue; |
28 | 28 |
| 29 value = value.replace('\n', '\\n') |
29 lines.append("%s: %s" % (field_type, value)) | 30 lines.append("%s: %s" % (field_type, value)) |
30 | 31 |
31 return '\n'.join(lines) | 32 return '\n'.join(lines) |
32 | 33 |
33 | 34 |
34 def ColumnNameToFieldType(column_name): | 35 def ColumnNameToFieldType(column_name): |
35 """Converts the given |column_name| to the corresponding AutofillField type. | 36 """Converts the given |column_name| to the corresponding AutofillField type. |
36 | 37 |
37 |column_name| should be a string drawn from the column names of the | 38 |column_name| should be a string drawn from the column names of the |
38 autofill_profiles table in the Chromium "Web Data" database. | 39 autofill_profiles table in the Chromium "Web Data" database. |
39 | 40 |
40 """ | 41 """ |
41 | 42 |
42 column_name = column_name.lower() | 43 column_name = column_name.lower() |
43 field_type = "unknown" | 44 field_type = "unknown" |
44 if column_name in ["guid", "label", "country", "date_modified", "origin", | 45 if column_name in ["guid", "label", "country", "date_modified", "origin", |
45 "language_code", "use_count", "use_date"]: | 46 "language_code", "use_count", "use_date", "sorting_code", |
| 47 "dependent_locality"]: |
46 field_type = "ignored" | 48 field_type = "ignored" |
47 elif column_name == "first_name": | 49 elif column_name == "first_name": |
48 field_type = "NAME_FIRST" | 50 field_type = "NAME_FIRST" |
49 elif column_name == "middle_name": | 51 elif column_name == "middle_name": |
50 field_type = "NAME_MIDDLE" | 52 field_type = "NAME_MIDDLE" |
51 elif column_name == "last_name": | 53 elif column_name == "last_name": |
52 field_type = "NAME_LAST" | 54 field_type = "NAME_LAST" |
53 elif column_name == "full_name": | 55 elif column_name == "full_name": |
54 field_type = "NAME_FULL" | 56 field_type = "NAME_FULL" |
55 elif column_name == "email": | 57 elif column_name == "email": |
56 field_type = "EMAIL_ADDRESS" | 58 field_type = "EMAIL_ADDRESS" |
57 elif column_name == "company_name": | 59 elif column_name == "company_name": |
58 field_type = "COMPANY_NAME" | 60 field_type = "COMPANY_NAME" |
59 elif column_name == "address_line_1": | 61 elif column_name == "address_line_1": |
60 field_type = "ADDRESS_HOME_LINE1" | 62 field_type = "ADDRESS_HOME_LINE1" |
61 elif column_name == "address_line_2": | 63 elif column_name == "address_line_2": |
62 field_type = "ADDRESS_HOME_LINE2" | 64 field_type = "ADDRESS_HOME_LINE2" |
63 elif column_name == "street_address": | 65 elif column_name == "street_address": |
64 field_type = "ADDRESS_HOME_STREET_ADDRESS" | 66 field_type = "ADDRESS_HOME_STREET_ADDRESS" |
65 elif column_name == "city": | 67 elif column_name == "city": |
66 field_type = "ADDRESS_HOME_CITY" | 68 field_type = "ADDRESS_HOME_CITY" |
67 elif column_name == "state": | 69 elif column_name == "state": |
68 field_type = "ADDRESS_HOME_STATE" | 70 field_type = "ADDRESS_HOME_STATE" |
69 elif column_name == "zipcode": | 71 elif column_name == "zipcode": |
70 field_type = "ADDRESS_HOME_ZIP" | 72 field_type = "ADDRESS_HOME_ZIP" |
71 elif column_name == "country_code": | 73 elif column_name == "country_code": |
72 field_type = "ADDRESS_HOME_COUNTRY" | 74 field_type = "ADDRESS_HOME_COUNTRY" |
73 elif column_name == "sorting_code": | |
74 field_type = "ADDRESS_HOME_SORTING_CODE" | |
75 elif column_name == "dependent_locality": | |
76 field_type = "ADDRESS_HOME_DEPENDENT_LOCALITY" | |
77 elif column_name == "phone": | 75 elif column_name == "phone": |
78 field_type = "PHONE_HOME_WHOLE_NUMBER" | 76 field_type = "PHONE_HOME_WHOLE_NUMBER" |
79 else: | 77 else: |
80 raise UnknownColumnNameException(column_name) | 78 raise UnknownColumnNameException(column_name) |
81 | 79 |
82 return field_type | 80 return field_type |
OLD | NEW |