<commit_before>* Group Me Bot Skeleton
** Features
*** Loads Bot from JSON file
    #+BEGIN_SRC json
      {
          "bot_id" : "xcz31231",
          "group_id" : "109123",
          "host" : "0.0.0.0",
          "port" : "8080"
      }
    #+END_SRC
*** Plugins can be added by appending functions to list
    #+BEGIN_SRC go
    handles := make([]func(string), 0, 10)
    handles = append(handles, my_handler1)
    handles = append(handles, my_handler2)
    handles = append(handles, my_handler3)
    #+END_SRC
** To be implemented
*** ServeMux to actually receive data from groupme
*** Sample modules
*** Dynamically load modules at start time<commit_msg>Updated Readme to reflect changes to the now operational bot.<commit_after>* Group Me Bot Skeleton
** Features
*** Loads Bot from JSON file
    #+BEGIN_SRC json
      {
          "bot_id" : "xcz31231",
          "group_id" : "109123",
          "host" : "0.0.0.0",
          "port" : "8080"
      }
    #+END_SRC
*** Plugins can be added by appending functions to list
    Defining hooks is simple. The hooks signature needs to be as follows:
    #+BEGIN_SRC go
    func my_hook(msg InboundMessage) (bool, string) {
    // Here you may do what you please
    // Typically you'll match a regex and the first return parameter is the result of this match
            matched, err := regexp.MatchString("Hi!$", msg.Text)
            if err != nil {
                    return matched, ""
            }
            resp := fmt.Sprintf("Hi there, %v.", msg.Name)
            return matched, resp
    }
    #+END_SRC
    
    This function must accept only an Inbound message as input.
    The outputs must be a boolean and a string. The actual body of the fuction can do whatever you please
    but the signature is vital to be able to add it to the list of hooks.

    Adding items to the hooks is done as shown below. Assume that these are function names for functions
    defined with the signature we defined earlier.
    #+BEGIN_SRC go
    handles := make([]func(string), 0, 10)
    handles = append(handles, my_handler1)
    handles = append(handles, my_handler2)
    handles = append(handles, my_handler3)
    #+END_SRC
** To be implemented
*** Dynamically load modules at start time
{'fraction_non_alphanumeric': 0.09451627284886313, 'fraction_numerical': 0.02229157378510923, 'mean_word_length': 2.584664536741214, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 2, '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': '554412', 'n_tokens_mistral': 689, 'n_tokens_neox': 655, 'n_words': 260}