forked from Mrs4s/MiraiGo
/
group.go
49 lines (47 loc) · 1.14 KB
/
group.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
package utils
func ToGroupUin(groupCode int64) int64 {
left := groupCode / 1000000
switch {
case left >= 0 && left <= 10:
left += 202
case left >= 11 && left <= 19:
left += 480 - 11
case left >= 20 && left <= 66:
left += 2100 - 20
case left >= 67 && left <= 156:
left += 2010 - 67
case left >= 157 && left <= 209:
left += 2147 - 157
case left >= 210 && left <= 309:
left += 4100 - 210
case left >= 310 && left <= 335:
left += 3800 - 310
case left >= 336 && left <= 386:
left += 2265
case left >= 387 && left <= 499:
left += 3490
}
return left*1000000 + groupCode%1000000
}
func ToGroupCode(groupUin int64) int64 {
left := groupUin / 1000000
switch {
case left >= 202 && left <= 212:
left -= 202
case left >= 480 && left <= 488:
left -= 480 - 11
case left >= 2100 && left <= 2146:
left -= 2100 - 20
case left >= 2010 && left <= 2099:
left -= 2010 - 67
case left >= 2147 && left <= 2199:
left -= 2147 - 157
case left >= 2600 && left <= 2651:
left -= 2265
case left >= 4100 && left <= 4199:
left -= 4100 - 210
case left >= 3800 && left <= 3989:
left -= 3800 - 310
}
return left*1000000 + groupUin%1000000
}