Greetings and welcome to Sue V3, a chatbot for iMessage and Telegram. The project is currently under renovation (Telegram portion is slightly unstable), though I hope to be done soonish.
We have switched from Python to Elixir, from Applescript to Sqlite calls, from Mongo to Mnesia, from global user definitions to scoped user definitions. Because it's Elixir, some parts of the code look beautiful. Because I'm still a n00b at Elixir, some parts will scare you. Sue's beauty has many dimensions... Two, to be precise.
I'll hold off on making a YouTube Video for V3 until I have more of it done. I've been wanting an excuse to buy a new server, and now that I can finally run Sue on an OS newer than Sierra, I want to get this done quickly.
The following commands are currently supported:
!8ball
!choose
!cringe
!define
!doog
!flip
!fortune
!ping
!poll
!qt
!random
!uptime
!vote
Again, it's still in development, so your Mnesia database may have to be cleared each update depending on what I change. If you're okay with that:
- If you want to use iMessage, you need a mac with iMessage. You may be asked to enable disk access and Message control for this program (or, rather, Terminal/iTerm). I've been primarily testing this on Catalina, but it should work on older versions as well. I had some issues getting erlang's sqlite wrapper to compile on Sierra, but I think that was just my spaghetti system environment.
- If you want to use Telegram, you should make a Telegram API key. Look up how, it's pretty straightforward. Make a
config/config.secret.exsfile, usingconfig/config.secret.exs.exampleas reference. - If you wish to disable the Telegram or iMessage half of this program, modify the platform list under
config/config.exsto what you wish to keep. $ git clone https://github.com/inculi/Sue$ cd Sue$ mix deps.get$ iex -S mix$ Sue.post_init()I told you Telegram stuff was still half-finished, didn't I?
Now it should be running in Elixir's interactive shell. If you don't know much about Elixir, welcome to the party. As Griffin, P. & Megumin (2019) often wrote, "The joke here is that the author is inviting you to join him in the set of programmers not especially well-versed in the language, while also hinting at the joyous future that awaits all students of Elixir."
- Submit an issue and I'll put together some instructions. Plugins are pretty simple: create a module under
lib/sue/commands/and add its name to the top oflib/sue.ex
- Thanks for Zeke's work on Jared. Your applescript files were cleaner than mine. Good thinking with sqlite.
- Peter's work on Otto, whose applescript handler was instrumental in Sue V1.
- Multiple bloggers who wrote about iMessage's sqlite schema.
- Rick for popping a shell in Sue V1, prompting the development of V2.
- All the random people that have messaged and broken Sue, pushing me ever forward in its development.