slacker alternatives and similar packages
Based on the "Networking" category.
Alternatively, view slacker alternatives based on common mentions on social networks and blogs.
-
ejabberd
Robust, Ubiquitous and Massively Scalable Messaging Platform (XMPP, MQTT, SIP Server) -
Firezone
Open-source VPN server and egress firewall for Linux built on WireGuard. Firezone is easy to set up (all dependencies are bundled thanks to Chef Omnibus), secure, performant, and self hostable. -
Ockam
Orchestrate end-to-end encryption, cryptographic identities, mutual authentication, and authorization policies between distributed applications – at massive scale. Use Ockam to build secure-by-design applications that can Trust Data-in-Motion. -
sshex
Simple SSH helpers for Elixir. SSH is useful, but we all love SSHEx ! -
sshkit
An Elixir toolkit for performing tasks on one or more servers, built on top of Erlang’s SSH application. -
wifi
Various utility functions for working with the local Wifi network in Elixir. These functions are mostly useful in scripts that could benefit from knowing the current location of the computer or the Wifi surroundings. -
chatter
Chatter library for Elixir, provides a secure broadcast between nodes. -
tunnerl
SOCKS4, SOCKS4a and SOCKS5 protocols implementation in Erlang/OTP.
TestGPT | Generating meaningful tests for busy devs
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of slacker or a related project?
Popular Comparisons
README
Slacker
Slacker's an Elixir bot library for Slack.
It has chat matching functionality built-in, but you can extend it to handle all kinds of events.
Chat
Slacker can match regex or literal strings, then execute a given function (module optional).
defmodule TARS do
use Slacker
use Slacker.Matcher
match ~r/Sense of humor\. New level setting: ([0-9]+)%/, :set_humor
match "Great idea. A massive, sarcastic robot.", [CueLight, :turn_on]
def set_humor(tars, msg, level) do
reply = "Sense of humor set to #{level}"
say tars, msg["channel"], reply
end
end
Slacker will call your function with the matching message hash. You can use say/3
to respond, be sure to include the channel you want to talk to.
Extending Slacker
Your robot is really just a GenServer
, you can catch RTM events from Slack and do whatever you like with them.
defmodule CASE do
use Slacker
def handle_cast({:handle_incoming, "presence_change", msg}, state) do
say self, msg["channel"], "You're the man who brought us the probe?"
{:noreply, state}
end
end
You can also use Slack's "Web API" via the Slacker.Web
module. All of the available RPC methods are downcased and underscored.
users.getPresence
-> Slacker.Web.users_get_presence("your_api_key", user: "U1234567890")
Bootin' it up
Add this to your deps:
def deps do
[{:websocket_client, github: "jeremyong/websocket_client"},
{:slacker, "~> 0.0.3"}]
end
Create a bot user in the Slack GUI, and then pass your api token to your bot's start_link/1
:
{:ok, tars} = TARS.start_link("your_api_token")
It's up to you to supervise your brand new baby bot.
You're going to need to invite your bot to a channel by @
-mentioning them.
Contributing
Gimme dem PR's.
Some of this stuff is a real pain in the ass to test, just do your best. :rocket:
TODO:
- Keep a map of usernames to ids.
- Keep a map of channel names to ids.
- Private messaging support.
- RTM tests.
License
See the LICENSE file. (MIT)
*Note that all licence references and agreements mentioned in the slacker README section above
are relevant to that project's source code only.