Big cleanup 🧹

This commit is contained in:
daru
2022-07-28 00:43:35 +02:00
parent 6a2e573828
commit 1bb8536334
5 changed files with 49 additions and 133 deletions

2
go.mod
View File

@@ -26,5 +26,5 @@ require (
github.com/xujiajun/mmap-go v1.0.1 // indirect
github.com/xujiajun/utils v0.0.0-20190123093513-8bf096c4f53b // indirect
golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa // indirect
golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f // indirect
golang.org/x/sys v0.0.0-20220727055044-e65921a090b8 // indirect
)

4
go.sum
View File

@@ -72,8 +72,8 @@ golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBc
golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220227234510-4e6760a101f9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220405210540-1e041c57c461/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f h1:v4INt8xihDGvnrfjMDVXGxw9wrfxYyCjk0KbXjhR55s=
golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220727055044-e65921a090b8 h1:dyU22nBWzrmTQxtNrr4dzVOvaw35nUYE279vF9UmsI8=
golang.org/x/sys v0.0.0-20220727055044-e65921a090b8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=

View File

@@ -51,6 +51,9 @@ var (
mmDbServer = flag.String("mmDbServer", "hanami.family:3306", "MovieManager db server")
mmDbUser = flag.String("mmDbUser", "yui", "MovieManager db user")
discordToken = flag.String("discordToken", "OTk4MTk3MTMzNjE2MzUzMzUw.GKPdLt.zaMvvlikffjBxJO-Qx69A5nQNQxtA-FmkH2yTA", "Discord bot auth token")
discordChannel = flag.String("discordChannel", "998277590609559632", "Discord bot channel id")
husoWebAnimeUri = flag.String("husoWebAnimeUri", "https://anime.hanami.family/anime/", "HusoWeb Anime base URL")
husoWebUserUri = flag.String("husoWebUserUri", "https://anime.hanami.family/user/", "HusoWeb User base URL")
animeCache *bigcache.BigCache
seasoncache *bigcache.BigCache
userCache *bigcache.BigCache

View File

@@ -30,10 +30,10 @@ func SendAppointBroadcast(creator string, app *Appointment) {
msgStart.WriteString(fmt.Sprintf("<@%d>", uData.DiscordID))
}
msgs := fmt.Sprintf("🗓️ New appointment for [%s](https://anime.hanami.family/anime/%d) at\n<t:%d:F>\n<t:%d:R>", anime.Title, app.Anime, app.Time.Unix(), app.Time.Unix())
msgs := fmt.Sprintf("🗓️ New appointment for [%s](%s%d) at\n<t:%d:F>\n<t:%d:R>", anime.Title, *husoWebAnimeUri, app.Anime, app.Time.Unix(), app.Time.Unix())
msge := discordgo.MessageEmbed{
Description: msgs,
URL: fmt.Sprintf("https://anime.hanami.family/anime/%d", app.Anime),
URL: fmt.Sprintf("%s%d", *husoWebAnimeUri, app.Anime),
Thumbnail: &discordgo.MessageEmbedThumbnail{URL: anime.ImageLargeURL},
Color: 7187428,
Footer: &discordgo.MessageEmbedFooter{
@@ -46,7 +46,7 @@ func SendAppointBroadcast(creator string, app *Appointment) {
msge.Author = &discordgo.MessageEmbedAuthor{
Name: user.Username,
IconURL: user.ImageURL,
URL: fmt.Sprintf("https://anime.hanami.family/user/%s", creator),
URL: fmt.Sprintf("%s%s", *husoWebUserUri, creator),
}
}
@@ -54,7 +54,7 @@ func SendAppointBroadcast(creator string, app *Appointment) {
Content: msgStart.String(),
Embeds: []*discordgo.MessageEmbed{&msge},
}
_, err = discc.ChannelMessageSendComplex("998277590609559632", &msgc)
_, err = discc.ChannelMessageSendComplex(*discordChannel, &msgc)
if err != nil {
color.Errorln(err.Error())
@@ -84,10 +84,10 @@ func AnnounceAppointmentSoon(app *Appointment) {
msgStart.WriteString(fmt.Sprintf("<@%d>", uData.DiscordID))
}
msgs := fmt.Sprintf("⏰ Appointment starting <t:%d:R>!\n[%s](https://anime.hanami.family/anime/%d) at\n<t:%d:F>", app.Time.Unix(), anime.Title, app.Anime, app.Time.Unix())
msgs := fmt.Sprintf("⏰ Appointment starting <t:%d:R>!\n[%s](%s%d) at\n<t:%d:F>", app.Time.Unix(), anime.Title, *husoWebAnimeUri, app.Anime, app.Time.Unix())
msge := discordgo.MessageEmbed{
Description: msgs,
URL: fmt.Sprintf("https://anime.hanami.family/anime/%d", app.Anime),
URL: fmt.Sprintf("%s%d", *husoWebAnimeUri, app.Anime),
Thumbnail: &discordgo.MessageEmbedThumbnail{URL: anime.ImageLargeURL},
Color: 7187428,
Footer: &discordgo.MessageEmbedFooter{
@@ -99,7 +99,7 @@ func AnnounceAppointmentSoon(app *Appointment) {
Content: msgStart.String(),
Embeds: []*discordgo.MessageEmbed{&msge},
}
_, err = discc.ChannelMessageSendComplex("998277590609559632", &msgc)
_, err = discc.ChannelMessageSendComplex(*discordChannel, &msgc)
if err != nil {
color.Errorln(err.Error())

159
ober.go
View File

@@ -14,6 +14,13 @@ import (
"github.com/xujiajun/nutsdb"
)
const (
xHusoAuth = "X-HUSO-AUTH"
htmlContentType = "text/html; charset=utf-8"
jsonContentType = "application/json; charset=utf-8"
textContentType = "text/plain; charset=utf-8"
)
func RunWebserv() {
r := router.New()
r.GET("/", Headers(Start))
@@ -62,12 +69,12 @@ func Start(ctx *fasthttp.RequestCtx) {
WriteIndex(ctx, season, oracles, charts, logOut.String())
ctx.SetContentType("text/html; charset=utf-8")
ctx.SetContentType(htmlContentType)
ctx.SetStatusCode(fasthttp.StatusOK)
}
func AuthTest(ctx *fasthttp.RequestCtx) {
auth := ctx.Request.Header.Peek("X-HUSO-AUTH")
auth := ctx.Request.Header.Peek(xHusoAuth)
if ctx.UserValue("user") == nil || auth == nil || string(auth) == "" {
ctx.SetStatusCode(fasthttp.StatusBadRequest)
return
@@ -87,15 +94,7 @@ func Season(ctx *fasthttp.RequestCtx) {
addErrorToCtx(ctx, err)
return
}
err = writeResponseBody(ctx, data)
if err != nil {
addErrorToCtx(ctx, err)
return
}
ctx.SetContentType("application/json; charset=utf-8")
ctx.SetStatusCode(fasthttp.StatusOK)
setResponseJson(ctx, data)
}
func SeasonNext(ctx *fasthttp.RequestCtx) {
@@ -104,15 +103,7 @@ func SeasonNext(ctx *fasthttp.RequestCtx) {
addErrorToCtx(ctx, err)
return
}
err = writeResponseBody(ctx, data)
if err != nil {
addErrorToCtx(ctx, err)
return
}
ctx.SetContentType("application/json; charset=utf-8")
ctx.SetStatusCode(fasthttp.StatusOK)
setResponseJson(ctx, data)
}
func SeasonNextNext(ctx *fasthttp.RequestCtx) {
@@ -121,15 +112,7 @@ func SeasonNextNext(ctx *fasthttp.RequestCtx) {
addErrorToCtx(ctx, err)
return
}
err = writeResponseBody(ctx, data)
if err != nil {
addErrorToCtx(ctx, err)
return
}
ctx.SetContentType("application/json; charset=utf-8")
ctx.SetStatusCode(fasthttp.StatusOK)
setResponseJson(ctx, data)
}
func SeasonLast(ctx *fasthttp.RequestCtx) {
@@ -138,15 +121,7 @@ func SeasonLast(ctx *fasthttp.RequestCtx) {
addErrorToCtx(ctx, err)
return
}
err = writeResponseBody(ctx, data)
if err != nil {
addErrorToCtx(ctx, err)
return
}
ctx.SetContentType("application/json; charset=utf-8")
ctx.SetStatusCode(fasthttp.StatusOK)
setResponseJson(ctx, data)
}
func AnimeGet(ctx *fasthttp.RequestCtx) {
@@ -173,14 +148,7 @@ func AnimeGet(ctx *fasthttp.RequestCtx) {
addErrorToCtx(ctx, err)
return
}
_, err = ctx.Write(bytes)
if err != nil {
addErrorToCtx(ctx, err)
return
}
ctx.SetContentType("application/json; charset=utf-8")
ctx.SetStatusCode(fasthttp.StatusOK)
setResponseJson(ctx, bytes)
}
func AnimeSearchGet(ctx *fasthttp.RequestCtx) {
@@ -195,14 +163,7 @@ func AnimeSearchGet(ctx *fasthttp.RequestCtx) {
addErrorToCtx(ctx, err)
return
}
_, err = ctx.Write(bytes)
if err != nil {
addErrorToCtx(ctx, err)
return
}
ctx.SetContentType("application/json; charset=utf-8")
ctx.SetStatusCode(fasthttp.StatusOK)
setResponseJson(ctx, bytes)
}
func AppointmentGet(ctx *fasthttp.RequestCtx) {
@@ -222,14 +183,7 @@ func AppointmentGet(ctx *fasthttp.RequestCtx) {
addErrorToCtx(ctx, err)
return
}
_, err = ctx.Write(bytes)
if err != nil {
addErrorToCtx(ctx, err)
return
}
ctx.SetContentType("application/json; charset=utf-8")
ctx.SetStatusCode(fasthttp.StatusOK)
setResponseJson(ctx, bytes)
}
func ChatGet(ctx *fasthttp.RequestCtx) {
@@ -268,7 +222,7 @@ func ChatGet(ctx *fasthttp.RequestCtx) {
addErrorToCtx(ctx, err)
return
}
ctx.SetContentType("text/plain; charset=utf-8")
ctx.SetContentType(textContentType)
ctx.SetStatusCode(fasthttp.StatusOK)
}
@@ -278,7 +232,7 @@ func LogGet(ctx *fasthttp.RequestCtx) {
addErrorToCtx(ctx, err)
return
}
ctx.SetContentType("text/plain; charset=utf-8")
ctx.SetContentType(textContentType)
ctx.SetStatusCode(fasthttp.StatusOK)
}
@@ -319,14 +273,7 @@ func UserGet(ctx *fasthttp.RequestCtx) {
addErrorToCtx(ctx, err)
return
}
_, err = ctx.Write(bytes)
if err != nil {
addErrorToCtx(ctx, err)
return
}
ctx.SetContentType("application/json; charset=utf-8")
ctx.SetStatusCode(fasthttp.StatusOK)
setResponseJson(ctx, bytes)
}
func UserStashGet(ctx *fasthttp.RequestCtx) {
@@ -345,14 +292,7 @@ func WatchGet(ctx *fasthttp.RequestCtx) {
addErrorToCtx(ctx, err)
return
}
_, err = ctx.Write(bytes)
if err != nil {
addErrorToCtx(ctx, err)
return
}
ctx.SetContentType("application/json; charset=utf-8")
ctx.SetStatusCode(fasthttp.StatusOK)
setResponseJson(ctx, bytes)
}
func WatchExtendedGet(ctx *fasthttp.RequestCtx) {
@@ -388,14 +328,7 @@ func WatchExtendedGet(ctx *fasthttp.RequestCtx) {
addErrorToCtx(ctx, err)
return
}
_, err = ctx.Write(bytes)
if err != nil {
addErrorToCtx(ctx, err)
return
}
ctx.SetContentType("application/json; charset=utf-8")
ctx.SetStatusCode(fasthttp.StatusOK)
setResponseJson(ctx, bytes)
}
func Register(ctx *fasthttp.RequestCtx) {
@@ -463,13 +396,11 @@ func Register(ctx *fasthttp.RequestCtx) {
return
}
ctx.SetBody(body)
ctx.SetContentType("application/json; charset=utf-8")
ctx.SetStatusCode(fasthttp.StatusOK)
setResponseJson(ctx, body)
}
func RegisterUpdate(ctx *fasthttp.RequestCtx) {
auth := ctx.Request.Header.Peek("X-HUSO-AUTH")
auth := ctx.Request.Header.Peek(xHusoAuth)
if auth == nil || string(auth) == "" || !strings.Contains(string(ctx.Request.Header.ContentType()), "application/json") {
ctx.SetStatusCode(fasthttp.StatusBadRequest)
return
@@ -532,9 +463,7 @@ func RegisterUpdate(ctx *fasthttp.RequestCtx) {
return
}
ctx.SetBody(body)
ctx.SetContentType("application/json; charset=utf-8")
ctx.SetStatusCode(fasthttp.StatusOK)
setResponseJson(ctx, body)
}
func AppointmentPost(ctx *fasthttp.RequestCtx) {
@@ -542,7 +471,7 @@ func AppointmentPost(ctx *fasthttp.RequestCtx) {
}
func ChatPost(ctx *fasthttp.RequestCtx) {
auth := ctx.Request.Header.Peek("X-HUSO-AUTH")
auth := ctx.Request.Header.Peek(xHusoAuth)
if ctx.UserValue("id") == nil || ctx.UserValue("user") == nil || auth == nil || string(auth) == "" || !strings.Contains(string(ctx.Request.Header.ContentType()), "text/plain") {
ctx.SetStatusCode(fasthttp.StatusBadRequest)
return
@@ -583,7 +512,7 @@ func ChatPost(ctx *fasthttp.RequestCtx) {
addErrorToCtx(ctx, err)
return
}
ctx.SetContentType("text/plain; charset=utf-8")
ctx.SetContentType(textContentType)
ctx.SetStatusCode(fasthttp.StatusOK)
}
@@ -600,7 +529,7 @@ func AppointmentDelete(ctx *fasthttp.RequestCtx) {
}
func UnRegister(ctx *fasthttp.RequestCtx) {
auth := ctx.Request.Header.Peek("X-HUSO-AUTH")
auth := ctx.Request.Header.Peek(xHusoAuth)
if auth == nil || string(auth) == "" || !strings.Contains(string(ctx.Request.Header.ContentType()), "application/json") {
ctx.SetStatusCode(fasthttp.StatusBadRequest)
return
@@ -651,9 +580,7 @@ func UnRegister(ctx *fasthttp.RequestCtx) {
return
}
ctx.SetBody(body)
ctx.SetContentType("application/json; charset=utf-8")
ctx.SetStatusCode(fasthttp.StatusOK)
setResponseJson(ctx, body)
}
func WatchDelete(ctx *fasthttp.RequestCtx) {
@@ -720,7 +647,7 @@ func watchGetLogic(ctx *fasthttp.RequestCtx) ([]AnimeUser, error) {
}
func processUpdateReq(ctx *fasthttp.RequestCtx, update bool) {
auth := ctx.Request.Header.Peek("X-HUSO-AUTH")
auth := ctx.Request.Header.Peek(xHusoAuth)
if ctx.UserValue("user") == nil || auth == nil || string(auth) == "" || !strings.Contains(string(ctx.Request.Header.ContentType()), "application/json") {
ctx.SetStatusCode(fasthttp.StatusBadRequest)
return
@@ -788,16 +715,11 @@ func processUpdateReq(ctx *fasthttp.RequestCtx, update bool) {
addErrorToCtx(ctx, err)
return
}
err = writeResponseBody(ctx, data)
if err != nil {
addErrorToCtx(ctx, err)
return
}
ctx.SetContentType("application/json; charset=utf-8")
setResponseJson(ctx, data)
}
func processUpdateAppointmentReq(ctx *fasthttp.RequestCtx, update bool) {
auth := ctx.Request.Header.Peek("X-HUSO-AUTH")
auth := ctx.Request.Header.Peek(xHusoAuth)
if ctx.UserValue("user") == nil || auth == nil || string(auth) == "" || !strings.Contains(string(ctx.Request.Header.ContentType()), "application/json") {
ctx.SetStatusCode(fasthttp.StatusBadRequest)
return
@@ -877,16 +799,11 @@ func processUpdateAppointmentReq(ctx *fasthttp.RequestCtx, update bool) {
addErrorToCtx(ctx, err)
return
}
err = writeResponseBody(ctx, data)
if err != nil {
addErrorToCtx(ctx, err)
return
}
ctx.SetContentType("application/json; charset=utf-8")
setResponseJson(ctx, data)
}
func processUserStashReq(ctx *fasthttp.RequestCtx, update bool) {
auth := ctx.Request.Header.Peek("X-HUSO-AUTH")
auth := ctx.Request.Header.Peek(xHusoAuth)
dataPath := fmt.Sprintf("%s", ctx.UserValue("data"))
if auth == nil || string(auth) == "" || dataPath == "" {
ctx.SetStatusCode(fasthttp.StatusBadRequest)
@@ -930,14 +847,10 @@ func processUserStashReq(ctx *fasthttp.RequestCtx, update bool) {
}
}
func writeResponseBody(ctx *fasthttp.RequestCtx, bytes []byte) error {
_, err := ctx.Write(bytes)
if err != nil {
return err
}
ctx.SetContentType("application/json; charset=utf-8")
func setResponseJson(ctx *fasthttp.RequestCtx, bytes []byte) {
ctx.SetBody(bytes)
ctx.SetContentType(jsonContentType)
ctx.SetStatusCode(fasthttp.StatusOK)
return err
}
func addErrorToCtx(ctx *fasthttp.RequestCtx, err error) {