"""Google Chrome history custom event formatter helpers."""

from plaso.formatters import interface
from plaso.formatters import manager


class ChromeHistoryTypedCountFormatterHelper(
    interface.CustomEventFormatterHelper):
  """Google Chrome history typed count formatter helper."""

  IDENTIFIER = 'chrome_history_typed_count'

  def FormatEventValues(self, output_mediator, event_values):
    """Formats event values using the helper.

    Args:
      output_mediator (OutputMediator): output mediator.
      event_values (dict[str, object]): event values.
    """
    typed_count = event_values.get('typed_count')
    if typed_count is not None:
      if typed_count == 0:
        url_typed_string = '(URL not typed directly)'
      elif typed_count == 1:
        url_typed_string = '(URL typed 1 time)'
      elif typed_count > 1:
        url_typed_string = f'(URL typed {typed_count:d} times)'
      else:
        url_typed_string = typed_count

      event_values['url_typed_string'] = url_typed_string


manager.FormattersManager.RegisterEventFormatterHelper(
    ChromeHistoryTypedCountFormatterHelper)
