Skip to content
This repository has been archived by the owner on Dec 20, 2017. It is now read-only.

ChameleonBot/Bot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

45 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Chameleon

Chameleon is a Slack bot built with Swift.

Version Swift Platforms

What is Chameleon?

It consists of several frameworks, the core of which are:

  • Models: Exposes Slack model data. Slack's APIs only provide object ids in their responses, however the model layer is able to convert those into full model objects.
  • WebAPI: Allows interaction with Slack's Web API.
  • RTMAPI: Allows interaction with Slack's Real-time messaging API.
  • Bot: Utilises each of the frameworks to provide an extensible Slack bot user.
  • Sugar: Provides a layer over all frameworks adding various helpers, wrappers and syntactic sugar to make developing features more declarative.

Features

  • Extensible: SlackService's can be added to provide any behaviour you need.
  • Typed: You always get to work with full typed Slack model data.

Installation

Refer to the Installation Guide.

APIs

Refer to the API Guide.

Contributing

Want to contribute, check out the Contribution Guide.

⚠️ Work in Progress

This is a work in progress so expect improvements as well as breaking changes!

Chameleon is functional however there is still a lot to do before it is complete

  • The Web and Real time messaging APIs can do a lot - I have built support for the core/most common features but they are incomplete. I will add more over time until they are complete.

Acknowledgement

This was my first dive into 'Server Side Swift'; 95% of this code was done over a total of a few days but getting working in the terminal and then deployed to Heroku took far longer... This project would likely have ended up as mostly useless OSX app if it hadn't been for the teams from Vapor and Zewo pioneering the server side Swift movement. I am especially thankful for the help and patience of Logan Wright, Tanner Nelson and Dan Appel

Contact

Feel free to open an issue or PR, if you wanna chat you can find me on Twitter (@IanKay) or on iOS Developers