MCPcopy Create free account
hub / github.com/V2RaySSR/RealityChecker / PrintBanner

Function PrintBanner

internal/ui/banner.go:9–52  ·  view source on GitHub ↗

PrintBanner 打印程序横幅

()

Source from the content-addressed store, hash-verified

7
8// PrintBanner 打印程序横幅
9func PrintBanner() {
10 fmt.Println()
11
12 // 获取版本信息
13 versionInfo := getVersionInfo()
14
15 // 使用颜色代码
16 white := "\033[37m"
17 cyan := "\033[36m" // 青色用于网站信息
18 reset := "\033[0m"
19
20 // 计算版本信息长度,确保居中对齐
21 versionText := fmt.Sprintf("Reality协议目标网站检测工具 %s", versionInfo)
22 websiteText := "V2RaySSR 综合网"
23
24 // 横幅宽度(与表格保持一致)
25 width := 95
26
27 // 计算字符显示宽度(中文字符占2个位置)
28 versionDisplayWidth := getDisplayWidth(versionText)
29 websiteDisplayWidth := getDisplayWidth(websiteText)
30
31 // 计算居中位置
32 versionPadding := (width - 2 - versionDisplayWidth) / 2
33 websitePadding := (width - 2 - websiteDisplayWidth) / 2
34
35 // 确保padding不为负数
36 if versionPadding < 0 { versionPadding = 0 }
37 if websitePadding < 0 { websitePadding = 0 }
38
39 // 计算右侧剩余空间
40 versionRightSpace := width - 2 - versionPadding - versionDisplayWidth
41 websiteRightSpace := width - 2 - websitePadding - websiteDisplayWidth
42
43 if versionRightSpace < 0 { versionRightSpace = 0 }
44 if websiteRightSpace < 0 { websiteRightSpace = 0 }
45
46 fmt.Printf("%s╔%s╗%s\n", white, strings.Repeat("═", width-2), reset)
47 fmt.Printf("%s║%s%s%s║%s\n", white, strings.Repeat(" ", versionPadding), versionText, strings.Repeat(" ", versionRightSpace), reset)
48 fmt.Printf("%s║%s║%s\n", white, strings.Repeat(" ", width-2), reset)
49 fmt.Printf("%s║%s%s%s%s%s║%s\n", white, strings.Repeat(" ", websitePadding), cyan, websiteText, reset, strings.Repeat(" ", websiteRightSpace), reset)
50 fmt.Printf("%s╚%s╝%s\n", white, strings.Repeat("═", width-2), reset)
51 fmt.Println("")
52}

Callers 1

mainFunction · 0.92

Calls 2

getVersionInfoFunction · 0.85
getDisplayWidthFunction · 0.85

Tested by

no test coverage detected