package main
|
|
|
|
import (
|
|
"fmt"
|
|
"strconv"
|
|
"time"
|
|
|
|
"gopkg.in/mgo.v2/bson"
|
|
)
|
|
|
|
func dateBeforeThan(dateA time.Time, dateB time.Time) bool {
|
|
return dateA.Before(dateB)
|
|
}
|
|
func map24hours() map[int]int {
|
|
h := make(map[int]int)
|
|
for i := 0; i < 24; i++ {
|
|
h[i] = 0
|
|
}
|
|
return h
|
|
}
|
|
func decomposeDate(blockTime int64) (int, int, int, int) {
|
|
/*i, err := strconv.ParseInt(blockTime, 10, 64)
|
|
if err != nil {
|
|
panic(err)
|
|
}*/
|
|
i := blockTime
|
|
year := time.Unix(i, 0).Year()
|
|
month := time.Unix(i, 0).Month()
|
|
day := time.Unix(i, 0).Day()
|
|
hour := time.Unix(i, 0).Hour()
|
|
return year, int(month), day, hour
|
|
}
|
|
func unixTimeToTime(blockTime int64) time.Time {
|
|
return time.Unix(blockTime, 0)
|
|
}
|
|
func timeToDate(blockTime int64) string {
|
|
stringTime := strconv.FormatInt(blockTime, 10)
|
|
i, err := strconv.ParseInt(stringTime, 10, 64)
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
tm := time.Unix(i, 0)
|
|
//fmt.Println(tm)
|
|
stringDate := tm.String()
|
|
//fmt.Println(stringDate)
|
|
return stringDate
|
|
}
|
|
func hourAnalysis(e EdgeModel, blockTime int64) {
|
|
//fmt.Println(blockTime)
|
|
/*date := timeToDate(blockTime)
|
|
dateHour := strings.Split(date, " ")[1]
|
|
hourString := strings.Split(dateHour, ":")[0]*/
|
|
_, _, _, hour := decomposeDate(blockTime)
|
|
|
|
hourCount := ChartCountModel{}
|
|
err := hourCountCollection.Find(bson.M{"hour": hour}).One(&hourCount)
|
|
if err != nil {
|
|
//date not yet in DB
|
|
var hourCount ChartCountModel
|
|
hourCount.Elem = hour
|
|
hourCount.Count = 1
|
|
err = hourCountCollection.Insert(hourCount)
|
|
check(err)
|
|
} else {
|
|
hourCount.Count++
|
|
err = hourCountCollection.Update(bson.M{"hour": hour}, &hourCount)
|
|
check(err)
|
|
}
|
|
}
|
|
func dateAnalysis(e EdgeModel, blockTime int64) {
|
|
fmt.Println(blockTime)
|
|
date := timeToDate(blockTime)
|
|
|
|
dateCount := DateCountModel{}
|
|
err := dateCountCollection.Find(bson.M{"date": date}).One(&dateCount)
|
|
if err != nil {
|
|
//date not yet in DB
|
|
var dateCount DateCountModel
|
|
dateCount.Date = date
|
|
dateCount.Time = blockTime
|
|
dateCount.Count = 1
|
|
err = dateCountCollection.Insert(dateCount)
|
|
check(err)
|
|
} else {
|
|
dateCount.Count++
|
|
err = dateCountCollection.Update(bson.M{"date": date}, &dateCount)
|
|
check(err)
|
|
}
|
|
}
|