81 lines
1.9 KiB
Go
81 lines
1.9 KiB
Go
package main
|
|
|
|
import (
|
|
"log"
|
|
"os"
|
|
"path"
|
|
"path/filepath"
|
|
"strconv"
|
|
"time"
|
|
|
|
"github.com/xuri/excelize/v2"
|
|
"rodbiren.ddns.net/git/robviren/datahop/runner"
|
|
)
|
|
|
|
func main() {
|
|
|
|
exe_path, err := os.Executable()
|
|
if err != nil {
|
|
log.Fatalln(err)
|
|
}
|
|
work_dir := filepath.Dir(exe_path)
|
|
|
|
datahop := runner.NewRunner()
|
|
data := datahop.RunAll()
|
|
defer datahop.Close()
|
|
|
|
var f *excelize.File
|
|
_, err = os.Stat(path.Join(work_dir, "data.xlsx"))
|
|
if err == nil {
|
|
f, err = excelize.OpenFile(path.Join(work_dir, "data.xlsx"))
|
|
if err != nil {
|
|
log.Println(err)
|
|
}
|
|
} else {
|
|
f = excelize.NewFile()
|
|
f.NewSheet("Facebook")
|
|
f.NewSheet("Instagram")
|
|
}
|
|
|
|
f.DeleteSheet("Sheet1")
|
|
|
|
f.SetCellValue("Facebook", "A1", "Brand")
|
|
f.SetCellValue("Facebook", "B1", "Followers")
|
|
f.SetCellValue("Facebook", "C1", "Engagement")
|
|
f.SetCellValue("Facebook", "D1", "Posts")
|
|
f.SetCellValue("Facebook", "E1", "Posts")
|
|
|
|
f.SetCellValue("Instagram", "A1", "Brand")
|
|
f.SetCellValue("Instagram", "B1", "Followers")
|
|
f.SetCellValue("Instagram", "C1", "Engagement")
|
|
f.SetCellValue("Instagram", "D1", "Posts")
|
|
f.SetCellValue("Instagram", "E1", "Posts")
|
|
|
|
for _, elm := range data {
|
|
rows, err := f.GetRows(elm.Site)
|
|
if err != nil {
|
|
log.Println(err)
|
|
}
|
|
f.SetCellValue(elm.Site, "A"+strconv.Itoa(1+len(rows)), elm.Name)
|
|
f.SetCellValue(elm.Site, "B"+strconv.Itoa(1+len(rows)), elm.Followers)
|
|
f.SetCellValue(elm.Site, "C"+strconv.Itoa(1+len(rows)), elm.Engagement)
|
|
f.SetCellValue(elm.Site, "D"+strconv.Itoa(1+len(rows)), elm.Posts)
|
|
f.SetCellValue(elm.Site, "E"+strconv.Itoa(1+len(rows)), time.Now().Format("01-02-2006"))
|
|
}
|
|
|
|
current_day := time.Now()
|
|
|
|
if err := f.SaveAs(path.Join(work_dir, "data-"+current_day.Format("01-02-2006")+".xlsx")); err != nil {
|
|
log.Println(err)
|
|
}
|
|
|
|
if err := f.SaveAs(path.Join(work_dir, "data.xlsx")); err != nil {
|
|
log.Println(err)
|
|
}
|
|
|
|
// signal_channel := make(chan os.Signal, 1)
|
|
// signal.Notify(signal_channel, os.Interrupt)
|
|
// <-signal_channel
|
|
|
|
}
|