Skip to content

Commit

Permalink
Merge pull request #73 from psidex/master
Browse files Browse the repository at this point in the history
Implement TwitterAction
  • Loading branch information
d-Rickyy-b committed Oct 5, 2019
2 parents d0ebd0a + 2b7ecb4 commit 17589af
Show file tree
Hide file tree
Showing 3 changed files with 64 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 .twitteraction import TwitterAction

__all__ = ('BasicAction', 'SaveFileAction', 'TelegramAction', 'LogAction', 'GenericAction', 'DatabaseAction', 'SaveJSONAction')
__all__ = (
"BasicAction",
"SaveFileAction",
"TelegramAction",
"LogAction",
"GenericAction",
"DatabaseAction",
"SaveJSONAction",
"TwitterAction",
)
52 changes: 52 additions & 0 deletions pastepwn/actions/twitteraction.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
# -*- coding: utf-8 -*-
import logging
from string import Template

import twitter

from pastepwn.util import DictWrapper
from .basicaction import BasicAction


class TwitterAction(BasicAction):
"""Action to tweet a message to a given account"""

name = "TwitterAction"

def __init__(
self,
consumer_key=None,
consumer_secret=None,
access_token_key=None,
access_token_secret=None,
template=None,
):
super().__init__()

self.logger = logging.getLogger(__name__)

self.twitter_api = twitter.Api(
consumer_key=consumer_key,
consumer_secret=consumer_secret,
access_token_key=access_token_key,
access_token_secret=access_token_secret,
)

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

def perform(self, paste, analyzer_name=None):
"""Tweet a message"""

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.twitter_api.PostUpdate(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
python-twitter

0 comments on commit 17589af

Please sign in to comment.