120 lines
7.1 KiB
Markdown
120 lines
7.1 KiB
Markdown
# 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](screenshots/ss1.png)
|
|
## 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`
|