@@ -0,0 +1,218 @@
|
|||||||
|
package handler
|
||||||
|
|
||||||
|
import (
|
||||||
|
"encoding/base64"
|
||||||
|
"encoding/json"
|
||||||
|
"fmt"
|
||||||
|
"honoka-chan/config"
|
||||||
|
"honoka-chan/database"
|
||||||
|
"honoka-chan/encrypt"
|
||||||
|
"honoka-chan/utils"
|
||||||
|
"net/http"
|
||||||
|
"time"
|
||||||
|
|
||||||
|
"github.com/gin-gonic/gin"
|
||||||
|
)
|
||||||
|
|
||||||
|
type NoticeFriendVarietyResp struct {
|
||||||
|
ResponseData NoticeFriendVarietyData `json:"response_data"`
|
||||||
|
ReleaseInfo []interface{} `json:"release_info"`
|
||||||
|
StatusCode int `json:"status_code"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type NoticeFriendVarietyData struct {
|
||||||
|
ItemCount int `json:"item_count"`
|
||||||
|
NoticeList []interface{} `json:"notice_list"`
|
||||||
|
ServerTimestamp int64 `json:"server_timestamp"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type NoticeFriendGreetingResp struct {
|
||||||
|
ResponseData NoticeFriendGreetingData `json:"response_data"`
|
||||||
|
ReleaseInfo []interface{} `json:"release_info"`
|
||||||
|
StatusCode int `json:"status_code"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type NoticeFriendGreetingData struct {
|
||||||
|
NextId int `json:"next_id"`
|
||||||
|
NoticeList []interface{} `json:"notice_list"`
|
||||||
|
ServerTimestamp int64 `json:"server_timestamp"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type NoticeUserGreetingResp struct {
|
||||||
|
ResponseData NoticeUserGreetingData `json:"response_data"`
|
||||||
|
ReleaseInfo []interface{} `json:"release_info"`
|
||||||
|
StatusCode int `json:"status_code"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type NoticeUserGreetingData struct {
|
||||||
|
ItemCount int `json:"item_count"`
|
||||||
|
HasNext bool `json:"has_next"`
|
||||||
|
NoticeList []interface{} `json:"notice_list"`
|
||||||
|
ServerTimestamp int64 `json:"server_timestamp"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func NoticeFriendVarietyHandler(ctx *gin.Context) {
|
||||||
|
reqTime := time.Now().Unix()
|
||||||
|
|
||||||
|
authorizeStr := ctx.Request.Header["Authorize"]
|
||||||
|
authToken, err := utils.GetAuthorizeToken(authorizeStr)
|
||||||
|
if err != nil {
|
||||||
|
ctx.String(http.StatusForbidden, "Fuck you!")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
userId := ctx.Request.Header[http.CanonicalHeaderKey("User-ID")]
|
||||||
|
if len(userId) == 0 {
|
||||||
|
ctx.String(http.StatusForbidden, "Fuck you!")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
if !database.MatchTokenUid(authToken, userId[0]) {
|
||||||
|
ctx.String(http.StatusForbidden, "Fuck you!")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
nonce, err := utils.GetAuthorizeNonce(authorizeStr)
|
||||||
|
if err != nil {
|
||||||
|
fmt.Println(err)
|
||||||
|
ctx.String(http.StatusForbidden, "Fuck you!")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
nonce++
|
||||||
|
|
||||||
|
respTime := time.Now().Unix()
|
||||||
|
newAuthorizeStr := fmt.Sprintf("consumerKey=lovelive_test&timeStamp=%d&version=1.1&token=%s&nonce=%d&user_id=%s&requestTimeStamp=%d", respTime, authToken, nonce, userId[0], reqTime)
|
||||||
|
// fmt.Println(newAuthorizeStr)
|
||||||
|
|
||||||
|
noticeResp := NoticeFriendVarietyResp{
|
||||||
|
ResponseData: NoticeFriendVarietyData{
|
||||||
|
ItemCount: 1,
|
||||||
|
NoticeList: []interface{}{},
|
||||||
|
ServerTimestamp: time.Now().Unix(),
|
||||||
|
},
|
||||||
|
ReleaseInfo: []interface{}{},
|
||||||
|
StatusCode: 200,
|
||||||
|
}
|
||||||
|
resp, err := json.Marshal(noticeResp)
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
xms := encrypt.RSA_Sign_SHA1(resp, "privatekey.pem")
|
||||||
|
xms64 := base64.RawStdEncoding.EncodeToString(xms)
|
||||||
|
|
||||||
|
ctx.Header("Server-Version", config.Conf.Server.VersionNumber)
|
||||||
|
ctx.Header("user_id", userId[0])
|
||||||
|
ctx.Header("authorize", newAuthorizeStr)
|
||||||
|
ctx.Header("X-Message-Sign", xms64)
|
||||||
|
ctx.String(http.StatusOK, string(resp))
|
||||||
|
}
|
||||||
|
|
||||||
|
func NoticeFriendGreetingHandler(ctx *gin.Context) {
|
||||||
|
reqTime := time.Now().Unix()
|
||||||
|
|
||||||
|
authorizeStr := ctx.Request.Header["Authorize"]
|
||||||
|
authToken, err := utils.GetAuthorizeToken(authorizeStr)
|
||||||
|
if err != nil {
|
||||||
|
ctx.String(http.StatusForbidden, "Fuck you!")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
userId := ctx.Request.Header[http.CanonicalHeaderKey("User-ID")]
|
||||||
|
if len(userId) == 0 {
|
||||||
|
ctx.String(http.StatusForbidden, "Fuck you!")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
if !database.MatchTokenUid(authToken, userId[0]) {
|
||||||
|
ctx.String(http.StatusForbidden, "Fuck you!")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
nonce, err := utils.GetAuthorizeNonce(authorizeStr)
|
||||||
|
if err != nil {
|
||||||
|
fmt.Println(err)
|
||||||
|
ctx.String(http.StatusForbidden, "Fuck you!")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
nonce++
|
||||||
|
|
||||||
|
respTime := time.Now().Unix()
|
||||||
|
newAuthorizeStr := fmt.Sprintf("consumerKey=lovelive_test&timeStamp=%d&version=1.1&token=%s&nonce=%d&user_id=%s&requestTimeStamp=%d", respTime, authToken, nonce, userId[0], reqTime)
|
||||||
|
// fmt.Println(newAuthorizeStr)
|
||||||
|
|
||||||
|
noticeResp := NoticeFriendGreetingResp{
|
||||||
|
ResponseData: NoticeFriendGreetingData{
|
||||||
|
NextId: 0,
|
||||||
|
NoticeList: []interface{}{},
|
||||||
|
ServerTimestamp: time.Now().Unix(),
|
||||||
|
},
|
||||||
|
ReleaseInfo: []interface{}{},
|
||||||
|
StatusCode: 200,
|
||||||
|
}
|
||||||
|
resp, err := json.Marshal(noticeResp)
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
xms := encrypt.RSA_Sign_SHA1(resp, "privatekey.pem")
|
||||||
|
xms64 := base64.RawStdEncoding.EncodeToString(xms)
|
||||||
|
|
||||||
|
ctx.Header("Server-Version", config.Conf.Server.VersionNumber)
|
||||||
|
ctx.Header("user_id", userId[0])
|
||||||
|
ctx.Header("authorize", newAuthorizeStr)
|
||||||
|
ctx.Header("X-Message-Sign", xms64)
|
||||||
|
ctx.String(http.StatusOK, string(resp))
|
||||||
|
}
|
||||||
|
|
||||||
|
func NoticeUserGreetingHandler(ctx *gin.Context) {
|
||||||
|
reqTime := time.Now().Unix()
|
||||||
|
|
||||||
|
authorizeStr := ctx.Request.Header["Authorize"]
|
||||||
|
authToken, err := utils.GetAuthorizeToken(authorizeStr)
|
||||||
|
if err != nil {
|
||||||
|
ctx.String(http.StatusForbidden, "Fuck you!")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
userId := ctx.Request.Header[http.CanonicalHeaderKey("User-ID")]
|
||||||
|
if len(userId) == 0 {
|
||||||
|
ctx.String(http.StatusForbidden, "Fuck you!")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
if !database.MatchTokenUid(authToken, userId[0]) {
|
||||||
|
ctx.String(http.StatusForbidden, "Fuck you!")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
nonce, err := utils.GetAuthorizeNonce(authorizeStr)
|
||||||
|
if err != nil {
|
||||||
|
fmt.Println(err)
|
||||||
|
ctx.String(http.StatusForbidden, "Fuck you!")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
nonce++
|
||||||
|
|
||||||
|
respTime := time.Now().Unix()
|
||||||
|
newAuthorizeStr := fmt.Sprintf("consumerKey=lovelive_test&timeStamp=%d&version=1.1&token=%s&nonce=%d&user_id=%s&requestTimeStamp=%d", respTime, authToken, nonce, userId[0], reqTime)
|
||||||
|
// fmt.Println(newAuthorizeStr)
|
||||||
|
|
||||||
|
noticeResp := NoticeUserGreetingResp{
|
||||||
|
ResponseData: NoticeUserGreetingData{
|
||||||
|
ItemCount: 0,
|
||||||
|
HasNext: false,
|
||||||
|
NoticeList: []interface{}{},
|
||||||
|
ServerTimestamp: time.Now().Unix(),
|
||||||
|
},
|
||||||
|
ReleaseInfo: []interface{}{},
|
||||||
|
StatusCode: 200,
|
||||||
|
}
|
||||||
|
resp, err := json.Marshal(noticeResp)
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
xms := encrypt.RSA_Sign_SHA1(resp, "privatekey.pem")
|
||||||
|
xms64 := base64.RawStdEncoding.EncodeToString(xms)
|
||||||
|
|
||||||
|
ctx.Header("Server-Version", config.Conf.Server.VersionNumber)
|
||||||
|
ctx.Header("user_id", userId[0])
|
||||||
|
ctx.Header("authorize", newAuthorizeStr)
|
||||||
|
ctx.Header("X-Message-Sign", xms64)
|
||||||
|
ctx.String(http.StatusOK, string(resp))
|
||||||
|
}
|
||||||
@@ -79,6 +79,9 @@ func main() {
|
|||||||
m.POST("/subscenario/startup", handler.SubScenarioStartupHandler)
|
m.POST("/subscenario/startup", handler.SubScenarioStartupHandler)
|
||||||
m.POST("/subscenario/reward", handler.SubScenarioStartupHandler)
|
m.POST("/subscenario/reward", handler.SubScenarioStartupHandler)
|
||||||
m.POST("/album/seriesAll", handler.AlbumSeriesAllHandler)
|
m.POST("/album/seriesAll", handler.AlbumSeriesAllHandler)
|
||||||
|
m.POST("/notice/noticeFriendVariety", handler.NoticeFriendVarietyHandler)
|
||||||
|
m.POST("/notice/noticeFriendGreeting", handler.NoticeFriendGreetingHandler)
|
||||||
|
m.POST("/notice/noticeUserGreetingHistory", handler.NoticeUserGreetingHandler)
|
||||||
|
|
||||||
}
|
}
|
||||||
r.GET("/webview.php/announce/index", handler.AnnounceIndexHandler)
|
r.GET("/webview.php/announce/index", handler.AnnounceIndexHandler)
|
||||||
|
|||||||
Reference in New Issue
Block a user