Skip to content

Commit

Permalink
Merge 93dccb7 into d0ebd0a
Browse files Browse the repository at this point in the history
  • Loading branch information
rpartha committed Oct 5, 2019
2 parents d0ebd0a + 93dccb7 commit fc643fc
Show file tree
Hide file tree
Showing 3 changed files with 56 additions and 1 deletion.
12 changes: 11 additions & 1 deletion pastepwn/actions/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,5 +7,15 @@
from .genericaction import GenericAction
from .databaseaction import DatabaseAction
from .savejsonaction import SaveJSONAction
from .slackaction import SlackAction

__all__ = ('BasicAction', 'SaveFileAction', 'TelegramAction', 'LogAction', 'GenericAction', 'DatabaseAction', 'SaveJSONAction')
__all__ = (
'BasicAction',
'SaveFileAction',
'TelegramAction',
'LogAction',
'GenericAction',
'DatabaseAction',
'SaveJSONAction',
'SlackAction'
)
44 changes: 44 additions & 0 deletions pastepwn/actions/slackaction.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
import logging
import os

import slack

from string import Template

from pastepwn.util import DictWrapper
from .basicaction import BasicAction



class SlackAction(BasicAction):
"""Action to send a Slack message to a channel"""

name="SlackAction"

def __init__(self, token, client, channel_name, template=None):
super().__init__
self.logger = logging.getLogger(__name__)

if token is None or channel_name is None:
raise ValueError("Token or Channel Name is either missing or None!")

self.channel_name=channel_name
self.client=slack.WebClient(token=token)
# self.client=slac.WebClient(token=os.environ['SLACK_API_TOKEN'])

if template is not None:
self.template = Template(template)
else:
self.template = None

def perform(self, paste, analyzer_name):
"""Send a message to a specified Slack channel without post-assertion"""

if self.template is None:
text = "New paste matched by analyzer '{0}' - Link: {1}".format(analyzer_name, paste.full_url)
else:
paste_dict = paste.to_dict()
paste_dict["analyzer_name"] = analyzer_name
text = self.template.safe_substitute(DictWrapper(paste_dict))

self.client.chat_postMessage(channel=self.channel_name, text=text)
1 change: 1 addition & 0 deletions requirements.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
pymongo
mysql-connector-python
requests
slackclient

0 comments on commit fc643fc

Please sign in to comment.