TODO: twitch_task2 fix 错误
This commit is contained in:
@@ -5,7 +5,6 @@ import (
|
||||
"encoding/json"
|
||||
"intimate"
|
||||
"log"
|
||||
"os"
|
||||
"strconv"
|
||||
"strings"
|
||||
"time"
|
||||
@@ -34,26 +33,35 @@ func main() {
|
||||
|
||||
ps := intimate.NewPerfectShutdown()
|
||||
ses := requests.NewSession()
|
||||
streamerQueue := intimate.TStreamer.Queue(intimate.Streamer{}, intimate.ConditionDefault(intimate.Ptwitcasting))
|
||||
|
||||
for !ps.IsClose() {
|
||||
|
||||
streamer, err := estore.Pop(intimate.Ptwitcasting)
|
||||
// streamer, err := estore.Pop(intimate.Ptwitcasting)
|
||||
isteamer, err := streamerQueue.Pop()
|
||||
if err != nil {
|
||||
log.Println(err, streamer)
|
||||
log.Println(err, isteamer)
|
||||
continue
|
||||
}
|
||||
|
||||
streamer.LiveUrl = sql.NullString{String: "https://twitcasting.tv/" + streamer.UserId, Valid: true}
|
||||
streamer := isteamer.(*intimate.Streamer)
|
||||
streamer.LiveUrl = &sql.NullString{String: "https://twitcasting.tv/" + *streamer.UserId, Valid: true}
|
||||
resp, err := ses.Get(streamer.LiveUrl.String).Execute()
|
||||
if err != nil {
|
||||
estore.UpdateError(streamer, err)
|
||||
log.Println(err, streamer.UserId)
|
||||
intimate.TStreamer.UpdateError(streamer, err)
|
||||
log.Println(err, *streamer.UserId)
|
||||
continue
|
||||
}
|
||||
var ldata *LiveData
|
||||
f, _ := os.OpenFile("./twistcasting.html", os.O_CREATE|os.O_RDWR|os.O_TRUNC, os.ModePerm)
|
||||
f.Write(resp.Content())
|
||||
// f, _ := os.OpenFile("./twistcasting.html", os.O_CREATE|os.O_RDWR|os.O_TRUNC, os.ModePerm)
|
||||
// f.Write(resp.Content())
|
||||
etor := extractor.ExtractHtml(resp.Content())
|
||||
ldata = etor.GetObjectByTag(LiveData{}).(*LiveData)
|
||||
ildata := etor.GetObjectByTag(LiveData{})
|
||||
if ildata == nil {
|
||||
log.Println(streamer.LiveUrl.String)
|
||||
continue
|
||||
}
|
||||
ldata = ildata.(*LiveData)
|
||||
// ldata.MaxViews = regexp.MustCompile("\\d+").FindString(ldata.MaxViews)
|
||||
coincount := 0
|
||||
|
||||
@@ -62,14 +70,14 @@ func main() {
|
||||
giverurl := streamer.LiveUrl.String + "/backers/" + strconv.Itoa(i)
|
||||
resp, err = ses.Get(giverurl).Execute()
|
||||
if err != nil {
|
||||
estore.UpdateError(streamer, err)
|
||||
intimate.TStreamer.UpdateError(streamer, err)
|
||||
log.Panic(err)
|
||||
}
|
||||
|
||||
etor := extractor.ExtractHtml(resp.Content())
|
||||
xp, err := etor.XPaths("//td[@class='tw-memorial-table-recent-point']")
|
||||
if err != nil {
|
||||
estore.UpdateError(streamer, err)
|
||||
intimate.TStreamer.UpdateError(streamer, err)
|
||||
log.Panic(err)
|
||||
}
|
||||
|
||||
@@ -100,20 +108,20 @@ func main() {
|
||||
}
|
||||
|
||||
streamer.Platform = intimate.Ptwitcasting
|
||||
streamer.UpdateTime = sql.NullTime{Time: time.Now(), Valid: true}
|
||||
streamer.UserName = sql.NullString{String: ldata.UserName, Valid: true}
|
||||
streamer.UpdateTime = &sql.NullTime{Time: time.Now(), Valid: true}
|
||||
streamer.UserName = &sql.NullString{String: ldata.UserName, Valid: true}
|
||||
streamer.Operator = 0
|
||||
streamer.Tags = tags
|
||||
// streamer.UpdateInterval = 60
|
||||
clog := &intimate.CollectLog{}
|
||||
clog.UserId = streamer.UserId
|
||||
clog.Gratuity = sql.NullInt64{Int64: int64(coincount), Valid: true}
|
||||
clog.UserId = *streamer.UserId
|
||||
clog.Gratuity = &sql.NullInt64{Int64: int64(coincount), Valid: true}
|
||||
clog.Platform = streamer.Platform
|
||||
clog.UpdateTime = streamer.UpdateTime
|
||||
clog.LiveTitle = sql.NullString{String: ldata.LiveTitle, Valid: true}
|
||||
clog.LiveTitle = &sql.NullString{String: ldata.LiveTitle, Valid: true}
|
||||
clog.Tags = tags
|
||||
|
||||
clog.Followers = sql.NullInt64{Int64: int64(ldata.Follower), Valid: true}
|
||||
clog.Followers = &sql.NullInt64{Int64: int64(ldata.Follower), Valid: true}
|
||||
switch {
|
||||
case ldata.Follower <= 100:
|
||||
streamer.UpdateInterval = 720
|
||||
@@ -125,12 +133,12 @@ func main() {
|
||||
streamer.UpdateInterval = 120
|
||||
}
|
||||
|
||||
clog.Views = sql.NullInt64{Int64: ldata.MaxViews, Valid: true}
|
||||
clog.Views = &sql.NullInt64{Int64: ldata.MaxViews, Valid: true}
|
||||
if ldata.LiveStart != "" {
|
||||
st, err := time.Parse("Mon, 02 Jan 2006 15:04:05 -0700", ldata.LiveStart)
|
||||
if err == nil {
|
||||
startTime := st
|
||||
clog.LiveStartTime = sql.NullTime{Time: startTime, Valid: true}
|
||||
clog.LiveStartTime = &sql.NullTime{Time: startTime, Valid: true}
|
||||
dt, err := strconv.Atoi(ldata.LiveDuration)
|
||||
|
||||
liveduration := time.Now().Sub(startTime)
|
||||
@@ -149,7 +157,7 @@ func main() {
|
||||
|
||||
if err == nil {
|
||||
endTime := startTime.Add((time.Duration)(dt) * time.Millisecond)
|
||||
clog.LiveEndTime = sql.NullTime{Time: endTime, Valid: true}
|
||||
clog.LiveEndTime = &sql.NullTime{Time: endTime, Valid: true}
|
||||
} else {
|
||||
log.Println(err, streamer.UserId)
|
||||
}
|
||||
@@ -158,8 +166,16 @@ func main() {
|
||||
}
|
||||
}
|
||||
|
||||
streamer.LatestLogUid = estore.InsertClog(clog)
|
||||
estore.UpdateStreamer(streamer)
|
||||
log.Println(streamer.UserId)
|
||||
clog.StreamerUid = streamer.Uid
|
||||
uid, err := intimate.TClog.InsertRetAutoID(clog)
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
continue
|
||||
}
|
||||
|
||||
streamer.LatestLogUid = uid
|
||||
intimate.TStreamer.Update(streamer)
|
||||
// estore.UpdateStreamer(streamer)
|
||||
log.Println(*streamer.UserId)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user