55 lines
1.8 KiB
Python
55 lines
1.8 KiB
Python
import tweepy
|
|
import os
|
|
import syslog
|
|
import json
|
|
import redis
|
|
from BotYamPoster import BotYamPoster
|
|
from BotYamPoster import init_streamobject
|
|
|
|
|
|
class Connector():
|
|
def __init__(self):
|
|
syslog.syslog(syslog.LOG_INFO, "Loading Consul connector...")
|
|
# TODO: Add token
|
|
self.dbconn = redis.Redis(
|
|
host=os.getenv("REDIS_HOST"),
|
|
port=os.getenv("REDIS_PORT"),
|
|
password=os.getenv("REDIS_CREDENTIALS")
|
|
)
|
|
|
|
self.api = Connector.init_api(self.dbconn)
|
|
|
|
def init_api(dbconn):
|
|
# Syslog report
|
|
syslog.syslog(syslog.LOG_INFO, "Loading Twitter API connector...")
|
|
|
|
return tweepy.Client(
|
|
bearer_token=str(dbconn.hget("api", "bearer")),
|
|
consumer_key=str(dbconn.hget("api", "consumer_key")),
|
|
consumer_secret=str(dbconn.hget("api", "consumer_secret"))
|
|
access_token=str(dbconn.hget("api", "access_token")),
|
|
access_token_secret=str(dbconn.hget("api","access_token_secret"))
|
|
)
|
|
|
|
def get_reply_bank(self):
|
|
return json.loads(self.dbconn.get('reply_bank'))
|
|
|
|
def get_victims(self):
|
|
return json.loads(self.dbconn.get('reply_bank')).victims
|
|
|
|
def get_bearer(self):
|
|
return str(self.dbconn.hget("api", "bearer"))
|
|
|
|
def main():
|
|
syslog.syslog(syslog.LOG_INFO, "BOT-YAM - VERSION 2.1.2 >>>>")
|
|
conn = Connector()
|
|
stream = init_streamobject(conn)
|
|
syslog.syslog(syslog.LOG_INFO, "Adding stream rules...")
|
|
stream.add_rules(tweepy.StreamRule(conn.get_victims().stream_filter))
|
|
stream.add_rules(tweepy.StreamRule("@FromBotYam"))
|
|
# Start listening for tweets
|
|
syslog.syslog(syslog.LOG_INFO, "Starting Twitter stream!")
|
|
stream.filter(expansions="author_id")
|
|
|
|
if __name__ == "__main__":
|
|
main()
|