[ Hybrid(s) of machine learning and irc3 framework ] + netspanning [ irc/matrix ]
Go to file
2022-08-14 07:03:17 -05:00
databases revision 2.4 2022-08-13 19:01:05 -05:00
plugins revision 2.5 2022-08-14 07:00:54 -05:00
screenshots revision 2.4 2022-08-13 19:55:24 -05:00
bot_maple.py revision 2.5 2022-08-14 07:00:54 -05:00
README.md revision 2.5 2022-08-14 07:03:17 -05:00
requirements.txt revision 2.5 2022-08-14 07:00:54 -05:00

[MAPLE|G1MP]+[ML^N]+[NETSPANNING[i]]


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.

Changelog - v2.4

  • telegram now netspanned

Changelog - v2.3

  • discord now netspanned

Changelog - v2.2

  • matrix now netspanned

Changelog - v2.1

  • tried pyenv+pipenv, ended up up reverting back to pure virtualenv for consistency.

Screenshots

screenshots


References

[ Netspanning network protocols ]
[ The actual base hybrid - Machine Learning Irc3 ]
[ g1mp was the first service bot, maple named herself ]

Prerequisites

[ substitute apt for the package manager of your choice ]
  • apt install python3 - *note: python3.9 is ideal
  • 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 ]


[ Append your developer / service api keys credentials to env/bin/activate ]

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

Usage

python3.9 bot_maple.py


plugins/net_irc_plugin.py - main bot config

  • plugins can be removed/enabled in

plugins.net_matrix_plugin.py

  • change @maple:pcriot.org to your matrix username:homeserver
  • add_credentials("@maple:pcriot.org")

env/bin/activate


            export NICKSERV_USERNAME=your_nickserv_username
            export NICKSERV_PASSWORD=your_nickserv_password
    plugins.auth_custom_plugin
            NICKSERV_USERNAME=os.environ['NICKSERV_USERNAME']
            NICKSERV_PASSWORD=os.environ['NICKSERV_PASSWORD']

            export BOT_SASL_USERNAME=also_your_nickserv_username
            export BOT_SASL_PASSWORD=also_your_nickserv_password
    plugins.sasl_custom_plugin
            BOT_SASL_USERNAME=os.environ['BOT_SASL_USERNAME']
            BOT_SASL_PASSWORD=os.environ['BOT_SASL_PASSWORD']

           export MATRIX_HOMESERVER=https://matrix.org
           export MATRIX___USERNAME=your_matrix_username
           export MATRIX___PASSWORD=your_matrix_password
    plugins.net_matrix_plugin
           MATRIX_HOMESERVER=os.environ['MATRIX_HOMESERVER']
           MATRIX___USERNAME=os.environ['MATRIX___USERNAME']
           MATRIX___PASSWORD=os.environ['MATRIX___PASSWORD']

           export OPENAPI_KEY=AeJWbyak16wjHZ8L4TAbGIlVk31YwwAyz-GsezWCJ7Wkh7BIFTO
    plugins.openai_plugin
           OPENAPI_KEY = os.environ['OPENAPI_KEY']

           export DISCORD__MAPLE=295326962352954038
           export DISCORD__SCHAN=295326962352954038
           export DISCORD__TOKEN=AT2Sh4g.G1M9vNTOXmIaQzdvn5b6QzQMTyTBX6COJONUIRjLWi5UX0j294
    plugins.net_discord_plugin
           DISCORD__SCHAN=int(os.environ['DISCORD__SCHAN'])
           DISCORD__MAPLE=int(os.environ['DISCORD__MAPLE'])
           DISCORD__TOKEN=str(os.environ['DISCORD__TOKEN'])

           export TELEGRAM_TOKEN=AHh4DA9FgE3vs1SfAnx8975t85J30mU925GhJWcoUBBo7
    plugins.net_telegram_plugin
           TELEGRAM_TOKEN=os.environ['TELEGRAM_TOKEN']

           export DEVELOPER_KEY=1394823190182390182382383215382158321
    plugins.youtube_plugin
           DEVELOPER_KEY = os.environ['DEVELOPER_KEY']

           export CONSUMER_KEY=2151235132512351235123512351325231
           export CONSUMER_SECRET=514512521345234523452345234523452345234523452
           export ACCESS_TOKEN_KEY=24513429875209348502934850294898348034850293485203948592
           export ACCESS_TOKEN_SECRET=523490582034985203948520394804884820934850923485
    plugins.twitter_plugin
           CONSUMER_KEY = os.environ['CONSUMER_KEY']
           CONSUMER_SECRET = os.environ['CONSUMER_SECRET']
           ACCESS_TOKEN_KEY = os.environ['ACCESS_TOKEN_KEY']
           ACCESS_TOKEN_SECRET = os.environ['ACCESS_TOKEN_SECRET']