Easy Slack framework wrapping Bolt for Python
Project description
EzSlack
EzSlack is a Python framework wrapping Bolt for Python to provide useful utilities.
- Encapsule parsing low-level information
- Provide
Handler
class to improve cohesion
Get Started
from ezslack import App
# Running over HTTP
app = App(token=SLACK_BOT_TOKEN, signing_secret=SLACK_SIGNING_SECRET)
app.start(PORT)
# Running in Socket Mode
app = App(token=SLACK_BOT_TOKEN)
app.start_socket_mode(SLACK_APP_TOKEN)
Handler
Whenever subclass of Handler
is defined, handler methods are registered in REGISTRIES
. String arguments in handler decorator are automatically converted into regex pattern with anchors. Matched groups are passed to arguments and keyword arguments whether they are named.
from ezslack import Handler, message
class MyHandler(Handler):
@message("hello", "hi")
def greet(self):
self.ack()
self.say(
f"Nice to meet you <@{self.user_id}>",
thread_ts=self.thread_ts,
)
@message(r"(?P<first>\w+)(?P<op>[+*])(?P<second>\w+)")
def calculate(self, first, second, op):
if op == "+":
result = int(first) + int(second)
else:
result = int(first) * int(second)
self.say(f"Result: {result}", thread_ts=self.thread_ts)
Supported features
Requests supported: ACTION
, MESSAGE
, VIEW_CLOSED
, VIEW_SUBMISSION
Each request has an id such as action_id
, message.text
, callback_id
. When a request id matches handling method's regex pattern, handler is instantiated with the following context fields, then call the method.
field | type | description | event |
---|---|---|---|
ack |
Ack |
See Reference | - |
client |
WebClient |
See Reference | - |
respond |
Respond |
See Reference | - |
say |
Say |
See Reference | - |
channel_id |
Optional[str] |
Channel where the event was triggered | ACTION , MESSAGE |
channel_name |
Optional[str] |
Channel where the event was triggered | MESSAGE |
message_ts |
Optional[str] |
Timestamp of the message | ACTION , MESSAGE |
metadata |
Optional[Metadata] |
Metadata of the message | ACTION |
private_metadata |
Optional[str] |
Private metadata of the view | VIEW_SUBMISSION , VIEW_CLOSED |
request_id |
str |
Identifier such as action_id , message.text , callback_id which is used to match handler |
- |
thread_ts |
Optional[str] |
Timestamp of the thread | ACTION , MESSAGE |
trigger_id |
Optional[str] |
Trigger id from the event | ACTION |
user_id |
Optional[str] |
User who triggers the event | - |
user_name |
Optional[str] |
User who triggers the event | ACTION , VIEW_SUBMISSION , VIEW_CLOSED |
bot_id |
Optional[str] |
Bot which triggers the event | MESSAGE |
view_state |
Optional[ViewState] |
View state which has selected values | VIEW_SUBMISSION , VIEW_CLOSED |
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file ezslack-0.1.2.tar.gz
.
File metadata
- Download URL: ezslack-0.1.2.tar.gz
- Upload date:
- Size: 7.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d1a60081f8f382ea3ab15808f0365e564e8c9a37ef4905e2913aa1f3f1b04c3c |
|
MD5 | d0004b6e290db0476f927ae2ebf46274 |
|
BLAKE2b-256 | fa212a7b16dc727efe4f848fc3a2c9b420e59c945be871a5debec9e8f79f2fec |
File details
Details for the file ezslack-0.1.2-py3-none-any.whl
.
File metadata
- Download URL: ezslack-0.1.2-py3-none-any.whl
- Upload date:
- Size: 8.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b1d00230f5511602868aeae6ecbfe50ffc7ef32705cff5b1a304f4a85a8ef6f6 |
|
MD5 | 88d1916dcaa2700bcbacd72b2c58d969 |
|
BLAKE2b-256 | 5415a21bfd69ed4a86d16608f4a234ca8df996ff397b654fbc2bed1b4e2032da |