def GetEntries(self, parser_mediator, match=None, **unused_kwargs):
    """Extracts relevant BT entries.

    Args:
      parser_mediator (ParserMediator): mediates interactions between parsers
          and other components, such as storage and dfvfs.
      match (Optional[dict[str: object]]): keys extracted from PLIST_KEYS.
    """
    device_cache = match.get('DeviceCache', {})
    for device, value in iter(device_cache.items()):
      name = value.get('Name', '')
      if name:
        name = ''.join(('Name:', name))

      event_data = plist_event.PlistTimeEventData()
      event_data.root = '/DeviceCache'

      datetime_value = value.get('LastInquiryUpdate', None)
      if datetime_value:
        event_data.desc = ' '.join(
            filter(None, ('Bluetooth Discovery', name)))
        event_data.key = '{0:s}/LastInquiryUpdate'.format(device)

        event = time_events.PythonDatetimeEvent(
            datetime_value, definitions.TIME_DESCRIPTION_WRITTEN)
        parser_mediator.ProduceEventWithEventData(event, event_data)

        if device in match.get('PairedDevices', []):
          event_data.desc = 'Paired:True {0:s}'.format(name)
          event_data.key = device

          event = time_events.PythonDatetimeEvent(
              datetime_value, definitions.TIME_DESCRIPTION_WRITTEN)
          parser_mediator.ProduceEventWithEventData(event, event_data)

      datetime_value = value.get('LastNameUpdate', None)
      if datetime_value:
        event_data.desc = ' '.join(filter(None, ('Device Name Set', name)))
        event_data.key = '{0:s}/LastNameUpdate'.format(device)

        event = time_events.PythonDatetimeEvent(
            datetime_value, definitions.TIME_DESCRIPTION_WRITTEN)
        parser_mediator.ProduceEventWithEventData(event, event_data)

      datetime_value = value.get('LastServicesUpdate', None)
      if datetime_value:
        event_data.desc = ' '.join(filter(None, ('Services Updated', name)))
        event_data.key = '{0:s}/LastServicesUpdate'.format(device)

        event = time_events.PythonDatetimeEvent(
            datetime_value, definitions.TIME_DESCRIPTION_WRITTEN)
        parser_mediator.ProduceEventWithEventData(event, event_data)
def GetEntries ( self , parser_mediator , match = None , ** unused_kwargs ) : device_cache = match . get ( 'DeviceCache' , { } ) for device , value in iter ( device_cache . items ( ) ) : name = value . get ( 'Name' , '' ) if name : name = '' . join ( ( 'Name:' , name ) ) event_data = plist_event . PlistTimeEventData ( ) event_data . root = '/DeviceCache' datetime_value = value . get ( 'LastInquiryUpdate' , None ) if datetime_value : event_data . desc = ' ' . join ( filter ( None , ( 'Bluetooth Discovery' , name ) ) ) event_data . key = '{0:s}/LastInquiryUpdate' . format ( device ) event = time_events . PythonDatetimeEvent ( datetime_value , definitions . TIME_DESCRIPTION_WRITTEN ) parser_mediator . ProduceEventWithEventData ( event , event_data ) if device in match . get ( 'PairedDevices' , [ ] ) : event_data . desc = 'Paired:True {0:s}' . format ( name ) event_data . key = device event = time_events . PythonDatetimeEvent ( datetime_value , definitions . TIME_DESCRIPTION_WRITTEN ) parser_mediator . ProduceEventWithEventData ( event , event_data ) datetime_value = value . get ( 'LastNameUpdate' , None ) if datetime_value : event_data . desc = ' ' . join ( filter ( None , ( 'Device Name Set' , name ) ) ) event_data . key = '{0:s}/LastNameUpdate' . format ( device ) event = time_events . PythonDatetimeEvent ( datetime_value , definitions . TIME_DESCRIPTION_WRITTEN ) parser_mediator . ProduceEventWithEventData ( event , event_data ) datetime_value = value . get ( 'LastServicesUpdate' , None ) if datetime_value : event_data . desc = ' ' . join ( filter ( None , ( 'Services Updated' , name ) ) ) event_data . key = '{0:s}/LastServicesUpdate' . format ( device ) event = time_events . PythonDatetimeEvent ( datetime_value , definitions . TIME_DESCRIPTION_WRITTEN ) parser_mediator . ProduceEventWithEventData ( event , event_data )
Extracts relevant BT entries.

    Args:
      parser_mediator (ParserMediator): mediates interactions between parsers
          and other components, such as storage and dfvfs.
      match (Optional[dict[str: object]]): keys extracted from PLIST_KEYS.