84 lines
2.1 KiB
Go
84 lines
2.1 KiB
Go
package services
|
|
|
|
import (
|
|
"go-account-register/models"
|
|
"log"
|
|
|
|
"github.com/xuri/excelize/v2"
|
|
)
|
|
|
|
// 导出 Twitter 账号数据到 Excel
|
|
func ExportTwitterAccounts() ([]string, error) {
|
|
accountService := InitTwitterAccountService()
|
|
accounts := accountService.GetAll(&models.TwitterAccount{
|
|
Type: "get",
|
|
})
|
|
|
|
// 分类
|
|
countryMap := map[string][]models.TwitterAccount{
|
|
"United States": {},
|
|
"Singapore": {},
|
|
"Japan": {},
|
|
"Taiwan": {},
|
|
"Other": {},
|
|
}
|
|
for _, acc := range accounts {
|
|
addr := acc.RegisterAddress
|
|
if addr == "United States" || addr == "Singapore" || addr == "Japan" || addr == "Taiwan" {
|
|
countryMap[addr] = append(countryMap[addr], acc)
|
|
} else {
|
|
countryMap["Other"] = append(countryMap["Other"], acc)
|
|
}
|
|
}
|
|
|
|
var files []string
|
|
for k, v := range countryMap {
|
|
if len(v) == 0 {
|
|
continue
|
|
}
|
|
file := excelize.NewFile()
|
|
titles := []string{"编号", "用户id", "用户名", "邮箱", "密码", "邮箱密码", "生日", "Token", "二步验证码", "Cookies", "类型", "状态", "登录状态", "代理", "浏览器ID", "浏览器地址", "注册时间", "注册地区", "注册IP", "更新时间", "创建时间"}
|
|
for i, t := range titles {
|
|
cell, _ := excelize.CoordinatesToCellName(i+1, 1)
|
|
file.SetCellValue("Sheet1", cell, t)
|
|
}
|
|
for row, acc := range v {
|
|
vals := []interface{}{
|
|
acc.ID,
|
|
acc.Uid,
|
|
acc.Name,
|
|
acc.Email,
|
|
acc.Password,
|
|
acc.EmailPassword,
|
|
acc.Birthday,
|
|
acc.Token,
|
|
acc.Fa2,
|
|
acc.Cookies,
|
|
acc.Type,
|
|
acc.Status,
|
|
acc.LoginStatus,
|
|
acc.Proxy,
|
|
acc.BrowserId,
|
|
acc.BrowserUrl,
|
|
acc.RegisterDate,
|
|
acc.RegisterAddress,
|
|
acc.RegisterIp,
|
|
acc.UpdateTime,
|
|
acc.CreateTime,
|
|
}
|
|
for col, val := range vals {
|
|
cell, _ := excelize.CoordinatesToCellName(col+1, row+2)
|
|
file.SetCellValue("Sheet1", cell, val)
|
|
}
|
|
}
|
|
filename := "twitter_accounts_" + k + ".xlsx"
|
|
if err := file.SaveAs(filename); err != nil {
|
|
log.Println("保存文件失败:", filename, err)
|
|
} else {
|
|
files = append(files, filename)
|
|
log.Println("已导出:", filename)
|
|
}
|
|
}
|
|
return files, nil
|
|
}
|