will now update profile pic based upon spacestate if configured

This commit is contained in:
Hillebrand van de Groep 2022-12-21 20:29:35 +01:00
parent 17b88d752f
commit a352f3e442
3 changed files with 27 additions and 5 deletions

4
.gitignore vendored
View file

@ -1,2 +1,4 @@
config.py config.py
__pycache__/ __pycache__/
./open.png
./closed.png

View file

@ -9,6 +9,10 @@ spacestate_profile_key = 'Spacestate'
open_profile_field = 'Open! @ {}' open_profile_field = 'Open! @ {}'
closed_profile_field = 'Closed @ {}' closed_profile_field = 'Closed @ {}'
update_profilepic_on_spacestate_change = True
spacestate_open_profilepic = './open.png'
spacestate_closed_profilepic = './closed.png'
profile_fields = [('Website', 'https://bitlair.nl/')] profile_fields = [('Website', 'https://bitlair.nl/')]
access_token = 'aaaaAAAAaaaa1234' access_token = 'aaaaAAAAaaaa1234'
homeserver = 'https://hsnl.social' homeserver = 'https://hsnl.social'

View file

@ -3,10 +3,16 @@ import config
import datetime import datetime
from mastodon import Mastodon from mastodon import Mastodon
def set_profile_fields(profile_open_text_value): if hasattr(config, 'update_profilepic_on_spacestate_change'):
update_profilepic_on_spacestate_change = config.update_profilepic_on_spacestate_change
else:
# backcompat, standaard false
update_profilepic_on_spacestate_change = False
def set_profile_fields(profile_open_text_value, picture = None):
profile_fields = config.profile_fields profile_fields = config.profile_fields
profile_fields.append((config.spacestate_profile_key, profile_open_text_value)) profile_fields.append((config.spacestate_profile_key, profile_open_text_value))
mastodon.account_update_credentials(fields=profile_fields) mastodon.account_update_credentials(fields=profile_fields, avatar=picture)
# don't be alarmed by the method name, this is just for updating profile metadata # don't be alarmed by the method name, this is just for updating profile metadata
print(profile_fields) print(profile_fields)
@ -18,11 +24,21 @@ def on_connect(client, userdata, flags, rc):
def on_message(client, userdata, msg): def on_message(client, userdata, msg):
message = msg.payload.decode("UTF-8") message = msg.payload.decode("UTF-8")
print(message)
cur_dt_string = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S") cur_dt_string = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
new_avatar = None
new_profile_value = None
if message == config.open_string: if message == config.open_string:
set_profile_fields(config.open_profile_field.format(cur_dt_string)) if update_profilepic_on_spacestate_change:
new_avatar = config.spacestate_open_profilepic
new_profile_value = config.open_profile_field.format(cur_dt_string)
elif message == config.closed_string: elif message == config.closed_string:
set_profile_fields(config.closed_profile_field.format(cur_dt_string)) if update_profilepic_on_spacestate_change:
new_avatar = config.spacestate_open_profilepic
new_profile_value = config.closed_profile_field.format(cur_dt_string)
if new_profile_value is not None:
set_profile_fields(new_profile_value, picture=new_avatar)
mastodon = Mastodon(access_token=config.access_token, api_base_url=config.homeserver) mastodon = Mastodon(access_token=config.access_token, api_base_url=config.homeserver)