Remove image caches
This commit is contained in:
parent
f77e0bd08f
commit
d12edc93ae
@ -1,7 +1,6 @@
|
|||||||
package discord
|
package discord
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"bytes"
|
|
||||||
"code.mrmelon54.xyz/sean/melon-tools/utils"
|
"code.mrmelon54.xyz/sean/melon-tools/utils"
|
||||||
"context"
|
"context"
|
||||||
"embed"
|
"embed"
|
||||||
@ -12,7 +11,6 @@ import (
|
|||||||
"github.com/gorilla/mux"
|
"github.com/gorilla/mux"
|
||||||
"golang.org/x/oauth2"
|
"golang.org/x/oauth2"
|
||||||
"html/template"
|
"html/template"
|
||||||
"io"
|
|
||||||
"net/http"
|
"net/http"
|
||||||
"os"
|
"os"
|
||||||
)
|
)
|
||||||
@ -60,12 +58,6 @@ func (m *Module) SetupModule(router *mux.Router, f func(cb func(http.ResponseWri
|
|||||||
}
|
}
|
||||||
router.HandleFunc("/", m.getClient(m.homepage))
|
router.HandleFunc("/", m.getClient(m.homepage))
|
||||||
router.HandleFunc("/login", m.sessionWrapper(m.loginPage))
|
router.HandleFunc("/login", m.sessionWrapper(m.loginPage))
|
||||||
router.HandleFunc("/user/avatar/{userId}/a_{avatarId}", m.getClient(m.userAvatarAnim))
|
|
||||||
router.HandleFunc("/user/avatar/{userId}/{avatarId}", m.getClient(m.userAvatar))
|
|
||||||
router.HandleFunc("/user/banner/{userId}/a_{bannerId}", m.getClient(m.userAvatarAnim))
|
|
||||||
router.HandleFunc("/user/banner/{userId}/{bannerId}", m.getClient(m.userAvatar))
|
|
||||||
router.HandleFunc("/guild/icon/{guildId}/a_{iconId}", m.getClient(m.guildIconAnim))
|
|
||||||
router.HandleFunc("/guild/icon/{guildId}/{iconId}", m.getClient(m.guildIcon))
|
|
||||||
router.PathPrefix("/assets/icon/{name}.svg").HandlerFunc(func(rw http.ResponseWriter, req *http.Request) {
|
router.PathPrefix("/assets/icon/{name}.svg").HandlerFunc(func(rw http.ResponseWriter, req *http.Request) {
|
||||||
vars := mux.Vars(req)
|
vars := mux.Vars(req)
|
||||||
b, err := iconFiles.ReadFile("pages/assets/icon/" + vars["name"] + ".svg")
|
b, err := iconFiles.ReadFile("pages/assets/icon/" + vars["name"] + ".svg")
|
||||||
@ -118,7 +110,10 @@ func (m *Module) homepage(rw http.ResponseWriter, _ *http.Request, state *utils.
|
|||||||
|
|
||||||
guildIcons := make([]template.HTMLAttr, len(myGuilds))
|
guildIcons := make([]template.HTMLAttr, len(myGuilds))
|
||||||
for i, j := range myGuilds {
|
for i, j := range myGuilds {
|
||||||
guildIcons[i] = template.HTMLAttr(fmt.Sprintf("src=\"/discord/guild/icon/%s/%s\"", j.ID, j.Icon))
|
var a discordgo.Guild
|
||||||
|
a.ID = j.ID
|
||||||
|
a.Icon = j.Icon
|
||||||
|
guildIcons[i] = template.HTMLAttr(fmt.Sprintf("src=\"%s\"", a.IconURL()))
|
||||||
}
|
}
|
||||||
|
|
||||||
err = tmp.Execute(rw, struct {
|
err = tmp.Execute(rw, struct {
|
||||||
@ -132,8 +127,8 @@ func (m *Module) homepage(rw http.ResponseWriter, _ *http.Request, state *utils.
|
|||||||
}{
|
}{
|
||||||
User: myUser,
|
User: myUser,
|
||||||
UserAccent: fmt.Sprintf("#%06x", myUser.AccentColor),
|
UserAccent: fmt.Sprintf("#%06x", myUser.AccentColor),
|
||||||
Avatar: template.HTMLAttr(fmt.Sprintf("src=\"/discord/user/avatar/%s/%s\"", myUser.ID, myUser.Avatar)),
|
Avatar: template.HTMLAttr(fmt.Sprintf("src=\"%s\"", myUser.AvatarURL("256"))),
|
||||||
Banner: template.HTMLAttr(fmt.Sprintf("src=\"/discord/user/banner/%s/%s\"", myUser.ID, myUser.Banner)),
|
Banner: template.HTMLAttr(fmt.Sprintf("src=\"%s\"", myUser.BannerURL("256"))),
|
||||||
Guilds: myGuilds,
|
Guilds: myGuilds,
|
||||||
GuildIcons: guildIcons,
|
GuildIcons: guildIcons,
|
||||||
Connections: myConns,
|
Connections: myConns,
|
||||||
@ -183,53 +178,6 @@ func (m *Module) loginPage(rw http.ResponseWriter, req *http.Request, state *uti
|
|||||||
http.Redirect(rw, req, m.oauthClient.AuthCodeURL(flowState.String(), oauth2.AccessTypeOffline), http.StatusTemporaryRedirect)
|
http.Redirect(rw, req, m.oauthClient.AuthCodeURL(flowState.String(), oauth2.AccessTypeOffline), http.StatusTemporaryRedirect)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *Module) bucketFetchImage(rw http.ResponseWriter, discordClient *discordgo.Session, endpoint, emptyEndpoint, contentType string) {
|
|
||||||
body, err := discordClient.RequestWithBucketID("GET", endpoint, nil, emptyEndpoint)
|
|
||||||
if err != nil {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
rw.Header().Set("Content-Type", contentType)
|
|
||||||
rw.WriteHeader(http.StatusOK)
|
|
||||||
_, _ = io.Copy(rw, bytes.NewReader(body))
|
|
||||||
}
|
|
||||||
|
|
||||||
func (m *Module) userAvatar(rw http.ResponseWriter, req *http.Request, _ *utils.State, discordClient *discordgo.Session) {
|
|
||||||
vars := mux.Vars(req)
|
|
||||||
endpoint := discordgo.EndpointUserAvatar
|
|
||||||
m.bucketFetchImage(rw, discordClient, endpoint(vars["userId"], vars["avatarId"]), endpoint("", ""), "image/png")
|
|
||||||
}
|
|
||||||
|
|
||||||
func (m *Module) userAvatarAnim(rw http.ResponseWriter, req *http.Request, _ *utils.State, discordClient *discordgo.Session) {
|
|
||||||
vars := mux.Vars(req)
|
|
||||||
endpoint := discordgo.EndpointUserAvatarAnimated
|
|
||||||
m.bucketFetchImage(rw, discordClient, endpoint(vars["userId"], "a_"+vars["avatarId"]), endpoint("", ""), "image/gif")
|
|
||||||
}
|
|
||||||
|
|
||||||
func (m *Module) userBanner(rw http.ResponseWriter, req *http.Request, _ *utils.State, discordClient *discordgo.Session) {
|
|
||||||
vars := mux.Vars(req)
|
|
||||||
endpoint := discordgo.EndpointUserBanner
|
|
||||||
m.bucketFetchImage(rw, discordClient, endpoint(vars["userId"], vars["bannerId"]), endpoint("", ""), "image/png")
|
|
||||||
}
|
|
||||||
|
|
||||||
func (m *Module) userBannerAnim(rw http.ResponseWriter, req *http.Request, _ *utils.State, discordClient *discordgo.Session) {
|
|
||||||
vars := mux.Vars(req)
|
|
||||||
endpoint := discordgo.EndpointUserBannerAnimated
|
|
||||||
m.bucketFetchImage(rw, discordClient, endpoint(vars["userId"], "a_"+vars["bannerId"]), endpoint("", ""), "image/gif")
|
|
||||||
}
|
|
||||||
|
|
||||||
func (m *Module) guildIcon(rw http.ResponseWriter, req *http.Request, _ *utils.State, discordClient *discordgo.Session) {
|
|
||||||
vars := mux.Vars(req)
|
|
||||||
endpoint := discordgo.EndpointGuildIcon
|
|
||||||
m.bucketFetchImage(rw, discordClient, endpoint(vars["userId"], vars["guildId"]), endpoint("", ""), "image/png")
|
|
||||||
}
|
|
||||||
|
|
||||||
func (m *Module) guildIconAnim(rw http.ResponseWriter, req *http.Request, _ *utils.State, discordClient *discordgo.Session) {
|
|
||||||
vars := mux.Vars(req)
|
|
||||||
endpoint := discordgo.EndpointGuildIconAnimated
|
|
||||||
m.bucketFetchImage(rw, discordClient, endpoint(vars["userId"], "a_"+vars["guildId"]), endpoint("", ""), "image/gif")
|
|
||||||
}
|
|
||||||
|
|
||||||
func connectedLinkFunc(a *discordgo.UserConnection) string {
|
func connectedLinkFunc(a *discordgo.UserConnection) string {
|
||||||
switch a.Type {
|
switch a.Type {
|
||||||
case "github":
|
case "github":
|
||||||
|
Loading…
Reference in New Issue
Block a user