Tracks have permalinks now

This commit is contained in:
Eduard Urbach 2017-06-28 00:16:45 +02:00
parent 5099c0b0e7
commit d5dcd9c909
9 changed files with 89 additions and 12 deletions

View File

@ -25,10 +25,11 @@ var colorPool = []*color.Color{
var jobs = map[string]time.Duration{ var jobs = map[string]time.Duration{
"active-users": 1 * time.Minute, "active-users": 1 * time.Minute,
"avatars": 1 * time.Hour, "avatars": 1 * time.Hour,
"sync-anime": 10 * time.Hour, "refresh-track-titles": 10 * time.Hour,
"popular-anime": 11 * time.Hour, "sync-anime": 12 * time.Hour,
"popular-anime": 12 * time.Hour,
"airing-anime": 12 * time.Hour, "airing-anime": 12 * time.Hour,
"search-index": 13 * time.Hour, "search-index": 12 * time.Hour,
} }
func main() { func main() {

View File

@ -0,0 +1,37 @@
package main
import (
"github.com/animenotifier/arn"
"github.com/fatih/color"
)
func main() {
color.Yellow("Refreshing track titles")
// Get a stream of all soundtracks
soundtracks, err := arn.StreamSoundTracks()
if err != nil {
panic(err)
}
// Iterate over the stream
for track := range soundtracks {
sync(track)
}
color.Green("Finished.")
}
func sync(track *arn.SoundTrack) {
for _, media := range track.Media {
media.RefreshMetaData()
println(media.Service, media.Title)
}
err := track.Save()
if err != nil {
panic(err)
}
}

View File

@ -22,7 +22,7 @@ func main() {
sync(anime) sync(anime)
} }
println("Finished.") color.Green("Finished.")
} }
func sync(data *kitsu.Anime) { func sync(data *kitsu.Anime) {

View File

@ -27,6 +27,7 @@ import (
"github.com/animenotifier/notify.moe/pages/search" "github.com/animenotifier/notify.moe/pages/search"
"github.com/animenotifier/notify.moe/pages/settings" "github.com/animenotifier/notify.moe/pages/settings"
"github.com/animenotifier/notify.moe/pages/threads" "github.com/animenotifier/notify.moe/pages/threads"
"github.com/animenotifier/notify.moe/pages/tracks"
"github.com/animenotifier/notify.moe/pages/user" "github.com/animenotifier/notify.moe/pages/user"
"github.com/animenotifier/notify.moe/pages/users" "github.com/animenotifier/notify.moe/pages/users"
"github.com/animenotifier/notify.moe/pages/webdev" "github.com/animenotifier/notify.moe/pages/webdev"
@ -61,6 +62,7 @@ func configure(app *aero.Application) *aero.Application {
app.Ajax("/forum/:tag", forum.Get) app.Ajax("/forum/:tag", forum.Get)
app.Ajax("/threads/:id", threads.Get) app.Ajax("/threads/:id", threads.Get)
app.Ajax("/posts/:id", posts.Get) app.Ajax("/posts/:id", posts.Get)
app.Ajax("/tracks/:id", tracks.Get)
app.Ajax("/user", user.Get) app.Ajax("/user", user.Get)
app.Ajax("/user/:nick", profile.Get) app.Ajax("/user/:nick", profile.Get)
app.Ajax("/user/:nick/threads", profile.GetThreadsByUser) app.Ajax("/user/:nick/threads", profile.GetThreadsByUser)

View File

@ -1,10 +1,19 @@
component SoundTrack(track *arn.SoundTrack) component SoundTrack(track *arn.SoundTrack)
SoundTrackMedia(track, track.Media[0])
component SoundTrackAllMedia(track *arn.SoundTrack)
each media in track.Media
SoundTrackMedia(track, media)
component SoundTrackMedia(track *arn.SoundTrack, media *arn.ExternalMedia)
.sound-track.mountable(id=track.ID) .sound-track.mountable(id=track.ID)
.sound-track-content .sound-track-content
a.sound-track-anime-link.ajax(href="/anime/" + track.MainAnime().ID) a.sound-track-anime-link.ajax(href="/anime/" + track.MainAnime().ID)
img.sound-track-anime-image.lazy(data-src=track.MainAnime().Image.Small, alt=track.MainAnime().Title.Canonical, title=track.MainAnime().Title.Canonical) img.sound-track-anime-image.lazy(data-src=track.MainAnime().Image.Small, alt=track.MainAnime().Title.Canonical, title=track.MainAnime().Title.Canonical)
iframe.lazy(data-src=track.Media[0].EmbedLink()) iframe.lazy(data-src=media.EmbedLink())
.sound-track-footer .sound-track-footer
a.ajax(href=track.Link())
Icon("music")
span posted by span posted by
a.ajax(href=track.CreatedByUser().Link())= track.CreatedByUser().Nick a.ajax(href=track.CreatedByUser().Link())= track.CreatedByUser().Nick + " "

View File

@ -34,10 +34,10 @@ component Dashboard(posts []*arn.Post, soundTracks []*arn.SoundTrack, following
for i := 0; i <= 4; i++ for i := 0; i <= 4; i++
if i < len(soundTracks) if i < len(soundTracks)
a.widget-element.ajax(href="/music") a.widget-element.ajax(href=soundTracks[i].Link())
.widget-element-text .widget-element-text
Icon("music") Icon("music")
span= soundTracks[i].MainAnime().Title.Canonical span= soundTracks[i].Media[0].Title
else else
.widget-element .widget-element
.widget-element-text .widget-element-text

View File

@ -1,6 +1,8 @@
package posts package posts
import ( import (
"net/http"
"github.com/aerogo/aero" "github.com/aerogo/aero"
"github.com/animenotifier/arn" "github.com/animenotifier/arn"
"github.com/animenotifier/notify.moe/components" "github.com/animenotifier/notify.moe/components"
@ -12,7 +14,7 @@ func Get(ctx *aero.Context) string {
post, err := arn.GetPost(id) post, err := arn.GetPost(id)
if err != nil { if err != nil {
return ctx.Error(404, "Post not found", err) return ctx.Error(http.StatusNotFound, "Post not found", err)
} }
return ctx.HTML(components.Post(post)) return ctx.HTML(components.Post(post))

21
pages/tracks/tracks.go Normal file
View File

@ -0,0 +1,21 @@
package tracks
import (
"net/http"
"github.com/aerogo/aero"
"github.com/animenotifier/arn"
"github.com/animenotifier/notify.moe/components"
)
// Get post.
func Get(ctx *aero.Context) string {
id := ctx.Get("id")
track, err := arn.GetSoundTrack(id)
if err != nil {
return ctx.Error(http.StatusNotFound, "Track not found", err)
}
return ctx.HTML(components.Track(track))
}

5
pages/tracks/tracks.pixy Normal file
View File

@ -0,0 +1,5 @@
component Track(track *arn.SoundTrack)
h2= track.Media[0].Title
.sound-tracks
SoundTrackAllMedia(track)