123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201 |
- package model
- import (
- "fmt"
- "strings"
- "go-common/app/interface/main/app-resource/model/tab"
- )
- const (
- // PlatAndroid is int8 for android.
- PlatAndroid = int8(0)
- // PlatIPhone is int8 for iphone.
- PlatIPhone = int8(1)
- // PlatIPad is int8 for ipad.
- PlatIPad = int8(2)
- // PlatWPhone is int8 for wphone.
- PlatWPhone = int8(3)
- // PlatAndroidG is int8 for Android Global.
- PlatAndroidG = int8(4)
- // PlatIPhoneI is int8 for Iphone Global.
- PlatIPhoneI = int8(5)
- // PlatIPadI is int8 for IPAD Global.
- PlatIPadI = int8(6)
- // PlatAndroidTV is int8 for AndroidTV Global.
- PlatAndroidTV = int8(7)
- // PlatAndroidI is int8 for Android Global.
- PlatAndroidI = int8(8)
- // PlatAndroidB is int8 for Android Blue.
- PlatAndroidB = int8(9)
- // PlatIPhoneB is int8 for Ios Blue
- PlatIPhoneB = int8(10)
- // PlatBilistudio is int8 for bilistudio
- PlatBilistudio = int8(11)
- // PlatAndroidTVYST is int8 for AndroidTV_YST Global.
- PlatAndroidTVYST = int8(12)
- GotoAv = "av"
- GotoWeb = "web"
- GotoBangumi = "bangumi"
- GotoSp = "sp"
- GotoLive = "live"
- GotoGame = "game"
- GotoPegasusTab = "pegasus"
- )
- var (
- PegasusHandler = func(m *tab.Menu) func(uri string) string {
- return func(uri string) string {
- if m == nil {
- return uri
- }
- if m.Name != "" {
- return fmt.Sprintf("%s?name=%s", uri, m.Name)
- }
- return uri
- }
- }
- )
- // Plat return plat by platStr or mobiApp
- func Plat(mobiApp, device string) int8 {
- switch mobiApp {
- case "iphone":
- if device == "pad" {
- return PlatIPad
- }
- return PlatIPhone
- case "white":
- return PlatIPhone
- case "ipad":
- return PlatIPad
- case "android":
- return PlatAndroid
- case "win":
- return PlatWPhone
- case "android_G":
- return PlatAndroidG
- case "android_i":
- return PlatAndroidI
- case "android_b":
- return PlatAndroidB
- case "iphone_i":
- if device == "pad" {
- return PlatIPadI
- }
- return PlatIPhoneI
- case "ipad_i":
- return PlatIPadI
- case "iphone_b":
- return PlatIPhoneB
- case "android_tv":
- return PlatAndroidTV
- case "android_tv_yst":
- return PlatAndroidTVYST
- case "bilistudio":
- return PlatBilistudio
- case "biliLink":
- return PlatIPhone
- }
- return PlatIPhone
- }
- // InvalidBuild check source build is not allow by config build and condition.
- // eg: when condition is gt, means srcBuild must gt cfgBuild, otherwise is invalid srcBuild.
- func InvalidBuild(srcBuild, cfgBuild int, cfgCond string) bool {
- if cfgBuild != 0 && cfgCond != "" {
- switch cfgCond {
- case "gt":
- if cfgBuild >= srcBuild {
- return true
- }
- case "lt":
- if cfgBuild <= srcBuild {
- return true
- }
- case "eq":
- if cfgBuild != srcBuild {
- return true
- }
- case "ne":
- if cfgBuild == srcBuild {
- return true
- }
- }
- }
- return false
- }
- // IsAndroid check plat is android or ipad.
- func IsAndroid(plat int8) bool {
- return plat == PlatAndroid || plat == PlatAndroidG || plat == PlatAndroidB || plat == PlatAndroidI ||
- plat == PlatBilistudio || plat == PlatAndroidTV || plat == PlatAndroidTVYST
- }
- // IsIOS check plat is iphone or ipad.
- func IsIOS(plat int8) bool {
- return plat == PlatIPad || plat == PlatIPhone || plat == PlatIPadI || plat == PlatIPhoneI || plat == PlatIPhoneB
- }
- // 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 = "bilibili://bangumi/season/" + param
- case GotoGame:
- uri = "bilibili://game/" + param
- case GotoSp:
- uri = "bilibili://splist/" + param
- case GotoWeb:
- uri = param
- case GotoPegasusTab:
- uri = "bilibili://pegasus/op/" + param
- }
- if f != nil {
- uri = f(uri)
- }
- return
- }
- // MobiAPPBuleChange
- func MobiAPPBuleChange(mobiApp string) string {
- switch mobiApp {
- case "android_b":
- return "android"
- case "iphone_b":
- return "iphone"
- }
- return mobiApp
- }
- func URLHTTPS(uri string) (url string) {
- if strings.HasPrefix(uri, "http://") {
- url = "https://" + uri[7:]
- } else {
- url = uri
- }
- return
- }
- // IsOverseas is overseas
- func IsOverseas(plat int8) bool {
- return plat == PlatAndroidI || plat == PlatIPhoneI || plat == PlatIPadI
- }
- func PlatAPPBuleChange(plat int8) int8 {
- switch plat {
- case PlatAndroidB:
- return PlatAndroid
- case PlatIPhoneB:
- return PlatIPhone
- }
- return plat
- }
|