<commit_before>/* Edwin The Assistant

   Copyright 2017 <NAME>

   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
   You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.

   Slack connection handler

 */

'use strict';

const Edwin = require('../Edwin');
const appConfig = require('../config');

if (!appConfig.get('slack.enabled')) {
  console.log('slack: not enabled');
} else {
  // create a edwin slack bot we are enabled
  let config = appConfig.get('slack');

  let SlackBot = require('slackbots');
  let slackBot = new SlackBot({
    token: config.token,
    name: config.name,
  });

  slackBot.on('message', function(data) {
    if (data.type === 'desktop_notification') {
      if (data.subtitle.indexOf('(bot)') === -1) {
        console.log('slack: ' + data.subtitle + ' >> ' + data.content);
        new Edwin({
          replyTo: data.subtitle,
          sessionId: 'slack',
          callback: slackBotRespondCallback,
        }).converse(data.content);
      }
    }
  });

  slackBot.on('start', function() {
    console.log('slack: online');
  });

  // Slack callback
  const slackBotRespondCallback = function(state) {
    let replyTo = state.getReplyTo();

    // get the reply from final or reply
    let reply;
    if (state.getFinal() !== undefined) {
      reply = state.getFinal();
      // we are done, reset stat and wait for the next conversation
      state.reset();
      state.save();<commit_msg>updated let to const where appropriate<commit_after>/* Edwin The Assistant

   Copyright 2017 <NAME>

   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
   You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.

   Slack connection handler

 */

'use strict';

const Edwin = require('../Edwin');
const appConfig = require('../config');

if (!appConfig.get('slack.enabled')) {
  console.log('slack: not enabled');
} else {
  // create a edwin slack bot we are enabled
  const config = appConfig.get('slack');

  const SlackBot = require('slackbots');
  const slackBot = new SlackBot({
    token: config.token,
    name: config.name,
  });

  slackBot.on('message', function(data) {
    if (data.type === 'desktop_notification') {
      if (data.subtitle.indexOf('(bot)') === -1) {
        console.log('slack: ' + data.subtitle + ' >> ' + data.content);
        new Edwin({
          replyTo: data.subtitle,
          sessionId: 'slack',
          callback: slackBotRespondCallback,
        }).converse(data.content);
      }
    }
  });

  slackBot.on('start', function() {
    console.log('slack: online');
  });

  // Slack callback
  const slackBotRespondCallback = function(state) {
    const replyTo = state.getReplyTo();

    // get the reply from final or reply
    let reply;
    if (state.getFinal() !== undefined) {
      reply = state.getFinal();
      // we are done, reset stat and wait for the next conversation
      state.reset();
      state.save();
{'fraction_non_alphanumeric': 0.12060301507537688, 'fraction_numerical': 0.004760645331922771, 'mean_word_length': 2.972689075630252, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 9, 'https://': 0, 'lorem ipsum': 0, 'www.': 2, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '7107189', 'n_tokens_mistral': 1108, 'n_tokens_neox': 1061, 'n_words': 370}