You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

232 lines
8.1 KiB
Go

package main
import (
"autogo/common"
"autogo/dbsql"
"autogo/device"
"autogo/models"
"autogo/monkey"
"fmt"
"net/http"
"os/exec"
"strings"
"time"
"github.com/imroc/req/v3"
)
func main() {
buglyHelper()
return
cmd := exec.Command("docker", "ps")
output, err := cmd.Output()
if err != nil {
fmt.Println(err)
return
}
lines := strings.Split(string(output), "\n")
for i, line := range lines {
if i == 0 {
continue // skip header line
}
fields := strings.Fields(line)
if len(fields) >= 7 {
fmt.Printf("Container ID: %s, Name: %s\n", fields[0], fields[len(fields)-1])
getRuntime(fields[0])
}
}
fmt.Println("end")
}
func buglyHelper() {
var rsp BuglyRsp
url := `https://bugly.qq.com/v2/search?start=0&userSearchPage=%2Fv2%2Fworkbench%2Fapps&pid=2&platformId=2&date=last_7_day&sortOrder=desc&useSearchTimes=2&rows=10&sortField=matchCount&appId=447d39aea1&fsn=f0726b64-a3ac-4e0d-a89d-c9148c82a5e6`
client := req.C().
SetTimeout(5 * time.Second)
resp, err := client.R().
SetCookies(cookies()...).
SetHeader("X-Token", "536325371").
SetHeader("Accept", "application/json;charset=utf-8").
SetHeader("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.75 Safari/537.36").
// SetHeader("Cookie", "ptui_loginuin=188107463; RK=vOtUmiA9WS; ptcz=d265861b48af6f48ea0f924ded6af2b654f74146c1dc4d8632cb48e67edf7484; _ga=GA1.2.1584569153.1684823271; _qpsvr_localtk=0.9318772864960871; token-skey=b9694495-0a28-882a-01f9-d038d9e43bc7; token-lifeTime=1686922095; bugly-session=s:xz-9qL2pRzO3Mz8Wu_I7Svl2SLCWJfLE.MqN7buOfwmbUlRkdLauxXaddtaS3lebknTnCdPQOmtw; referrer=eyJpdiI6IkFcLzJDUTlValNtS0lUaGRFdkg3d2pRPT0iLCJ2YWx1ZSI6Ims4YUp6cUxyZlc0N25hOEJ2QWpZUlZQa2RKc1o3N3RiRHZXVVI1MlJLZ1RrSEtaQ2VmY1BtNEhMUjg4QjJSaExnc05cLzdiaGc2SHFtOTgzdnljMmlxUjd3d0FNZWdZdFwvNjdsT2ZYaG84M21Yd25FV1N0UTJyZTd3TDBId3hiQzNhN1wvS2RTZ1ZvdVFDYStKeEIrcGNnWWs1bno3dHdjTkVWdHIrYmRYTWNUb3Z1UGVvMXdoSE50djJBZ05hZ2pXUiIsIm1hYyI6IjgwNDI0ZjI2MjI0ZDFhMDA3MjBhYjQ4MWIwYjJiZTIzY2U5YjNkZjYyNGFkNTA5NGFjN2U4Y2U3ZTQwMDVlYWQifQ==; bugly_session=eyJpdiI6IjNmQzhJamU1cUlVd08yZHdWMkpTcmc9PSIsInZhbHVlIjoiZ3dFUXZUWmZ6XC8rbTZITG1DRVdrdDUrM1p0RE5nemgzeVhJa2huYWhieVB4SVFRMnlyWFFCU2JCQVpmRHNRQjdubnhhRWVJcUd3OEdzSk1zKzF2WGt3PT0iLCJtYWMiOiIwZjc4MGFmMDk1YzUyZTQ4Zjc5MjcwMDMyNGUzNmMxYjE5MjRlNTQ2MjliMzA3NmQyMGVjODRiZDgyMDU2NGQ1In0=").
SetHeader("Accept", "application/json;charset=utf-8").
SetHeader("Accept-Encoding", "gzip, deflate, br").
SetHeader("Accept-Language", "zh-CN,zh;q=0.9").
SetHeader("Connection", "keep-alive").
SetSuccessResult(&rsp).
// SetResult(&rsp).
Get(url)
if err != nil {
fmt.Println(err)
return
}
if resp.IsErrorState() {
fmt.Println(resp.StatusCode)
return
}
fmt.Println(len(rsp.Ret.IssueList))
}
func cookies() []*http.Cookie {
var cookies []*http.Cookie
var c1 http.Cookie
c1.Name = "bugly-session"
c1.Value = "s:xz-9qL2pRzO3Mz8Wu_I7Svl2SLCWJfLE.MqN7buOfwmbUlRkdLauxXaddtaS3lebknTnCdPQOmtw"
cookies = append(cookies, &c1)
var c3 http.Cookie
c3.Name = "bugly_session"
c3.Value = "eyJpdiI6IlpuTkc5aXcwRHdUR1JGdDhIUmJMbGc9PSIsInZhbHVlIjoiRTZhVmxya3R3Sjl6UzBKQjRLa0EyNXlVV0lVYlNWVnpvVWFrbzVRS0k5am9UK3Y2MHN5czc3XC9JV0ZJNCtBQkdBbW4rZFh5RmFrcWYzODhOanV0OE9BPT0iLCJtYWMiOiI2MmJlYTI2MWE0M2U4NTFlNjJhYzkwZTAyOTQ3MTgxZmYwMTc0ZGJjOGE4MTE0ZjQ1Y2VmN2I5NjJkYTk2ZGY5In0="
cookies = append(cookies, &c3)
return cookies
}
func getRuntime(containerID string) {
// 执行 docker inspect 命令获取容器创建时间
cmd := exec.Command("docker", "inspect", "-f", "{{.Created}}", containerID)
output, err := cmd.Output()
if err != nil {
fmt.Println(err)
return
}
// 将输出结果转换为时间格式
createdTime, err := time.Parse(time.RFC3339Nano, strings.TrimSpace(string(output)))
if err != nil {
fmt.Println(err)
return
}
// 计算容器已经运行的时间
uptime := time.Since(createdTime)
// 将容器运行时间转换为秒级时间戳输出
uptimeInSeconds := int64(uptime.Seconds())
fmt.Printf("Container %s has been running for %d seconds\n", containerID, uptimeInSeconds)
}
func sib() {
if device.CheckSib() {
fmt.Println("sib已安装")
fmt.Println(device.GetIOSDevices())
} else {
fmt.Println("sib未安装")
}
}
func tmp1() {
dbsql.DSN = dbsql.DSN_local
db, err := dbsql.GetConn(dbsql.DSN)
if err != nil {
fmt.Println(err)
return
}
defer dbsql.Close(db)
var task models.MonkeyTask
db.Last(&task)
common.PushMonkeyResult(task)
return
// dbsql.DSN = dbsql.DSN_local
// db, err := dbsql.GetConn(dbsql.DSN)
// if err != nil {
// fmt.Println(err)
// return
// }
// defer dbsql.Close(db)
var list []models.MonkeyTask
db.Model(models.MonkeyTask{}).Order("id DESC").Find(&list)
for _, v := range list {
if v.PackageURL != "" {
app, err := common.GetBranch(v.PackageName, v.PackageURL)
if err != nil {
fmt.Println(v.Id, "-", err, "||", v.PackageURL)
err = nil
} else {
fmt.Println(v.Id, "-", app.Branch)
db.Model(models.MonkeyTask{}).Where("id = ?", v.Id).Update("version", app.Version+"_"+app.VersionCode)
}
}
}
}
func Dir() {
err := monkey.CreateDir("files")
if err != nil {
fmt.Println(err)
}
err = monkey.CreateDir("files/1")
if err != nil {
fmt.Println(err)
}
err = monkey.CreateAndWriteFile("files/1/2.txt", []byte("hidiuniduini"))
if err != nil {
fmt.Println(err)
}
}
type BuglyRsp struct {
Status int `json:"status"`
Msg string `json:"msg"`
Ret struct {
AppID string `json:"appId"`
PlatformID string `json:"platformId"`
IssueList []struct {
IssueID int `json:"issueId"`
IssueHash string `json:"issueHash"`
IssueCount int `json:"issueCount"`
CrashInfo struct {
CrashID string `json:"crashId"`
TagID int `json:"tagId"`
} `json:"crashInfo"`
IssueVersions []struct {
Version string `json:"version"`
Count int `json:"count"`
DeviceCount int `json:"deviceCount"`
} `json:"issueVersions"`
FtName string `json:"ftName"`
IssueDocMap struct {
ID string `json:"id"`
IssueID int `json:"issueId"`
Status int `json:"status"`
Count int `json:"count"`
SysCount int `json:"sysCount"`
ProductVersion string `json:"productVersion"`
DeviceCount int `json:"deviceCount"`
SysDeviceCount int `json:"sysDeviceCount"`
LastUpdateTime string `json:"lastUpdateTime"`
FirstUploadTime string `json:"firstUploadTime"`
LastUploadTime string `json:"lastUploadTime"`
ExpName string `json:"expName"`
ExpFingure string `json:"expFingure"`
IsSystemStack int `json:"isSystemStack"`
KeyStack string `json:"keyStack"`
Type string `json:"type"`
AverageBattery float64 `json:"averageBattery"`
AverageMemory float64 `json:"averageMemory"`
AverageSD float64 `json:"averageSD"`
AverageStorage float64 `json:"averageStorage"`
CrossVersionIssueID int `json:"crossVersionIssueId"`
VersionIssueIds []int `json:"versionIssueIds"`
SubIssueVersions string `json:"subIssueVersions"`
ExpMessage string `json:"expMessage"`
RootCount int `json:"rootCount"`
SysRootCount int `json:"sysRootCount"`
ExpAddr string `json:"expAddr"`
RefSdkAppID string `json:"refSdkAppId"`
RefSdkIssueID string `json:"refSdkIssueId"`
CrashRecordCount int `json:"crashRecordCount"`
} `json:"issueDocMap"`
CrossVersionIssueID int `json:"crossVersionIssueId"`
EsCount int `json:"esCount"`
EsDeviceCount int `json:"esDeviceCount"`
} `json:"issueList"`
NumFound int `json:"numFound"`
CrashNums int `json:"crashNums"`
AnrNums int `json:"anrNums"`
ErrorNums int `json:"errorNums"`
} `json:"ret"`
}