You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
74 lines
1.6 KiB
74 lines
1.6 KiB
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 |
|
} |
|
}
|
|
|