maple/README.md
2022-08-13 19:55:24 -05:00

7.1 KiB

HYBRID=[MAPLE|G1MP]+[ML|IRC3|MATRIX] - NETSPAN VARIANT

MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMh+MMMMMMMMMMMMMMhsMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMm/ oMMMMMMMMMMMMMMm +NMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMy`  yMMMMMMMMMMMMMMM- -mMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMs+dMMMMMMMMMM+    sMMMMMMMMMMMMMMM-  `dMMMMMMMMMMms/NMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMM+ .omMMMMMM:     -MMMMMMMMMMMMMMo    `yMMMMMMMy: `dMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMM-   /dMMM+       sMMMMMMMMMMMMh      `hMMMNo`   sMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMd     :dm        `mMMMMMMMMMMN.       .NNo`    .MMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMM:      -         :MMMMMMMMMMs         :`      sMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMs                 ymNMMMMMNm.                 NMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMy                    `-/-`                   .MMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMo                                            .NMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMNh+.                                               :sdMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMhso+:.                                                      `-/+syMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMM-                                                                 dMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMM`   `.:+/.                                              `/s+:.    sMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMNo   -oms.             .//-`               `:/:`            `+md+`  .hMMMMMMMMMMMMMMM
MMMMMMMMMMMMMNs`                        .odNdo.       .ohmd+`                        :dMMMMMMMMMMMMM
MMMMMMMMMMMNo`                             ..           .-                             :hMMMMMMMMMMM
MMMMMMMMMd+`                                                                             -sNMMMMMMMM
MMMMMMNs-                         `..                          `/-.                        `+dMMMMMM
MMMNy:                       ./sdNMMMh:                      `sNMMMNds/.                      .odMMM
MM+                       :ymMMMMMMMMMMh.                   +NMMMMMMMMMMmo-                      /NM
MMMh:                  .sNMMMMMMMMMMMMMMN-                `hMMMMMMMMMMMMMMMm+`                 :hMMM
MMMMMd:`       ``-:+shmMMMMMMMMMMMMMMMMMMN.               hMMMMMMMMMMMMMMMMMMMmhs+/-..``````./dMMMMM
MMMMMMMMMNNNNNNMMMMMMMMMMMMMMMMMMMMMMMMMMMo              .MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMy              .MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMN.             /MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMN+`         `+NMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNs.    -hMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMdyymMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM

Summary

this project is the ( m4plmp - https://git.tcp.direct/decoded/m4pl1mp )
except that this one also uses the matrix protocol and talks to 
matrix and irc servers both. so it's essentialy two clients wrapped
in one and not only bridging information between the two networks
but unifying maple's services between them as well.

screenshots


backend

screenshots

References

[ Netspanning network protocols ]
- [online] - irc - https://www.rfc-editor.org/rfc/rfc2812.html
- [online] - matrix - https://spec.matrix.org/latest
- [online] - discord - https://discord.com/developers/docs/reference
- [offline] - telegram - https://core.telegram.org/bots/api

[ The actual base hybrid ]
- m4plmp - https://git.tcp.direct/decoded/m4pl1mp

[ Hybrid of machine learning and irc3 framework ]
- Maple - https://git.tcp.direct/decoded/Maple
- g1mp - https://git.tcp.direct/decoded/g1mp

Prerequisites

  • apt install python3
  • apt install python3-pip
  • python3 -m pip install virtualenv

Instructions

  • git clone --recursive https://git.tcp.direct/decoded/maple_netspan.git
  • cd maple_netspan
  • virtualenv -p python3.9 env
  • source env/bin/activate
  • pip install -r requirements.txt

Relevant urls pertaining to the developer api keys and server credentials

1. nickserv - /msg nickserv help register
2. matrix - https://app.element.io/
3. youtube - https://console.cloud.google.com/apis/credentials
4. twitter - https://developer.twitter.com/en/portal/petition/essential/basic-info
5. openai - https://beta.openai.com/signup
6. discord - https://discord.com/developers/applications
7. telegram - https://tinyurl.com/bdececee - https://docs.python-telegram-bot.org/en/v20.0a2/examples.html

Append your developer api keys and credentials to .venv/bin/activate. Example below:

cat env/bin/activate
..
export NICKSERV_USERNAME=your_nickserv_username                                  # <- IRCD NICKSERV USER
export NICKSERV_PASSWORD=your_nickserv_password                                  # <- IRCD NICKSERV PASS
export BOT_SASL_USERNAME=$NICKSERV_USERNAME                                      # <- IRCD NICKSERV USER
export BOT_SASL_PASSWORD=$NICKSERV_PASSWORD                                      # <- IRCD NICKSERV PASS
export MATRIX_HOMESERVER=https://matrix.org                                      # <- MATRIX HOMESERVER
export MATRIX___USERNAME=your_matrix_username                                    # <- MATRIX USERNAME
export MATRIX___PASSWORD=your_matrix_password                                    # <- MATRIX PASSWORD
export DEVELOPER_KEY=1394823190182390182382383215382158321                       # <- YOUTUBE API KEY
export CONSUMER_KEY=2151235132512351235123512351325231                           # <- TWITTER API KEY
export CONSUMER_SECRET=514512521345234523452345234523452345234523452             # <- TWITTER API KEY
export ACCESS_TOKEN_KEY=24513429875209348502934850294898348034850293485203948592 # <- TWITTER API KEY
export ACCESS_TOKEN_SECRET=523490582034985203948520394804884820934850923485      # <- TWITTER API KEY
export OPENAPI_KEY=AeJWbyak16wjHZ8L4TAbGIlVk31YwwAyz-GsezWCJ7Wkh7BIFTO           # <- OPENAI API KEY
export DISCORD__MAPLE=295326962352954038                                         # <- DISCORD API KEY
export DISCORD__SCHAN=295326962352954038                                         # <- DISCORD API KEY
export DISCORD__TOKEN=AT2Sh4g.G1M9vNTOXmIaQzdvn5b6QzQMTyTBX6COJONUIRjLWi5UX0j294 # <- DISCORD API KEY
export TELEGRAM_TOKEN=AHh4DA9FgE3vs1SfAnx8975t85J30mU925GhJWcoUBBo7              # <- TELEGRAM API KEY

notice

  • env/bin/activate: if you don't have twitter/youtube/openai api keys set then irc3 will crash
  • edit plugins/tool_guds_plugin.py - change the @username:server to yours so that the bot self-ignores
guds.add_credentials("@maple.or.g1mp:matrix.org")
guds.add_credentials("@maple:pcriot.org")
  • edit plugins/net_irc_plugin.py - you may need to change some of the server and channel settings

Usage

  • python3 bot_maple.py