| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165 | 
							- package utils
 
- import (
 
- 	"flag"
 
- 	"fmt"
 
- 	"math/rand"
 
- 	"os"
 
- 	"strings"
 
- 	"time"
 
- )
 
- // IsFlagPassed 判断是否设置了指定 flag
 
- func IsFlagPassed(name string) bool {
 
- 	found := false
 
- 	flag.Visit(func(f *flag.Flag) {
 
- 		if f.Name == name {
 
- 			found = true
 
- 		}
 
- 	})
 
- 	return found
 
- }
 
- // NumberOrStringToBool 字符串 1, yes 返回 true 否则 false
 
- func NumberOrStringToBool(input string) bool {
 
- 	if input == "1" {
 
- 		return true
 
- 	}
 
- 	if input == "yes" {
 
- 		return true
 
- 	}
 
- 	return false
 
- }
 
- // NumberToBool 大于0 返回 true 否则 false
 
- func NumberToBool(input int64) bool {
 
- 	if input > 0 {
 
- 		return true
 
- 	} else {
 
- 		return false
 
- 	}
 
- }
 
- // Bool to int true 返回 1 否则 0
 
- func BoolToInt(input bool) int64 {
 
- 	var output int64
 
- 	if input {
 
- 		output = 1
 
- 	} else {
 
- 		output = 0
 
- 	}
 
- 	return output
 
- }
 
- // BoolToNumber true 返回 "1" false 返回  "0"
 
- func BoolToNumber(input bool) string {
 
- 	if input {
 
- 		return "1"
 
- 	}
 
- 	return "0"
 
- }
 
- // BoolToString true 返回 "yes" false 返回  "no"
 
- func BoolToString(input bool) string {
 
- 	if input {
 
- 		return "yes"
 
- 	}
 
- 	return "no"
 
- }
 
- // YesToOn  Yes 或 yes 返回 "on" 否则返回 "off"
 
- // 会议 Muted 的值可能是 By admin
 
- func YesToOn(input string) string {
 
- 	if input == "Yes" || input == "yes" || strings.Contains(input, "By") {
 
- 		return "on"
 
- 	}
 
- 	return "off"
 
- }
 
- // GetRandStr 生成随机密码
 
- func GetRandStr(baseStr string, length int) string {
 
- 	r := rand.New(rand.NewSource(time.Now().UnixNano() + rand.Int63()))
 
- 	bytes := make([]byte, length)
 
- 	l := len(baseStr)
 
- 	for i := 0; i < length; i++ {
 
- 		bytes[i] = baseStr[r.Intn(l)]
 
- 	}
 
- 	return string(bytes)
 
- }
 
- // SqlLike sql like 头尾添加 %%
 
- func SqlLike(input string) string {
 
- 	return fmt.Sprintf("%%%s%%", input)
 
- }
 
- // IsChannel 判断输入是否是 Channel
 
- func IsChannel(input string) bool {
 
- 	if strings.Contains(input, "SIP") {
 
- 		return true
 
- 	}
 
- 	if strings.Contains(input, "Local") {
 
- 		return true
 
- 	}
 
- 	if strings.Contains(input, "DAHDI") {
 
- 		return true
 
- 	}
 
- 	return false
 
- }
 
- // 判断是否是广播分机
 
- func IsPAIU(input string) bool {
 
- 	if len(input) == 4 {
 
- 		return input[:2] == "24"
 
- 	}
 
- 	return false
 
- }
 
- // 判断是否是广播分机
 
- func IsPACU(input string) bool {
 
- 	if len(input) == 4 {
 
- 		return input[:2] == "21"
 
- 	}
 
- 	return false
 
- }
 
- // 判断是否是司机控制盒
 
- func IsIO(input string) bool {
 
- 	if len(input) == 4 {
 
- 		return input[:2] == "14"
 
- 	}
 
- 	return false
 
- }
 
- // 判断是否是司机控制盒
 
- func IsICP(input string) bool {
 
- 	if len(input) == 4 {
 
- 		return input[:2] == "23"
 
- 	}
 
- 	return false
 
- }
 
- // 判断文件是否存在
 
- func PathExists(path string) bool {
 
- 	_, err := os.Stat(path)
 
- 	if err == nil {
 
- 		return true
 
- 	}
 
- 	if os.IsNotExist(err) {
 
- 		return false
 
- 	}
 
- 	return false
 
- }
 
- func IndexOf(sliceID []string, value string) int {
 
- 	for i, v := range sliceID {
 
- 		if v == value {
 
- 			return i
 
- 		}
 
- 	}
 
- 	return -1
 
- }
 
 
  |