will now update profile pic based upon spacestate if configured
This commit is contained in:
parent
17b88d752f
commit
a352f3e442
3 changed files with 27 additions and 5 deletions
2
.gitignore
vendored
2
.gitignore
vendored
|
@ -1,2 +1,4 @@
|
||||||
config.py
|
config.py
|
||||||
__pycache__/
|
__pycache__/
|
||||||
|
./open.png
|
||||||
|
./closed.png
|
|
@ -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'
|
|
@ -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)
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue