diff --git a/main~ b/main~ deleted file mode 100644 index 8372918..0000000 Binary files a/main~ and /dev/null differ diff --git a/mvc/controllers/controllers_pages/posts.go b/mvc/controllers/controllers_pages/posts.go index 395e6e3..8e2fc7f 100644 --- a/mvc/controllers/controllers_pages/posts.go +++ b/mvc/controllers/controllers_pages/posts.go @@ -29,7 +29,7 @@ func PostsPageHandler(app *models.App) http.HandlerFunc { // не сработает (в главном main настроены маршруты) pageNumber, _ := strconv.Atoi(path.Base(link)) - page := models_pages.CreatePage(postsList, pageNumber, app.Cfg.PostsMaxCountOnPage) + page := models_pages.CreatePostsPage(postsList, pageNumber, app.Cfg.PostsMaxCountOnPage) pageData, err = page.RenderPostsPage(app.Templates, app.Version) if err != nil { diff --git a/mvc/models/lastfm.go b/mvc/models/lastfm.go index 6a940c6..6fb48d3 100644 --- a/mvc/models/lastfm.go +++ b/mvc/models/lastfm.go @@ -8,7 +8,7 @@ import ( "strings" ) -type LastFMTrack struct { +type lastFMTrack struct { Name string `json:"name"` Artist struct { Name string `json:"#text"` @@ -21,13 +21,13 @@ type LastFMTrack struct { } `json:"date"` } -type LastFMResponse struct { +type lastFMResponse struct { RecentTracks struct { - Tracks []LastFMTrack `json:"track"` + Tracks []lastFMTrack `json:"track"` } `json:"recenttracks"` } -func LastFMGetRecentTracks(username, apiKey string) (*LastFMResponse, error) { +func lastFMGetRecentTracks(username, apiKey string) (*lastFMResponse, error) { url := fmt.Sprintf("https://ws.audioscrobbler.com/2.0/?method=user.getrecenttracks&user=%s&api_key=%s&format=json", username, apiKey) resp, err := http.Get(url) if err != nil { @@ -38,7 +38,7 @@ func LastFMGetRecentTracks(username, apiKey string) (*LastFMResponse, error) { if err != nil { return nil, fmt.Errorf("lastfm read resp body err: %v", err) } - var lastFMResponse LastFMResponse + var lastFMResponse lastFMResponse if err := json.Unmarshal(body, &lastFMResponse); err != nil { return nil, fmt.Errorf("lastfm unmarshal err: %v", err) } @@ -47,7 +47,7 @@ func LastFMGetRecentTracks(username, apiKey string) (*LastFMResponse, error) { } func LastFMGetLastTrack(username, apiKey string) (string, error) { - resp, err := LastFMGetRecentTracks(username, apiKey) + resp, err := lastFMGetRecentTracks(username, apiKey) if err != nil { return "", err } diff --git a/mvc/models/models_pages/post.go b/mvc/models/models_pages/post.go index 39cc4ca..b88ac5b 100644 --- a/mvc/models/models_pages/post.go +++ b/mvc/models/models_pages/post.go @@ -6,13 +6,12 @@ import ( "time" ) -type PostLink string - const ( // Имя соответствующего шаблона PostPageTmplName = "post.gohtml" ) +type PostLink string type Post struct { Link PostLink Preview template.HTML diff --git a/mvc/models/models_pages/posts.go b/mvc/models/models_pages/posts.go index f72952f..c1bdbeb 100644 --- a/mvc/models/models_pages/posts.go +++ b/mvc/models/models_pages/posts.go @@ -20,10 +20,11 @@ const ( ) type PostsMap map[PostLink]*Post +type PostsList []*Post type PostsPage struct { - PostsListOnPage []*Post // список постов на странице - PageNumber int // номер страницы - PagesCount int // общее количество страниц + PostsListOnPage PostsList // список постов на странице + PageNumber int // номер страницы + PagesCount int // общее количество страниц } func LoadPosts(dir string) (PostsMap, error) { @@ -71,8 +72,8 @@ func LoadPosts(dir string) (PostsMap, error) { } // Получение из мапы постов списка постов, отсортированного по ModTimestamp (новые сначала) -func (p *PostsMap) PostsList() []*Post { - postsSlice := make([]*Post, 0, len(*p)) +func (p *PostsMap) PostsList() PostsList { + postsSlice := make(PostsList, 0, len(*p)) for _, post := range *p { postsSlice = append(postsSlice, post) } @@ -84,15 +85,10 @@ func (p *PostsMap) PostsList() []*Post { return postsSlice } -func CreatePage(postsList []*Post, pageNumber, postsMaxCountOnPage int) *PostsPage { +func CreatePostsPage(postsList PostsList, pageNumber, postsMaxCountOnPage int) *PostsPage { // Общее количество страниц pagesCount := (len(postsList) + postsMaxCountOnPage - 1) / postsMaxCountOnPage - // Ошибки тут быть не может, так как этот обработчик настроен - // на только существующие реально pageNumber и в случае - // какого то не существующего номера страницы он просто - // не сработает (в главном main настроены маршруты) - startIndex := pageNumber * postsMaxCountOnPage endIndex := startIndex + postsMaxCountOnPage endIndex = min(endIndex, len(postsList))