diff --git a/rssbot.py b/rssbot.py index 9ff1824ffdca74097cd8e057d140ff41a1dcb6b2..f34dde977dbcf31c7c74b694d305c8563533bdd8 100755 --- a/rssbot.py +++ b/rssbot.py @@ -1,25 +1,24 @@ #!/usr/bin/env python3 -import argparse import time -import traceback import feedparser import requests from threading import Thread, Condition from matrix_client.errors import MatrixRequestError from matrix_client.client import MatrixClient +import os ROOM_EVENT_TYPE = 'de.eventscccde.rssbot' ACCOUNT_DATA_TYPE = 'de.eventscccde.rssbot' class RssBot: - def __init__(self, url, user_id, token): + def __init__(self, url, token): self.feeds = {} self.room_configs = {} self._known_guids = set() - self.client = MatrixClient(url, user_id=user_id, token=token) + self.client = MatrixClient(url, token=token) self.client.add_invite_listener(self._handle_invite) self.client.add_leave_listener(self._handle_leave) @@ -73,7 +72,6 @@ class RssBot: room = self.client.join_room(roomId) self._setup_room(room) - def _handle_leave(self, room_id, room): if room_id in self.room_configs: del self.room_configs[room_id] @@ -204,27 +202,8 @@ Invite me to any room on {homeserver} and use the custom state event <code>de.ev self.client.listen_forever() -def main(): - parser = argparse.ArgumentParser( - description='Stateless* [Matrix] RSS feed bot.' - ) - parser.add_argument( - 'url', - help='The URL of the Matrix homeserver.' - ) - parser.add_argument( - 'user_id', - help='Matrix user ID of the bot account.' - ) - parser.add_argument( - 'token', - help='File containing the access token for the bot account.' - ) - args = parser.parse_args() - with open(args.token, 'r') as f: - token = f.read().replace('\n', '') - RssBot(args.url, args.user_id, token).run() - - if __name__ == '__main__': - main() + homeserver = os.environ.get('MATRIX_HOMESERVER') + access_token = os.environ.get('MATRIX_ACCESS_TOKEN') + + RssBot(homeserver, token=access_token).run()