diff --git a/internal/common/structs/structs.go b/internal/common/structs/structs.go index ec932fb..86f98bf 100644 --- a/internal/common/structs/structs.go +++ b/internal/common/structs/structs.go @@ -76,6 +76,7 @@ type TemplateData struct { AuthorsCount int AuthorsTopGlobal []AuthorsTop Authors []AuthorsTop + AllDates []string } type AuthorsTop struct { diff --git a/internal/db_service/habr_sqlite.go b/internal/db_service/habr_sqlite.go index b7c45b8..15d8560 100644 --- a/internal/db_service/habr_sqlite.go +++ b/internal/db_service/habr_sqlite.go @@ -449,3 +449,26 @@ func GetCountOfStats() int64 { } return count } + +func GetAllDatesOfStats() []string { + var dates []string + + var stats []domain.HabrStats + + db, err := gorm.Open(sqlite.Open("colligendis.db"), + &gorm.Config{Logger: logger.Default.LogMode(getLogger())}) + if err != nil { + log.Fatal("Error opening db!") + } else { + db. + Group("date_of_stats"). + Order("date_of_stats DESC"). + Find(&stats) + + for _, stat := range stats { + dates = append(dates, stat.DateOfStats.Format("January 2, 2006")) + } + } + + return dates +} diff --git a/internal/latex_service/latex.go b/internal/latex_service/latex.go index e0d614e..3ec200b 100644 --- a/internal/latex_service/latex.go +++ b/internal/latex_service/latex.go @@ -64,6 +64,7 @@ func getHabrData() structs.TemplateData { data.AuthorsTopGlobal = db_service.GetTopOfAuthors(false) data.AuthorsTopGlobal = data.AuthorsTopGlobal[0:5] data.Authors = db_service.GetTopOfAuthors(true) + data.AllDates = db_service.GetAllDatesOfStats() return data } diff --git a/templates/tex/stats.tmpl b/templates/tex/stats.tmpl index 4a4c26d..e15db0c 100644 --- a/templates/tex/stats.tmpl +++ b/templates/tex/stats.tmpl @@ -79,27 +79,36 @@ \caption{Топ-5 авторов за все время} \end{threeparttable} \end{table} - \subsection{Статистика глобальная} - \subsubsection{Все статьи в блоге} - Отсортировано по количеству просмотров за неделю. - \begin{longtable}{|p{0.60\textwidth}|*{3}{p{0.10\textwidth}|}} - \hline - \textbf{Название статьи} & \textbf{Дата публикации} & \textbf{Общее кол-во просмотров} & \textbf{Кол-во просмотров за неделю} \\ \hline - \hline \endfirsthead - {{ range .AllArticlesGlobal }} - {{ .Name }} & {{ .Date.Format "2006-01-02" }} & {{ .Views }} & {{ .Growth }} \\ \hline - {{ end }} - \caption{Все статьи в блоге} - \end{longtable} - \subsubsection{Все авторы блога} - Отсортированы по имени. - \begin{longtable}{|p{0.65\textwidth}|p{0.25\textwidth}|} - \hline - \textbf{Имя автора} & \textbf{Количество статей} \\ \hline - \hline \endfirsthead - {{ range .Authors }} - {{ .Name }} & {{ .ArticlesCount }} \\ \hline - {{ end }} - \caption{Все авторы блога} - \end{longtable} + \subsection{Статистика глобальная} + \subsubsection{Все статьи в блоге} + Отсортировано по количеству просмотров за неделю. + \begin{longtable}{|p{0.60\textwidth}|*{3}{p{0.10\textwidth}|}} + \hline + \textbf{Название статьи} & \textbf{Дата публикации} & \textbf{Общее кол-во просмотров} & \textbf{Кол-во просмотров за неделю} \\ \hline + \hline \endfirsthead + {{ range .AllArticlesGlobal }} + {{ .Name }} & {{ .Date.Format "2006-01-02" }} & {{ .Views }} & {{ .Growth }} \\ \hline + {{ end }} + \caption{Все статьи в блоге} + \end{longtable} + \subsubsection{Все авторы блога} + Отсортированы по имени. + \begin{longtable}{|p{0.65\textwidth}|p{0.25\textwidth}|} + \hline + \textbf{Имя автора} & \textbf{Количество статей} \\ \hline + \hline \endfirsthead + {{ range .Authors }} + {{ .Name }} & {{ .ArticlesCount }} \\ \hline + {{ end }} + \caption{Все авторы блога} + \end{longtable} + \section{Системная информация} + \subsection{Хабр} + Всего записей статистики в базе данных: {{ .StatsInBaseCount }}: + \begin{itemize} + \setlength{\itemsep}{-2mm} + {{ range .AllDates }} + \item {{ . }} + {{ end }} + \end{itemize} \end{document} \ No newline at end of file