poomer-discord

Overview

Prototype C++ Discord bot, that supports 2 features

  • listens for /oomer command and replies, then 5 seconds later it sends a jpeg
  • When one or more jpegs are dropped into a channel, it will read the jpeg, flip it vertically and send it back to the channel
  • In both cases it will use @{user} in the reponse to notify the submitter

Technical details

  • Uses DPP c++ lib for Discord comms
    • depends on openssl and zlib
  • non blocking multi-threaded, so it can listen for other users sending /oomer command while spawning one or more threads to deal with jpeg replies
  • jpeg image is stored as byte data in embedded_image.h to avoid an on disk jpeg.

Build

Ubuntu 24.04 LTS

sudo apt update
sudo apt upgrade -y
sudo apt install build-essential curl git cmake zlib1g-dev libssl-dev -y
mkdir workdir
cd workdir
git clone https://github.com/brainboxdotcc/DPP.git
cd DPP
cmake -B ./build
cmake --build ./build -j8
cd ..
git clone https://git.indoodle.com/oomer/poomer-discord.git
cd poomer-discord
curl -LO https://raw.githubusercontent.com/nothings/stb/master/stb_image.h
curl -LO https://raw.githubusercontent.com/nothings/stb/master/stb_image_write.h
make all -j4

MacOS

mkdir workdir
cd workdir
mkdir homebrew
curl -L https://github.com/Homebrew/brew/tarball/master | tar xz --strip-components 1 -C homebrew
eval "$(homebrew/bin/brew shellenv)"
brew update --force --quiet
brew install openssl
git clone https://github.com/brainboxdotcc/DPP.git
cd DPP
/Applications/CMake.app/Contents/bin/cmake -B ./build \
  -DOPENSSL_ROOT_DIR=../homebrew/opt/openssl@3 \
  -DOPENSSL_INCLUDE_DIR=../homebrew/opt/openssl@3/include \
  -DOPENSSL_CRYPTO_LIBRARY=../homebrew/opt/openssl@3/lib/libcrypto.a \
  -DOPENSSL_SSL_LIBRARY=../homebrew/opt/openssl@3/lib/libssl.a

  /Applications/CMake.app/Contents/bin/cmake --build ./build -j8
cd ..
git clone https://git.indoodle.com/oomer/poomer-discord.git
cd poomer-discord
curl -LO https://raw.githubusercontent.com/nothings/stb/master/stb_image.h
curl -LO https://raw.githubusercontent.com/nothings/stb/master/stb_image_write.h
make all -j4
Description
No description provided
Readme MIT 66 KiB
Languages
C 50.8%
C++ 43.1%
Makefile 6.1%