arnaucube
arnaucube/goBlockchainDataAnalysisPublic Self-hosted repository
goBlockchainDataAnalysis/dateAnalysis.go
dateAnalysis.goRaw
 1package main
 2
 3import (
 4	"fmt"
 5	"strconv"
 6	"strings"
 7	"time"
 8
 9	"gopkg.in/mgo.v2/bson"
10)
11
12func timeToDate(blockTime int64) string {
13	stringTime := strconv.FormatInt(blockTime, 10)
14	i, err := strconv.ParseInt(stringTime, 10, 64)
15	if err != nil {
16		panic(err)
17	}
18	tm := time.Unix(i, 0)
19	//fmt.Println(tm)
20	stringDate := tm.String()
21	//fmt.Println(stringDate)
22	return stringDate
23}
24func hourAnalysis(e EdgeModel, blockTime int64) {
25	//fmt.Println(blockTime)
26	date := timeToDate(blockTime)
27	dateHour := strings.Split(date, " ")[1]
28	hour := strings.Split(dateHour, ":")[0]
29
30	hourCount := HourCountModel{}
31	err := hourCountCollection.Find(bson.M{"hour": hour}).One(&hourCount)
32	if err != nil {
33		//date not yet in DB
34		var hourCount HourCountModel
35		hourCount.Hour = hour
36		hourCount.Count = 1
37		err = hourCountCollection.Insert(hourCount)
38		check(err)
39	} else {
40		hourCount.Count++
41		err = hourCountCollection.Update(bson.M{"hour": hour}, &hourCount)
42		check(err)
43	}
44}
45func dateAnalysis(e EdgeModel, blockTime int64) {
46	fmt.Println(blockTime)
47	date := timeToDate(blockTime)
48
49	dateCount := DateCountModel{}
50	err := dateCountCollection.Find(bson.M{"date": date}).One(&dateCount)
51	if err != nil {
52		//date not yet in DB
53		var dateCount DateCountModel
54		dateCount.Date = date
55		dateCount.Time = blockTime
56		dateCount.Count = 1
57		err = dateCountCollection.Insert(dateCount)
58		check(err)
59	} else {
60		dateCount.Count++
61		err = dateCountCollection.Update(bson.M{"date": date}, &dateCount)
62		check(err)
63	}
64}