diff --git a/mixins/SoundTrack.pixy b/mixins/SoundTrack.pixy index 865c648d..ea863e27 100644 --- a/mixins/SoundTrack.pixy +++ b/mixins/SoundTrack.pixy @@ -10,8 +10,8 @@ component SoundTrackContent(track *arn.SoundTrack, media *arn.ExternalMedia) .sound-track-content if track.MainAnime() != nil 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("medium"), alt=track.MainAnime().Title.Canonical, title=track.MainAnime().Title.Canonical) + ExternalMedia(media) component SoundTrackFooter(track *arn.SoundTrack) @@ -20,9 +20,9 @@ component SoundTrackFooter(track *arn.SoundTrack) a.ajax(href=track.Link() + "/edit") untitled else a.ajax(href=track.Link())= track.Title - span posted + span posted span.utc-date(data-date=track.Created) - span by + span by a.ajax(href=track.Creator().Link())= track.Creator().Nick + " " component ExternalMedia(media *arn.ExternalMedia) diff --git a/pages/anime/anime.pixy b/pages/anime/anime.pixy index 28bc532e..e48dbe04 100644 --- a/pages/anime/anime.pixy +++ b/pages/anime/anime.pixy @@ -149,7 +149,7 @@ component AnimeRelations(anime *arn.Anime, user *arn.User) .anime-relations each relation in anime.Relations().Items a.anime-relation.mountable.ajax(href=relation.Anime().Link(), title=relation.Anime().Title.ByUser(user), data-mountable-type="relation") - img.anime-relation-image.lazy(data-src=relation.Anime().Image.Tiny, alt=relation.Anime().Title.ByUser(user)) + img.anime-relation-image.lazy(data-src=relation.Anime().Image("small"), alt=relation.Anime().Title.ByUser(user)) .anime-relation-type= relation.HumanReadableType() .anime-relation-year if relation.Anime().StartDate != "" diff --git a/pages/animelist/animelist.pixy b/pages/animelist/animelist.pixy index 96b7e4b1..9c4e0ce6 100644 --- a/pages/animelist/animelist.pixy +++ b/pages/animelist/animelist.pixy @@ -45,11 +45,11 @@ component AnimeList(animeList *arn.AnimeList, viewUser *arn.User, user *arn.User tr.anime-list-item.mountable(title=item.Notes, data-api="/api/animelist/" + animeList.UserID + "/field/Items[AnimeID=\"" + item.AnimeID + "\"]") td.anime-list-item-image-container a.ajax(href=item.Anime().Link()) - img.anime-list-item-image.lazy(data-src=item.Anime().Image.Tiny, alt=item.Anime().Title.ByUser(user)) - + img.anime-list-item-image.lazy(data-src=item.Anime().Image("small"), alt=item.Anime().Title.ByUser(user)) + td.anime-list-item-name a.ajax(href=item.Link(animeList.User().Nick))= item.Anime().Title.ByUser(user) - + td.anime-list-item-actions if user != nil && item.Status == arn.AnimeListStatusWatching && item.Anime().EpisodeByNumber(item.Episodes + 1) != nil for _, link := range item.Anime().EpisodeByNumber(item.Episodes + 1).Links @@ -57,20 +57,20 @@ component AnimeList(animeList *arn.AnimeList, viewUser *arn.User, user *arn.User RawIcon("eye") //- a(href=arn.Nyaa.GetLink(item.Anime()), title="Search on Nyaa", target="_blank", rel="noopener") //- RawIcon("download") - + td.anime-list-item-airing-date if (item.Status == arn.AnimeListStatusWatching || item.Status == arn.AnimeListStatusPlanned) && item.Anime().UpcomingEpisode() != nil span.utc-airing-date(data-start-date=item.Anime().UpcomingEpisode().Episode.AiringDate.Start, data-end-date=item.Anime().UpcomingEpisode().Episode.AiringDate.End, data-episode-number=item.Anime().UpcomingEpisode().Episode.Number) - + td.anime-list-item-episodes .anime-list-item-episodes-watched .action(contenteditable=utils.SameUser(user, viewUser), data-field="Episodes", data-type="number", data-trigger="focusout", data-action="save")= item.Episodes if item.Status == arn.AnimeListStatusWatching .plus-episode.action(data-action="increaseEpisode", data-trigger="click") + - + .anime-list-item-episodes-separator / .anime-list-item-episodes-max= item.Anime().EpisodeCountString() - + td.anime-list-item-rating(title="Overall rating") .action(contenteditable=utils.SameUser(user, viewUser), data-field="Rating.Overall", data-type="number", data-trigger="focusout", data-action="save")= utils.FormatRating(item.Rating.Overall) //- td.anime-list-item-rating(title="Story rating") diff --git a/pages/listimport/listimportanilist/anilist.go b/pages/listimport/listimportanilist/anilist.go index c3e6e0f0..6cf675d5 100644 --- a/pages/listimport/listimportanilist/anilist.go +++ b/pages/listimport/listimportanilist/anilist.go @@ -83,12 +83,7 @@ func getMatches(ctx *aero.Context) ([]*arn.AniListMatch, string) { return nil, ctx.Error(http.StatusBadRequest, "Couldn't authorize the Anime Notifier app on AniList", authErr) } - allAnime, allErr := arn.AllAnime() - - if allErr != nil { - return nil, ctx.Error(http.StatusBadRequest, "Couldn't load notify.moe list of all anime", allErr) - } - + allAnime := arn.AllAnime() anilistAnimeList, err := anilist.GetAnimeList(user.Accounts.AniList.Nick) if err != nil { diff --git a/pages/profile/profile.pixy b/pages/profile/profile.pixy index ef2967ed..1f7a9265 100644 --- a/pages/profile/profile.pixy +++ b/pages/profile/profile.pixy @@ -43,13 +43,13 @@ component ProfileHeader(viewUser *arn.User, user *arn.User, uri string) p.profile-field.role Icon("rocket") span= arn.Capitalize(viewUser.Role) - + if viewUser.IsPro() p.profile-field.profile-pro-status a.ajax(href="/shop", title="PRO user") Icon("star") span.profile-pro-status-text PRO - + if user != nil .profile-actions if user.ID != viewUser.ID @@ -61,11 +61,11 @@ component ProfileHeader(viewUser *arn.User, user *arn.User, uri string) button.profile-action.action(data-action="unfollowUser", data-trigger="click", data-api="/api/userfollows/" + user.ID + "/remove/" + viewUser.ID) Icon("user-times") span Unfollow - + a.button.profile-action.ajax(href="/compare/animelist/" + user.Nick + "/" + viewUser.Nick) Icon("exchange") span Compare - + ProfileNavigation(viewUser, uri) component ProfileNavigation(viewUser *arn.User, uri string) @@ -97,7 +97,7 @@ component ProfileNavigation(viewUser *arn.User, uri string) a.tab.action(href="/+" + viewUser.Nick + "/followers", data-action="diff", data-trigger="click") Icon("users") span.tab-text Followers - + if strings.Contains(uri, "/animelist") StatusTabs("/+" + viewUser.Nick + "/animelist") @@ -111,15 +111,15 @@ component Profile(viewUser *arn.User, user *arn.User, animeList *arn.AnimeList, each item in animeList.Items if item.Status == arn.AnimeListStatusWatching || item.Status == arn.AnimeListStatusCompleted a.profile-watching-list-item.ajax(href=item.Anime().Link(), title=item.Anime().Title.ByUser(user) + " (" + toString(item.Episodes) + " / " + arn.EpisodesToString(item.Anime().EpisodeCount) + ")") - img.profile-watching-list-item-image.lazy(data-src=item.Anime().Image.Tiny, alt=item.Anime().Title.ByUser(user)) - + img.profile-watching-list-item-image.lazy(data-src=item.Anime().Image("small"), alt=item.Anime().Title.ByUser(user)) + if user != nil && (user.Role == "admin" || user.Role == "editor") .footer .buttons a.button.profile-action(href="/api/user/" + viewUser.ID, target="_blank", rel="noopener") Icon("search-plus") span JSON - + //- .profile-category.mountable //- h3 //- a.ajax(href="/+" + viewUser.Nick + "/threads", title="View all threads") Threads @@ -129,7 +129,7 @@ component Profile(viewUser *arn.User, user *arn.User, animeList *arn.AnimeList, //- else //- each thread in threads //- ThreadLink(thread) - + //- .profile-category.mountable //- h3 //- a.ajax(href="/+" + viewUser.Nick + "/posts", title="View all posts") Posts @@ -145,7 +145,7 @@ component Profile(viewUser *arn.User, user *arn.User, animeList *arn.AnimeList, //- .post-toolbar.active //- .spacer //- .post-likes= len(post.Likes) - + //- .profile-category.mountable //- h3 //- a.ajax(href="/+" + viewUser.Nick + "/tracks", title="View all tracks") Tracks diff --git a/pages/soundtrack/edit.go b/pages/soundtrack/edit.go index 2aa230e1..d9893529 100644 --- a/pages/soundtrack/edit.go +++ b/pages/soundtrack/edit.go @@ -31,7 +31,7 @@ func Edit(ctx *aero.Context) string { } if track.MainAnime() != nil { - ctx.Data.(*arn.OpenGraph).Tags["og:image"] = track.MainAnime().Image.Large + ctx.Data.(*arn.OpenGraph).Tags["og:image"] = track.MainAnime().Image("large") } return ctx.HTML(components.SoundTrackTabs(track, user) + editform.Render(track, "Edit soundtrack", user)) diff --git a/pages/soundtrack/soundtrack.go b/pages/soundtrack/soundtrack.go index da3f8ca0..870bc4cc 100644 --- a/pages/soundtrack/soundtrack.go +++ b/pages/soundtrack/soundtrack.go @@ -29,7 +29,7 @@ func Get(ctx *aero.Context) string { } if track.MainAnime() != nil { - openGraph.Tags["og:image"] = track.MainAnime().Image.Large + openGraph.Tags["og:image"] = track.MainAnime().Image("large") } // Set video so that it can be played diff --git a/patches/add-image-ext/add-image-ext.go b/patches/add-image-ext/add-image-ext.go new file mode 100644 index 00000000..4381b0c9 --- /dev/null +++ b/patches/add-image-ext/add-image-ext.go @@ -0,0 +1,46 @@ +package main + +import ( + "os" + "path" + + "github.com/animenotifier/arn" +) + +func main() { + defer arn.Node.Close() + + for anime := range arn.StreamAnime() { + base := path.Join(os.Getenv("GOPATH"), "/src/github.com/animenotifier/notify.moe/images/anime/original/", anime.ID) + + if _, err := os.Stat(base + ".png"); err == nil { + anime.ImageExtension = ".png" + anime.Save() + continue + } + + if _, err := os.Stat(base + ".jpg"); err == nil { + anime.ImageExtension = ".jpg" + anime.Save() + continue + } + + if _, err := os.Stat(base + ".jpeg"); err == nil { + anime.ImageExtension = ".jpeg" + anime.Save() + continue + } + + if _, err := os.Stat(base + ".gif"); err == nil { + anime.ImageExtension = ".gif" + anime.Save() + continue + } + + if _, err := os.Stat(base + ".webp"); err == nil { + anime.ImageExtension = ".webp" + anime.Save() + continue + } + } +}