package main import ( "fmt" "net/http" "strings" ) //display vimeo video in biukop brand const videoPrefix = "/v/" type vimeoPlayer struct { VideoId string Token string playsinline int autoplay int autopause int loop int background int muted int Title string ContentDescription string ThumbnailURL string FavIconURL string } func videoMain(w http.ResponseWriter, r *http.Request) { videoVimeo(w, r) } var thumbnailDataURL = `data:image/png;base64,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` func videoVimeo(w http.ResponseWriter, r *http.Request) { vimeo := getVimeoParams(r) pattern := ` %s
` output := fmt.Sprintf(pattern, vimeo.FavIconURL, vimeo.Title, vimeo.ContentDescription, vimeo.ThumbnailURL, vimeo.Title, //r.Host + r.URL.Path, vimeo.ThumbnailURL, vimeo.getUrl()) fmt.Fprintf(w, output) } /** http://v.io/v/1234567/token where token might be optional */ func getVimeoParams(r *http.Request) (ret vimeoPlayer) { prefix := videoPrefix + "v/" var IdAndToken = strings.Split(r.URL.Path[len(prefix):], "/") if len(IdAndToken) == 1 { ret.VideoId = IdAndToken[0] ret.Token = "" } else if len(IdAndToken) == 2 { ret.VideoId = IdAndToken[0] ret.Token = IdAndToken[1] } else { // a default video will be given ret.VideoId = "719542916" ret.Token = "" } if strings.ToLower(r.Host) == ("v.io") { ret.Title = "您有一条视频消息" ret.ContentDescription = "私密视频" } ret.Title = "Video Message" ret.ContentDescription = "Modern Video Communication" ret.FavIconURL = "/assets/videoIcon300x300.png" ret.ThumbnailURL = "/assets/videoIcon300x300.png" ret.autopause = 0 ret.autoplay = 1 ret.playsinline = 0 ret.loop = 1 ret.background = 0 ret.muted = 0 if r.URL.Path[:len(prefix)] == videoPrefix+"b/" { ret.playsinline = 1 ret.background = 1 ret.muted = 1 // autoplay video must be muted. } return } func (m *vimeoPlayer) getUrl() (ret string) { ret = fmt.Sprintf( "https://player.vimeo.com/video/%s?h=%s&playsinline=%d&autoplay=%d&autopause=%d&loop=%d&background=%d&muted=%d", m.VideoId, m.Token, m.playsinline, m.autoplay, m.autopause, m.loop, m.background, m.muted) return }