<commit_before># The plan

This is an IRC bot to help solve a problem we have in [CSS Working
Group](https://wiki.csswg.org/) meetings, which is that we discuss a
topic for a while that has a github issue, and then fail to make a note
of that discussion in the github issue.  Since minute taking in meetings
happens in IRC, an IRC bot is useful here.

The idea is that the bot will be in the channel, will split the IRC up
based on "Topic:" and start/end of meeting, and then if somebody writes
"Github topic: &lt;github-url>" at some point within a topic
(changeable/cancellable also with acknowledgment), it will acknowledge
it and then when the topic concludes, make a github comment in that
issue at the end of the topic with the resolutions, and a &lt;details>
with the full IRC log, or something like that.  I'll probably also teach
it to understand "Topic:" itself being a github URL.

(Ideally it will also understand ScribeNick: and the other
scribe.perl conventions, but that's past minimum-viable-product, I
think.   Though ScribeNick should probably be doable quickly...)

My previous notes:
* [X] "Topic github: &lt;url>" or just "Topic: &lt;github-url>"
    * [X] acknowledge this
* [X] split on "Topic:" and "trackbot, end meeting"
    * [X] acknowledge again after making comment
* [X] answer help command asked explicitly
* [X] answer other requests asked explicitly
* [ ] answer PMs saying need to be in channel
* [ ] Alan Stearns suggests also removing the Agenda+ or Agenda+ F2F tags.


# Development notes

Put the github API key in ./src/config.json and then do one of:

    RUST_BACKTRACE=1 RUST_LOG=wgmeeting_github_ircbot cargo run --release ./src/config.json
    RUST_BACKTRACE=1 RUST_LOG=wgmeeting_github_ircbot cargo run ./src/config-dev.json<commit_msg>Remove notes for things that have been done.<commit_after># The plan

This is an IRC bot to help solve a problem we have in [CSS Working
Group](https://wiki.csswg.org/) meetings, which is that we discuss a
topic for a while that has a github issue, and then fail to make a note
of that discussion in the github issue.  Since minute taking in meetings
happens in IRC, an IRC bot is useful here.

The idea is that the bot will be in the channel, will split the IRC up
based on "Topic:" and start/end of meeting, and then if somebody writes
"Github topic: &lt;github-url>" at some point within a topic
(changeable/cancellable also with acknowledgment), it will acknowledge
it and then when the topic concludes, make a github comment in that
issue at the end of the topic with the resolutions, and a &lt;details>
with the full IRC log, or something like that.  I'll probably also teach
it to understand "Topic:" itself being a github URL.

(Ideally it will also understand ScribeNick: and the other
scribe.perl conventions, but that's past minimum-viable-product, I
think.   Though ScribeNick should probably be doable quickly...)

# Development notes

Put the github API key in ./src/config.json and then do one of:

    RUST_BACKTRACE=1 RUST_LOG=wgmeeting_github_ircbot cargo run --release ./src/config.json
    RUST_BACKTRACE=1 RUST_LOG=wgmeeting_github_ircbot cargo run ./src/config-dev.json
{'fraction_non_alphanumeric': 0.06681374093917428, 'fraction_numerical': 0.001575795776867318, 'mean_word_length': 4.254966887417218, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 9, 'https://': 2, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 2, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '841619', 'n_tokens_mistral': 930, 'n_tokens_neox': 871, 'n_words': 473}