github.com/Mrs4s/MiraiGo@v0.0.0-20240226124653-54bdd873e3fe/utils/group.go (about)

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