BotYam/src/main.py
2023-01-30 23:22:21 +02:00

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()