craig /

Filename Size Date modified Message
cook
craig
locale
macosx
web
windows
2.4 KB
Let's make the warning about running your own Craig a bit more... overt.
11.2 KB
Be a bit more careful about track numbers, since it is possible for aborted FLAC tracks to have no headers.
935 B
Don't be TOO urgent to relaunch Craig on a crash.
7.7 KB
In a probably-misguided attempt to comply to GDPR since one of my servers is in Europe, logging to a database so that deleting individual users/servers from the log becomes feasible.
88 B
Made graceful-restart far more, well, graceful by embedding it into a launcher which manages all the processes.
3.1 KB
Moving Drive integration into the database, and including its web page in this repo.
1.6 KB
Some log-related fixes for our recent logdb change, and a logrecent script for actually reading it.
582 B
In a probably-misguided attempt to comply to GDPR since one of my servers is in Europe, logging to a database so that deleting individual users/servers from the log becomes feasible.
4.8 KB
Accept "craig" directories anywhere, not just the root.
4.4 KB
Some final fixups for log.db, including moving stats to it and a converter.
Craig is a multi-track voice recorder for Discord. Craig is divided into three
components: The actual recording bot, the web page (for downloading
recordings), and the audio processing scripts.

The recording bot is craig.js. It is a Node.js application written with
the Eris Discord library. For historical reasons it uses the sharding manager
from discord.js. Its dependencies can be installed with `npm install`. In
principle the recording bot works fine without the other components, but the
audio files it produce aren't really usable without processing.

The web page is in PHP (yuck), but otherwise has essentially no dependencies.
The "other formats" feature, which performs audio processing in the browser,
requires ffmpeg.js. The patch for ffmpeg.js to build it with the required
modules is in ffmpeg-js-craig.diff. ffmpeg.js should be built to
ffmpeg-worker-craig.js.

The audio processing scripts require the following command-line tools:

ffmpeg ( http://ffmpeg.org/ ) compiled with libopus support
flac ( https://xiph.org/flac/ )
oggenc ( https://xiph.org/vorbis/ )
opusenc ( http://opus-codec.org/ )
fdkaac ( https://github.com/nu774/fdkaac )
zip and unzip ( http://infozip.org/ )

Various components of the audio processing scripts require compilation or
translation:
cd cook
for i in *.c; do gcc -O3 -o ${i%.c} $i; done
for i in *.svg; do inkscape -e ${i%.svg}.png $i; done

Finally, the self extractors require compilation if you want them:
cd windows; make
cd macosx; make

More information on Craig can be found at
https://craig.chat/


No documentation is provided for running your own instances of Craig.

RUNNING CRAIG IS NOT LIKE RUNNING ANY OTHER BOT. MOST OF THE COMPLEXITY OF
CRAIG IS NOT IN THE BOT ITSELF, BUT IN THE AUDIO PROCESSING.

IF YOU ARE NOT FAMILIAR WITH C AND UNIX, DO NOT WASTE YOUR TIME OR MINE. IF YOU
DELUDE YOURSELF INTO THINKING YOU WILL HOST CRAIG ON WINDOWS, DO NOT WASTE YOUR
TIME OR MINE. CRAIG IS NOT MERELY BUILT FOR UNIX, CRAIG IS BUILT ON THE UNIX
PHILOSOPHY.

"THIS ONE TIME I RAN A LINUX VM" IS NOT SUFFICIENT. "I CAN USE PUTTY" WON'T CUT
IT. IF THE WORD "WINDOWS" DOESN'T MAKE YOUR SKIN CRAWL, YOU ARE NOT THE KIND OF
PERSON WHO WILL SUCCEED IN RUNNING CRAIG.

If you're familiar with C and Unix, it shouldn't be too difficult to get your
own Craig working. Yahweasel is generally happy to help if you have the
requisite background.