Skip to content

Commit

Permalink
Updates
Browse files Browse the repository at this point in the history
  • Loading branch information
Zhbert committed Nov 30, 2024
1 parent 3863311 commit e9ed915
Show file tree
Hide file tree
Showing 9 changed files with 51 additions and 30 deletions.
3 changes: 2 additions & 1 deletion cmd/collect/collect.go
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ import (
"colligendis/internal/db_service"
"colligendis/internal/latex_service"
"github.com/spf13/cobra"
"gorm.io/gorm"
"log"
"strconv"
"time"
Expand All @@ -37,7 +38,7 @@ const (
"First, you need to load statistics into the database using the load command."
)

func GetCollectCommand(flags *common.ColligendisFlags, tmpls []structs.TemplateStruct) *cobra.Command {
func GetCollectCommand(flags *common.ColligendisFlags, tmpls []structs.TemplateStruct, db *gorm.DB) *cobra.Command {
var cmd = &cobra.Command{
Use: "collect",
Short: "Сollect statistics from loaded sources.",
Expand Down
3 changes: 2 additions & 1 deletion cmd/config/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -25,9 +25,10 @@ import (
"colligendis/cmd/common"
"fmt"
"github.com/spf13/cobra"
"gorm.io/gorm"
)

func GetConfigCommand(flags *common.ColligendisFlags) *cobra.Command {
func GetConfigCommand(flags *common.ColligendisFlags, db *gorm.DB) *cobra.Command {
var cmd = &cobra.Command{
Use: "config",
Short: "Various utility settings",
Expand Down
3 changes: 2 additions & 1 deletion cmd/convert/convert.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,13 @@ import (
"colligendis/internal/common/structs"
"fmt"
"github.com/spf13/cobra"
"gorm.io/gorm"
"log"
"os"
"path/filepath"
)

func GetConvertCommand(flags *common.ColligendisFlags, tmpls []structs.TemplateStruct) *cobra.Command {
func GetConvertCommand(flags *common.ColligendisFlags, tmpls []structs.TemplateStruct, db *gorm.DB) *cobra.Command {
var cmd = &cobra.Command{
Use: "convert",
Short: "Command for automatic conversion of CSV files",
Expand Down
3 changes: 2 additions & 1 deletion cmd/load/load.go
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ import (
"colligendis/internal/db_service"
"fmt"
"github.com/spf13/cobra"
"gorm.io/gorm"
"io/fs"
"log"
"os"
Expand All @@ -34,7 +35,7 @@ import (
"time"
)

func GetLoadCommand(flags *common.ColligendisFlags) *cobra.Command {
func GetLoadCommand(flags *common.ColligendisFlags, db *gorm.DB) *cobra.Command {
var cmd = &cobra.Command{
Use: "load",
Short: "Load statistics from sources",
Expand Down
19 changes: 10 additions & 9 deletions cmd/root/root.go
Original file line number Diff line number Diff line change
Expand Up @@ -30,32 +30,33 @@ import (
"colligendis/cmd/version"
"colligendis/cmd/view"
"colligendis/internal/common/structs"
"gorm.io/gorm"
"os"

"github.com/spf13/cobra"
)

func Execute(tmpls []structs.TemplateStruct) {
func Execute(tmpls []structs.TemplateStruct, db *gorm.DB) {
var flags common.ColligendisFlags
rootCmd := createRootCommand(&flags, tmpls)
rootCmd := createRootCommand(&flags, tmpls, db)
err := rootCmd.Execute()
if err != nil {
os.Exit(1)
}
}

func createRootCommand(flags *common.ColligendisFlags, tmpls []structs.TemplateStruct) *cobra.Command {
func createRootCommand(flags *common.ColligendisFlags, tmpls []structs.TemplateStruct, db *gorm.DB) *cobra.Command {
var cmd = &cobra.Command{
Use: "colligendis",
Short: "Statistics management application",
Long: `A command-line utility for obtaining various statistics and reports on it.`,
}
cmd.AddCommand(collect.GetCollectCommand(flags, tmpls))
cmd.AddCommand(load.GetLoadCommand(flags))
cmd.AddCommand(config.GetConfigCommand(flags))
cmd.AddCommand(view.GetViewCommand(flags))
cmd.AddCommand(version.GetVersionCommand(flags))
cmd.AddCommand(convert.GetConvertCommand(flags, tmpls))
cmd.AddCommand(collect.GetCollectCommand(flags, tmpls, db))
cmd.AddCommand(load.GetLoadCommand(flags, db))
cmd.AddCommand(config.GetConfigCommand(flags, db))
cmd.AddCommand(view.GetViewCommand(flags, db))
cmd.AddCommand(version.GetVersionCommand())
cmd.AddCommand(convert.GetConvertCommand(flags, tmpls, db))

cmd.PersistentFlags().BoolVarP(&flags.ViewMode, "verbose", "v", false, "Show the full report of the commands")
cmd.PersistentFlags().BoolVarP(&flags.DryRun, "dry-run", "", false, "Start command without real generation")
Expand Down
3 changes: 1 addition & 2 deletions cmd/version/version.go
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package version

import (
"colligendis/cmd/common"
"fmt"
"github.com/spf13/cobra"
)
Expand All @@ -10,7 +9,7 @@ var (
Version = "dev"
)

func GetVersionCommand(flags *common.ColligendisFlags) *cobra.Command {
func GetVersionCommand() *cobra.Command {
var cmd = &cobra.Command{
Use: "version",
Short: "Displaying version of utility",
Expand Down
3 changes: 2 additions & 1 deletion cmd/view/view.go
Original file line number Diff line number Diff line change
Expand Up @@ -25,10 +25,11 @@ import (
"colligendis/cmd/common"
"fmt"
"github.com/spf13/cobra"
"gorm.io/gorm"
"log"
)

func GetViewCommand(flags *common.ColligendisFlags) *cobra.Command {
func GetViewCommand(flags *common.ColligendisFlags, db *gorm.DB) *cobra.Command {
var cmd = &cobra.Command{
Use: "view",
Short: "Displaying various information in the terminal",
Expand Down
26 changes: 13 additions & 13 deletions internal/db_service/habr_sqlite.go
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ import (
func SaveToDB(articles []structs.HabrArticle, dateOfStats time.Time, flags *common.ColligendisFlags) bool {
createDBIfNotExists()
db, err := gorm.Open(sqlite.Open("colligendis.db"),
&gorm.Config{Logger: logger.Default.LogMode(getLogger())})
&gorm.Config{Logger: logger.Default.LogMode(GetLogger())})
if err != nil {
log.Fatal("Error opening db!")
} else {
Expand Down Expand Up @@ -140,7 +140,7 @@ func getAuthorByID(id uint) domain.HabrAuthor {
var author domain.HabrAuthor

db, err := gorm.Open(sqlite.Open("colligendis.db"),
&gorm.Config{Logger: logger.Default.LogMode(getLogger())})
&gorm.Config{Logger: logger.Default.LogMode(GetLogger())})
if err != nil {
log.Fatal("Error opening db!")
} else {
Expand Down Expand Up @@ -184,7 +184,7 @@ func createHubsIfNotExists(db *gorm.DB, hubs []string, flags *common.Colligendis
func GetAllHabrArticles(sort string) []domain.HabrArticle {
var articles []domain.HabrArticle
db, err := gorm.Open(sqlite.Open("colligendis.db"),
&gorm.Config{Logger: logger.Default.LogMode(getLogger())})
&gorm.Config{Logger: logger.Default.LogMode(GetLogger())})
if err != nil {
log.Fatal("Error opening db!")
} else {
Expand Down Expand Up @@ -214,7 +214,7 @@ func GetHabrArticlesCount() int64 {
var count int64

db, err := gorm.Open(sqlite.Open("colligendis.db"),
&gorm.Config{Logger: logger.Default.LogMode(getLogger())})
&gorm.Config{Logger: logger.Default.LogMode(GetLogger())})
if err != nil {
log.Fatal("Error opening db!")
} else {
Expand All @@ -228,7 +228,7 @@ func GetAllHabrAutors(sort string) []domain.HabrAuthor {
var authors []domain.HabrAuthor

db, err := gorm.Open(sqlite.Open("colligendis.db"),
&gorm.Config{Logger: logger.Default.LogMode(getLogger())})
&gorm.Config{Logger: logger.Default.LogMode(GetLogger())})
if err != nil {
log.Fatal("Error opening db!")
} else {
Expand All @@ -251,7 +251,7 @@ func GetAllHabrAutors(sort string) []domain.HabrAuthor {

func GetCountOfArticlesByAuthor(authorID uint) int {
db, err := gorm.Open(sqlite.Open("colligendis.db"),
&gorm.Config{Logger: logger.Default.LogMode(getLogger())})
&gorm.Config{Logger: logger.Default.LogMode(GetLogger())})
if err != nil {
log.Fatal("Error opening db!")
} else {
Expand All @@ -265,15 +265,15 @@ func GetCountOfArticlesByAuthor(authorID uint) int {
return 0
}

func getLogger() logger.LogLevel {
func GetLogger() logger.LogLevel {
return logger.Silent
}

func GetLatestArticles() []domain.HabrStats {
var stats []domain.HabrStats

db, err := gorm.Open(sqlite.Open("colligendis.db"),
&gorm.Config{Logger: logger.Default.LogMode(getLogger())})
&gorm.Config{Logger: logger.Default.LogMode(GetLogger())})
if err != nil {
log.Fatal("Error opening db!")
} else {
Expand All @@ -288,7 +288,7 @@ func GetLatestStatsFromArticle(articleID uint, sinceDate time.Time) ([]domain.Ha
state := false

db, err := gorm.Open(sqlite.Open("colligendis.db"),
&gorm.Config{Logger: logger.Default.LogMode(getLogger())})
&gorm.Config{Logger: logger.Default.LogMode(GetLogger())})
if err != nil {
log.Fatal("Error opening db!")
} else {
Expand Down Expand Up @@ -345,7 +345,7 @@ func GetTwoLatestStats() ([]domain.HabrStats, bool) {
state := false

db, err := gorm.Open(sqlite.Open("colligendis.db"),
&gorm.Config{Logger: logger.Default.LogMode(getLogger())})
&gorm.Config{Logger: logger.Default.LogMode(GetLogger())})
if err != nil {
log.Fatal("Error opening db!")
} else {
Expand Down Expand Up @@ -438,7 +438,7 @@ func getCountOfAuthorArticles(id uint) int64 {
var count int64

db, err := gorm.Open(sqlite.Open("colligendis.db"),
&gorm.Config{Logger: logger.Default.LogMode(getLogger())})
&gorm.Config{Logger: logger.Default.LogMode(GetLogger())})
if err != nil {
log.Fatal("Error opening db!")
} else {
Expand All @@ -451,7 +451,7 @@ func GetCountOfStats() int64 {
var count int64

db, err := gorm.Open(sqlite.Open("colligendis.db"),
&gorm.Config{Logger: logger.Default.LogMode(getLogger())})
&gorm.Config{Logger: logger.Default.LogMode(GetLogger())})
if err != nil {
log.Fatal("Error opening db!")
} else {
Expand All @@ -467,7 +467,7 @@ func GetAllDatesOfStats() ([]string, []time.Time) {
var timeDates []time.Time

db, err := gorm.Open(sqlite.Open("colligendis.db"),
&gorm.Config{Logger: logger.Default.LogMode(getLogger())})
&gorm.Config{Logger: logger.Default.LogMode(GetLogger())})
if err != nil {
log.Fatal("Error opening db!")
} else {
Expand Down
18 changes: 17 additions & 1 deletion main.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,12 @@ package main
import (
"colligendis/cmd/root"
"colligendis/internal/common/structs"
"colligendis/internal/db_service"
_ "embed"
"gorm.io/driver/sqlite"
"gorm.io/gorm"
"gorm.io/gorm/logger"
"log"
)

//go:embed templates/tex/preamble
Expand Down Expand Up @@ -37,5 +42,16 @@ func main() {
convertScriptStruct.Data = convertScript
tmpls = append(tmpls, convertScriptStruct)

root.Execute(tmpls)
db, err := gorm.Open(sqlite.Open("colligendis.db"),
&gorm.Config{Logger: logger.Default.LogMode(db_service.GetLogger())})
if err != nil {
log.Fatal("Error opening db!\n")
}

defer func() {
dbInstance, _ := db.DB()
_ = dbInstance.Close()
}()

root.Execute(tmpls, db)
}

0 comments on commit e9ed915

Please sign in to comment.