OLD | NEW |
1 # -*- coding: utf-8 -*- | 1 # -*- coding: utf-8 -*- |
2 """The formatter mediator object.""" | 2 """The formatter mediator object.""" |
3 | 3 |
4 from __future__ import unicode_literals | 4 from __future__ import unicode_literals |
5 | 5 |
6 import os | 6 import os |
7 | 7 |
8 from plaso.formatters import winevt_rc | 8 from plaso.formatters import winevt_rc |
9 from plaso.lib import py2to3 | 9 from plaso.lib import py2to3 |
10 from plaso.winnt import language_ids | 10 from plaso.winnt import language_ids |
(...skipping 26 matching lines...) Expand all Loading... |
37 """Opens the Windows Event Log resource database reader. | 37 """Opens the Windows Event Log resource database reader. |
38 | 38 |
39 Returns: | 39 Returns: |
40 WinevtResourcesSqlite3DatabaseReader: Windows Event Log resource | 40 WinevtResourcesSqlite3DatabaseReader: Windows Event Log resource |
41 database reader or None. | 41 database reader or None. |
42 """ | 42 """ |
43 if not self._winevt_database_reader and self._data_location: | 43 if not self._winevt_database_reader and self._data_location: |
44 database_path = os.path.join( | 44 database_path = os.path.join( |
45 self._data_location, self._WINEVT_RC_DATABASE) | 45 self._data_location, self._WINEVT_RC_DATABASE) |
46 if not os.path.isfile(database_path): | 46 if not os.path.isfile(database_path): |
47 return | 47 return None |
48 | 48 |
49 self._winevt_database_reader = ( | 49 self._winevt_database_reader = ( |
50 winevt_rc.WinevtResourcesSqlite3DatabaseReader()) | 50 winevt_rc.WinevtResourcesSqlite3DatabaseReader()) |
51 if not self._winevt_database_reader.Open(database_path): | 51 if not self._winevt_database_reader.Open(database_path): |
52 self._winevt_database_reader = None | 52 self._winevt_database_reader = None |
53 | 53 |
54 return self._winevt_database_reader | 54 return self._winevt_database_reader |
55 | 55 |
56 @property | 56 @property |
57 def lcid(self): | 57 def lcid(self): |
58 """int: preferred Language Code identifier (LCID).""" | 58 """int: preferred Language Code identifier (LCID).""" |
59 return self._lcid | 59 return self._lcid |
60 | 60 |
61 def GetWindowsEventMessage(self, log_source, message_identifier): | 61 def GetWindowsEventMessage(self, log_source, message_identifier): |
62 """Retrieves the message string for a specific Windows Event Log source. | 62 """Retrieves the message string for a specific Windows Event Log source. |
63 | 63 |
64 Args: | 64 Args: |
65 log_source (str): Event Log source, such as "Application Error". | 65 log_source (str): Event Log source, such as "Application Error". |
66 message_identifier (int): message identifier. | 66 message_identifier (int): message identifier. |
67 | 67 |
68 Returns: | 68 Returns: |
69 str: message string or None if not available. | 69 str: message string or None if not available. |
70 """ | 70 """ |
71 database_reader = self._GetWinevtRcDatabaseReader() | 71 database_reader = self._GetWinevtRcDatabaseReader() |
72 if not database_reader: | 72 if not database_reader: |
73 return | 73 return None |
74 | 74 |
75 if self._lcid != self.DEFAULT_LCID: | 75 if self._lcid != self.DEFAULT_LCID: |
76 message_string = database_reader.GetMessage( | 76 message_string = database_reader.GetMessage( |
77 log_source, self.lcid, message_identifier) | 77 log_source, self.lcid, message_identifier) |
78 if message_string: | 78 if message_string: |
79 return message_string | 79 return message_string |
80 | 80 |
81 return database_reader.GetMessage( | 81 return database_reader.GetMessage( |
82 log_source, self.DEFAULT_LCID, message_identifier) | 82 log_source, self.DEFAULT_LCID, message_identifier) |
83 | 83 |
(...skipping 11 matching lines...) Expand all Loading... |
95 if not isinstance(language_identifier, py2to3.STRING_TYPES): | 95 if not isinstance(language_identifier, py2to3.STRING_TYPES): |
96 raise ValueError('Language identifier is not a string.') | 96 raise ValueError('Language identifier is not a string.') |
97 | 97 |
98 values = language_ids.LANGUAGE_IDENTIFIERS.get( | 98 values = language_ids.LANGUAGE_IDENTIFIERS.get( |
99 language_identifier.lower(), None) | 99 language_identifier.lower(), None) |
100 if not values: | 100 if not values: |
101 raise KeyError('Language identifier: {0:s} is not defined.'.format( | 101 raise KeyError('Language identifier: {0:s} is not defined.'.format( |
102 language_identifier)) | 102 language_identifier)) |
103 self._language_identifier = language_identifier | 103 self._language_identifier = language_identifier |
104 self._lcid = values[0] | 104 self._lcid = values[0] |
OLD | NEW |