75 lines
1.6 KiB
Go
75 lines
1.6 KiB
Go
package view
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
arcwar "go-common/app/service/main/archive/api"
|
|
)
|
|
|
|
// Goto
|
|
const (
|
|
GotoAv = "av"
|
|
GotoWeb = "web"
|
|
GotoBangumi = "bangumi"
|
|
GotoLive = "live"
|
|
GotoGame = "game"
|
|
GotoArticle = "article"
|
|
GotoSpecial = "special"
|
|
GotoAudio = "audio"
|
|
GotoSong = "song"
|
|
GotoAudioTag = "audio_tag"
|
|
GotoAlbum = "album"
|
|
GotoClip = "clip"
|
|
GotoDaily = "daily"
|
|
)
|
|
|
|
// FillURI deal app schema.
|
|
func FillURI(gt, param string, f func(uri string) string) (uri string) {
|
|
if param == "" {
|
|
return
|
|
}
|
|
switch gt {
|
|
case GotoAv, "":
|
|
uri = "bilibili://video/" + param
|
|
case GotoLive:
|
|
uri = "bilibili://live/" + param
|
|
case GotoBangumi:
|
|
uri = "https://www.bilibili.com/bangumi/play/ss" + param
|
|
case GotoArticle:
|
|
uri = "bilibili://article/" + param
|
|
case GotoGame:
|
|
uri = param
|
|
case GotoAudio:
|
|
uri = "bilibili://music/menu/detail/" + param
|
|
case GotoSong:
|
|
uri = "bilibili://music/detail/" + param
|
|
case GotoAudioTag:
|
|
uri = "bilibili://music/categorydetail/" + param
|
|
case GotoDaily:
|
|
uri = "bilibili://pegasus/list/daily/" + param
|
|
case GotoAlbum:
|
|
uri = "bilibili://album/" + param
|
|
case GotoClip:
|
|
uri = "bilibili://clip/" + param
|
|
case GotoWeb:
|
|
uri = param
|
|
}
|
|
if f != nil {
|
|
uri = f(uri)
|
|
}
|
|
return
|
|
}
|
|
|
|
// AvHandler logic
|
|
var AvHandler = func(a *arcwar.Arc) func(uri string) string {
|
|
return func(uri string) string {
|
|
if a == nil {
|
|
return uri
|
|
}
|
|
if a.Dimension.Height != 0 || a.Dimension.Width != 0 {
|
|
return fmt.Sprintf("%s?player_width=%d&player_height=%d&player_rotate=%d", uri, a.Dimension.Width, a.Dimension.Height, a.Dimension.Rotate)
|
|
}
|
|
return uri
|
|
}
|
|
}
|