1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- #!/usr/bin/python3
- from randstrip import createStrip
- from mastodon import Mastodon, StreamListener
- from mastodon_main import publishStrip
- import json
- import os
- import sys
- import time
- fileDir = os.path.dirname(os.path.abspath(__file__))
- fileDir = fileDir + "/"
- API_URL = "https://botsin.space"
- class stripListener(StreamListener):
- def on_notification(self, notification):
- try:
- account = "@"+notification["account"]["acct"]
- content = notification["status"]["content"]
- if content.find("help") != -1:
- mastodon.status_post("Hello "+account+" just send me a message with 'new strip' and the desired profile. Try with 'oloturia' (Italian), 'oloeng' (broken English) or 'olofra' (French). If not specified, Italian will be selected as default.",visibility="direct")
- elif content.find("new strip") != -1:
- if content.find("oloeng") != -1:
- profile = "oloeng"
- elif content.find("olofra") != -1:
- profile = "olofra"
- else:
- profile = "oloturia"
- publishStrip([profile],account)
- except KeyError:
- return
-
- if __name__ == "__main__":
- with open(fileDir+"/config.json") as f:
- config = json.load(f)
- with open(fileDir+config["mastodonListenerToken"]) as f:
- createapp = f.readlines()
- createapp = [x.strip() for x in createapp]
- TOKEN = createapp[0]
- mastodon = Mastodon(access_token = TOKEN,api_base_url = API_URL)
- listener = stripListener()
- while True:
- try:
- mastodon.stream_user(listener)
- except:
- time.sleep(10)
|