package main import ( "encoding/json" "log" "regexp" "testing" "github.com/Pallinder/go-randomdata" ) func TestMain(t *testing.T) { main() } func estCountTag(t *testing.T) { var a = `男人 女人 儿童 老人 母亲 父亲 爷爷 奶奶 老师 美女 帅哥 性格 善良 性格 品质 聪明 女儿 儿子 军人 坏蛋 心情 笑 哭 高兴 害怕 愤怒 激动 紧张 忧虑 着急 满足 眼睛 鼻子 嘴巴 头发 耳朵 牙齿 美 丑 眉毛 脸 手 脚 腰 腿 胖 瘦 矮 高 清明节 劳动节 端午节 七夕节 中秋节 重阳节 元宵节 服饰 鼠 牛 虎 兔 龙 蛇 马 羊 猴 狗 猪 鸡 颜色 聚会 时间短 时间 爱情 脚步声 水声 花 教堂 速度快 速度慢 桃花 幼苗 紫色 白色 黑色 红色 女性身材 男性身材 沙沙尘尘 猪甘蠢 猪 无脑 大唔透 玩世不恭 眼大无神 大细超 白鸽眼 咸湿 浪漫 靓仔 靓 女 猛男 咸猪手 西施 好色 色狼 色魔 畜牲 食碗面反碗底 抵死 恶死 曾眉凸眼 眉耒眼去 温柔体贴假细心 放荡 淫贱 荒唐 离谱 头尖额窄无厘贵格 肚满肠肥 两面三刀 反革命 红卫兵 ` tags := regexp.MustCompile("[^ \n\t]+").FindAllString(a, -1) for { var stags []string for i := 0; i < randomdata.Number(1, 5); i++ { tag := randomdata.StringSample(tags...) stags = append(stags, tag) } data, _ := json.Marshal(stags) sql := "update streamer set tags = ?, operator = 20 where operator != 20 limit 1" _, err := StoreStreamer.Exec(sql, data) if err != nil { log.Println(err) break } } } func estDupTag(t *testing.T) { querysql := `SELECT ie.tags , cl.followers , cl.views , cl.gratuity From ( SELECT * FROM intimate_extractor.streamer WHERE platform = "%s" AND operator = 0 AND latest_log_uid is not NULL ) ie JOIN intimate_extractor.collect_log cl WHERE ie.latest_log_uid = cl.log_uid %s;` sortstr := "order by cl.followers desc" rows, err := StoreStreamer.Query(querysql, "twitch", sortstr) if err != nil { panic(err) } var counttag = make(map[string]int64) for rows.Next() { var followers, views, gratuity int64 var tagsbuf []byte var tags []string rows.Scan(&tagsbuf, &followers, &views, &gratuity) json.Unmarshal(tagsbuf, &tags) if len(tags) > 0 { for _, t := range tags { if _, ok := counttag[t]; ok { counttag[t] += gratuity } else { counttag[t] = gratuity } } } } } func TestTagFollowers(t *testing.T) { }