Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/redwoodjs/discordjs-discourse-bot
Discord to Discourse Bot
https://github.com/redwoodjs/discordjs-discourse-bot
bot discord discourse
Last synced: 5 days ago
JSON representation
Discord to Discourse Bot
- Host: GitHub
- URL: https://github.com/redwoodjs/discordjs-discourse-bot
- Owner: redwoodjs
- License: mit
- Created: 2022-05-16T21:56:38.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-05-18T01:29:29.000Z (6 months ago)
- Last Synced: 2024-05-22T17:24:03.667Z (6 months ago)
- Topics: bot, discord, discourse
- Language: JavaScript
- Homepage:
- Size: 94.7 KB
- Stars: 3
- Watchers: 3
- Forks: 0
- Open Issues: 18
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
## Discord to Discourse Bot
Creates message menu button to send to discourse
Generates three buttons: Submit Message, Submit Thread/Channel, Select Message
Fetches messages based on button click
Sends to Discourse Plugin
(https://github.com/discourse/discourse-prometheus-alert-receiver)?
Posts to Discourse topic
## How to run:
Clone repo > `yarn install`
See these instructions to set up `config.json` & get `token`: https://discordjs.guide/creating-your-bot/#creating-configuration-files
And find where to get `guildId` and `clientId` from: https://discordjs.guide/creating-your-bot/creating-commands.html#command-deployment-script
> TIP
>
> In order to get your application's client id, go to Discord Developer Portal and choose your application. Find the id under "Application ID" in General Information subpage. To get guild id, open Discord and go to your settings. On the "Advanced" page, turn on "Developer Mode". This will enable a "Copy ID" button in the context menu when you right-click on a server icon, a user's profile, etc.Set up `config.json` file with these three tokens:
```
{
"clientId": "",
"guildId": "",
"token": """hostname": "",
"apiKey": "",
"apiUsername": ""
}
```To register menu command:
run: `node deploy-commands.js`
To run bot & accept incoming commands:
run: `node index.js`
# Work In Progress
~~**To-Do**: Create discourse plugin to accept message and post to topic~~
**To-Do**: Convert to ES6?/RW
Filter needle username out
Parse ``` at end of code blocks into newline**Cleanup**: Fetch all messages function can be cleaner
**Cleanup**: Generally refactor the code into better practices
**Bugs**: Selecting in thread throws error
# Ideas
Data Explorer Queries: https://meta.discourse.org/t/how-to-run-data-explorer-queries-with-the-discourse-api/120063
> Virtually any action that can be performed through the Discourse user interface can also be triggered with the Discourse API. For a general overview of how to find the correct API request for an action, see How to reverse engineer the Discourse API 70.
Official Direct SQL Access API for Discourse: https://meta.discourse.org/t/new-official-direct-sql-access-api-for-discourse-mini-sql/90441
Check errors & Report:
statusCode: 422
{"action":"create_post","errors":["Title has already been used"]}