166 lines
3.1 KiB
Go
166 lines
3.1 KiB
Go
package daemon
|
|
|
|
import (
|
|
"encoding/json"
|
|
"fmt"
|
|
"time"
|
|
|
|
"gordenko.dev/dima/flashscore"
|
|
"gordenko.dev/dima/timeutil"
|
|
"gordenko.dev/dima/tipper/model"
|
|
"gordenko.dev/dima/web"
|
|
)
|
|
|
|
func (s *Daemon) PageMatches(state *web.State, reply *web.Reply) (err error) {
|
|
buf, _ := json.MarshalIndent(s.teamMatches, "", " ")
|
|
//reply.Render("matches", buf)
|
|
reply.Write(buf)
|
|
return
|
|
}
|
|
|
|
type TipView struct {
|
|
Time string
|
|
Name string
|
|
Champ string
|
|
Link string
|
|
Result string
|
|
Status model.TipStatus
|
|
Strategy string
|
|
}
|
|
|
|
type DayTips struct {
|
|
Date string
|
|
Tips []TipView
|
|
}
|
|
|
|
type PageTipsData struct {
|
|
Days []DayTips
|
|
}
|
|
|
|
func (s *Daemon) PageHandballByDays(state *web.State, reply *web.Reply) (err error) {
|
|
data, err := s.getPageTipsData(flashscore.Handball)
|
|
if err != nil {
|
|
return
|
|
}
|
|
|
|
reply.Render("temp_tips", data)
|
|
return
|
|
}
|
|
|
|
func (s *Daemon) PageFootballByDays(state *web.State, reply *web.Reply) (err error) {
|
|
data, err := s.getPageTipsData(flashscore.Football)
|
|
if err != nil {
|
|
return
|
|
}
|
|
|
|
reply.Render("temp_tips", data)
|
|
return
|
|
}
|
|
|
|
func (s *Daemon) PageTennisByDays(state *web.State, reply *web.Reply) (err error) {
|
|
data, err := s.getPageTipsData(flashscore.Tennis)
|
|
if err != nil {
|
|
return
|
|
}
|
|
|
|
reply.Render("temp_tips", data)
|
|
return
|
|
}
|
|
|
|
func (s *Daemon) getPageTipsData(sportID int) (_ PageTipsData, err error) {
|
|
tips, err := s.ListSportTips(sportID)
|
|
if err != nil {
|
|
return
|
|
}
|
|
|
|
var days []DayTips
|
|
|
|
var currentDay int64
|
|
var dayTips DayTips
|
|
|
|
for _, tip := range tips {
|
|
if tip.Status != model.Won && tip.Status != model.Lost {
|
|
continue
|
|
}
|
|
|
|
tm := time.Unix(tip.TipTime, 0)
|
|
|
|
tm = timeutil.FirstSecondInPeriod(tm, "d")
|
|
//if err != nil {
|
|
// return
|
|
//}
|
|
|
|
day := tm.Unix()
|
|
|
|
if day != currentDay {
|
|
if currentDay != 0 {
|
|
days = append(days, dayTips)
|
|
}
|
|
|
|
dayTips = DayTips{
|
|
Date: tm.Format("Monday Jan 2, 2006"),
|
|
}
|
|
|
|
currentDay = day
|
|
}
|
|
|
|
dayTips.Tips = append(dayTips.Tips, TipView{
|
|
Time: tm.Format("15:04"),
|
|
Name: tip.MatchName,
|
|
Champ: tip.ChampName,
|
|
Link: fmt.Sprintf("https://www.flashscore.com/match/%s/#h2h;overall", tip.MatchID),
|
|
Result: tip.Result,
|
|
Status: tip.Status,
|
|
Strategy: tip.Strategy,
|
|
})
|
|
|
|
}
|
|
|
|
if currentDay != 0 {
|
|
days = append(days, dayTips)
|
|
}
|
|
|
|
return PageTipsData{
|
|
Days: days,
|
|
}, nil
|
|
}
|
|
|
|
/*
|
|
func (s *Tipper) pageLinked(state *web.State, reply *web.Reply) (err error) {
|
|
//reply.Render("aliases", nil)
|
|
var list []*interestingFootballMatch
|
|
|
|
for _, x := range s.onexbetMatchToInterestingFootballMatch {
|
|
list = append(list, x)
|
|
}
|
|
|
|
buf, _ := json.MarshalIndent(list, "", " ")
|
|
|
|
reply.WriteString(string(buf))
|
|
return
|
|
}
|
|
|
|
|
|
func (s *Tipper) pageWatch(state *web.State, reply *web.Reply) (err error) {
|
|
//reply.Render("aliases", nil)
|
|
var matchID string
|
|
state.Val("id", &matchID)
|
|
|
|
s.onexbetAPIClient.Call("watch", matchID)
|
|
|
|
reply.WriteString(matchID)
|
|
return
|
|
}
|
|
|
|
func (s *Tipper) pageUnwatch(state *web.State, reply *web.Reply) (err error) {
|
|
//reply.Render("aliases", nil)
|
|
var matchID string
|
|
state.Val("id", &matchID)
|
|
|
|
s.onexbetAPIClient.Call("unwatch", matchID)
|
|
|
|
reply.WriteString(matchID)
|
|
return
|
|
}
|
|
*/
|