修改推特账号注册方法

This commit is contained in:
zyj
2025-09-30 18:10:49 +08:00
parent dbf8b5bcca
commit 9cefdb1804
3 changed files with 52 additions and 11 deletions

View File

@@ -232,6 +232,7 @@ func (bit *BitBrowserService) Register() *libs.ErrorInfo {
if browserId == "" {
return libs.ErrorCode["BrowserCreationFailed"]
}
time.Sleep(10 * time.Second)
ws := bit.OpenBrowser(browserId)
if ws == "" {
return libs.ErrorCode["BrowserCreationFailed"]
@@ -243,15 +244,33 @@ func (bit *BitBrowserService) Register() *libs.ErrorInfo {
log.Println("当前邮箱信息", emailInfo)
obj := Browser.GetBitBrowser(ws)
page := obj.Page
page.MustNavigate("https://x.com/i/flow/signup").MustWaitLoad()
// 点击创建账号
createAccount := page.Timeout(5 * time.Second).MustElement(`button.css-175oi2r.r-sdzlij.r-1phboty.r-rs99b7.r-lrvibr.r-ywje51.r-184id4b.r-13qz1uu.r-2yi16.r-1qi8awa.r-3pj75a.r-1loqt21.r-o7ynqc.r-6416eg.r-1ny4l3l`)
createAccount.MustClick()
err := rod.Try(func() {
page.MustNavigate("https://x.com/i/flow/signup").MustWaitLoad()
// 点击创建账号
createAccount := page.Timeout(5 * time.Second).MustElement(`button.css-175oi2r.r-sdzlij.r-1phboty.r-rs99b7.r-lrvibr.r-ywje51.r-184id4b.r-13qz1uu.r-2yi16.r-1qi8awa.r-3pj75a.r-1loqt21.r-o7ynqc.r-6416eg.r-1ny4l3l`)
createAccount.MustClick()
})
if err != nil {
page.MustReload()
time.Sleep(10 * time.Second)
// 点击创建账号
createAccount := page.Timeout(5 * time.Second).MustElement(`button.css-175oi2r.r-sdzlij.r-1phboty.r-rs99b7.r-lrvibr.r-ywje51.r-184id4b.r-13qz1uu.r-2yi16.r-1qi8awa.r-3pj75a.r-1loqt21.r-o7ynqc.r-6416eg.r-1ny4l3l`)
createAccount.MustClick()
}
time.Sleep(5 * time.Second)
// 判断当前是否是邮箱注册
// _, err := page.Element(`input[name="email"]`)
// if err != nil {
switchButton := page.Timeout(5 * time.Second).MustElement(`button.css-146c3p1.r-bcqeeo.r-qvutc0.r-37j5jr.r-1ff274t.r-a023e6.r-rjixqe.r-16dba41`)
switchButton.MustClick()
switchButton, switchButtonErr := page.Timeout(5 * time.Second).Element(`button.css-146c3p1.r-bcqeeo.r-qvutc0.r-37j5jr.r-1ff274t.r-a023e6.r-rjixqe.r-16dba41`)
if switchButtonErr == nil {
switchButton.MustClick()
}
emailButtonQ, switchButtonErr := page.Timeout(5 * time.Second).Element(`button.css-146c3p1.r-bcqeeo.r-qvutc0.r-1tl8opc.r-1ff274t.r-a023e6.r-rjixqe.r-16dba41`)
if switchButtonErr == nil {
emailButtonQ.MustClick()
}
// }
// 获取邮箱输入框
inputEmail := page.Timeout(5 * time.Second).MustElement(`input[name="email"]`)
@@ -302,6 +321,15 @@ func (bit *BitBrowserService) Register() *libs.ErrorInfo {
if err1 != nil {
// res := getApiResponse(page, "")
}
var codeInputVer *rod.Element = nil
// 循环获取 验证码输入框
for codeInputVer == nil {
t, err1 := page.Timeout(5 * time.Second).Element(`input[name="verfication_code"]`)
if err1 == nil {
codeInputVer = t
}
time.Sleep(5 * time.Second)
}
//TODO 对接获取邮箱信息接口
time.Sleep(10 * time.Second)
codeValue := LoopGetEmailCode("pop.dragonsmail.com:993", emailInfo.Email, emailInfo.Password)
@@ -340,7 +368,7 @@ func (bit *BitBrowserService) Register() *libs.ErrorInfo {
cookieArr := GetPageCookie(page, "https://x.com")
// 创建用户
twitterAccountService := InitTwitterAccountService()
twitterAccountService.Create(&models.TwitterAccount{
accountId := twitterAccountService.Create(&models.TwitterAccount{
Name: nameStr,
Email: emailInfo.Email,
Password: emailInfo.Password,
@@ -395,7 +423,11 @@ func (bit *BitBrowserService) Register() *libs.ErrorInfo {
if errOCF == nil {
OCF_CallToAction_Button.MustClick()
}
if accountId != 0 {
twitterAccountService.Update(accountId, &models.TwitterAccount{Fa2: fa2CodeText})
}
time.Sleep(2 * time.Second)
page.MustNavigate("https://x.com/home").MustWaitLoad()
// 删除浏览器
// bit.DeleteBrowser(browserId)
return libs.ErrorCode["RegisterSuccessful"]

View File

@@ -19,7 +19,7 @@ func InitEmailService() *EmailService {
func (e *EmailService) GetEmailOne() *models.Email {
var email models.Email
err := e.db.Model(email).Where("use_status = ? and status=?", 0, 1).First(&email).Error
err := e.db.Model(email).Where("use_status = ? and status=?", 0, 1).Order("RAND()").Limit(1).Find(&email).Error
if err != nil {
return nil
}

View File

@@ -17,10 +17,14 @@ func InitTwitterAccountService() *TwitterAccountService {
return &TwitterAccountService{db: db}
}
func (t *TwitterAccountService) Create(params *models.TwitterAccount) {
func (t *TwitterAccountService) Create(params *models.TwitterAccount) int64 {
params.CreateTime = time.Now().Unix()
params.UpdateTime = time.Now().Unix()
t.db.Create(params)
result := t.db.Create(params)
if result.Error != nil {
return 0
}
return params.ID
}
func (t *TwitterAccountService) GetInfo(id int64) *models.TwitterAccount {
@@ -81,3 +85,8 @@ func (u *TwitterAccountService) ClearAccountStatus(params *models.TwitterAccount
u.db.Model(&models.TwitterAccount{}).Where("status = ?", params.Status).Update("status", nil)
return true
}
func (u *TwitterAccountService) Update(id int64, params *models.TwitterAccount) {
params.UpdateTime = time.Now().Unix()
u.db.Model(&models.TwitterAccount{}).Where("id = ?", id).Updates(params)
}