notify.moe/arn/ExternalMedia.go

33 lines
1.0 KiB
Go

package arn
// Register a list of supported media services.
func init() {
DataLists["media-services"] = []*Option{
{"Youtube", "Youtube"},
{"SoundCloud", "SoundCloud"},
{"DailyMotion", "DailyMotion"},
}
}
// ExternalMedia ...
type ExternalMedia struct {
Service string `json:"service" editable:"true" datalist:"media-services"`
ServiceID string `json:"serviceId" editable:"true"`
}
// EmbedLink returns the embed link used in iframes for the given media.
func (media *ExternalMedia) EmbedLink() string {
switch media.Service {
case "SoundCloud":
return "//w.soundcloud.com/player/?url=https://api.soundcloud.com/tracks/" + media.ServiceID + "?auto_play=false&hide_related=true&show_comments=false&show_user=false&show_reposts=false&visual=true"
case "Youtube":
return "//youtube.com/embed/" + media.ServiceID + "?showinfo=0"
case "DailyMotion":
return "//www.dailymotion.com/embed/video/" + media.ServiceID
case "NicoVideo":
return "//ext.nicovideo.jp/thumb/" + media.ServiceID
default:
return ""
}
}