Module notifly.slack
Slack-API call wrapper
Expand source code
"""Slack-API call wrapper"""
import slack
from slack.errors import SlackApiError
class Notifier:
def __init__(self, token, channel = 'general'):
"""
Initialize the slack webclient instance using API.
Args:
token (string): API token [Mandatory].
channel (string): Post's the notification to it's corresponding channel [default = #general].
Returns:
The output of slack API_test which verify the Authentication protocol.
Raises:
SlackApiError.
"""
self.__client = slack.WebClient(token = token)
self.__channel = channel
try:
self.__client.api_test()['ok']
except SlackApiError as api_err:
print(f"Got an error: {api_err.response['error']}")
exit(1)
def send_message(self, msg) -> object: #TODO Add unicode check
"""
Function to post message to the slack channel.
Args:
msg (string): Enter your message to post.
Returns:
Outputs the response of message on post operation.
Raises:
SlackApiError
"""
try:
return self.__client.chat_postMessage(channel = self.__channel, text = msg)
except SlackApiError as api_err:
print(f"Got an error: {api_err.response['error']}")
exit(1)
def send_file(self, file_path) -> object:
"""
Function to post an file to the slack channel.
Args:
file_path (string): Enter the path of the file to be sent.
Returns:
Outputs the response of message on post operation.
Raises:
FileNotFoundError
"""
try:
return self.__client.files_upload(file = file_path, channels = self.__channel)
except FileNotFoundError as fl_err:
print(fl_err)
Classes
class Notifier (token, channel='general')
-
Initialize the slack webclient instance using API.
Args
token
:string
- API token [Mandatory].
channel
:string
- Post's the notification to it's corresponding channel [default = #general].
Returns
The output of slack API_test which verify the Authentication protocol.
Raises
SlackApiError.
Expand source code
class Notifier: def __init__(self, token, channel = 'general'): """ Initialize the slack webclient instance using API. Args: token (string): API token [Mandatory]. channel (string): Post's the notification to it's corresponding channel [default = #general]. Returns: The output of slack API_test which verify the Authentication protocol. Raises: SlackApiError. """ self.__client = slack.WebClient(token = token) self.__channel = channel try: self.__client.api_test()['ok'] except SlackApiError as api_err: print(f"Got an error: {api_err.response['error']}") exit(1) def send_message(self, msg) -> object: #TODO Add unicode check """ Function to post message to the slack channel. Args: msg (string): Enter your message to post. Returns: Outputs the response of message on post operation. Raises: SlackApiError """ try: return self.__client.chat_postMessage(channel = self.__channel, text = msg) except SlackApiError as api_err: print(f"Got an error: {api_err.response['error']}") exit(1) def send_file(self, file_path) -> object: """ Function to post an file to the slack channel. Args: file_path (string): Enter the path of the file to be sent. Returns: Outputs the response of message on post operation. Raises: FileNotFoundError """ try: return self.__client.files_upload(file = file_path, channels = self.__channel) except FileNotFoundError as fl_err: print(fl_err)
Methods
def send_file(self, file_path) ‑> object
-
Function to post an file to the slack channel.
Args
file_path
:string
- Enter the path of the file to be sent.
Returns
Outputs the response of message on post operation.
Raises
FileNotFoundError
Expand source code
def send_file(self, file_path) -> object: """ Function to post an file to the slack channel. Args: file_path (string): Enter the path of the file to be sent. Returns: Outputs the response of message on post operation. Raises: FileNotFoundError """ try: return self.__client.files_upload(file = file_path, channels = self.__channel) except FileNotFoundError as fl_err: print(fl_err)
def send_message(self, msg) ‑> object
-
Function to post message to the slack channel.
Args
msg
:string
- Enter your message to post.
Returns
Outputs the response of message on post operation.
Raises
SlackApiError
Expand source code
def send_message(self, msg) -> object: #TODO Add unicode check """ Function to post message to the slack channel. Args: msg (string): Enter your message to post. Returns: Outputs the response of message on post operation. Raises: SlackApiError """ try: return self.__client.chat_postMessage(channel = self.__channel, text = msg) except SlackApiError as api_err: print(f"Got an error: {api_err.response['error']}") exit(1)