160 lines
4.7 KiB
Go
160 lines
4.7 KiB
Go
package dispatch
|
|
|
|
import (
|
|
"fmt"
|
|
"testing"
|
|
)
|
|
|
|
func TestMatcher(t *testing.T) {
|
|
config := []byte(`{
|
|
"ip_max_limit": 2,
|
|
"default_domain" : "broadcastlv.chat.bilibili.com",
|
|
"danmaku_common_dispatch": {
|
|
"china" :{
|
|
"china_telecom": {
|
|
"master": {
|
|
"tencent_shanghai": 10,
|
|
"tencent_guangzhou": 6,
|
|
"kingsoft": 24
|
|
},
|
|
"slave": {
|
|
"tencent_shanghai": 10,
|
|
"tencent_guangzhou": 6,
|
|
"kingsoft": 24,
|
|
"aliyun": 30
|
|
}
|
|
},
|
|
"china_unicom": {
|
|
"master": {
|
|
"tencent_shanghai": 10,
|
|
"tencent_guangzhou": 6,
|
|
"kingsoft": 24
|
|
},
|
|
"slave": {
|
|
"tencent_shanghai": 10,
|
|
"tencent_guangzhou": 6,
|
|
"kingsoft": 24,
|
|
"aliyun": 30
|
|
}
|
|
},
|
|
"cmcc": {
|
|
"master": {
|
|
"tencent_shanghai": 10,
|
|
"tencent_guangzhou": 6,
|
|
"kingsoft": 24
|
|
},
|
|
"slave": {
|
|
"tencent_shanghai": 10,
|
|
"tencent_guangzhou": 6,
|
|
"kingsoft": 24,
|
|
"aliyun": 30
|
|
}
|
|
},
|
|
"other": {
|
|
"master": {
|
|
"tencent_shanghai": 10,
|
|
"tencent_guangzhou": 6,
|
|
"kingsoft": 24
|
|
},
|
|
"slave": {
|
|
"tencent_shanghai": 10,
|
|
"tencent_guangzhou": 6,
|
|
"kingsoft": 24,
|
|
"aliyun": 30
|
|
}
|
|
}
|
|
},
|
|
"oversea": [
|
|
{
|
|
"rule":"($lng >= -20) && ($lng <= 160)",
|
|
"master": {
|
|
"tencent_siliconvalley": 10
|
|
},
|
|
"slave": {
|
|
"tencent_shanghai": 10,
|
|
"tencent_guangzhou": 6,
|
|
"kingsoft": 24,
|
|
"aliyun": 30
|
|
}
|
|
},
|
|
{
|
|
"master": {
|
|
"tencent_siliconvalley": 10
|
|
},
|
|
"slave": {
|
|
"tencent_shanghai": 10,
|
|
"tencent_guangzhou": 6,
|
|
"kingsoft": 24,
|
|
"aliyun": 30
|
|
}
|
|
}
|
|
],
|
|
"unknown" : {
|
|
"master": {
|
|
"tencent_shanghai": 10,
|
|
"tencent_guangzhou": 6,
|
|
"kingsoft": 24
|
|
},
|
|
"slave": {
|
|
"tencent_shanghai": 10,
|
|
"tencent_guangzhou": 6,
|
|
"kingsoft": 24,
|
|
"aliyun": 30
|
|
}
|
|
}
|
|
},
|
|
"danmaku_vip_dispatch" : [
|
|
{
|
|
"rule":"$uid==120497668",
|
|
"ip": ["118.89.14.174"]
|
|
},
|
|
{
|
|
"rule":"$uid % 10 == 1",
|
|
"group": ["tencent_guangzhou"]
|
|
},
|
|
{
|
|
"rule":"$uid == 221122111"
|
|
}
|
|
],
|
|
"danmaku_comet_group": {
|
|
"tencent_shanghai": [
|
|
"118.89.14.174",
|
|
"118.89.14.115",
|
|
"118.89.14.103",
|
|
"118.89.14.206",
|
|
"118.89.13.229"
|
|
],
|
|
"tencent_guangzhou": [
|
|
"211.159.194.41",
|
|
"211.159.194.115",
|
|
"211.159.194.105"
|
|
],
|
|
"tencent_hongkong": [
|
|
"119.28.56.183"
|
|
],
|
|
"tencent_siliconvalley": [
|
|
"49.51.37.200"
|
|
],
|
|
"kingsoft": [
|
|
"120.92.78.57",
|
|
"120.92.158.137",
|
|
"120.92.112.150"
|
|
],
|
|
"aliyun": [
|
|
"101.132.195.89",
|
|
"47.104.64.120",
|
|
"59.110.167.237",
|
|
"47.92.112.162",
|
|
"47.96.139.69",
|
|
"119.23.41.85"
|
|
]
|
|
}
|
|
}`)
|
|
m, err := NewMatcher(config, nil, nil, nil)
|
|
if err != nil {
|
|
t.Error(err)
|
|
t.Fail()
|
|
}
|
|
fmt.Println(m)
|
|
}
|