add options for not annoucing, show title

This commit is contained in:
stryan 2021-08-23 19:44:20 -04:00
parent 4bddee9ee9
commit 82f0d7af58
2 changed files with 21 additions and 10 deletions

View File

@ -134,7 +134,12 @@ func main() {
var content YoutubeWidget var content YoutubeWidget
err = client.StateEvent(room, event.NewEventType("im.vector.modular.widgets"), "dimension-m.video-simp-"+v.Name, &content) err = client.StateEvent(room, event.NewEventType("im.vector.modular.widgets"), "dimension-m.video-simp-"+v.Name, &content)
if content.ID == "" { if content.ID == "" {
client.SendText(room, v.LiveMsg) if v.AnnounceLive {
client.SendText(room, v.LiveMsg)
} else {
client.SendNotice(room, v.LiveMsg)
}
client.SendNotice(room, fmt.Sprintf("%v's Title: %v", v.Name, v.CurrentStreamTitle))
resp, err := client.SendStateEvent(room, event.NewEventType("im.vector.modular.widgets"), "dimension-m.video-simp-"+v.Name, NewYT(v.Name+"'s stream", v.CurrentStream, string(room))) resp, err := client.SendStateEvent(room, event.NewEventType("im.vector.modular.widgets"), "dimension-m.video-simp-"+v.Name, NewYT(v.Name+"'s stream", v.CurrentStream, string(room)))
if err != nil { if err != nil {
log.Println("error embeding video") log.Println("error embeding video")

View File

@ -17,18 +17,22 @@ type VtuberConfig struct {
} }
type Vtuber struct { type Vtuber struct {
Name string Name string
ChannelID string ChannelID string
CurrentStream string CurrentStream string
LiveMsg string CurrentStreamTitle string
LiveMsg string
AnnounceLive bool
} }
func NewVtuber(name, channelID, liveMsg string) *Vtuber { func NewVtuber(name, channelID, liveMsg string, announce bool) *Vtuber {
return &Vtuber{ return &Vtuber{
Name: name, Name: name,
ChannelID: channelID, ChannelID: channelID,
CurrentStream: "", CurrentStream: "",
LiveMsg: liveMsg, CurrentStreamTitle: "",
LiveMsg: liveMsg,
AnnounceLive: announce,
} }
} }
@ -72,11 +76,13 @@ func (v *Vtuber) Update() error {
for _, s := range sl.Streams { for _, s := range sl.Streams {
if s.Status == "live" { if s.Status == "live" {
v.CurrentStream = s.ID v.CurrentStream = s.ID
v.CurrentStreamTitle = s.Title
found = true found = true
} }
} }
if !found { if !found {
v.CurrentStream = "" v.CurrentStream = ""
v.CurrentStreamTitle = ""
} }
return nil return nil
} }