Skip to content

alwayswimmin/Sue

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

95 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Sue

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.

What's New?

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

How do I run it?

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:

  1. 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.
  2. 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.exs file, using config/config.secret.exs.example as reference.
  3. If you wish to disable the Telegram or iMessage half of this program, modify the platform list under config/config.exs to what you wish to keep.
  4. $ git clone https://github.com/inculi/Sue
  5. $ cd Sue
  6. $ mix deps.get
  7. $ iex -S mix
  8. $ 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."

How do I help contribute?

  1. 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 of lib/sue.ex

Special Thanks

  • 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.

About

A bot for iMessage (sue@robertism.com) and Telegram (@ImSueBot). Now in Elixir!

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Elixir 100.0%