StreamOverlay/UI/Panels/User/user_promo.gd

66 lines
2.2 KiB
GDScript3
Raw Normal View History

extends PanelContainer
var chatter: Chatter:
set(value):
chatter = value
if not chatter:
_clear_promos()
return
_populate_promos()
func _ready() -> void:
for btn in [%Streamer, %Shoutout, %Promote]:
btn.pressed.connect(_update_promos)
for le in [%YouTubeHandle, %BlueSkyHandle, %WebSite, %ShoutoutMessage, %PromotionMessage]:
le.text_changed.connect(_update_promos)
if not chatter: return
_populate_promos()
func _clear_promos() -> void:
%Streamer.button_pressed = false
%Shoutout.button_pressed = false
%Promote.button_pressed = false
%YouTubeHandle.text = ""
%BlueSkyHandle.text = ""
%WebSite.text = ""
%ShoutoutMessage.text = ""
%PromotionMessage.text = ""
func _populate_promos() -> void:
%Streamer.button_pressed = chatter.is_streamer
%Shoutout.button_pressed = chatter.auto_shoutout
%Promote.button_pressed = chatter.extra_data.has("auto-promo")
%YouTubeHandle.text = chatter.urls.youtube if chatter.urls.has("youtube") else ""
%BlueSkyHandle.text = chatter.urls.bluesky if chatter.urls.has("bluesky") else ""
%WebSite.text = chatter.urls.website if chatter.urls.has("website") else ""
%ShoutoutMessage.text = chatter.extra_data.shoutout_message if chatter.extra_data.has("shoutout_message") else ""
%PromotionMessage.text = chatter.extra_data.promotion_message if chatter.extra_data.has("promotion_message") else ""
func _update_promos() -> void:
if not chatter: return
chatter.is_streamer = %Streamer.button_pressed
chatter.auto_shoutout = %Shoutout.button_pressed
chatter.extra_data["auto_promo"] = %Promote.button_pressed
if %YouTubeHandle.text != "":
chatter.urls["youtube"] = %YouTubeHandle.text
else:
chatter.urls.erase("youtube")
if %BlueSkyHandle.text != "":
chatter.urls["bluesky"] = %BlueSkyHandle.text
else:
chatter.urls.erase("bluesky")
if %WebSite.text != "":
chatter.urls["website"] = %WebSite.text
else:
chatter.urls.erase("website")
if %ShoutoutMessage.text != "":
chatter.extra_data.shoutout_message = %ShoutoutMessage.text
else:
chatter.extra_data.erase("shoutout_message")
if %PromotionMessage.text != "":
chatter.extra_data.promotion_message = %PromotionMessage.text
else:
chatter.extra_data.erase("promotion_message")
chatter.save()