/**
   * Handle incoming data.
   *
   * @param StreamConsumer consumer The consumer object.
   * @param Interaction interaction The interaction data.
   * @throws EInvalidData
   */
  public void onInteraction(StreamConsumer c, Interaction i) {
    try {
      try {
        _fw.append(i.getStringVal("interaction.id"));
      } catch (EInvalidData e) {
        // Ignored
      }

      _fw.append(",\"");

      try {
        _fw.append(i.getStringVal("interaction.created_at").replace("\"", "\\\""));
      } catch (EInvalidData e) {
        // Ignored
      }

      _fw.append("\",\"");

      try {
        _fw.append(i.getStringVal("interaction.author.username").replace("\"", "\\\""));
      } catch (EInvalidData e) {
        // Ignored
      }

      _fw.append("\",\"");

      try {
        _fw.append(i.getStringVal("interaction.content").replace("\"", "\\\"").replace('\n', ' '));
      } catch (EInvalidData e) {
        // Ignored
      }

      _fw.append("\"\n");
      _fw.flush();

      _counter += 1;
      if (_counter % 1000 == 0) {
        System.err.print("\r" + String.valueOf(_counter++));
      }
    } catch (IOException e) {
      System.err.println("ERR: Failed to write interaction to the CSV file: " + e.getMessage());
    }
  }