# 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. ``` ## References ``` [ Netspanning network protocols ] - irc - https://www.rfc-editor.org/rfc/rfc2812.html - matrix - https://spec.matrix.org/latest [ 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` - `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 env -p python3` - `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`