✨ updated
This commit is contained in:
1332
.idea/GOHCache.xml
generated
1332
.idea/GOHCache.xml
generated
File diff suppressed because it is too large
Load Diff
6
.idea/JavaSceneConfigState.xml
generated
Normal file
6
.idea/JavaSceneConfigState.xml
generated
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="SmartInputSourceJavaSceneConfigState">
|
||||||
|
<option name="customChineseScenes" value="{"capsLockState":false,"code":";FormatText(defaultText)","enable":true,"languageType":"CHINESE","name":"自定义中文切换","tip":""}" />
|
||||||
|
</component>
|
||||||
|
</project>
|
||||||
35
app/core/api/common/captcha/verify/verify_rotate_captcha.go
Normal file
35
app/core/api/common/captcha/verify/verify_rotate_captcha.go
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
package verify
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
"encoding/json"
|
||||||
|
"fmt"
|
||||||
|
"strconv"
|
||||||
|
|
||||||
|
"github.com/redis/go-redis/v9"
|
||||||
|
"github.com/wenlng/go-captcha/v2/rotate"
|
||||||
|
|
||||||
|
"schisandra-album-cloud-microservices/app/core/api/common/constant"
|
||||||
|
)
|
||||||
|
|
||||||
|
// VerifyRotateCaptcha verify rotate captcha
|
||||||
|
func VerifyRotateCaptcha(context context.Context, redis *redis.Client, angle int64, key string) bool {
|
||||||
|
cacheDataByte := redis.Get(context, constant.UserCaptchaPrefix+key).Val()
|
||||||
|
if len(cacheDataByte) == 0 {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
var dct *rotate.Block
|
||||||
|
if err := json.Unmarshal([]byte(cacheDataByte), &dct); err != nil {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
sAngle, err := strconv.ParseFloat(fmt.Sprintf("%v", angle), 64)
|
||||||
|
if err != nil {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
chkRet := rotate.CheckAngle(int64(sAngle), int64(dct.Angle), 2)
|
||||||
|
if chkRet {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
return false
|
||||||
|
|
||||||
|
}
|
||||||
36
app/core/api/common/captcha/verify/verify_slide_captcha.go
Normal file
36
app/core/api/common/captcha/verify/verify_slide_captcha.go
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
package verify
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
"encoding/json"
|
||||||
|
"fmt"
|
||||||
|
"strconv"
|
||||||
|
|
||||||
|
"github.com/redis/go-redis/v9"
|
||||||
|
"github.com/wenlng/go-captcha/v2/slide"
|
||||||
|
|
||||||
|
"schisandra-album-cloud-microservices/app/core/api/common/constant"
|
||||||
|
)
|
||||||
|
|
||||||
|
// VerifySlideCaptcha verify slide captcha
|
||||||
|
func VerifySlideCaptcha(context context.Context, redis *redis.Client, point []int64, key string) bool {
|
||||||
|
cacheDataByte := redis.Get(context, constant.UserCaptchaPrefix+key).Val()
|
||||||
|
if len(cacheDataByte) == 0 {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
var dct *slide.Block
|
||||||
|
if err := json.Unmarshal([]byte(cacheDataByte), &dct); err != nil {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
chkRet := false
|
||||||
|
if 2 == len(point) {
|
||||||
|
sx, _ := strconv.ParseFloat(fmt.Sprintf("%v", point[0]), 64)
|
||||||
|
sy, _ := strconv.ParseFloat(fmt.Sprintf("%v", point[1]), 64)
|
||||||
|
chkRet = slide.CheckPoint(int64(sx), int64(sy), int64(dct.X), int64(dct.Y), 4)
|
||||||
|
}
|
||||||
|
if chkRet {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
return false
|
||||||
|
}
|
||||||
8
app/core/api/common/constant/redis_prefix.go
Normal file
8
app/core/api/common/constant/redis_prefix.go
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
package constant
|
||||||
|
|
||||||
|
const (
|
||||||
|
UserClientPrefix string = "user:client:"
|
||||||
|
UserSessionPrefix string = "user:session:"
|
||||||
|
UserCaptchaPrefix string = "user:captcha:"
|
||||||
|
UserTokenPrefix string = "user:token:"
|
||||||
|
)
|
||||||
3
app/core/api/common/constant/session_key.go
Normal file
3
app/core/api/common/constant/session_key.go
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
package constant
|
||||||
|
|
||||||
|
const SESSION_KEY = "SESSION"
|
||||||
@@ -4,13 +4,13 @@ import (
|
|||||||
"context"
|
"context"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/golang-jwt/jwt/v5"
|
"github.com/golang-jwt/jwt/v4"
|
||||||
"github.com/zeromicro/go-zero/core/logc"
|
"github.com/zeromicro/go-zero/core/logc"
|
||||||
)
|
)
|
||||||
|
|
||||||
type AccessJWTPayload struct {
|
type AccessJWTPayload struct {
|
||||||
UserID *string `json:"user_id"`
|
UserID string `json:"user_id"`
|
||||||
Type *string `json:"type" default:"access"`
|
Type string `json:"type" default:"access"`
|
||||||
}
|
}
|
||||||
type AccessJWTClaims struct {
|
type AccessJWTClaims struct {
|
||||||
AccessJWTPayload
|
AccessJWTPayload
|
||||||
@@ -4,13 +4,13 @@ import (
|
|||||||
"context"
|
"context"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/golang-jwt/jwt/v5"
|
"github.com/golang-jwt/jwt/v4"
|
||||||
"github.com/zeromicro/go-zero/core/logc"
|
"github.com/zeromicro/go-zero/core/logc"
|
||||||
)
|
)
|
||||||
|
|
||||||
type RefreshJWTPayload struct {
|
type RefreshJWTPayload struct {
|
||||||
UserID *string `json:"user_id"`
|
UserID string `json:"user_id"`
|
||||||
Type *string `json:"type" default:"refresh"`
|
Type string `json:"type" default:"refresh"`
|
||||||
}
|
}
|
||||||
type RefreshJWTClaims struct {
|
type RefreshJWTClaims struct {
|
||||||
RefreshJWTPayload
|
RefreshJWTPayload
|
||||||
24
app/core/api/common/middleware/i18n_middleware.go
Normal file
24
app/core/api/common/middleware/i18n_middleware.go
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
package middleware
|
||||||
|
|
||||||
|
import (
|
||||||
|
"net/http"
|
||||||
|
"os"
|
||||||
|
"path/filepath"
|
||||||
|
|
||||||
|
"golang.org/x/text/language"
|
||||||
|
|
||||||
|
"schisandra-album-cloud-microservices/app/core/api/common/i18n"
|
||||||
|
)
|
||||||
|
|
||||||
|
func I18nMiddleware(next http.HandlerFunc) http.HandlerFunc {
|
||||||
|
cwd, err := os.Getwd()
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
zhPath := filepath.Join(cwd, "/resources/language/", "active.zh.toml")
|
||||||
|
enPath := filepath.Join(cwd, "/resources/language/", "active.en.toml")
|
||||||
|
return i18n.NewI18nMiddleware([]language.Tag{
|
||||||
|
language.English,
|
||||||
|
language.Chinese,
|
||||||
|
}, []string{enPath, zhPath}).Handle(next)
|
||||||
|
}
|
||||||
48
app/core/api/common/response/response.go
Normal file
48
app/core/api/common/response/response.go
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
package response
|
||||||
|
|
||||||
|
import "schisandra-album-cloud-microservices/app/core/api/internal/types"
|
||||||
|
|
||||||
|
// Success returns a success response with the given data.
|
||||||
|
func Success[T any](data T) *types.Response {
|
||||||
|
return &types.Response{
|
||||||
|
Code: 200,
|
||||||
|
Message: "success",
|
||||||
|
Data: data,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// SuccessWithMessage returns a success response with the given message.
|
||||||
|
func SuccessWithMessage(message string) *types.Response {
|
||||||
|
return &types.Response{
|
||||||
|
Code: 200,
|
||||||
|
Message: message,
|
||||||
|
Data: nil,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Error returns an error response with the given message.
|
||||||
|
func Error() *types.Response {
|
||||||
|
return &types.Response{
|
||||||
|
Code: 500,
|
||||||
|
Message: "error",
|
||||||
|
Data: nil,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ErrorWithCode returns an error response with the given code and message.
|
||||||
|
func ErrorWithCode(code int64, message string) *types.Response {
|
||||||
|
return &types.Response{
|
||||||
|
Code: code,
|
||||||
|
Message: message,
|
||||||
|
Data: nil,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ErrorWithMessage returns an error response with the given message.
|
||||||
|
func ErrorWithMessage(message string) *types.Response {
|
||||||
|
return &types.Response{
|
||||||
|
Code: 500,
|
||||||
|
Message: message,
|
||||||
|
Data: nil,
|
||||||
|
}
|
||||||
|
}
|
||||||
26
app/core/api/common/utils/get_client_ip.go
Normal file
26
app/core/api/common/utils/get_client_ip.go
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
package utils
|
||||||
|
|
||||||
|
import (
|
||||||
|
"net"
|
||||||
|
"net/http"
|
||||||
|
"strings"
|
||||||
|
)
|
||||||
|
|
||||||
|
// GetClientIP returns the client IP address from the request.
|
||||||
|
func GetClientIP(r *http.Request) string {
|
||||||
|
xForwardedFor := strings.TrimSpace(r.Header.Get("X-Forwarded-For"))
|
||||||
|
if xForwardedFor != "" {
|
||||||
|
return strings.Split(xForwardedFor, ",")[0]
|
||||||
|
}
|
||||||
|
|
||||||
|
ip := strings.TrimSpace(r.Header.Get("X-Real-Ip"))
|
||||||
|
if ip != "" {
|
||||||
|
return ip
|
||||||
|
}
|
||||||
|
|
||||||
|
ip, _, err := net.SplitHostPort(strings.TrimSpace(r.RemoteAddr))
|
||||||
|
if err != nil {
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
return ip
|
||||||
|
}
|
||||||
21
app/core/api/common/utils/ip2location.go
Normal file
21
app/core/api/common/utils/ip2location.go
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
package utils
|
||||||
|
|
||||||
|
import (
|
||||||
|
"regexp"
|
||||||
|
"strings"
|
||||||
|
)
|
||||||
|
|
||||||
|
func RemoveZeroAndAdjust(s string) string {
|
||||||
|
// 正则表达式匹配 "|0|" 或 "|0" 或 "0|" 并替换为 "|"
|
||||||
|
re := regexp.MustCompile(`(\|0|0\||0)`)
|
||||||
|
result := re.ReplaceAllString(s, "|")
|
||||||
|
|
||||||
|
// 移除可能出现的连续 "|"
|
||||||
|
re = regexp.MustCompile(`\|+`)
|
||||||
|
result = re.ReplaceAllString(result, "|")
|
||||||
|
|
||||||
|
// 移除字符串开头和结尾可能出现的 "|"
|
||||||
|
result = strings.Trim(result, "|")
|
||||||
|
|
||||||
|
return result
|
||||||
|
}
|
||||||
@@ -35,10 +35,19 @@ type (
|
|||||||
LoginResponse {
|
LoginResponse {
|
||||||
AccessToken string `json:"access_token"`
|
AccessToken string `json:"access_token"`
|
||||||
UID string `json:"uid"`
|
UID string `json:"uid"`
|
||||||
Username string `json:"username,optional"`
|
Username string `json:"username,omitempty"`
|
||||||
Nickname string `json:"nickname"`
|
Nickname string `json:"nickname"`
|
||||||
Avatar string `json:"avatar"`
|
Avatar string `json:"avatar"`
|
||||||
Status int64 `json:"status"`
|
Status int8 `json:"status"`
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
// 统一响应参数
|
||||||
|
type (
|
||||||
|
Response {
|
||||||
|
Code int64 `json:"code"`
|
||||||
|
Message string `json:"message"`
|
||||||
|
Data interface{} `json:"data,optional"`
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -56,14 +65,30 @@ type (
|
|||||||
service core {
|
service core {
|
||||||
// 账户登录
|
// 账户登录
|
||||||
@handler accountLogin
|
@handler accountLogin
|
||||||
post /login (AccountLoginRequest) returns (LoginResponse)
|
post /login (AccountLoginRequest) returns (Response)
|
||||||
|
|
||||||
// 手机号登录
|
// 手机号登录
|
||||||
@handler phoneLogin
|
@handler phoneLogin
|
||||||
post /phone_login (PhoneLoginRequest) returns (LoginResponse)
|
post /phone_login (PhoneLoginRequest) returns (Response)
|
||||||
|
|
||||||
// 重置密码
|
// 重置密码
|
||||||
@handler resetPassword
|
@handler resetPassword
|
||||||
post /reset_password (ResetPasswordRequest) returns (string)
|
post /reset_password (ResetPasswordRequest) returns (Response)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 客户端服务
|
||||||
|
@server (
|
||||||
|
group: client // 微服务分组
|
||||||
|
prefix: /api/client // 微服务前缀
|
||||||
|
timeout: 10s // 超时时间
|
||||||
|
maxBytes: 1048576 // 最大请求大小
|
||||||
|
signature: false // 是否开启签名验证
|
||||||
|
middleware: SecurityHeadersMiddleware // 注册中间件
|
||||||
|
MaxConns: true // 是否开启最大连接数限制
|
||||||
|
Recover: true // 是否开启自动恢复
|
||||||
|
)
|
||||||
|
service core {
|
||||||
|
@handler generateClientId
|
||||||
|
get /generate_client_id returns (Response)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -4,10 +4,10 @@ import (
|
|||||||
"flag"
|
"flag"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
|
||||||
|
"schisandra-album-cloud-microservices/app/core/api/common/middleware"
|
||||||
"schisandra-album-cloud-microservices/app/core/api/internal/config"
|
"schisandra-album-cloud-microservices/app/core/api/internal/config"
|
||||||
"schisandra-album-cloud-microservices/app/core/api/internal/handler"
|
"schisandra-album-cloud-microservices/app/core/api/internal/handler"
|
||||||
"schisandra-album-cloud-microservices/app/core/api/internal/svc"
|
"schisandra-album-cloud-microservices/app/core/api/internal/svc"
|
||||||
"schisandra-album-cloud-microservices/common/middleware"
|
|
||||||
|
|
||||||
"github.com/zeromicro/go-zero/core/conf"
|
"github.com/zeromicro/go-zero/core/conf"
|
||||||
"github.com/zeromicro/go-zero/rest"
|
"github.com/zeromicro/go-zero/rest"
|
||||||
@@ -21,7 +21,7 @@ func main() {
|
|||||||
var c config.Config
|
var c config.Config
|
||||||
conf.MustLoad(*configFile, &c)
|
conf.MustLoad(*configFile, &c)
|
||||||
|
|
||||||
server := rest.MustNewServer(c.RestConf, rest.WithCustomCors(middleware.CORSMiddleware(), nil, "*"))
|
server := rest.MustNewServer(c.RestConf, rest.WithCors())
|
||||||
defer server.Stop()
|
defer server.Stop()
|
||||||
// i18n middleware
|
// i18n middleware
|
||||||
server.Use(middleware.I18nMiddleware)
|
server.Use(middleware.I18nMiddleware)
|
||||||
|
|||||||
@@ -1,6 +1,10 @@
|
|||||||
Name: main
|
Name: main
|
||||||
Host: 0.0.0.0
|
Host: 0.0.0.0
|
||||||
Port: 8888
|
Port: 80
|
||||||
|
Web:
|
||||||
|
Addr: localhost:8080
|
||||||
|
Middlewares:
|
||||||
|
Log: true
|
||||||
Mysql:
|
Mysql:
|
||||||
DataSource: root:1611@tcp(localhost:3306)/schisandra-cloud-album?charset=utf8mb4&parseTime=True&loc=Local
|
DataSource: root:1611@tcp(localhost:3306)/schisandra-cloud-album?charset=utf8mb4&parseTime=True&loc=Local
|
||||||
Auth:
|
Auth:
|
||||||
@@ -8,9 +12,8 @@ Auth:
|
|||||||
AccessExpire: 86400
|
AccessExpire: 86400
|
||||||
Redis:
|
Redis:
|
||||||
Host: 1.95.0.111:6379
|
Host: 1.95.0.111:6379
|
||||||
Type: node
|
|
||||||
Pass: LDQ20020618xxx
|
Pass: LDQ20020618xxx
|
||||||
Tls: false
|
DB: 0
|
||||||
Mongo:
|
Mongo:
|
||||||
Uri: mongodb://1.95.0.111:27017
|
Uri: mongodb://1.95.0.111:27017
|
||||||
Username: landaiqing
|
Username: landaiqing
|
||||||
|
|||||||
@@ -13,9 +13,8 @@ type Config struct {
|
|||||||
}
|
}
|
||||||
Redis struct {
|
Redis struct {
|
||||||
Host string
|
Host string
|
||||||
Type string
|
|
||||||
Pass string
|
Pass string
|
||||||
Tls bool
|
DB int
|
||||||
}
|
}
|
||||||
Mongo struct {
|
Mongo struct {
|
||||||
Uri string
|
Uri string
|
||||||
|
|||||||
@@ -0,0 +1,24 @@
|
|||||||
|
package client
|
||||||
|
|
||||||
|
import (
|
||||||
|
"net/http"
|
||||||
|
|
||||||
|
"github.com/zeromicro/go-zero/rest/httpx"
|
||||||
|
|
||||||
|
"schisandra-album-cloud-microservices/app/core/api/common/utils"
|
||||||
|
"schisandra-album-cloud-microservices/app/core/api/internal/logic/client"
|
||||||
|
"schisandra-album-cloud-microservices/app/core/api/internal/svc"
|
||||||
|
)
|
||||||
|
|
||||||
|
func GenerateClientIdHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
|
||||||
|
return func(w http.ResponseWriter, r *http.Request) {
|
||||||
|
clientIP := utils.GetClientIP(r)
|
||||||
|
l := client.NewGenerateClientIdLogic(r.Context(), svcCtx)
|
||||||
|
resp, err := l.GenerateClientId(clientIP)
|
||||||
|
if err != nil || resp.Code == 500 {
|
||||||
|
httpx.ErrorCtx(r.Context(), w, err)
|
||||||
|
} else {
|
||||||
|
httpx.OkJsonCtx(r.Context(), w, resp)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -7,6 +7,7 @@ import (
|
|||||||
"net/http"
|
"net/http"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
client "schisandra-album-cloud-microservices/app/core/api/internal/handler/client"
|
||||||
user "schisandra-album-cloud-microservices/app/core/api/internal/handler/user"
|
user "schisandra-album-cloud-microservices/app/core/api/internal/handler/user"
|
||||||
"schisandra-album-cloud-microservices/app/core/api/internal/svc"
|
"schisandra-album-cloud-microservices/app/core/api/internal/svc"
|
||||||
|
|
||||||
@@ -14,6 +15,22 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func RegisterHandlers(server *rest.Server, serverCtx *svc.ServiceContext) {
|
func RegisterHandlers(server *rest.Server, serverCtx *svc.ServiceContext) {
|
||||||
|
server.AddRoutes(
|
||||||
|
rest.WithMiddlewares(
|
||||||
|
[]rest.Middleware{serverCtx.SecurityHeadersMiddleware},
|
||||||
|
[]rest.Route{
|
||||||
|
{
|
||||||
|
Method: http.MethodGet,
|
||||||
|
Path: "/generate_client_id",
|
||||||
|
Handler: client.GenerateClientIdHandler(serverCtx),
|
||||||
|
},
|
||||||
|
}...,
|
||||||
|
),
|
||||||
|
rest.WithPrefix("/api/client"),
|
||||||
|
rest.WithTimeout(10000*time.Millisecond),
|
||||||
|
rest.WithMaxBytes(1048576),
|
||||||
|
)
|
||||||
|
|
||||||
server.AddRoutes(
|
server.AddRoutes(
|
||||||
rest.WithMiddlewares(
|
rest.WithMiddlewares(
|
||||||
[]rest.Middleware{serverCtx.SecurityHeadersMiddleware},
|
[]rest.Middleware{serverCtx.SecurityHeadersMiddleware},
|
||||||
|
|||||||
@@ -19,8 +19,8 @@ func AccountLoginHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
|
|||||||
}
|
}
|
||||||
|
|
||||||
l := user.NewAccountLoginLogic(r.Context(), svcCtx)
|
l := user.NewAccountLoginLogic(r.Context(), svcCtx)
|
||||||
resp, err := l.AccountLogin(&req)
|
resp, err := l.AccountLogin(w, r, &req)
|
||||||
if err != nil {
|
if err != nil || resp.Code == 500 {
|
||||||
httpx.ErrorCtx(r.Context(), w, err)
|
httpx.ErrorCtx(r.Context(), w, err)
|
||||||
} else {
|
} else {
|
||||||
httpx.OkJsonCtx(r.Context(), w, resp)
|
httpx.OkJsonCtx(r.Context(), w, resp)
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ func PhoneLoginHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
|
|||||||
|
|
||||||
l := user.NewPhoneLoginLogic(r.Context(), svcCtx)
|
l := user.NewPhoneLoginLogic(r.Context(), svcCtx)
|
||||||
resp, err := l.PhoneLogin(&req)
|
resp, err := l.PhoneLogin(&req)
|
||||||
if err != nil {
|
if err != nil || resp.Code == 500 {
|
||||||
httpx.ErrorCtx(r.Context(), w, err)
|
httpx.ErrorCtx(r.Context(), w, err)
|
||||||
} else {
|
} else {
|
||||||
httpx.OkJsonCtx(r.Context(), w, resp)
|
httpx.OkJsonCtx(r.Context(), w, resp)
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ func ResetPasswordHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
|
|||||||
|
|
||||||
l := user.NewResetPasswordLogic(r.Context(), svcCtx)
|
l := user.NewResetPasswordLogic(r.Context(), svcCtx)
|
||||||
resp, err := l.ResetPassword(&req)
|
resp, err := l.ResetPassword(&req)
|
||||||
if err != nil {
|
if err != nil || resp.Code == 500 {
|
||||||
httpx.ErrorCtx(r.Context(), w, err)
|
httpx.ErrorCtx(r.Context(), w, err)
|
||||||
} else {
|
} else {
|
||||||
httpx.OkJsonCtx(r.Context(), w, resp)
|
httpx.OkJsonCtx(r.Context(), w, resp)
|
||||||
|
|||||||
@@ -0,0 +1,43 @@
|
|||||||
|
package client
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
"time"
|
||||||
|
|
||||||
|
"github.com/ccpwcn/kgo"
|
||||||
|
|
||||||
|
"schisandra-album-cloud-microservices/app/core/api/common/constant"
|
||||||
|
"schisandra-album-cloud-microservices/app/core/api/common/response"
|
||||||
|
"schisandra-album-cloud-microservices/app/core/api/internal/svc"
|
||||||
|
"schisandra-album-cloud-microservices/app/core/api/internal/types"
|
||||||
|
|
||||||
|
"github.com/zeromicro/go-zero/core/logx"
|
||||||
|
)
|
||||||
|
|
||||||
|
type GenerateClientIdLogic struct {
|
||||||
|
logx.Logger
|
||||||
|
ctx context.Context
|
||||||
|
svcCtx *svc.ServiceContext
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewGenerateClientIdLogic(ctx context.Context, svcCtx *svc.ServiceContext) *GenerateClientIdLogic {
|
||||||
|
return &GenerateClientIdLogic{
|
||||||
|
Logger: logx.WithContext(ctx),
|
||||||
|
ctx: ctx,
|
||||||
|
svcCtx: svcCtx,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (l *GenerateClientIdLogic) GenerateClientId(clientIP string) (resp *types.Response, err error) {
|
||||||
|
clientId := l.svcCtx.RedisClient.Get(l.ctx, constant.UserClientPrefix+clientIP).Val()
|
||||||
|
|
||||||
|
if clientId != "" {
|
||||||
|
return response.Success(clientId), nil
|
||||||
|
}
|
||||||
|
simpleUuid := kgo.SimpleUuid()
|
||||||
|
if err = l.svcCtx.RedisClient.SetEx(l.ctx, constant.UserClientPrefix+clientIP, simpleUuid, time.Hour*24*7).Err(); err != nil {
|
||||||
|
l.Error(err)
|
||||||
|
return response.Error(), err
|
||||||
|
}
|
||||||
|
return response.Success(simpleUuid), nil
|
||||||
|
}
|
||||||
@@ -2,14 +2,27 @@ package user
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
|
"net/http"
|
||||||
|
"time"
|
||||||
|
|
||||||
|
"github.com/lionsoul2014/ip2region/binding/golang/xdb"
|
||||||
|
"github.com/mssola/useragent"
|
||||||
|
"github.com/zeromicro/go-zero/core/logc"
|
||||||
|
"github.com/zeromicro/go-zero/core/logx"
|
||||||
|
|
||||||
|
"schisandra-album-cloud-microservices/app/core/api/common/captcha/verify"
|
||||||
|
"schisandra-album-cloud-microservices/app/core/api/common/constant"
|
||||||
|
"schisandra-album-cloud-microservices/app/core/api/common/i18n"
|
||||||
|
"schisandra-album-cloud-microservices/app/core/api/common/jwt"
|
||||||
|
"schisandra-album-cloud-microservices/app/core/api/common/response"
|
||||||
|
"schisandra-album-cloud-microservices/app/core/api/common/utils"
|
||||||
"schisandra-album-cloud-microservices/app/core/api/internal/svc"
|
"schisandra-album-cloud-microservices/app/core/api/internal/svc"
|
||||||
"schisandra-album-cloud-microservices/app/core/api/internal/types"
|
"schisandra-album-cloud-microservices/app/core/api/internal/types"
|
||||||
"schisandra-album-cloud-microservices/app/core/api/repository/mongodb/collection"
|
"schisandra-album-cloud-microservices/app/core/api/repository/mysql/ent"
|
||||||
"schisandra-album-cloud-microservices/app/core/api/repository/mongodb/model"
|
"schisandra-album-cloud-microservices/app/core/api/repository/mysql/ent/scaauthuser"
|
||||||
"schisandra-album-cloud-microservices/common/i18n"
|
"schisandra-album-cloud-microservices/app/core/api/repository/mysql/ent/scaauthuserdevice"
|
||||||
|
types3 "schisandra-album-cloud-microservices/app/core/api/repository/redis_session/types"
|
||||||
"github.com/zeromicro/go-zero/core/logx"
|
types2 "schisandra-album-cloud-microservices/app/core/api/repository/redisx/types"
|
||||||
)
|
)
|
||||||
|
|
||||||
type AccountLoginLogic struct {
|
type AccountLoginLogic struct {
|
||||||
@@ -26,13 +39,160 @@ func NewAccountLoginLogic(ctx context.Context, svcCtx *svc.ServiceContext) *Acco
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (l *AccountLoginLogic) AccountLogin(req *types.AccountLoginRequest) (resp *types.LoginResponse, err error) {
|
func (l *AccountLoginLogic) AccountLogin(w http.ResponseWriter, r *http.Request, req *types.AccountLoginRequest) (resp *types.Response, err error) {
|
||||||
// todo: add your logic here and delete this line
|
verifyResult := verify.VerifyRotateCaptcha(l.ctx, l.svcCtx.RedisClient, req.Angle, req.Key)
|
||||||
i18n.IsHasI18n(l.ctx)
|
if !verifyResult {
|
||||||
text := i18n.FormatText(l.ctx, "user.name", "landaiqing")
|
return response.ErrorWithMessage(i18n.FormatText(l.ctx, "captcha.verificationFailure", "验证失败!")), nil
|
||||||
collection.MustNewCollection[model.CommentImage](l.svcCtx, "comment_image")
|
}
|
||||||
|
var user *ent.ScaAuthUser
|
||||||
|
var query *ent.ScaAuthUserQuery
|
||||||
|
|
||||||
return &types.LoginResponse{
|
switch {
|
||||||
AccessToken: text,
|
case utils.IsPhone(req.Account):
|
||||||
}, nil
|
query = l.svcCtx.MySQLClient.ScaAuthUser.Query().Where(scaauthuser.PhoneEQ(req.Account), scaauthuser.DeletedEQ(0))
|
||||||
|
case utils.IsEmail(req.Account):
|
||||||
|
query = l.svcCtx.MySQLClient.ScaAuthUser.Query().Where(scaauthuser.EmailEQ(req.Account), scaauthuser.DeletedEQ(0))
|
||||||
|
case utils.IsUsername(req.Account):
|
||||||
|
query = l.svcCtx.MySQLClient.ScaAuthUser.Query().Where(scaauthuser.UsernameEQ(req.Account), scaauthuser.DeletedEQ(0))
|
||||||
|
default:
|
||||||
|
return response.ErrorWithMessage(i18n.FormatText(l.ctx, "login.invalidAccount", "无效账号!")), nil
|
||||||
|
}
|
||||||
|
|
||||||
|
user, err = query.First(l.ctx)
|
||||||
|
if err != nil {
|
||||||
|
if ent.IsNotFound(err) {
|
||||||
|
return response.ErrorWithMessage(i18n.FormatText(l.ctx, "login.notFoundAccount", "无效账号!")), nil
|
||||||
|
}
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
if !utils.Verify(user.Password, req.Password) {
|
||||||
|
return response.ErrorWithMessage(i18n.FormatText(l.ctx, "login.invalidPassword", "密码错误!")), nil
|
||||||
|
}
|
||||||
|
data, result := HandleUserLogin(user, l, req.AutoLogin, r, w, l.svcCtx.Ip2Region, l.svcCtx.MySQLClient)
|
||||||
|
if !result {
|
||||||
|
return response.ErrorWithMessage(i18n.FormatText(l.ctx, "login.loginFailed", "登录失败!")), nil
|
||||||
|
}
|
||||||
|
return response.Success(data), nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// HandleUserLogin 处理用户登录
|
||||||
|
func HandleUserLogin(user *ent.ScaAuthUser, l *AccountLoginLogic, autoLogin bool, r *http.Request, w http.ResponseWriter, ip2location *xdb.Searcher, entClient *ent.Client) (*types.LoginResponse, bool) {
|
||||||
|
// 生成jwt token
|
||||||
|
accessToken := jwt.GenerateAccessToken(l.svcCtx.Config.Auth.AccessSecret, jwt.AccessJWTPayload{
|
||||||
|
UserID: user.UID,
|
||||||
|
})
|
||||||
|
var days time.Duration
|
||||||
|
if autoLogin {
|
||||||
|
days = 7 * 24 * time.Hour
|
||||||
|
} else {
|
||||||
|
days = time.Hour * 24
|
||||||
|
}
|
||||||
|
refreshToken := jwt.GenerateRefreshToken(l.svcCtx.Config.Auth.AccessSecret, jwt.RefreshJWTPayload{
|
||||||
|
UserID: user.UID,
|
||||||
|
}, days)
|
||||||
|
data := types.LoginResponse{
|
||||||
|
AccessToken: accessToken,
|
||||||
|
UID: user.UID,
|
||||||
|
Username: user.Username,
|
||||||
|
Nickname: user.Nickname,
|
||||||
|
Avatar: user.Avatar,
|
||||||
|
Status: user.Status,
|
||||||
|
}
|
||||||
|
|
||||||
|
redisToken := types2.RedisToken{
|
||||||
|
AccessToken: accessToken,
|
||||||
|
UID: user.UID,
|
||||||
|
}
|
||||||
|
err := l.svcCtx.RedisClient.SetEx(l.ctx, constant.UserTokenPrefix+user.UID, redisToken, days).Err()
|
||||||
|
if err != nil {
|
||||||
|
logc.Error(l.ctx, err)
|
||||||
|
return nil, false
|
||||||
|
}
|
||||||
|
sessionData := types3.SessionData{
|
||||||
|
RefreshToken: refreshToken,
|
||||||
|
UID: user.UID,
|
||||||
|
}
|
||||||
|
session, err := l.svcCtx.Session.Get(r, constant.SESSION_KEY)
|
||||||
|
if err != nil {
|
||||||
|
logc.Error(l.ctx, err)
|
||||||
|
return nil, false
|
||||||
|
}
|
||||||
|
session.Values[constant.SESSION_KEY] = sessionData
|
||||||
|
if err = session.Save(r, w); err != nil {
|
||||||
|
logc.Error(l.ctx, err)
|
||||||
|
return nil, false
|
||||||
|
}
|
||||||
|
// 记录用户登录设备
|
||||||
|
if !getUserLoginDevice(user.UID, r, ip2location, entClient, l.ctx) {
|
||||||
|
return nil, false
|
||||||
|
}
|
||||||
|
return &data, true
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// getUserLoginDevice 获取用户登录设备
|
||||||
|
func getUserLoginDevice(userId string, r *http.Request, ip2location *xdb.Searcher, entClient *ent.Client, ctx context.Context) bool {
|
||||||
|
userAgent := r.Header.Get("User-Agent")
|
||||||
|
if userAgent == "" {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
ip := utils.GetClientIP(r)
|
||||||
|
location, err := ip2location.SearchByStr(ip)
|
||||||
|
if err != nil {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
location = utils.RemoveZeroAndAdjust(location)
|
||||||
|
|
||||||
|
ua := useragent.New(userAgent)
|
||||||
|
isBot := ua.Bot()
|
||||||
|
browser, browserVersion := ua.Browser()
|
||||||
|
os := ua.OS()
|
||||||
|
mobile := ua.Mobile()
|
||||||
|
mozilla := ua.Mozilla()
|
||||||
|
platform := ua.Platform()
|
||||||
|
engine, engineVersion := ua.Engine()
|
||||||
|
|
||||||
|
device, err := entClient.ScaAuthUserDevice.Query().
|
||||||
|
Where(scaauthuserdevice.UserID(userId), scaauthuserdevice.IP(ip), scaauthuserdevice.Agent(userAgent)).
|
||||||
|
Only(ctx)
|
||||||
|
|
||||||
|
// 如果有错误,表示设备不存在,执行插入
|
||||||
|
if ent.IsNotFound(err) {
|
||||||
|
// 创建新的设备记录
|
||||||
|
entClient.ScaAuthUserDevice.Create().
|
||||||
|
SetBot(isBot).
|
||||||
|
SetAgent(userAgent).
|
||||||
|
SetBrowser(browser).
|
||||||
|
SetBrowserVersion(browserVersion).
|
||||||
|
SetEngineName(engine).
|
||||||
|
SetEngineVersion(engineVersion).
|
||||||
|
SetIP(ip).
|
||||||
|
SetLocation(location).
|
||||||
|
SetOperatingSystem(os).
|
||||||
|
SetMobile(mobile).
|
||||||
|
SetMozilla(mozilla).
|
||||||
|
SetPlatform(platform).
|
||||||
|
SaveX(ctx)
|
||||||
|
} else if err == nil {
|
||||||
|
// 如果设备存在,执行更新
|
||||||
|
device.Update().
|
||||||
|
SetBot(isBot).
|
||||||
|
SetAgent(userAgent).
|
||||||
|
SetBrowser(browser).
|
||||||
|
SetBrowserVersion(browserVersion).
|
||||||
|
SetEngineName(engine).
|
||||||
|
SetEngineVersion(engineVersion).
|
||||||
|
SetIP(ip).
|
||||||
|
SetLocation(location).
|
||||||
|
SetOperatingSystem(os).
|
||||||
|
SetMobile(mobile).
|
||||||
|
SetMozilla(mozilla).
|
||||||
|
SetPlatform(platform).
|
||||||
|
SaveX(ctx)
|
||||||
|
} else {
|
||||||
|
logc.Error(ctx, err)
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
return true
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,10 +3,10 @@ package user
|
|||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
|
|
||||||
"github.com/zeromicro/go-zero/core/logx"
|
|
||||||
|
|
||||||
"schisandra-album-cloud-microservices/app/core/api/internal/svc"
|
"schisandra-album-cloud-microservices/app/core/api/internal/svc"
|
||||||
"schisandra-album-cloud-microservices/app/core/api/internal/types"
|
"schisandra-album-cloud-microservices/app/core/api/internal/types"
|
||||||
|
|
||||||
|
"github.com/zeromicro/go-zero/core/logx"
|
||||||
)
|
)
|
||||||
|
|
||||||
type PhoneLoginLogic struct {
|
type PhoneLoginLogic struct {
|
||||||
@@ -23,7 +23,7 @@ func NewPhoneLoginLogic(ctx context.Context, svcCtx *svc.ServiceContext) *PhoneL
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (l *PhoneLoginLogic) PhoneLogin(req *types.PhoneLoginRequest) (resp *types.LoginResponse, err error) {
|
func (l *PhoneLoginLogic) PhoneLogin(req *types.PhoneLoginRequest) (resp *types.Response, err error) {
|
||||||
// todo: add your logic here and delete this line
|
// todo: add your logic here and delete this line
|
||||||
|
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -3,10 +3,10 @@ package user
|
|||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
|
|
||||||
"github.com/zeromicro/go-zero/core/logx"
|
|
||||||
|
|
||||||
"schisandra-album-cloud-microservices/app/core/api/internal/svc"
|
"schisandra-album-cloud-microservices/app/core/api/internal/svc"
|
||||||
"schisandra-album-cloud-microservices/app/core/api/internal/types"
|
"schisandra-album-cloud-microservices/app/core/api/internal/types"
|
||||||
|
|
||||||
|
"github.com/zeromicro/go-zero/core/logx"
|
||||||
)
|
)
|
||||||
|
|
||||||
type ResetPasswordLogic struct {
|
type ResetPasswordLogic struct {
|
||||||
@@ -23,7 +23,7 @@ func NewResetPasswordLogic(ctx context.Context, svcCtx *svc.ServiceContext) *Res
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (l *ResetPasswordLogic) ResetPassword(req *types.ResetPasswordRequest) (resp string, err error) {
|
func (l *ResetPasswordLogic) ResetPassword(req *types.ResetPasswordRequest) (resp *types.Response, err error) {
|
||||||
// todo: add your logic here and delete this line
|
// todo: add your logic here and delete this line
|
||||||
|
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ package middleware
|
|||||||
import (
|
import (
|
||||||
"net/http"
|
"net/http"
|
||||||
|
|
||||||
"schisandra-album-cloud-microservices/common/middleware"
|
"schisandra-album-cloud-microservices/app/core/api/common/middleware"
|
||||||
)
|
)
|
||||||
|
|
||||||
type SecurityHeadersMiddleware struct {
|
type SecurityHeadersMiddleware struct {
|
||||||
|
|||||||
@@ -1,24 +1,31 @@
|
|||||||
package svc
|
package svc
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"github.com/zeromicro/go-zero/core/stores/redis"
|
"github.com/lionsoul2014/ip2region/binding/golang/xdb"
|
||||||
|
"github.com/rbcervilla/redisstore/v9"
|
||||||
|
"github.com/redis/go-redis/v9"
|
||||||
|
|
||||||
"github.com/zeromicro/go-zero/rest"
|
"github.com/zeromicro/go-zero/rest"
|
||||||
"go.mongodb.org/mongo-driver/v2/mongo"
|
"go.mongodb.org/mongo-driver/v2/mongo"
|
||||||
|
|
||||||
"schisandra-album-cloud-microservices/app/core/api/repository/mysql/ent"
|
|
||||||
|
|
||||||
"schisandra-album-cloud-microservices/app/core/api/internal/config"
|
"schisandra-album-cloud-microservices/app/core/api/internal/config"
|
||||||
"schisandra-album-cloud-microservices/app/core/api/internal/middleware"
|
"schisandra-album-cloud-microservices/app/core/api/internal/middleware"
|
||||||
|
"schisandra-album-cloud-microservices/app/core/api/repository/ip2region"
|
||||||
"schisandra-album-cloud-microservices/app/core/api/repository/mongodb"
|
"schisandra-album-cloud-microservices/app/core/api/repository/mongodb"
|
||||||
"schisandra-album-cloud-microservices/app/core/api/repository/mysql"
|
"schisandra-album-cloud-microservices/app/core/api/repository/mysql"
|
||||||
|
"schisandra-album-cloud-microservices/app/core/api/repository/mysql/ent"
|
||||||
|
"schisandra-album-cloud-microservices/app/core/api/repository/redis_session"
|
||||||
|
"schisandra-album-cloud-microservices/app/core/api/repository/redisx"
|
||||||
)
|
)
|
||||||
|
|
||||||
type ServiceContext struct {
|
type ServiceContext struct {
|
||||||
Config config.Config
|
Config config.Config
|
||||||
SecurityHeadersMiddleware rest.Middleware
|
SecurityHeadersMiddleware rest.Middleware
|
||||||
MySQLClient *ent.Client
|
MySQLClient *ent.Client
|
||||||
RedisClient *redis.Redis
|
RedisClient *redis.Client
|
||||||
MongoClient *mongo.Database
|
MongoClient *mongo.Database
|
||||||
|
Session *redisstore.RedisStore
|
||||||
|
Ip2Region *xdb.Searcher
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewServiceContext(c config.Config) *ServiceContext {
|
func NewServiceContext(c config.Config) *ServiceContext {
|
||||||
@@ -26,12 +33,9 @@ func NewServiceContext(c config.Config) *ServiceContext {
|
|||||||
Config: c,
|
Config: c,
|
||||||
SecurityHeadersMiddleware: middleware.NewSecurityHeadersMiddleware().Handle,
|
SecurityHeadersMiddleware: middleware.NewSecurityHeadersMiddleware().Handle,
|
||||||
MySQLClient: mysql.NewMySQL(c.Mysql.DataSource),
|
MySQLClient: mysql.NewMySQL(c.Mysql.DataSource),
|
||||||
RedisClient: redis.MustNewRedis(redis.RedisConf{
|
RedisClient: redisx.NewRedis(c.Redis.Host, c.Redis.Pass, c.Redis.DB),
|
||||||
Host: c.Redis.Host,
|
MongoClient: mongodb.NewMongoDB(c.Mongo.Uri, c.Mongo.Username, c.Mongo.Password, c.Mongo.AuthSource, c.Mongo.Database),
|
||||||
Pass: c.Redis.Pass,
|
Session: redis_session.NewRedisSession(c.Redis.Host, c.Redis.Pass),
|
||||||
Type: c.Redis.Type,
|
Ip2Region: ip2region.NewIP2Region(),
|
||||||
Tls: c.Redis.Tls,
|
|
||||||
}),
|
|
||||||
MongoClient: mongodb.NewMongoDB(c.Mongo.Uri, c.Mongo.Username, c.Mongo.Password, c.Mongo.AuthSource, c.Mongo.Database),
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,10 +14,10 @@ type AccountLoginRequest struct {
|
|||||||
type LoginResponse struct {
|
type LoginResponse struct {
|
||||||
AccessToken string `json:"access_token"`
|
AccessToken string `json:"access_token"`
|
||||||
UID string `json:"uid"`
|
UID string `json:"uid"`
|
||||||
Username string `json:"username,optional"`
|
Username string `json:"username,omitempty"`
|
||||||
Nickname string `json:"nickname"`
|
Nickname string `json:"nickname"`
|
||||||
Avatar string `json:"avatar"`
|
Avatar string `json:"avatar"`
|
||||||
Status int64 `json:"status"`
|
Status int8 `json:"status"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type PhoneLoginRequest struct {
|
type PhoneLoginRequest struct {
|
||||||
@@ -32,3 +32,9 @@ type ResetPasswordRequest struct {
|
|||||||
Password string `json:"password"`
|
Password string `json:"password"`
|
||||||
Repassword string `json:"repassword"`
|
Repassword string `json:"repassword"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type Response struct {
|
||||||
|
Code int64 `json:"code"`
|
||||||
|
Message string `json:"message"`
|
||||||
|
Data interface{} `json:"data,optional"`
|
||||||
|
}
|
||||||
|
|||||||
27
app/core/api/repository/ip2region/init.go
Normal file
27
app/core/api/repository/ip2region/init.go
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
package ip2region
|
||||||
|
|
||||||
|
import (
|
||||||
|
"os"
|
||||||
|
"path/filepath"
|
||||||
|
|
||||||
|
"github.com/lionsoul2014/ip2region/binding/golang/xdb"
|
||||||
|
)
|
||||||
|
|
||||||
|
// NewIP2Region creates a new IP2Region searcher instance.
|
||||||
|
func NewIP2Region() *xdb.Searcher {
|
||||||
|
cwd, err := os.Getwd()
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
dbPath := filepath.Join(cwd, "resources/ip2region", "ip2region.xdb")
|
||||||
|
cBuff, err := xdb.LoadContentFromFile(dbPath)
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
searcher, err := xdb.NewWithBuffer(cBuff)
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return searcher
|
||||||
|
}
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package model
|
package types
|
||||||
|
|
||||||
import "github.com/chenmingyong0423/go-mongox/v2"
|
import "github.com/chenmingyong0423/go-mongox/v2"
|
||||||
|
|
||||||
@@ -107,8 +107,8 @@ var schemaGraph = func() *sqlgraph.Schema {
|
|||||||
scaauthuserdevice.FieldBrowser: {Type: field.TypeString, Column: scaauthuserdevice.FieldBrowser},
|
scaauthuserdevice.FieldBrowser: {Type: field.TypeString, Column: scaauthuserdevice.FieldBrowser},
|
||||||
scaauthuserdevice.FieldOperatingSystem: {Type: field.TypeString, Column: scaauthuserdevice.FieldOperatingSystem},
|
scaauthuserdevice.FieldOperatingSystem: {Type: field.TypeString, Column: scaauthuserdevice.FieldOperatingSystem},
|
||||||
scaauthuserdevice.FieldBrowserVersion: {Type: field.TypeString, Column: scaauthuserdevice.FieldBrowserVersion},
|
scaauthuserdevice.FieldBrowserVersion: {Type: field.TypeString, Column: scaauthuserdevice.FieldBrowserVersion},
|
||||||
scaauthuserdevice.FieldMobile: {Type: field.TypeInt, Column: scaauthuserdevice.FieldMobile},
|
scaauthuserdevice.FieldMobile: {Type: field.TypeBool, Column: scaauthuserdevice.FieldMobile},
|
||||||
scaauthuserdevice.FieldBot: {Type: field.TypeInt, Column: scaauthuserdevice.FieldBot},
|
scaauthuserdevice.FieldBot: {Type: field.TypeBool, Column: scaauthuserdevice.FieldBot},
|
||||||
scaauthuserdevice.FieldMozilla: {Type: field.TypeString, Column: scaauthuserdevice.FieldMozilla},
|
scaauthuserdevice.FieldMozilla: {Type: field.TypeString, Column: scaauthuserdevice.FieldMozilla},
|
||||||
scaauthuserdevice.FieldPlatform: {Type: field.TypeString, Column: scaauthuserdevice.FieldPlatform},
|
scaauthuserdevice.FieldPlatform: {Type: field.TypeString, Column: scaauthuserdevice.FieldPlatform},
|
||||||
scaauthuserdevice.FieldEngineName: {Type: field.TypeString, Column: scaauthuserdevice.FieldEngineName},
|
scaauthuserdevice.FieldEngineName: {Type: field.TypeString, Column: scaauthuserdevice.FieldEngineName},
|
||||||
@@ -622,13 +622,13 @@ func (f *ScaAuthUserDeviceFilter) WhereBrowserVersion(p entql.StringP) {
|
|||||||
f.Where(p.Field(scaauthuserdevice.FieldBrowserVersion))
|
f.Where(p.Field(scaauthuserdevice.FieldBrowserVersion))
|
||||||
}
|
}
|
||||||
|
|
||||||
// WhereMobile applies the entql int predicate on the mobile field.
|
// WhereMobile applies the entql bool predicate on the mobile field.
|
||||||
func (f *ScaAuthUserDeviceFilter) WhereMobile(p entql.IntP) {
|
func (f *ScaAuthUserDeviceFilter) WhereMobile(p entql.BoolP) {
|
||||||
f.Where(p.Field(scaauthuserdevice.FieldMobile))
|
f.Where(p.Field(scaauthuserdevice.FieldMobile))
|
||||||
}
|
}
|
||||||
|
|
||||||
// WhereBot applies the entql int predicate on the bot field.
|
// WhereBot applies the entql bool predicate on the bot field.
|
||||||
func (f *ScaAuthUserDeviceFilter) WhereBot(p entql.IntP) {
|
func (f *ScaAuthUserDeviceFilter) WhereBot(p entql.BoolP) {
|
||||||
f.Where(p.Field(scaauthuserdevice.FieldBot))
|
f.Where(p.Field(scaauthuserdevice.FieldBot))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -109,8 +109,8 @@ var (
|
|||||||
{Name: "browser", Type: field.TypeString, Size: 20, Comment: "浏览器"},
|
{Name: "browser", Type: field.TypeString, Size: 20, Comment: "浏览器"},
|
||||||
{Name: "operating_system", Type: field.TypeString, Size: 20, Comment: "操作系统"},
|
{Name: "operating_system", Type: field.TypeString, Size: 20, Comment: "操作系统"},
|
||||||
{Name: "browser_version", Type: field.TypeString, Size: 20, Comment: "浏览器版本"},
|
{Name: "browser_version", Type: field.TypeString, Size: 20, Comment: "浏览器版本"},
|
||||||
{Name: "mobile", Type: field.TypeInt, Comment: "是否为手机 0否1是"},
|
{Name: "mobile", Type: field.TypeBool, Comment: "是否为手机 0否1是"},
|
||||||
{Name: "bot", Type: field.TypeInt, Comment: "是否为bot 0否1是"},
|
{Name: "bot", Type: field.TypeBool, Comment: "是否为bot 0否1是"},
|
||||||
{Name: "mozilla", Type: field.TypeString, Size: 10, Comment: "火狐版本"},
|
{Name: "mozilla", Type: field.TypeString, Size: 10, Comment: "火狐版本"},
|
||||||
{Name: "platform", Type: field.TypeString, Size: 20, Comment: "平台"},
|
{Name: "platform", Type: field.TypeString, Size: 20, Comment: "平台"},
|
||||||
{Name: "engine_name", Type: field.TypeString, Size: 20, Comment: "引擎名称"},
|
{Name: "engine_name", Type: field.TypeString, Size: 20, Comment: "引擎名称"},
|
||||||
|
|||||||
@@ -3193,10 +3193,8 @@ type ScaAuthUserDeviceMutation struct {
|
|||||||
browser *string
|
browser *string
|
||||||
operating_system *string
|
operating_system *string
|
||||||
browser_version *string
|
browser_version *string
|
||||||
mobile *int
|
mobile *bool
|
||||||
addmobile *int
|
bot *bool
|
||||||
bot *int
|
|
||||||
addbot *int
|
|
||||||
mozilla *string
|
mozilla *string
|
||||||
platform *string
|
platform *string
|
||||||
engine_name *string
|
engine_name *string
|
||||||
@@ -3708,13 +3706,12 @@ func (m *ScaAuthUserDeviceMutation) ResetBrowserVersion() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// SetMobile sets the "mobile" field.
|
// SetMobile sets the "mobile" field.
|
||||||
func (m *ScaAuthUserDeviceMutation) SetMobile(i int) {
|
func (m *ScaAuthUserDeviceMutation) SetMobile(b bool) {
|
||||||
m.mobile = &i
|
m.mobile = &b
|
||||||
m.addmobile = nil
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Mobile returns the value of the "mobile" field in the mutation.
|
// Mobile returns the value of the "mobile" field in the mutation.
|
||||||
func (m *ScaAuthUserDeviceMutation) Mobile() (r int, exists bool) {
|
func (m *ScaAuthUserDeviceMutation) Mobile() (r bool, exists bool) {
|
||||||
v := m.mobile
|
v := m.mobile
|
||||||
if v == nil {
|
if v == nil {
|
||||||
return
|
return
|
||||||
@@ -3725,7 +3722,7 @@ func (m *ScaAuthUserDeviceMutation) Mobile() (r int, exists bool) {
|
|||||||
// OldMobile returns the old "mobile" field's value of the ScaAuthUserDevice entity.
|
// OldMobile returns the old "mobile" field's value of the ScaAuthUserDevice entity.
|
||||||
// If the ScaAuthUserDevice object wasn't provided to the builder, the object is fetched from the database.
|
// If the ScaAuthUserDevice object wasn't provided to the builder, the object is fetched from the database.
|
||||||
// An error is returned if the mutation operation is not UpdateOne, or the database query fails.
|
// An error is returned if the mutation operation is not UpdateOne, or the database query fails.
|
||||||
func (m *ScaAuthUserDeviceMutation) OldMobile(ctx context.Context) (v int, err error) {
|
func (m *ScaAuthUserDeviceMutation) OldMobile(ctx context.Context) (v bool, err error) {
|
||||||
if !m.op.Is(OpUpdateOne) {
|
if !m.op.Is(OpUpdateOne) {
|
||||||
return v, errors.New("OldMobile is only allowed on UpdateOne operations")
|
return v, errors.New("OldMobile is only allowed on UpdateOne operations")
|
||||||
}
|
}
|
||||||
@@ -3739,38 +3736,18 @@ func (m *ScaAuthUserDeviceMutation) OldMobile(ctx context.Context) (v int, err e
|
|||||||
return oldValue.Mobile, nil
|
return oldValue.Mobile, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// AddMobile adds i to the "mobile" field.
|
|
||||||
func (m *ScaAuthUserDeviceMutation) AddMobile(i int) {
|
|
||||||
if m.addmobile != nil {
|
|
||||||
*m.addmobile += i
|
|
||||||
} else {
|
|
||||||
m.addmobile = &i
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// AddedMobile returns the value that was added to the "mobile" field in this mutation.
|
|
||||||
func (m *ScaAuthUserDeviceMutation) AddedMobile() (r int, exists bool) {
|
|
||||||
v := m.addmobile
|
|
||||||
if v == nil {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
return *v, true
|
|
||||||
}
|
|
||||||
|
|
||||||
// ResetMobile resets all changes to the "mobile" field.
|
// ResetMobile resets all changes to the "mobile" field.
|
||||||
func (m *ScaAuthUserDeviceMutation) ResetMobile() {
|
func (m *ScaAuthUserDeviceMutation) ResetMobile() {
|
||||||
m.mobile = nil
|
m.mobile = nil
|
||||||
m.addmobile = nil
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// SetBot sets the "bot" field.
|
// SetBot sets the "bot" field.
|
||||||
func (m *ScaAuthUserDeviceMutation) SetBot(i int) {
|
func (m *ScaAuthUserDeviceMutation) SetBot(b bool) {
|
||||||
m.bot = &i
|
m.bot = &b
|
||||||
m.addbot = nil
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Bot returns the value of the "bot" field in the mutation.
|
// Bot returns the value of the "bot" field in the mutation.
|
||||||
func (m *ScaAuthUserDeviceMutation) Bot() (r int, exists bool) {
|
func (m *ScaAuthUserDeviceMutation) Bot() (r bool, exists bool) {
|
||||||
v := m.bot
|
v := m.bot
|
||||||
if v == nil {
|
if v == nil {
|
||||||
return
|
return
|
||||||
@@ -3781,7 +3758,7 @@ func (m *ScaAuthUserDeviceMutation) Bot() (r int, exists bool) {
|
|||||||
// OldBot returns the old "bot" field's value of the ScaAuthUserDevice entity.
|
// OldBot returns the old "bot" field's value of the ScaAuthUserDevice entity.
|
||||||
// If the ScaAuthUserDevice object wasn't provided to the builder, the object is fetched from the database.
|
// If the ScaAuthUserDevice object wasn't provided to the builder, the object is fetched from the database.
|
||||||
// An error is returned if the mutation operation is not UpdateOne, or the database query fails.
|
// An error is returned if the mutation operation is not UpdateOne, or the database query fails.
|
||||||
func (m *ScaAuthUserDeviceMutation) OldBot(ctx context.Context) (v int, err error) {
|
func (m *ScaAuthUserDeviceMutation) OldBot(ctx context.Context) (v bool, err error) {
|
||||||
if !m.op.Is(OpUpdateOne) {
|
if !m.op.Is(OpUpdateOne) {
|
||||||
return v, errors.New("OldBot is only allowed on UpdateOne operations")
|
return v, errors.New("OldBot is only allowed on UpdateOne operations")
|
||||||
}
|
}
|
||||||
@@ -3795,28 +3772,9 @@ func (m *ScaAuthUserDeviceMutation) OldBot(ctx context.Context) (v int, err erro
|
|||||||
return oldValue.Bot, nil
|
return oldValue.Bot, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// AddBot adds i to the "bot" field.
|
|
||||||
func (m *ScaAuthUserDeviceMutation) AddBot(i int) {
|
|
||||||
if m.addbot != nil {
|
|
||||||
*m.addbot += i
|
|
||||||
} else {
|
|
||||||
m.addbot = &i
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// AddedBot returns the value that was added to the "bot" field in this mutation.
|
|
||||||
func (m *ScaAuthUserDeviceMutation) AddedBot() (r int, exists bool) {
|
|
||||||
v := m.addbot
|
|
||||||
if v == nil {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
return *v, true
|
|
||||||
}
|
|
||||||
|
|
||||||
// ResetBot resets all changes to the "bot" field.
|
// ResetBot resets all changes to the "bot" field.
|
||||||
func (m *ScaAuthUserDeviceMutation) ResetBot() {
|
func (m *ScaAuthUserDeviceMutation) ResetBot() {
|
||||||
m.bot = nil
|
m.bot = nil
|
||||||
m.addbot = nil
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// SetMozilla sets the "mozilla" field.
|
// SetMozilla sets the "mozilla" field.
|
||||||
@@ -4246,14 +4204,14 @@ func (m *ScaAuthUserDeviceMutation) SetField(name string, value ent.Value) error
|
|||||||
m.SetBrowserVersion(v)
|
m.SetBrowserVersion(v)
|
||||||
return nil
|
return nil
|
||||||
case scaauthuserdevice.FieldMobile:
|
case scaauthuserdevice.FieldMobile:
|
||||||
v, ok := value.(int)
|
v, ok := value.(bool)
|
||||||
if !ok {
|
if !ok {
|
||||||
return fmt.Errorf("unexpected type %T for field %s", value, name)
|
return fmt.Errorf("unexpected type %T for field %s", value, name)
|
||||||
}
|
}
|
||||||
m.SetMobile(v)
|
m.SetMobile(v)
|
||||||
return nil
|
return nil
|
||||||
case scaauthuserdevice.FieldBot:
|
case scaauthuserdevice.FieldBot:
|
||||||
v, ok := value.(int)
|
v, ok := value.(bool)
|
||||||
if !ok {
|
if !ok {
|
||||||
return fmt.Errorf("unexpected type %T for field %s", value, name)
|
return fmt.Errorf("unexpected type %T for field %s", value, name)
|
||||||
}
|
}
|
||||||
@@ -4298,12 +4256,6 @@ func (m *ScaAuthUserDeviceMutation) AddedFields() []string {
|
|||||||
if m.adddeleted != nil {
|
if m.adddeleted != nil {
|
||||||
fields = append(fields, scaauthuserdevice.FieldDeleted)
|
fields = append(fields, scaauthuserdevice.FieldDeleted)
|
||||||
}
|
}
|
||||||
if m.addmobile != nil {
|
|
||||||
fields = append(fields, scaauthuserdevice.FieldMobile)
|
|
||||||
}
|
|
||||||
if m.addbot != nil {
|
|
||||||
fields = append(fields, scaauthuserdevice.FieldBot)
|
|
||||||
}
|
|
||||||
return fields
|
return fields
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -4314,10 +4266,6 @@ func (m *ScaAuthUserDeviceMutation) AddedField(name string) (ent.Value, bool) {
|
|||||||
switch name {
|
switch name {
|
||||||
case scaauthuserdevice.FieldDeleted:
|
case scaauthuserdevice.FieldDeleted:
|
||||||
return m.AddedDeleted()
|
return m.AddedDeleted()
|
||||||
case scaauthuserdevice.FieldMobile:
|
|
||||||
return m.AddedMobile()
|
|
||||||
case scaauthuserdevice.FieldBot:
|
|
||||||
return m.AddedBot()
|
|
||||||
}
|
}
|
||||||
return nil, false
|
return nil, false
|
||||||
}
|
}
|
||||||
@@ -4334,20 +4282,6 @@ func (m *ScaAuthUserDeviceMutation) AddField(name string, value ent.Value) error
|
|||||||
}
|
}
|
||||||
m.AddDeleted(v)
|
m.AddDeleted(v)
|
||||||
return nil
|
return nil
|
||||||
case scaauthuserdevice.FieldMobile:
|
|
||||||
v, ok := value.(int)
|
|
||||||
if !ok {
|
|
||||||
return fmt.Errorf("unexpected type %T for field %s", value, name)
|
|
||||||
}
|
|
||||||
m.AddMobile(v)
|
|
||||||
return nil
|
|
||||||
case scaauthuserdevice.FieldBot:
|
|
||||||
v, ok := value.(int)
|
|
||||||
if !ok {
|
|
||||||
return fmt.Errorf("unexpected type %T for field %s", value, name)
|
|
||||||
}
|
|
||||||
m.AddBot(v)
|
|
||||||
return nil
|
|
||||||
}
|
}
|
||||||
return fmt.Errorf("unknown ScaAuthUserDevice numeric field %s", name)
|
return fmt.Errorf("unknown ScaAuthUserDevice numeric field %s", name)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ import (
|
|||||||
"schisandra-album-cloud-microservices/app/core/api/repository/mysql/ent/scaauthuser"
|
"schisandra-album-cloud-microservices/app/core/api/repository/mysql/ent/scaauthuser"
|
||||||
"schisandra-album-cloud-microservices/app/core/api/repository/mysql/ent/scaauthuserdevice"
|
"schisandra-album-cloud-microservices/app/core/api/repository/mysql/ent/scaauthuserdevice"
|
||||||
"schisandra-album-cloud-microservices/app/core/api/repository/mysql/ent/scaauthusersocial"
|
"schisandra-album-cloud-microservices/app/core/api/repository/mysql/ent/scaauthusersocial"
|
||||||
"schisandra-album-cloud-microservices/app/core/api/repository/mysql/schema"
|
"schisandra-album-cloud-microservices/app/core/api/repository/mysql/model"
|
||||||
"time"
|
"time"
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -16,7 +16,7 @@ import (
|
|||||||
// (default values, validators, hooks and policies) and stitches it
|
// (default values, validators, hooks and policies) and stitches it
|
||||||
// to their package variables.
|
// to their package variables.
|
||||||
func init() {
|
func init() {
|
||||||
scaauthpermissionruleFields := schema.ScaAuthPermissionRule{}.Fields()
|
scaauthpermissionruleFields := model.ScaAuthPermissionRule{}.Fields()
|
||||||
_ = scaauthpermissionruleFields
|
_ = scaauthpermissionruleFields
|
||||||
// scaauthpermissionruleDescPtype is the schema descriptor for ptype field.
|
// scaauthpermissionruleDescPtype is the schema descriptor for ptype field.
|
||||||
scaauthpermissionruleDescPtype := scaauthpermissionruleFields[1].Descriptor()
|
scaauthpermissionruleDescPtype := scaauthpermissionruleFields[1].Descriptor()
|
||||||
@@ -46,10 +46,10 @@ func init() {
|
|||||||
scaauthpermissionruleDescV5 := scaauthpermissionruleFields[7].Descriptor()
|
scaauthpermissionruleDescV5 := scaauthpermissionruleFields[7].Descriptor()
|
||||||
// scaauthpermissionrule.V5Validator is a validator for the "v5" field. It is called by the builders before save.
|
// scaauthpermissionrule.V5Validator is a validator for the "v5" field. It is called by the builders before save.
|
||||||
scaauthpermissionrule.V5Validator = scaauthpermissionruleDescV5.Validators[0].(func(string) error)
|
scaauthpermissionrule.V5Validator = scaauthpermissionruleDescV5.Validators[0].(func(string) error)
|
||||||
scaauthroleMixin := schema.ScaAuthRole{}.Mixin()
|
scaauthroleMixin := model.ScaAuthRole{}.Mixin()
|
||||||
scaauthroleMixinFields0 := scaauthroleMixin[0].Fields()
|
scaauthroleMixinFields0 := scaauthroleMixin[0].Fields()
|
||||||
_ = scaauthroleMixinFields0
|
_ = scaauthroleMixinFields0
|
||||||
scaauthroleFields := schema.ScaAuthRole{}.Fields()
|
scaauthroleFields := model.ScaAuthRole{}.Fields()
|
||||||
_ = scaauthroleFields
|
_ = scaauthroleFields
|
||||||
// scaauthroleDescCreatedAt is the schema descriptor for created_at field.
|
// scaauthroleDescCreatedAt is the schema descriptor for created_at field.
|
||||||
scaauthroleDescCreatedAt := scaauthroleMixinFields0[0].Descriptor()
|
scaauthroleDescCreatedAt := scaauthroleMixinFields0[0].Descriptor()
|
||||||
@@ -75,10 +75,10 @@ func init() {
|
|||||||
scaauthroleDescRoleKey := scaauthroleFields[2].Descriptor()
|
scaauthroleDescRoleKey := scaauthroleFields[2].Descriptor()
|
||||||
// scaauthrole.RoleKeyValidator is a validator for the "role_key" field. It is called by the builders before save.
|
// scaauthrole.RoleKeyValidator is a validator for the "role_key" field. It is called by the builders before save.
|
||||||
scaauthrole.RoleKeyValidator = scaauthroleDescRoleKey.Validators[0].(func(string) error)
|
scaauthrole.RoleKeyValidator = scaauthroleDescRoleKey.Validators[0].(func(string) error)
|
||||||
scaauthuserMixin := schema.ScaAuthUser{}.Mixin()
|
scaauthuserMixin := model.ScaAuthUser{}.Mixin()
|
||||||
scaauthuserMixinFields0 := scaauthuserMixin[0].Fields()
|
scaauthuserMixinFields0 := scaauthuserMixin[0].Fields()
|
||||||
_ = scaauthuserMixinFields0
|
_ = scaauthuserMixinFields0
|
||||||
scaauthuserFields := schema.ScaAuthUser{}.Fields()
|
scaauthuserFields := model.ScaAuthUser{}.Fields()
|
||||||
_ = scaauthuserFields
|
_ = scaauthuserFields
|
||||||
// scaauthuserDescCreatedAt is the schema descriptor for created_at field.
|
// scaauthuserDescCreatedAt is the schema descriptor for created_at field.
|
||||||
scaauthuserDescCreatedAt := scaauthuserMixinFields0[0].Descriptor()
|
scaauthuserDescCreatedAt := scaauthuserMixinFields0[0].Descriptor()
|
||||||
@@ -144,10 +144,10 @@ func init() {
|
|||||||
scaauthuserDescCompany := scaauthuserFields[13].Descriptor()
|
scaauthuserDescCompany := scaauthuserFields[13].Descriptor()
|
||||||
// scaauthuser.CompanyValidator is a validator for the "company" field. It is called by the builders before save.
|
// scaauthuser.CompanyValidator is a validator for the "company" field. It is called by the builders before save.
|
||||||
scaauthuser.CompanyValidator = scaauthuserDescCompany.Validators[0].(func(string) error)
|
scaauthuser.CompanyValidator = scaauthuserDescCompany.Validators[0].(func(string) error)
|
||||||
scaauthuserdeviceMixin := schema.ScaAuthUserDevice{}.Mixin()
|
scaauthuserdeviceMixin := model.ScaAuthUserDevice{}.Mixin()
|
||||||
scaauthuserdeviceMixinFields0 := scaauthuserdeviceMixin[0].Fields()
|
scaauthuserdeviceMixinFields0 := scaauthuserdeviceMixin[0].Fields()
|
||||||
_ = scaauthuserdeviceMixinFields0
|
_ = scaauthuserdeviceMixinFields0
|
||||||
scaauthuserdeviceFields := schema.ScaAuthUserDevice{}.Fields()
|
scaauthuserdeviceFields := model.ScaAuthUserDevice{}.Fields()
|
||||||
_ = scaauthuserdeviceFields
|
_ = scaauthuserdeviceFields
|
||||||
// scaauthuserdeviceDescCreatedAt is the schema descriptor for created_at field.
|
// scaauthuserdeviceDescCreatedAt is the schema descriptor for created_at field.
|
||||||
scaauthuserdeviceDescCreatedAt := scaauthuserdeviceMixinFields0[0].Descriptor()
|
scaauthuserdeviceDescCreatedAt := scaauthuserdeviceMixinFields0[0].Descriptor()
|
||||||
@@ -209,10 +209,10 @@ func init() {
|
|||||||
scaauthuserdeviceDescEngineVersion := scaauthuserdeviceFields[13].Descriptor()
|
scaauthuserdeviceDescEngineVersion := scaauthuserdeviceFields[13].Descriptor()
|
||||||
// scaauthuserdevice.EngineVersionValidator is a validator for the "engine_version" field. It is called by the builders before save.
|
// scaauthuserdevice.EngineVersionValidator is a validator for the "engine_version" field. It is called by the builders before save.
|
||||||
scaauthuserdevice.EngineVersionValidator = scaauthuserdeviceDescEngineVersion.Validators[0].(func(string) error)
|
scaauthuserdevice.EngineVersionValidator = scaauthuserdeviceDescEngineVersion.Validators[0].(func(string) error)
|
||||||
scaauthusersocialMixin := schema.ScaAuthUserSocial{}.Mixin()
|
scaauthusersocialMixin := model.ScaAuthUserSocial{}.Mixin()
|
||||||
scaauthusersocialMixinFields0 := scaauthusersocialMixin[0].Fields()
|
scaauthusersocialMixinFields0 := scaauthusersocialMixin[0].Fields()
|
||||||
_ = scaauthusersocialMixinFields0
|
_ = scaauthusersocialMixinFields0
|
||||||
scaauthusersocialFields := schema.ScaAuthUserSocial{}.Fields()
|
scaauthusersocialFields := model.ScaAuthUserSocial{}.Fields()
|
||||||
_ = scaauthusersocialFields
|
_ = scaauthusersocialFields
|
||||||
// scaauthusersocialDescCreatedAt is the schema descriptor for created_at field.
|
// scaauthusersocialDescCreatedAt is the schema descriptor for created_at field.
|
||||||
scaauthusersocialDescCreatedAt := scaauthusersocialMixinFields0[0].Descriptor()
|
scaauthusersocialDescCreatedAt := scaauthusersocialMixinFields0[0].Descriptor()
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
package runtime
|
package runtime
|
||||||
|
|
||||||
// The schema-stitching logic is generated in schisandra-album-cloud-microservices/app/main/api/repository/mysql/ent/runtime.go
|
// The schema-stitching logic is generated in schisandra-album-cloud-microservices/app/core/api/repository/mysql/ent/runtime.go
|
||||||
|
|
||||||
const (
|
const (
|
||||||
Version = "v0.14.1" // Version of ent codegen.
|
Version = "v0.14.1" // Version of ent codegen.
|
||||||
|
|||||||
@@ -40,9 +40,9 @@ type ScaAuthUserDevice struct {
|
|||||||
// 浏览器版本
|
// 浏览器版本
|
||||||
BrowserVersion string `json:"browser_version,omitempty"`
|
BrowserVersion string `json:"browser_version,omitempty"`
|
||||||
// 是否为手机 0否1是
|
// 是否为手机 0否1是
|
||||||
Mobile int `json:"mobile,omitempty"`
|
Mobile bool `json:"mobile,omitempty"`
|
||||||
// 是否为bot 0否1是
|
// 是否为bot 0否1是
|
||||||
Bot int `json:"bot,omitempty"`
|
Bot bool `json:"bot,omitempty"`
|
||||||
// 火狐版本
|
// 火狐版本
|
||||||
Mozilla string `json:"mozilla,omitempty"`
|
Mozilla string `json:"mozilla,omitempty"`
|
||||||
// 平台
|
// 平台
|
||||||
@@ -83,7 +83,9 @@ func (*ScaAuthUserDevice) scanValues(columns []string) ([]any, error) {
|
|||||||
values := make([]any, len(columns))
|
values := make([]any, len(columns))
|
||||||
for i := range columns {
|
for i := range columns {
|
||||||
switch columns[i] {
|
switch columns[i] {
|
||||||
case scaauthuserdevice.FieldID, scaauthuserdevice.FieldDeleted, scaauthuserdevice.FieldMobile, scaauthuserdevice.FieldBot:
|
case scaauthuserdevice.FieldMobile, scaauthuserdevice.FieldBot:
|
||||||
|
values[i] = new(sql.NullBool)
|
||||||
|
case scaauthuserdevice.FieldID, scaauthuserdevice.FieldDeleted:
|
||||||
values[i] = new(sql.NullInt64)
|
values[i] = new(sql.NullInt64)
|
||||||
case scaauthuserdevice.FieldUserID, scaauthuserdevice.FieldIP, scaauthuserdevice.FieldLocation, scaauthuserdevice.FieldAgent, scaauthuserdevice.FieldBrowser, scaauthuserdevice.FieldOperatingSystem, scaauthuserdevice.FieldBrowserVersion, scaauthuserdevice.FieldMozilla, scaauthuserdevice.FieldPlatform, scaauthuserdevice.FieldEngineName, scaauthuserdevice.FieldEngineVersion:
|
case scaauthuserdevice.FieldUserID, scaauthuserdevice.FieldIP, scaauthuserdevice.FieldLocation, scaauthuserdevice.FieldAgent, scaauthuserdevice.FieldBrowser, scaauthuserdevice.FieldOperatingSystem, scaauthuserdevice.FieldBrowserVersion, scaauthuserdevice.FieldMozilla, scaauthuserdevice.FieldPlatform, scaauthuserdevice.FieldEngineName, scaauthuserdevice.FieldEngineVersion:
|
||||||
values[i] = new(sql.NullString)
|
values[i] = new(sql.NullString)
|
||||||
@@ -173,16 +175,16 @@ func (saud *ScaAuthUserDevice) assignValues(columns []string, values []any) erro
|
|||||||
saud.BrowserVersion = value.String
|
saud.BrowserVersion = value.String
|
||||||
}
|
}
|
||||||
case scaauthuserdevice.FieldMobile:
|
case scaauthuserdevice.FieldMobile:
|
||||||
if value, ok := values[i].(*sql.NullInt64); !ok {
|
if value, ok := values[i].(*sql.NullBool); !ok {
|
||||||
return fmt.Errorf("unexpected type %T for field mobile", values[i])
|
return fmt.Errorf("unexpected type %T for field mobile", values[i])
|
||||||
} else if value.Valid {
|
} else if value.Valid {
|
||||||
saud.Mobile = int(value.Int64)
|
saud.Mobile = value.Bool
|
||||||
}
|
}
|
||||||
case scaauthuserdevice.FieldBot:
|
case scaauthuserdevice.FieldBot:
|
||||||
if value, ok := values[i].(*sql.NullInt64); !ok {
|
if value, ok := values[i].(*sql.NullBool); !ok {
|
||||||
return fmt.Errorf("unexpected type %T for field bot", values[i])
|
return fmt.Errorf("unexpected type %T for field bot", values[i])
|
||||||
} else if value.Valid {
|
} else if value.Valid {
|
||||||
saud.Bot = int(value.Int64)
|
saud.Bot = value.Bool
|
||||||
}
|
}
|
||||||
case scaauthuserdevice.FieldMozilla:
|
case scaauthuserdevice.FieldMozilla:
|
||||||
if value, ok := values[i].(*sql.NullString); !ok {
|
if value, ok := values[i].(*sql.NullString); !ok {
|
||||||
|
|||||||
@@ -106,12 +106,12 @@ func BrowserVersion(v string) predicate.ScaAuthUserDevice {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Mobile applies equality check predicate on the "mobile" field. It's identical to MobileEQ.
|
// Mobile applies equality check predicate on the "mobile" field. It's identical to MobileEQ.
|
||||||
func Mobile(v int) predicate.ScaAuthUserDevice {
|
func Mobile(v bool) predicate.ScaAuthUserDevice {
|
||||||
return predicate.ScaAuthUserDevice(sql.FieldEQ(FieldMobile, v))
|
return predicate.ScaAuthUserDevice(sql.FieldEQ(FieldMobile, v))
|
||||||
}
|
}
|
||||||
|
|
||||||
// Bot applies equality check predicate on the "bot" field. It's identical to BotEQ.
|
// Bot applies equality check predicate on the "bot" field. It's identical to BotEQ.
|
||||||
func Bot(v int) predicate.ScaAuthUserDevice {
|
func Bot(v bool) predicate.ScaAuthUserDevice {
|
||||||
return predicate.ScaAuthUserDevice(sql.FieldEQ(FieldBot, v))
|
return predicate.ScaAuthUserDevice(sql.FieldEQ(FieldBot, v))
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -721,85 +721,25 @@ func BrowserVersionContainsFold(v string) predicate.ScaAuthUserDevice {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// MobileEQ applies the EQ predicate on the "mobile" field.
|
// MobileEQ applies the EQ predicate on the "mobile" field.
|
||||||
func MobileEQ(v int) predicate.ScaAuthUserDevice {
|
func MobileEQ(v bool) predicate.ScaAuthUserDevice {
|
||||||
return predicate.ScaAuthUserDevice(sql.FieldEQ(FieldMobile, v))
|
return predicate.ScaAuthUserDevice(sql.FieldEQ(FieldMobile, v))
|
||||||
}
|
}
|
||||||
|
|
||||||
// MobileNEQ applies the NEQ predicate on the "mobile" field.
|
// MobileNEQ applies the NEQ predicate on the "mobile" field.
|
||||||
func MobileNEQ(v int) predicate.ScaAuthUserDevice {
|
func MobileNEQ(v bool) predicate.ScaAuthUserDevice {
|
||||||
return predicate.ScaAuthUserDevice(sql.FieldNEQ(FieldMobile, v))
|
return predicate.ScaAuthUserDevice(sql.FieldNEQ(FieldMobile, v))
|
||||||
}
|
}
|
||||||
|
|
||||||
// MobileIn applies the In predicate on the "mobile" field.
|
|
||||||
func MobileIn(vs ...int) predicate.ScaAuthUserDevice {
|
|
||||||
return predicate.ScaAuthUserDevice(sql.FieldIn(FieldMobile, vs...))
|
|
||||||
}
|
|
||||||
|
|
||||||
// MobileNotIn applies the NotIn predicate on the "mobile" field.
|
|
||||||
func MobileNotIn(vs ...int) predicate.ScaAuthUserDevice {
|
|
||||||
return predicate.ScaAuthUserDevice(sql.FieldNotIn(FieldMobile, vs...))
|
|
||||||
}
|
|
||||||
|
|
||||||
// MobileGT applies the GT predicate on the "mobile" field.
|
|
||||||
func MobileGT(v int) predicate.ScaAuthUserDevice {
|
|
||||||
return predicate.ScaAuthUserDevice(sql.FieldGT(FieldMobile, v))
|
|
||||||
}
|
|
||||||
|
|
||||||
// MobileGTE applies the GTE predicate on the "mobile" field.
|
|
||||||
func MobileGTE(v int) predicate.ScaAuthUserDevice {
|
|
||||||
return predicate.ScaAuthUserDevice(sql.FieldGTE(FieldMobile, v))
|
|
||||||
}
|
|
||||||
|
|
||||||
// MobileLT applies the LT predicate on the "mobile" field.
|
|
||||||
func MobileLT(v int) predicate.ScaAuthUserDevice {
|
|
||||||
return predicate.ScaAuthUserDevice(sql.FieldLT(FieldMobile, v))
|
|
||||||
}
|
|
||||||
|
|
||||||
// MobileLTE applies the LTE predicate on the "mobile" field.
|
|
||||||
func MobileLTE(v int) predicate.ScaAuthUserDevice {
|
|
||||||
return predicate.ScaAuthUserDevice(sql.FieldLTE(FieldMobile, v))
|
|
||||||
}
|
|
||||||
|
|
||||||
// BotEQ applies the EQ predicate on the "bot" field.
|
// BotEQ applies the EQ predicate on the "bot" field.
|
||||||
func BotEQ(v int) predicate.ScaAuthUserDevice {
|
func BotEQ(v bool) predicate.ScaAuthUserDevice {
|
||||||
return predicate.ScaAuthUserDevice(sql.FieldEQ(FieldBot, v))
|
return predicate.ScaAuthUserDevice(sql.FieldEQ(FieldBot, v))
|
||||||
}
|
}
|
||||||
|
|
||||||
// BotNEQ applies the NEQ predicate on the "bot" field.
|
// BotNEQ applies the NEQ predicate on the "bot" field.
|
||||||
func BotNEQ(v int) predicate.ScaAuthUserDevice {
|
func BotNEQ(v bool) predicate.ScaAuthUserDevice {
|
||||||
return predicate.ScaAuthUserDevice(sql.FieldNEQ(FieldBot, v))
|
return predicate.ScaAuthUserDevice(sql.FieldNEQ(FieldBot, v))
|
||||||
}
|
}
|
||||||
|
|
||||||
// BotIn applies the In predicate on the "bot" field.
|
|
||||||
func BotIn(vs ...int) predicate.ScaAuthUserDevice {
|
|
||||||
return predicate.ScaAuthUserDevice(sql.FieldIn(FieldBot, vs...))
|
|
||||||
}
|
|
||||||
|
|
||||||
// BotNotIn applies the NotIn predicate on the "bot" field.
|
|
||||||
func BotNotIn(vs ...int) predicate.ScaAuthUserDevice {
|
|
||||||
return predicate.ScaAuthUserDevice(sql.FieldNotIn(FieldBot, vs...))
|
|
||||||
}
|
|
||||||
|
|
||||||
// BotGT applies the GT predicate on the "bot" field.
|
|
||||||
func BotGT(v int) predicate.ScaAuthUserDevice {
|
|
||||||
return predicate.ScaAuthUserDevice(sql.FieldGT(FieldBot, v))
|
|
||||||
}
|
|
||||||
|
|
||||||
// BotGTE applies the GTE predicate on the "bot" field.
|
|
||||||
func BotGTE(v int) predicate.ScaAuthUserDevice {
|
|
||||||
return predicate.ScaAuthUserDevice(sql.FieldGTE(FieldBot, v))
|
|
||||||
}
|
|
||||||
|
|
||||||
// BotLT applies the LT predicate on the "bot" field.
|
|
||||||
func BotLT(v int) predicate.ScaAuthUserDevice {
|
|
||||||
return predicate.ScaAuthUserDevice(sql.FieldLT(FieldBot, v))
|
|
||||||
}
|
|
||||||
|
|
||||||
// BotLTE applies the LTE predicate on the "bot" field.
|
|
||||||
func BotLTE(v int) predicate.ScaAuthUserDevice {
|
|
||||||
return predicate.ScaAuthUserDevice(sql.FieldLTE(FieldBot, v))
|
|
||||||
}
|
|
||||||
|
|
||||||
// MozillaEQ applies the EQ predicate on the "mozilla" field.
|
// MozillaEQ applies the EQ predicate on the "mozilla" field.
|
||||||
func MozillaEQ(v string) predicate.ScaAuthUserDevice {
|
func MozillaEQ(v string) predicate.ScaAuthUserDevice {
|
||||||
return predicate.ScaAuthUserDevice(sql.FieldEQ(FieldMozilla, v))
|
return predicate.ScaAuthUserDevice(sql.FieldEQ(FieldMozilla, v))
|
||||||
|
|||||||
@@ -106,14 +106,14 @@ func (saudc *ScaAuthUserDeviceCreate) SetBrowserVersion(s string) *ScaAuthUserDe
|
|||||||
}
|
}
|
||||||
|
|
||||||
// SetMobile sets the "mobile" field.
|
// SetMobile sets the "mobile" field.
|
||||||
func (saudc *ScaAuthUserDeviceCreate) SetMobile(i int) *ScaAuthUserDeviceCreate {
|
func (saudc *ScaAuthUserDeviceCreate) SetMobile(b bool) *ScaAuthUserDeviceCreate {
|
||||||
saudc.mutation.SetMobile(i)
|
saudc.mutation.SetMobile(b)
|
||||||
return saudc
|
return saudc
|
||||||
}
|
}
|
||||||
|
|
||||||
// SetBot sets the "bot" field.
|
// SetBot sets the "bot" field.
|
||||||
func (saudc *ScaAuthUserDeviceCreate) SetBot(i int) *ScaAuthUserDeviceCreate {
|
func (saudc *ScaAuthUserDeviceCreate) SetBot(b bool) *ScaAuthUserDeviceCreate {
|
||||||
saudc.mutation.SetBot(i)
|
saudc.mutation.SetBot(b)
|
||||||
return saudc
|
return saudc
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -395,11 +395,11 @@ func (saudc *ScaAuthUserDeviceCreate) createSpec() (*ScaAuthUserDevice, *sqlgrap
|
|||||||
_node.BrowserVersion = value
|
_node.BrowserVersion = value
|
||||||
}
|
}
|
||||||
if value, ok := saudc.mutation.Mobile(); ok {
|
if value, ok := saudc.mutation.Mobile(); ok {
|
||||||
_spec.SetField(scaauthuserdevice.FieldMobile, field.TypeInt, value)
|
_spec.SetField(scaauthuserdevice.FieldMobile, field.TypeBool, value)
|
||||||
_node.Mobile = value
|
_node.Mobile = value
|
||||||
}
|
}
|
||||||
if value, ok := saudc.mutation.Bot(); ok {
|
if value, ok := saudc.mutation.Bot(); ok {
|
||||||
_spec.SetField(scaauthuserdevice.FieldBot, field.TypeInt, value)
|
_spec.SetField(scaauthuserdevice.FieldBot, field.TypeBool, value)
|
||||||
_node.Bot = value
|
_node.Bot = value
|
||||||
}
|
}
|
||||||
if value, ok := saudc.mutation.Mozilla(); ok {
|
if value, ok := saudc.mutation.Mozilla(); ok {
|
||||||
|
|||||||
@@ -161,47 +161,33 @@ func (saudu *ScaAuthUserDeviceUpdate) SetNillableBrowserVersion(s *string) *ScaA
|
|||||||
}
|
}
|
||||||
|
|
||||||
// SetMobile sets the "mobile" field.
|
// SetMobile sets the "mobile" field.
|
||||||
func (saudu *ScaAuthUserDeviceUpdate) SetMobile(i int) *ScaAuthUserDeviceUpdate {
|
func (saudu *ScaAuthUserDeviceUpdate) SetMobile(b bool) *ScaAuthUserDeviceUpdate {
|
||||||
saudu.mutation.ResetMobile()
|
saudu.mutation.SetMobile(b)
|
||||||
saudu.mutation.SetMobile(i)
|
|
||||||
return saudu
|
return saudu
|
||||||
}
|
}
|
||||||
|
|
||||||
// SetNillableMobile sets the "mobile" field if the given value is not nil.
|
// SetNillableMobile sets the "mobile" field if the given value is not nil.
|
||||||
func (saudu *ScaAuthUserDeviceUpdate) SetNillableMobile(i *int) *ScaAuthUserDeviceUpdate {
|
func (saudu *ScaAuthUserDeviceUpdate) SetNillableMobile(b *bool) *ScaAuthUserDeviceUpdate {
|
||||||
if i != nil {
|
if b != nil {
|
||||||
saudu.SetMobile(*i)
|
saudu.SetMobile(*b)
|
||||||
}
|
}
|
||||||
return saudu
|
return saudu
|
||||||
}
|
}
|
||||||
|
|
||||||
// AddMobile adds i to the "mobile" field.
|
|
||||||
func (saudu *ScaAuthUserDeviceUpdate) AddMobile(i int) *ScaAuthUserDeviceUpdate {
|
|
||||||
saudu.mutation.AddMobile(i)
|
|
||||||
return saudu
|
|
||||||
}
|
|
||||||
|
|
||||||
// SetBot sets the "bot" field.
|
// SetBot sets the "bot" field.
|
||||||
func (saudu *ScaAuthUserDeviceUpdate) SetBot(i int) *ScaAuthUserDeviceUpdate {
|
func (saudu *ScaAuthUserDeviceUpdate) SetBot(b bool) *ScaAuthUserDeviceUpdate {
|
||||||
saudu.mutation.ResetBot()
|
saudu.mutation.SetBot(b)
|
||||||
saudu.mutation.SetBot(i)
|
|
||||||
return saudu
|
return saudu
|
||||||
}
|
}
|
||||||
|
|
||||||
// SetNillableBot sets the "bot" field if the given value is not nil.
|
// SetNillableBot sets the "bot" field if the given value is not nil.
|
||||||
func (saudu *ScaAuthUserDeviceUpdate) SetNillableBot(i *int) *ScaAuthUserDeviceUpdate {
|
func (saudu *ScaAuthUserDeviceUpdate) SetNillableBot(b *bool) *ScaAuthUserDeviceUpdate {
|
||||||
if i != nil {
|
if b != nil {
|
||||||
saudu.SetBot(*i)
|
saudu.SetBot(*b)
|
||||||
}
|
}
|
||||||
return saudu
|
return saudu
|
||||||
}
|
}
|
||||||
|
|
||||||
// AddBot adds i to the "bot" field.
|
|
||||||
func (saudu *ScaAuthUserDeviceUpdate) AddBot(i int) *ScaAuthUserDeviceUpdate {
|
|
||||||
saudu.mutation.AddBot(i)
|
|
||||||
return saudu
|
|
||||||
}
|
|
||||||
|
|
||||||
// SetMozilla sets the "mozilla" field.
|
// SetMozilla sets the "mozilla" field.
|
||||||
func (saudu *ScaAuthUserDeviceUpdate) SetMozilla(s string) *ScaAuthUserDeviceUpdate {
|
func (saudu *ScaAuthUserDeviceUpdate) SetMozilla(s string) *ScaAuthUserDeviceUpdate {
|
||||||
saudu.mutation.SetMozilla(s)
|
saudu.mutation.SetMozilla(s)
|
||||||
@@ -435,16 +421,10 @@ func (saudu *ScaAuthUserDeviceUpdate) sqlSave(ctx context.Context) (n int, err e
|
|||||||
_spec.SetField(scaauthuserdevice.FieldBrowserVersion, field.TypeString, value)
|
_spec.SetField(scaauthuserdevice.FieldBrowserVersion, field.TypeString, value)
|
||||||
}
|
}
|
||||||
if value, ok := saudu.mutation.Mobile(); ok {
|
if value, ok := saudu.mutation.Mobile(); ok {
|
||||||
_spec.SetField(scaauthuserdevice.FieldMobile, field.TypeInt, value)
|
_spec.SetField(scaauthuserdevice.FieldMobile, field.TypeBool, value)
|
||||||
}
|
|
||||||
if value, ok := saudu.mutation.AddedMobile(); ok {
|
|
||||||
_spec.AddField(scaauthuserdevice.FieldMobile, field.TypeInt, value)
|
|
||||||
}
|
}
|
||||||
if value, ok := saudu.mutation.Bot(); ok {
|
if value, ok := saudu.mutation.Bot(); ok {
|
||||||
_spec.SetField(scaauthuserdevice.FieldBot, field.TypeInt, value)
|
_spec.SetField(scaauthuserdevice.FieldBot, field.TypeBool, value)
|
||||||
}
|
|
||||||
if value, ok := saudu.mutation.AddedBot(); ok {
|
|
||||||
_spec.AddField(scaauthuserdevice.FieldBot, field.TypeInt, value)
|
|
||||||
}
|
}
|
||||||
if value, ok := saudu.mutation.Mozilla(); ok {
|
if value, ok := saudu.mutation.Mozilla(); ok {
|
||||||
_spec.SetField(scaauthuserdevice.FieldMozilla, field.TypeString, value)
|
_spec.SetField(scaauthuserdevice.FieldMozilla, field.TypeString, value)
|
||||||
@@ -639,47 +619,33 @@ func (sauduo *ScaAuthUserDeviceUpdateOne) SetNillableBrowserVersion(s *string) *
|
|||||||
}
|
}
|
||||||
|
|
||||||
// SetMobile sets the "mobile" field.
|
// SetMobile sets the "mobile" field.
|
||||||
func (sauduo *ScaAuthUserDeviceUpdateOne) SetMobile(i int) *ScaAuthUserDeviceUpdateOne {
|
func (sauduo *ScaAuthUserDeviceUpdateOne) SetMobile(b bool) *ScaAuthUserDeviceUpdateOne {
|
||||||
sauduo.mutation.ResetMobile()
|
sauduo.mutation.SetMobile(b)
|
||||||
sauduo.mutation.SetMobile(i)
|
|
||||||
return sauduo
|
return sauduo
|
||||||
}
|
}
|
||||||
|
|
||||||
// SetNillableMobile sets the "mobile" field if the given value is not nil.
|
// SetNillableMobile sets the "mobile" field if the given value is not nil.
|
||||||
func (sauduo *ScaAuthUserDeviceUpdateOne) SetNillableMobile(i *int) *ScaAuthUserDeviceUpdateOne {
|
func (sauduo *ScaAuthUserDeviceUpdateOne) SetNillableMobile(b *bool) *ScaAuthUserDeviceUpdateOne {
|
||||||
if i != nil {
|
if b != nil {
|
||||||
sauduo.SetMobile(*i)
|
sauduo.SetMobile(*b)
|
||||||
}
|
}
|
||||||
return sauduo
|
return sauduo
|
||||||
}
|
}
|
||||||
|
|
||||||
// AddMobile adds i to the "mobile" field.
|
|
||||||
func (sauduo *ScaAuthUserDeviceUpdateOne) AddMobile(i int) *ScaAuthUserDeviceUpdateOne {
|
|
||||||
sauduo.mutation.AddMobile(i)
|
|
||||||
return sauduo
|
|
||||||
}
|
|
||||||
|
|
||||||
// SetBot sets the "bot" field.
|
// SetBot sets the "bot" field.
|
||||||
func (sauduo *ScaAuthUserDeviceUpdateOne) SetBot(i int) *ScaAuthUserDeviceUpdateOne {
|
func (sauduo *ScaAuthUserDeviceUpdateOne) SetBot(b bool) *ScaAuthUserDeviceUpdateOne {
|
||||||
sauduo.mutation.ResetBot()
|
sauduo.mutation.SetBot(b)
|
||||||
sauduo.mutation.SetBot(i)
|
|
||||||
return sauduo
|
return sauduo
|
||||||
}
|
}
|
||||||
|
|
||||||
// SetNillableBot sets the "bot" field if the given value is not nil.
|
// SetNillableBot sets the "bot" field if the given value is not nil.
|
||||||
func (sauduo *ScaAuthUserDeviceUpdateOne) SetNillableBot(i *int) *ScaAuthUserDeviceUpdateOne {
|
func (sauduo *ScaAuthUserDeviceUpdateOne) SetNillableBot(b *bool) *ScaAuthUserDeviceUpdateOne {
|
||||||
if i != nil {
|
if b != nil {
|
||||||
sauduo.SetBot(*i)
|
sauduo.SetBot(*b)
|
||||||
}
|
}
|
||||||
return sauduo
|
return sauduo
|
||||||
}
|
}
|
||||||
|
|
||||||
// AddBot adds i to the "bot" field.
|
|
||||||
func (sauduo *ScaAuthUserDeviceUpdateOne) AddBot(i int) *ScaAuthUserDeviceUpdateOne {
|
|
||||||
sauduo.mutation.AddBot(i)
|
|
||||||
return sauduo
|
|
||||||
}
|
|
||||||
|
|
||||||
// SetMozilla sets the "mozilla" field.
|
// SetMozilla sets the "mozilla" field.
|
||||||
func (sauduo *ScaAuthUserDeviceUpdateOne) SetMozilla(s string) *ScaAuthUserDeviceUpdateOne {
|
func (sauduo *ScaAuthUserDeviceUpdateOne) SetMozilla(s string) *ScaAuthUserDeviceUpdateOne {
|
||||||
sauduo.mutation.SetMozilla(s)
|
sauduo.mutation.SetMozilla(s)
|
||||||
@@ -943,16 +909,10 @@ func (sauduo *ScaAuthUserDeviceUpdateOne) sqlSave(ctx context.Context) (_node *S
|
|||||||
_spec.SetField(scaauthuserdevice.FieldBrowserVersion, field.TypeString, value)
|
_spec.SetField(scaauthuserdevice.FieldBrowserVersion, field.TypeString, value)
|
||||||
}
|
}
|
||||||
if value, ok := sauduo.mutation.Mobile(); ok {
|
if value, ok := sauduo.mutation.Mobile(); ok {
|
||||||
_spec.SetField(scaauthuserdevice.FieldMobile, field.TypeInt, value)
|
_spec.SetField(scaauthuserdevice.FieldMobile, field.TypeBool, value)
|
||||||
}
|
|
||||||
if value, ok := sauduo.mutation.AddedMobile(); ok {
|
|
||||||
_spec.AddField(scaauthuserdevice.FieldMobile, field.TypeInt, value)
|
|
||||||
}
|
}
|
||||||
if value, ok := sauduo.mutation.Bot(); ok {
|
if value, ok := sauduo.mutation.Bot(); ok {
|
||||||
_spec.SetField(scaauthuserdevice.FieldBot, field.TypeInt, value)
|
_spec.SetField(scaauthuserdevice.FieldBot, field.TypeBool, value)
|
||||||
}
|
|
||||||
if value, ok := sauduo.mutation.AddedBot(); ok {
|
|
||||||
_spec.AddField(scaauthuserdevice.FieldBot, field.TypeInt, value)
|
|
||||||
}
|
}
|
||||||
if value, ok := sauduo.mutation.Mozilla(); ok {
|
if value, ok := sauduo.mutation.Mozilla(); ok {
|
||||||
_spec.SetField(scaauthuserdevice.FieldMozilla, field.TypeString, value)
|
_spec.SetField(scaauthuserdevice.FieldMozilla, field.TypeString, value)
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
package mysql
|
package mysql
|
||||||
|
|
||||||
//go:generate go run -mod=mod entgo.io/ent/cmd/ent generate --feature privacy,entql --target ./ent ./schema
|
//go:generate go run -mod=mod entgo.io/ent/cmd/ent generate --feature privacy,entql --target ./ent ./model
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ func NewMySQL(url string) *ent.Client {
|
|||||||
defer client.Close()
|
defer client.Close()
|
||||||
|
|
||||||
if err = client.Schema.Create(context.Background()); err != nil {
|
if err = client.Schema.Create(context.Background()); err != nil {
|
||||||
log.Panicf("failed creating schema resources: %v", err)
|
log.Panicf("failed creating model resources: %v", err)
|
||||||
}
|
}
|
||||||
return client
|
return client
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
package schema
|
package model
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"entgo.io/ent"
|
"entgo.io/ent"
|
||||||
@@ -9,7 +9,7 @@ import (
|
|||||||
"entgo.io/ent/schema/field"
|
"entgo.io/ent/schema/field"
|
||||||
)
|
)
|
||||||
|
|
||||||
// ScaAuthPermissionRule holds the schema definition for the ScaAuthPermissionRule entity.
|
// ScaAuthPermissionRule holds the model definition for the ScaAuthPermissionRule entity.
|
||||||
type ScaAuthPermissionRule struct {
|
type ScaAuthPermissionRule struct {
|
||||||
ent.Schema
|
ent.Schema
|
||||||
}
|
}
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package schema
|
package model
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"entgo.io/ent"
|
"entgo.io/ent"
|
||||||
@@ -8,10 +8,10 @@ import (
|
|||||||
"entgo.io/ent/schema/edge"
|
"entgo.io/ent/schema/edge"
|
||||||
"entgo.io/ent/schema/field"
|
"entgo.io/ent/schema/field"
|
||||||
|
|
||||||
"schisandra-album-cloud-microservices/app/core/api/repository/mysql/schema/mixin"
|
"schisandra-album-cloud-microservices/app/core/api/repository/mysql/model/mixin"
|
||||||
)
|
)
|
||||||
|
|
||||||
// ScaAuthRole holds the schema definition for the ScaAuthRole entity.
|
// ScaAuthRole holds the model definition for the ScaAuthRole entity.
|
||||||
type ScaAuthRole struct {
|
type ScaAuthRole struct {
|
||||||
ent.Schema
|
ent.Schema
|
||||||
}
|
}
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package schema
|
package model
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"entgo.io/ent"
|
"entgo.io/ent"
|
||||||
@@ -9,10 +9,10 @@ import (
|
|||||||
"entgo.io/ent/schema/field"
|
"entgo.io/ent/schema/field"
|
||||||
"entgo.io/ent/schema/index"
|
"entgo.io/ent/schema/index"
|
||||||
|
|
||||||
"schisandra-album-cloud-microservices/app/core/api/repository/mysql/schema/mixin"
|
"schisandra-album-cloud-microservices/app/core/api/repository/mysql/model/mixin"
|
||||||
)
|
)
|
||||||
|
|
||||||
// ScaAuthUser holds the schema definition for the ScaAuthUser entity.
|
// ScaAuthUser holds the model definition for the ScaAuthUser entity.
|
||||||
type ScaAuthUser struct {
|
type ScaAuthUser struct {
|
||||||
ent.Schema
|
ent.Schema
|
||||||
}
|
}
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package schema
|
package model
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"entgo.io/ent"
|
"entgo.io/ent"
|
||||||
@@ -9,10 +9,10 @@ import (
|
|||||||
"entgo.io/ent/schema/field"
|
"entgo.io/ent/schema/field"
|
||||||
"entgo.io/ent/schema/index"
|
"entgo.io/ent/schema/index"
|
||||||
|
|
||||||
"schisandra-album-cloud-microservices/app/core/api/repository/mysql/schema/mixin"
|
"schisandra-album-cloud-microservices/app/core/api/repository/mysql/model/mixin"
|
||||||
)
|
)
|
||||||
|
|
||||||
// ScaAuthUserDevice holds the schema definition for the ScaAuthUserDevice entity.
|
// ScaAuthUserDevice holds the model definition for the ScaAuthUserDevice entity.
|
||||||
type ScaAuthUserDevice struct {
|
type ScaAuthUserDevice struct {
|
||||||
ent.Schema
|
ent.Schema
|
||||||
}
|
}
|
||||||
@@ -53,9 +53,9 @@ func (ScaAuthUserDevice) Fields() []ent.Field {
|
|||||||
field.String("browser_version").
|
field.String("browser_version").
|
||||||
MaxLen(20).
|
MaxLen(20).
|
||||||
Comment("浏览器版本"),
|
Comment("浏览器版本"),
|
||||||
field.Int("mobile").
|
field.Bool("mobile").
|
||||||
Comment("是否为手机 0否1是"),
|
Comment("是否为手机 0否1是"),
|
||||||
field.Int("bot").
|
field.Bool("bot").
|
||||||
Comment("是否为bot 0否1是"),
|
Comment("是否为bot 0否1是"),
|
||||||
field.String("mozilla").
|
field.String("mozilla").
|
||||||
MaxLen(10).
|
MaxLen(10).
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package schema
|
package model
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"entgo.io/ent"
|
"entgo.io/ent"
|
||||||
@@ -9,10 +9,10 @@ import (
|
|||||||
"entgo.io/ent/schema/field"
|
"entgo.io/ent/schema/field"
|
||||||
"entgo.io/ent/schema/index"
|
"entgo.io/ent/schema/index"
|
||||||
|
|
||||||
"schisandra-album-cloud-microservices/app/core/api/repository/mysql/schema/mixin"
|
"schisandra-album-cloud-microservices/app/core/api/repository/mysql/model/mixin"
|
||||||
)
|
)
|
||||||
|
|
||||||
// ScaAuthUserSocial holds the schema definition for the ScaAuthUserSocial entity.
|
// ScaAuthUserSocial holds the model definition for the ScaAuthUserSocial entity.
|
||||||
type ScaAuthUserSocial struct {
|
type ScaAuthUserSocial struct {
|
||||||
ent.Schema
|
ent.Schema
|
||||||
}
|
}
|
||||||
38
app/core/api/repository/redis_session/init.go
Normal file
38
app/core/api/repository/redis_session/init.go
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
package redis_session
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
"encoding/gob"
|
||||||
|
"net/http"
|
||||||
|
|
||||||
|
"github.com/gorilla/sessions"
|
||||||
|
"github.com/rbcervilla/redisstore/v9"
|
||||||
|
"github.com/redis/go-redis/v9"
|
||||||
|
"github.com/zeromicro/go-zero/core/logc"
|
||||||
|
|
||||||
|
"schisandra-album-cloud-microservices/app/core/api/common/constant"
|
||||||
|
"schisandra-album-cloud-microservices/app/core/api/repository/redis_session/types"
|
||||||
|
)
|
||||||
|
|
||||||
|
func NewRedisSession(addr string, password string) *redisstore.RedisStore {
|
||||||
|
client := redis.NewClient(&redis.Options{
|
||||||
|
Addr: addr,
|
||||||
|
Password: password,
|
||||||
|
DB: 0,
|
||||||
|
})
|
||||||
|
store, err := redisstore.NewRedisStore(context.Background(), client)
|
||||||
|
if err != nil {
|
||||||
|
logc.Error(context.Background(), err)
|
||||||
|
}
|
||||||
|
store.KeyPrefix(constant.UserSessionPrefix)
|
||||||
|
store.Options(sessions.Options{
|
||||||
|
Path: "/",
|
||||||
|
// Domain: global.CONFIG.System.Web,
|
||||||
|
MaxAge: 86400 * 7,
|
||||||
|
HttpOnly: true,
|
||||||
|
Secure: true,
|
||||||
|
SameSite: http.SameSiteLaxMode,
|
||||||
|
})
|
||||||
|
gob.Register(types.SessionData{})
|
||||||
|
return store
|
||||||
|
}
|
||||||
7
app/core/api/repository/redis_session/types/session.go
Normal file
7
app/core/api/repository/redis_session/types/session.go
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
package types
|
||||||
|
|
||||||
|
// SessionData 返回数据
|
||||||
|
type SessionData struct {
|
||||||
|
RefreshToken string `json:"refresh_token"`
|
||||||
|
UID string `json:"uid"`
|
||||||
|
}
|
||||||
12
app/core/api/repository/redisx/init.go
Normal file
12
app/core/api/repository/redisx/init.go
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
package redisx
|
||||||
|
|
||||||
|
import "github.com/redis/go-redis/v9"
|
||||||
|
|
||||||
|
func NewRedis(host, password string, db int) *redis.Client {
|
||||||
|
rdb := redis.NewClient(&redis.Options{
|
||||||
|
Addr: host,
|
||||||
|
Password: password,
|
||||||
|
DB: db,
|
||||||
|
})
|
||||||
|
return rdb
|
||||||
|
}
|
||||||
6
app/core/api/repository/redisx/types/redis_token.go
Normal file
6
app/core/api/repository/redisx/types/redis_token.go
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
package types
|
||||||
|
|
||||||
|
type RedisToken struct {
|
||||||
|
AccessToken string `json:"access_token"`
|
||||||
|
UID string `json:"uid"`
|
||||||
|
}
|
||||||
BIN
app/core/api/resources/ip2region/ip2region.xdb
Normal file
BIN
app/core/api/resources/ip2region/ip2region.xdb
Normal file
Binary file not shown.
7
app/core/api/resources/language/active.en.toml
Normal file
7
app/core/api/resources/language/active.en.toml
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
[captcha]
|
||||||
|
verificationFailure = "verification failure!"
|
||||||
|
[login]
|
||||||
|
invalidAccount = "invalid account!"
|
||||||
|
notFoundAccount = "account not found!"
|
||||||
|
invalidPassword = "invalid password!"
|
||||||
|
loginFailed = "login failed!"
|
||||||
7
app/core/api/resources/language/active.zh.toml
Normal file
7
app/core/api/resources/language/active.zh.toml
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
[captcha]
|
||||||
|
verificationFailure = "验证失败!"
|
||||||
|
[login]
|
||||||
|
invalidAccount = "无效的账号!"
|
||||||
|
notFoundAccount = "未找到账号!"
|
||||||
|
invalidPassword = "密码错误!"
|
||||||
|
loginFailed = "登录失败!"
|
||||||
48603
app/core/api/resources/sensitive/dict1.txt
Normal file
48603
app/core/api/resources/sensitive/dict1.txt
Normal file
File diff suppressed because it is too large
Load Diff
64454
app/core/api/resources/sensitive/dict2.txt
Normal file
64454
app/core/api/resources/sensitive/dict2.txt
Normal file
File diff suppressed because it is too large
Load Diff
170
app/core/api/resources/sensitive/其他词库.txt
Normal file
170
app/core/api/resources/sensitive/其他词库.txt
Normal file
@@ -0,0 +1,170 @@
|
|||||||
|
穴海
|
||||||
|
协警
|
||||||
|
纳米比亚
|
||||||
|
专业调查
|
||||||
|
有华龙
|
||||||
|
jq的来
|
||||||
|
电信路
|
||||||
|
党鞭
|
||||||
|
第一夫人
|
||||||
|
黄巨
|
||||||
|
荡尽天下
|
||||||
|
家元自称玉皇大帝
|
||||||
|
主席李世民
|
||||||
|
何祚庥
|
||||||
|
刘刚
|
||||||
|
不要沉默
|
||||||
|
后勤集团
|
||||||
|
食堂涨价
|
||||||
|
发国难财
|
||||||
|
浪漫邂逅
|
||||||
|
红满堂
|
||||||
|
张小洋
|
||||||
|
炸学校
|
||||||
|
子宫
|
||||||
|
叫晶晶的女孩
|
||||||
|
回派
|
||||||
|
社会黑暗
|
||||||
|
国之母
|
||||||
|
国母
|
||||||
|
国姆
|
||||||
|
东方微点
|
||||||
|
震惊全球
|
||||||
|
nowto
|
||||||
|
chengdu
|
||||||
|
徐明
|
||||||
|
六月飞雪
|
||||||
|
暴力虐待
|
||||||
|
暴力袭击
|
||||||
|
天府广场
|
||||||
|
粮荒
|
||||||
|
洗脑班
|
||||||
|
李愚蠢
|
||||||
|
中国猪
|
||||||
|
台湾猪
|
||||||
|
进化不完全的生命体
|
||||||
|
震死他们
|
||||||
|
|
||||||
|
10010
|
||||||
|
10086
|
||||||
|
10159
|
||||||
|
13423205670
|
||||||
|
13725516608
|
||||||
|
13875448369
|
||||||
|
15112886328
|
||||||
|
189
|
||||||
|
6-4tianwang
|
||||||
|
64
|
||||||
|
68170802
|
||||||
|
6a6.net
|
||||||
|
7.31
|
||||||
|
7.310
|
||||||
|
89-64cdjp
|
||||||
|
8945212
|
||||||
|
23条
|
||||||
|
259o
|
||||||
|
381929279
|
||||||
|
3P
|
||||||
|
4-Jun
|
||||||
|
AV
|
||||||
|
BJ
|
||||||
|
CBD
|
||||||
|
CCTV
|
||||||
|
CDMA
|
||||||
|
DICK
|
||||||
|
Dick
|
||||||
|
FLG
|
||||||
|
FOCUSC
|
||||||
|
FUCK
|
||||||
|
Fuck
|
||||||
|
GAMEMASTER
|
||||||
|
GCD
|
||||||
|
GameMaster
|
||||||
|
IP17908
|
||||||
|
KEY_TEXT
|
||||||
|
NMD
|
||||||
|
QQb
|
||||||
|
SM
|
||||||
|
Soccer01.com
|
||||||
|
TMD
|
||||||
|
UltraSurf
|
||||||
|
bignews
|
||||||
|
Bitch
|
||||||
|
boxun
|
||||||
|
Chinaliberal
|
||||||
|
chinamz
|
||||||
|
Chinesenewsnet
|
||||||
|
cnd
|
||||||
|
Creaders
|
||||||
|
dafa
|
||||||
|
Dajiyuan
|
||||||
|
df'd
|
||||||
|
Dfdz
|
||||||
|
die
|
||||||
|
dpp
|
||||||
|
Freechina
|
||||||
|
freedom
|
||||||
|
Freenet
|
||||||
|
fuck
|
||||||
|
fuck your mother
|
||||||
|
hongzhi
|
||||||
|
hrichina
|
||||||
|
huanet
|
||||||
|
hypermart.net
|
||||||
|
incest
|
||||||
|
jiangdongriji
|
||||||
|
l2590803027
|
||||||
|
lihongzhi
|
||||||
|
ma
|
||||||
|
making
|
||||||
|
minghui
|
||||||
|
minghuinews
|
||||||
|
nacb
|
||||||
|
na?ve
|
||||||
|
nmis
|
||||||
|
paper64
|
||||||
|
peacehall
|
||||||
|
piao
|
||||||
|
playboy
|
||||||
|
renminbao
|
||||||
|
renmingbao
|
||||||
|
rfa
|
||||||
|
safeweb
|
||||||
|
sex
|
||||||
|
shit
|
||||||
|
simple
|
||||||
|
svdc
|
||||||
|
taip
|
||||||
|
tibetalk
|
||||||
|
triangle
|
||||||
|
triangleboy
|
||||||
|
txwq.net
|
||||||
|
unixbox
|
||||||
|
ustibet
|
||||||
|
voa
|
||||||
|
voachinese
|
||||||
|
wangce
|
||||||
|
wstaiji
|
||||||
|
www
|
||||||
|
xinsheng
|
||||||
|
yuming
|
||||||
|
yy通讯录
|
||||||
|
zhengjian
|
||||||
|
zhengjianwang
|
||||||
|
zhenshanren
|
||||||
|
zhuanfalu
|
||||||
|
zhuanfalun
|
||||||
|
八九
|
||||||
|
八老
|
||||||
|
fuck
|
||||||
|
duck
|
||||||
|
shit
|
||||||
|
chicken
|
||||||
|
fowl
|
||||||
|
sex
|
||||||
|
sexy
|
||||||
|
prostitute
|
||||||
|
whore
|
||||||
|
harlot
|
||||||
|
hooker
|
||||||
|
gender
|
||||||
557
app/core/api/resources/sensitive/反动词库.txt
Normal file
557
app/core/api/resources/sensitive/反动词库.txt
Normal file
@@ -0,0 +1,557 @@
|
|||||||
|
腐败中国
|
||||||
|
三个呆婊
|
||||||
|
你办事我放心
|
||||||
|
社会主义灭亡
|
||||||
|
打倒中国
|
||||||
|
打倒共产党
|
||||||
|
打倒共产主义
|
||||||
|
打倒胡锦涛
|
||||||
|
打倒江泽民
|
||||||
|
打倒江主席
|
||||||
|
打倒李鹏
|
||||||
|
打倒罗干
|
||||||
|
打倒温家宝
|
||||||
|
打倒中共
|
||||||
|
打倒朱镕
|
||||||
|
抵制共产党
|
||||||
|
抵制共产主义
|
||||||
|
抵制胡锦涛
|
||||||
|
抵制江泽民
|
||||||
|
抵制江主席
|
||||||
|
抵制李鹏
|
||||||
|
抵制罗干
|
||||||
|
抵制温家宝
|
||||||
|
抵制中共
|
||||||
|
抵制朱镕基
|
||||||
|
灭亡中国
|
||||||
|
亡党亡国
|
||||||
|
粉碎四人帮
|
||||||
|
激流中国
|
||||||
|
特供
|
||||||
|
特贡
|
||||||
|
特共
|
||||||
|
zf大楼
|
||||||
|
殃视
|
||||||
|
贪污腐败
|
||||||
|
强制拆除
|
||||||
|
形式主义
|
||||||
|
政治风波
|
||||||
|
太子党
|
||||||
|
上海帮
|
||||||
|
北京帮
|
||||||
|
清华帮
|
||||||
|
红色贵族
|
||||||
|
权贵集团
|
||||||
|
河蟹社会
|
||||||
|
喝血社会
|
||||||
|
九风
|
||||||
|
9风
|
||||||
|
十七大
|
||||||
|
十7大
|
||||||
|
17da
|
||||||
|
九学
|
||||||
|
9学
|
||||||
|
四风
|
||||||
|
4风
|
||||||
|
双规
|
||||||
|
南街村
|
||||||
|
最淫官员
|
||||||
|
警匪
|
||||||
|
官匪
|
||||||
|
独夫民贼
|
||||||
|
官商勾结
|
||||||
|
城管暴力执法
|
||||||
|
强制捐款
|
||||||
|
毒豺
|
||||||
|
一党执政
|
||||||
|
一党专制
|
||||||
|
一党专政
|
||||||
|
专制政权
|
||||||
|
宪法法院
|
||||||
|
胡平
|
||||||
|
苏晓康
|
||||||
|
贺卫方
|
||||||
|
谭作人
|
||||||
|
焦国标
|
||||||
|
万润南
|
||||||
|
张志新
|
||||||
|
辛灝年
|
||||||
|
高勤荣
|
||||||
|
王炳章
|
||||||
|
高智晟
|
||||||
|
司马璐
|
||||||
|
刘晓竹
|
||||||
|
刘宾雁
|
||||||
|
魏京生
|
||||||
|
寻找林昭的灵魂
|
||||||
|
别梦成灰
|
||||||
|
谁是新中国
|
||||||
|
讨伐中宣部
|
||||||
|
异议人士
|
||||||
|
民运人士
|
||||||
|
启蒙派
|
||||||
|
选国家主席
|
||||||
|
民一主
|
||||||
|
min主
|
||||||
|
民竹
|
||||||
|
民珠
|
||||||
|
民猪
|
||||||
|
chinesedemocracy
|
||||||
|
大赦国际
|
||||||
|
国际特赦
|
||||||
|
da选
|
||||||
|
投公
|
||||||
|
公头
|
||||||
|
宪政
|
||||||
|
平反
|
||||||
|
党章
|
||||||
|
维权
|
||||||
|
昝爱宗
|
||||||
|
宪章
|
||||||
|
08宪
|
||||||
|
08xz
|
||||||
|
抿主
|
||||||
|
敏主
|
||||||
|
人拳
|
||||||
|
人木又
|
||||||
|
人quan
|
||||||
|
renquan
|
||||||
|
中国人权
|
||||||
|
中国新民党
|
||||||
|
群体事件
|
||||||
|
群体性事件
|
||||||
|
上中央
|
||||||
|
去中央
|
||||||
|
讨说法
|
||||||
|
请愿
|
||||||
|
请命
|
||||||
|
公开信
|
||||||
|
联名上书
|
||||||
|
万人大签名
|
||||||
|
万人骚动
|
||||||
|
截访
|
||||||
|
上访
|
||||||
|
shangfang
|
||||||
|
信访
|
||||||
|
访民
|
||||||
|
集合
|
||||||
|
集会
|
||||||
|
组织集体
|
||||||
|
静坐
|
||||||
|
静zuo
|
||||||
|
jing坐
|
||||||
|
示威
|
||||||
|
示wei
|
||||||
|
游行
|
||||||
|
you行
|
||||||
|
油行
|
||||||
|
游xing
|
||||||
|
youxing
|
||||||
|
官逼民反
|
||||||
|
反party
|
||||||
|
反共
|
||||||
|
抗议
|
||||||
|
亢议
|
||||||
|
抵制
|
||||||
|
低制
|
||||||
|
底制
|
||||||
|
di制
|
||||||
|
抵zhi
|
||||||
|
dizhi
|
||||||
|
boycott
|
||||||
|
血书
|
||||||
|
焚烧中国国旗
|
||||||
|
baoluan
|
||||||
|
流血冲突
|
||||||
|
出现暴动
|
||||||
|
发生暴动
|
||||||
|
引起暴动
|
||||||
|
baodong
|
||||||
|
灭共
|
||||||
|
杀毙
|
||||||
|
罢工
|
||||||
|
霸工
|
||||||
|
罢考
|
||||||
|
罢餐
|
||||||
|
霸餐
|
||||||
|
罢参
|
||||||
|
罢饭
|
||||||
|
罢吃
|
||||||
|
罢食
|
||||||
|
罢课
|
||||||
|
罢ke
|
||||||
|
霸课
|
||||||
|
ba课
|
||||||
|
罢教
|
||||||
|
罢学
|
||||||
|
罢运
|
||||||
|
网特
|
||||||
|
网评员
|
||||||
|
网络评论员
|
||||||
|
五毛党
|
||||||
|
五毛们
|
||||||
|
5毛党
|
||||||
|
戒严
|
||||||
|
jieyan
|
||||||
|
jie严
|
||||||
|
戒yan
|
||||||
|
8的平方事件
|
||||||
|
知道64
|
||||||
|
八九年
|
||||||
|
贰拾年
|
||||||
|
2o年
|
||||||
|
20和谐年
|
||||||
|
贰拾周年
|
||||||
|
六四
|
||||||
|
六河蟹四
|
||||||
|
六百度四
|
||||||
|
六和谐四
|
||||||
|
陆四
|
||||||
|
陆肆
|
||||||
|
198964
|
||||||
|
5月35
|
||||||
|
89年春夏之交
|
||||||
|
64惨案
|
||||||
|
64时期
|
||||||
|
64运动
|
||||||
|
4事件
|
||||||
|
四事件
|
||||||
|
北京风波
|
||||||
|
学潮
|
||||||
|
学chao
|
||||||
|
xuechao
|
||||||
|
学百度潮
|
||||||
|
门安天
|
||||||
|
天按门
|
||||||
|
坦克压大学生
|
||||||
|
民主女神
|
||||||
|
历史的伤口
|
||||||
|
高自联
|
||||||
|
北高联
|
||||||
|
血洗京城
|
||||||
|
四二六社论
|
||||||
|
王丹
|
||||||
|
柴玲
|
||||||
|
沈彤
|
||||||
|
封从德
|
||||||
|
王超华
|
||||||
|
王维林
|
||||||
|
吾尔开希
|
||||||
|
吾尔开西
|
||||||
|
侯德健
|
||||||
|
阎明复
|
||||||
|
方励之
|
||||||
|
蒋捷连
|
||||||
|
丁子霖
|
||||||
|
辛灏年
|
||||||
|
蒋彦永
|
||||||
|
严家其
|
||||||
|
陈一咨
|
||||||
|
中华局域网
|
||||||
|
党的喉舌
|
||||||
|
互联网审查
|
||||||
|
当局严密封锁
|
||||||
|
新闻封锁
|
||||||
|
封锁消息
|
||||||
|
爱国者同盟
|
||||||
|
关闭所有论坛
|
||||||
|
网络封锁
|
||||||
|
金盾工程
|
||||||
|
gfw
|
||||||
|
无界浏览
|
||||||
|
无界网络
|
||||||
|
自由门
|
||||||
|
何清涟
|
||||||
|
中国的陷阱
|
||||||
|
汪兆钧
|
||||||
|
记者无疆界
|
||||||
|
境外媒体
|
||||||
|
维基百科
|
||||||
|
纽约时报
|
||||||
|
bbc中文网
|
||||||
|
华盛顿邮报
|
||||||
|
世界日报
|
||||||
|
东森新闻网
|
||||||
|
东森电视
|
||||||
|
星岛日报
|
||||||
|
wikipedia
|
||||||
|
youtube
|
||||||
|
googleblogger
|
||||||
|
美国广播公司
|
||||||
|
英国金融时报
|
||||||
|
自由亚洲
|
||||||
|
自由时报
|
||||||
|
中国时报
|
||||||
|
反分裂
|
||||||
|
威胁论
|
||||||
|
左翼联盟
|
||||||
|
钓鱼岛
|
||||||
|
保钓组织
|
||||||
|
主权
|
||||||
|
弓单
|
||||||
|
火乍
|
||||||
|
木仓
|
||||||
|
石肖
|
||||||
|
核蛋
|
||||||
|
步qiang
|
||||||
|
bao炸
|
||||||
|
爆zha
|
||||||
|
baozha
|
||||||
|
zha药
|
||||||
|
zha弹
|
||||||
|
炸dan
|
||||||
|
炸yao
|
||||||
|
zhadan
|
||||||
|
zhayao
|
||||||
|
hmtd
|
||||||
|
三硝基甲苯
|
||||||
|
六氟化铀
|
||||||
|
炸药配方
|
||||||
|
弹药配方
|
||||||
|
炸弹配方
|
||||||
|
皮箱炸弹
|
||||||
|
火药配方
|
||||||
|
人体炸弹
|
||||||
|
人肉炸弹
|
||||||
|
解放军
|
||||||
|
兵力部署
|
||||||
|
军转
|
||||||
|
军事社
|
||||||
|
8341部队
|
||||||
|
第21集团军
|
||||||
|
七大军区
|
||||||
|
7大军区
|
||||||
|
北京军区
|
||||||
|
沈阳军区
|
||||||
|
济南军区
|
||||||
|
成都军区
|
||||||
|
广州军区
|
||||||
|
南京军区
|
||||||
|
兰州军区
|
||||||
|
颜色革命
|
||||||
|
规模冲突
|
||||||
|
塔利班
|
||||||
|
基地组织
|
||||||
|
恐怖分子
|
||||||
|
恐怖份子
|
||||||
|
三股势力
|
||||||
|
印尼屠华
|
||||||
|
印尼事件
|
||||||
|
蒋公纪念歌
|
||||||
|
马英九
|
||||||
|
mayingjiu
|
||||||
|
李天羽
|
||||||
|
苏贞昌
|
||||||
|
林文漪
|
||||||
|
陈水扁
|
||||||
|
陈s扁
|
||||||
|
陈随便
|
||||||
|
阿扁
|
||||||
|
a扁
|
||||||
|
告全国同胞书
|
||||||
|
台百度湾
|
||||||
|
台完
|
||||||
|
台wan
|
||||||
|
taiwan
|
||||||
|
台弯
|
||||||
|
湾台
|
||||||
|
台湾国
|
||||||
|
台湾共和国
|
||||||
|
台军
|
||||||
|
台独
|
||||||
|
台毒
|
||||||
|
台du
|
||||||
|
taidu
|
||||||
|
twdl
|
||||||
|
一中一台
|
||||||
|
打台湾
|
||||||
|
两岸战争
|
||||||
|
攻占台湾
|
||||||
|
支持台湾
|
||||||
|
进攻台湾
|
||||||
|
占领台湾
|
||||||
|
统一台湾
|
||||||
|
收复台湾
|
||||||
|
登陆台湾
|
||||||
|
解放台湾
|
||||||
|
解放tw
|
||||||
|
解决台湾
|
||||||
|
光复民国
|
||||||
|
台湾独立
|
||||||
|
台湾问题
|
||||||
|
台海问题
|
||||||
|
台海危机
|
||||||
|
台海统一
|
||||||
|
台海大战
|
||||||
|
台海战争
|
||||||
|
台海局势
|
||||||
|
入联
|
||||||
|
入耳关
|
||||||
|
中华联邦
|
||||||
|
国民党
|
||||||
|
x民党
|
||||||
|
民进党
|
||||||
|
青天白日
|
||||||
|
闹独立
|
||||||
|
duli
|
||||||
|
fenlie
|
||||||
|
日本万岁
|
||||||
|
小泽一郎
|
||||||
|
劣等民族
|
||||||
|
汉人
|
||||||
|
汉维
|
||||||
|
维汉
|
||||||
|
维吾
|
||||||
|
吾尔
|
||||||
|
热比娅
|
||||||
|
伊力哈木
|
||||||
|
疆独
|
||||||
|
东突厥斯坦解放组织
|
||||||
|
东突解放组织
|
||||||
|
蒙古分裂分子
|
||||||
|
列确
|
||||||
|
阿旺晋美
|
||||||
|
藏人
|
||||||
|
臧人
|
||||||
|
zang人
|
||||||
|
藏民
|
||||||
|
藏m
|
||||||
|
达赖
|
||||||
|
赖达
|
||||||
|
dalai
|
||||||
|
哒赖
|
||||||
|
dl喇嘛
|
||||||
|
丹增嘉措
|
||||||
|
打砸抢
|
||||||
|
西独
|
||||||
|
藏独
|
||||||
|
葬独
|
||||||
|
臧独
|
||||||
|
藏毒
|
||||||
|
藏du
|
||||||
|
zangdu
|
||||||
|
支持zd
|
||||||
|
藏暴乱
|
||||||
|
藏青会
|
||||||
|
雪山狮子旗
|
||||||
|
拉萨
|
||||||
|
啦萨
|
||||||
|
啦沙
|
||||||
|
啦撒
|
||||||
|
拉sa
|
||||||
|
lasa
|
||||||
|
la萨
|
||||||
|
西藏
|
||||||
|
藏西
|
||||||
|
藏春阁
|
||||||
|
藏獨
|
||||||
|
藏独
|
||||||
|
藏独立
|
||||||
|
藏妇会
|
||||||
|
藏青会
|
||||||
|
藏字石
|
||||||
|
xizang
|
||||||
|
xi藏
|
||||||
|
x藏
|
||||||
|
西z
|
||||||
|
tibet
|
||||||
|
希葬
|
||||||
|
希藏
|
||||||
|
硒藏
|
||||||
|
稀藏
|
||||||
|
西脏
|
||||||
|
西奘
|
||||||
|
西葬
|
||||||
|
西臧
|
||||||
|
援藏
|
||||||
|
bjork
|
||||||
|
王千源
|
||||||
|
安拉
|
||||||
|
回教
|
||||||
|
回族
|
||||||
|
回回
|
||||||
|
回民
|
||||||
|
穆斯林
|
||||||
|
穆罕穆德
|
||||||
|
穆罕默德
|
||||||
|
默罕默德
|
||||||
|
伊斯兰
|
||||||
|
圣战组织
|
||||||
|
清真
|
||||||
|
清zhen
|
||||||
|
qingzhen
|
||||||
|
真主
|
||||||
|
阿拉伯
|
||||||
|
高丽棒子
|
||||||
|
韩国狗
|
||||||
|
满洲第三帝国
|
||||||
|
满狗
|
||||||
|
鞑子
|
||||||
|
江丑闻
|
||||||
|
江嫡系
|
||||||
|
江毒
|
||||||
|
江独裁
|
||||||
|
江蛤蟆
|
||||||
|
江核心
|
||||||
|
江黑心
|
||||||
|
江胡内斗
|
||||||
|
江祸心
|
||||||
|
江家帮
|
||||||
|
江绵恒
|
||||||
|
江派和胡派
|
||||||
|
江派人马
|
||||||
|
江泉集团
|
||||||
|
江人马
|
||||||
|
江三条腿
|
||||||
|
江氏集团
|
||||||
|
江氏家族
|
||||||
|
江氏政治局
|
||||||
|
江氏政治委员
|
||||||
|
江梳头
|
||||||
|
江太上
|
||||||
|
江戏子
|
||||||
|
江系人
|
||||||
|
江系人马
|
||||||
|
江宰民
|
||||||
|
江贼
|
||||||
|
江贼民
|
||||||
|
江主席
|
||||||
|
麻果丸
|
||||||
|
麻将透
|
||||||
|
麻醉弹
|
||||||
|
麻醉狗
|
||||||
|
麻醉枪
|
||||||
|
麻醉槍
|
||||||
|
麻醉药
|
||||||
|
麻醉藥
|
||||||
|
台独
|
||||||
|
台湾版假币
|
||||||
|
台湾独立
|
||||||
|
台湾国
|
||||||
|
台湾应该独立
|
||||||
|
台湾有权独立
|
||||||
|
天灭中共
|
||||||
|
中共帮凶
|
||||||
|
中共保命
|
||||||
|
中共裁
|
||||||
|
中共党文化
|
||||||
|
中共腐败
|
||||||
|
中共的血旗
|
||||||
|
中共的罪恶
|
||||||
|
中共帝国
|
||||||
|
中共独裁
|
||||||
|
中共封锁
|
||||||
|
中共封网
|
||||||
|
中共腐败
|
||||||
|
中共黑
|
||||||
|
中共黑帮
|
||||||
|
中共解体
|
||||||
|
中共近期权力斗争
|
||||||
|
中共恐惧
|
||||||
|
中共权力斗争
|
||||||
|
中共任用
|
||||||
|
中共退党
|
||||||
|
中共洗脑
|
||||||
|
中共邪教
|
||||||
|
中共政治游戏
|
||||||
|
中共邪毒素
|
||||||
178
app/core/api/resources/sensitive/暴恐词库.txt
Normal file
178
app/core/api/resources/sensitive/暴恐词库.txt
Normal file
@@ -0,0 +1,178 @@
|
|||||||
|
福音会
|
||||||
|
中国教徒
|
||||||
|
统一教
|
||||||
|
观音法门
|
||||||
|
清海无上师
|
||||||
|
盘古
|
||||||
|
李洪志
|
||||||
|
志洪李
|
||||||
|
李宏志
|
||||||
|
轮功
|
||||||
|
法轮
|
||||||
|
轮法功
|
||||||
|
三去车仑
|
||||||
|
氵去车仑
|
||||||
|
发论工
|
||||||
|
法x功
|
||||||
|
法o功
|
||||||
|
法0功
|
||||||
|
法一轮一功
|
||||||
|
轮子功
|
||||||
|
车仑工力
|
||||||
|
法lun
|
||||||
|
fa轮
|
||||||
|
法lg
|
||||||
|
flg
|
||||||
|
fl功
|
||||||
|
falungong
|
||||||
|
大法弟子
|
||||||
|
大纪元
|
||||||
|
dajiyuan
|
||||||
|
明慧网
|
||||||
|
明慧周报
|
||||||
|
正见网
|
||||||
|
新唐人
|
||||||
|
伪火
|
||||||
|
退党
|
||||||
|
tuidang
|
||||||
|
退dang
|
||||||
|
超越红墙
|
||||||
|
自fen
|
||||||
|
真善忍
|
||||||
|
九评
|
||||||
|
9评
|
||||||
|
9ping
|
||||||
|
九ping
|
||||||
|
jiuping
|
||||||
|
藏字石
|
||||||
|
集体自杀
|
||||||
|
自sha
|
||||||
|
zi杀
|
||||||
|
suicide
|
||||||
|
titor
|
||||||
|
逢8必灾
|
||||||
|
逢八必灾
|
||||||
|
逢9必乱
|
||||||
|
逢九必乱
|
||||||
|
朱瑟里诺
|
||||||
|
根达亚文明
|
||||||
|
诺查丹玛斯
|
||||||
|
人类灭亡进程表
|
||||||
|
按照马雅历法
|
||||||
|
推背图
|
||||||
|
推bei图
|
||||||
|
济世灵文
|
||||||
|
诸世纪
|
||||||
|
电狗
|
||||||
|
电话定位器
|
||||||
|
电话拦截器
|
||||||
|
电话窃听
|
||||||
|
电话监
|
||||||
|
电话交友
|
||||||
|
电话追杀系统
|
||||||
|
电击枪
|
||||||
|
电鸡
|
||||||
|
电警棒
|
||||||
|
枪出售
|
||||||
|
枪的制
|
||||||
|
枪货到
|
||||||
|
枪决女犯
|
||||||
|
枪模
|
||||||
|
枪手
|
||||||
|
枪销售
|
||||||
|
枪械制
|
||||||
|
枪子弹
|
||||||
|
售步枪
|
||||||
|
售纯度
|
||||||
|
售单管
|
||||||
|
售弹簧刀
|
||||||
|
售防身
|
||||||
|
售狗子
|
||||||
|
售虎头
|
||||||
|
售火药
|
||||||
|
售假币
|
||||||
|
售健卫
|
||||||
|
售军用
|
||||||
|
售猎枪
|
||||||
|
售氯胺
|
||||||
|
售麻醉
|
||||||
|
售枪支
|
||||||
|
售热武
|
||||||
|
售三棱
|
||||||
|
售手枪
|
||||||
|
售五四
|
||||||
|
售一元硬
|
||||||
|
售子弹
|
||||||
|
售左轮
|
||||||
|
亚砷(酸)酐
|
||||||
|
亚砷酸钾
|
||||||
|
亚砷酸钠
|
||||||
|
亚硒酸
|
||||||
|
亚硒酸二钠
|
||||||
|
亚硒酸镁
|
||||||
|
亚硒酸钠
|
||||||
|
亚硒酸氢钠
|
||||||
|
亚硝酸乙酯
|
||||||
|
亚硝酰乙氧
|
||||||
|
氧化二丁基锡
|
||||||
|
氧化汞
|
||||||
|
氧化铊
|
||||||
|
氧化亚铊
|
||||||
|
氧氯化磷
|
||||||
|
原装弹
|
||||||
|
原子弹方法
|
||||||
|
原子弹清单
|
||||||
|
安眠酮
|
||||||
|
代血浆
|
||||||
|
普萘洛尔
|
||||||
|
呋塞米
|
||||||
|
西布曲明
|
||||||
|
testosterone
|
||||||
|
胰岛素样生长因子
|
||||||
|
促红细胞生成素
|
||||||
|
地西泮
|
||||||
|
尼可刹米
|
||||||
|
甲睾酮
|
||||||
|
adrenaline
|
||||||
|
erythropoietin
|
||||||
|
地奈德
|
||||||
|
莫达非尼
|
||||||
|
氯噻嗪
|
||||||
|
苯巴比妥
|
||||||
|
促性腺激素
|
||||||
|
泼尼松
|
||||||
|
麻黄草
|
||||||
|
雄烯二醇
|
||||||
|
地塞米松
|
||||||
|
tamoxifen
|
||||||
|
strychnine
|
||||||
|
androst
|
||||||
|
新型毒品
|
||||||
|
杜冷丁
|
||||||
|
兴奋剂
|
||||||
|
mdma
|
||||||
|
海洛因
|
||||||
|
海luo因
|
||||||
|
heroin
|
||||||
|
diamorphine
|
||||||
|
diacetylmorphine
|
||||||
|
鸦片
|
||||||
|
阿芙蓉
|
||||||
|
咖啡因
|
||||||
|
cocain
|
||||||
|
三唑仑
|
||||||
|
美沙酮
|
||||||
|
麻古
|
||||||
|
k粉
|
||||||
|
凯他敏
|
||||||
|
ketamine
|
||||||
|
冰毒
|
||||||
|
苯丙胺
|
||||||
|
cannabis
|
||||||
|
大麻
|
||||||
|
爱他死
|
||||||
|
氯胺酮
|
||||||
|
benzodiazepines
|
||||||
|
甲基安非他明
|
||||||
|
吗啡
|
||||||
|
安非他命
|
||||||
571
app/core/api/resources/sensitive/民生词库.txt
Normal file
571
app/core/api/resources/sensitive/民生词库.txt
Normal file
@@ -0,0 +1,571 @@
|
|||||||
|
打人
|
||||||
|
打人
|
||||||
|
拆迁
|
||||||
|
拆迁
|
||||||
|
纠纷
|
||||||
|
纠纷
|
||||||
|
盗窃
|
||||||
|
盗窃
|
||||||
|
安眠酮
|
||||||
|
代药物毒品类:血浆
|
||||||
|
普萘洛尔
|
||||||
|
呋塞米
|
||||||
|
西布曲明
|
||||||
|
testosterone
|
||||||
|
胰岛素样生长因子
|
||||||
|
促红细胞生成素
|
||||||
|
地西泮
|
||||||
|
尼可刹米
|
||||||
|
甲睾酮
|
||||||
|
adrenaline
|
||||||
|
erythropoietin
|
||||||
|
地奈德
|
||||||
|
莫达非尼
|
||||||
|
氯噻嗪
|
||||||
|
苯巴比妥
|
||||||
|
促性腺激素
|
||||||
|
泼尼松
|
||||||
|
麻黄草
|
||||||
|
雄烯二醇
|
||||||
|
地塞米松
|
||||||
|
tamoxifen
|
||||||
|
strychnine
|
||||||
|
androst
|
||||||
|
新型毒品
|
||||||
|
杜冷丁
|
||||||
|
兴奋剂
|
||||||
|
mdma
|
||||||
|
海洛因
|
||||||
|
海luo因
|
||||||
|
heroin
|
||||||
|
diamorphine
|
||||||
|
diacetylmorphine
|
||||||
|
鸦片
|
||||||
|
阿芙蓉
|
||||||
|
咖啡因
|
||||||
|
cocain
|
||||||
|
三唑仑
|
||||||
|
美沙酮
|
||||||
|
麻古
|
||||||
|
k粉
|
||||||
|
凯他敏
|
||||||
|
ketamine
|
||||||
|
冰毒
|
||||||
|
苯丙胺
|
||||||
|
cannabis
|
||||||
|
大麻
|
||||||
|
爱他死
|
||||||
|
氯胺酮
|
||||||
|
benzodiazepines
|
||||||
|
甲基安非他明
|
||||||
|
安非他命
|
||||||
|
吗啡
|
||||||
|
morphine
|
||||||
|
摇头丸
|
||||||
|
迷药
|
||||||
|
乖乖粉
|
||||||
|
narcotic
|
||||||
|
麻醉药
|
||||||
|
精神药品
|
||||||
|
专业代理
|
||||||
|
帮忙点一下
|
||||||
|
帮忙点下
|
||||||
|
请点击进入
|
||||||
|
详情请进入
|
||||||
|
私人侦探
|
||||||
|
私家侦探
|
||||||
|
针孔摄象
|
||||||
|
调查婚外情
|
||||||
|
信用卡提现
|
||||||
|
无抵押贷款
|
||||||
|
广告代理
|
||||||
|
原音铃声
|
||||||
|
借腹生子
|
||||||
|
找个妈妈
|
||||||
|
找个爸爸
|
||||||
|
代孕妈妈
|
||||||
|
代生孩子
|
||||||
|
代开发票
|
||||||
|
腾讯客服电话
|
||||||
|
销售热线
|
||||||
|
免费订购热线
|
||||||
|
低价出售
|
||||||
|
款到发货
|
||||||
|
回复可见
|
||||||
|
连锁加盟
|
||||||
|
加盟连锁
|
||||||
|
免费二级域名
|
||||||
|
免费使用
|
||||||
|
免费索取
|
||||||
|
蚁力神
|
||||||
|
婴儿汤
|
||||||
|
售肾
|
||||||
|
刻章办
|
||||||
|
买小车
|
||||||
|
套牌车
|
||||||
|
玛雅网
|
||||||
|
电脑传讯
|
||||||
|
视频来源
|
||||||
|
下载速度
|
||||||
|
高清在线
|
||||||
|
全集在线
|
||||||
|
在线播放
|
||||||
|
txt下载
|
||||||
|
六位qq
|
||||||
|
6位qq
|
||||||
|
位的qq
|
||||||
|
个qb
|
||||||
|
送qb
|
||||||
|
用刀横向切腹
|
||||||
|
完全自杀手册
|
||||||
|
四海帮
|
||||||
|
足球投注
|
||||||
|
地下钱庄
|
||||||
|
中国复兴党
|
||||||
|
阿波罗网
|
||||||
|
曾道人
|
||||||
|
六合彩
|
||||||
|
改卷内幕
|
||||||
|
替考试
|
||||||
|
隐形耳机
|
||||||
|
出售答案
|
||||||
|
考中答案
|
||||||
|
答an
|
||||||
|
da案
|
||||||
|
资金周转
|
||||||
|
救市
|
||||||
|
股市圈钱
|
||||||
|
崩盘
|
||||||
|
资金短缺
|
||||||
|
证监会
|
||||||
|
质押贷款
|
||||||
|
小额贷款
|
||||||
|
周小川
|
||||||
|
刘明康
|
||||||
|
尚福林
|
||||||
|
孔丹
|
||||||
|
汉芯造假
|
||||||
|
杨树宽
|
||||||
|
中印边界谈判结果
|
||||||
|
喂奶门
|
||||||
|
摸nai门
|
||||||
|
酒瓶门
|
||||||
|
脱裤门
|
||||||
|
75事件
|
||||||
|
乌鲁木齐
|
||||||
|
新疆骚乱
|
||||||
|
针刺
|
||||||
|
打针
|
||||||
|
食堂涨价
|
||||||
|
饭菜涨价
|
||||||
|
h1n1
|
||||||
|
瘟疫爆发
|
||||||
|
yangjia
|
||||||
|
y佳
|
||||||
|
yang佳
|
||||||
|
杨佳
|
||||||
|
杨j
|
||||||
|
袭警
|
||||||
|
杀警
|
||||||
|
武侯祠
|
||||||
|
川b26931
|
||||||
|
贺立旗
|
||||||
|
周正毅
|
||||||
|
px项目
|
||||||
|
骂四川
|
||||||
|
家l福
|
||||||
|
家le福
|
||||||
|
加了服
|
||||||
|
麦当劳被砸
|
||||||
|
豆腐渣
|
||||||
|
这不是天灾
|
||||||
|
龙小霞
|
||||||
|
震其国土
|
||||||
|
yuce
|
||||||
|
提前预测
|
||||||
|
地震预测
|
||||||
|
隐瞒地震
|
||||||
|
李四光预测
|
||||||
|
蟾蜍迁徙
|
||||||
|
地震来得更猛烈
|
||||||
|
八级地震毫无预报
|
||||||
|
踩踏事故
|
||||||
|
聂树斌
|
||||||
|
万里大造林
|
||||||
|
陈相贵
|
||||||
|
张丹红
|
||||||
|
尹方明
|
||||||
|
李树菲
|
||||||
|
王奉友
|
||||||
|
零八奥运艰
|
||||||
|
惨奥
|
||||||
|
奥晕
|
||||||
|
凹晕
|
||||||
|
懊运
|
||||||
|
懊孕
|
||||||
|
奥孕
|
||||||
|
奥你妈的运
|
||||||
|
反奥
|
||||||
|
628事件
|
||||||
|
weng安
|
||||||
|
wengan
|
||||||
|
翁安
|
||||||
|
瓮安事件
|
||||||
|
化工厂爆炸
|
||||||
|
讨回工资
|
||||||
|
代办发票
|
||||||
|
代办各
|
||||||
|
代办文
|
||||||
|
代办学
|
||||||
|
代办制
|
||||||
|
代辦
|
||||||
|
代表烦
|
||||||
|
代开发票
|
||||||
|
代開
|
||||||
|
代考
|
||||||
|
代理发票
|
||||||
|
代理票据
|
||||||
|
代您考
|
||||||
|
代讨债
|
||||||
|
代写毕
|
||||||
|
代写论文
|
||||||
|
代孕
|
||||||
|
代追债
|
||||||
|
考后付款
|
||||||
|
考机构
|
||||||
|
考考邓
|
||||||
|
考联盟
|
||||||
|
考前答案
|
||||||
|
考前付
|
||||||
|
考前密卷
|
||||||
|
考前预测
|
||||||
|
考试,答案
|
||||||
|
考试,作弊器
|
||||||
|
考试包过
|
||||||
|
考试保
|
||||||
|
考试答案
|
||||||
|
考试机构
|
||||||
|
考试联盟
|
||||||
|
考试枪
|
||||||
|
考试作弊
|
||||||
|
考试作弊器
|
||||||
|
考研考中
|
||||||
|
考中答案
|
||||||
|
透视功能
|
||||||
|
透视镜
|
||||||
|
透视扑
|
||||||
|
透视器
|
||||||
|
透视眼睛
|
||||||
|
透视眼镜
|
||||||
|
透视药
|
||||||
|
透视仪
|
||||||
|
打死经过
|
||||||
|
打死人
|
||||||
|
打砸办公
|
||||||
|
打砸抢
|
||||||
|
安眠酮
|
||||||
|
代血浆
|
||||||
|
普萘洛尔
|
||||||
|
呋塞米
|
||||||
|
西布曲明
|
||||||
|
testosterone
|
||||||
|
胰岛素样生长因子
|
||||||
|
促红细胞生成素
|
||||||
|
地西泮
|
||||||
|
尼可刹米
|
||||||
|
甲睾酮
|
||||||
|
adrenaline
|
||||||
|
erythropoietin
|
||||||
|
地奈德
|
||||||
|
莫达非尼
|
||||||
|
氯噻嗪
|
||||||
|
苯巴比妥
|
||||||
|
促性腺激素
|
||||||
|
泼尼松
|
||||||
|
麻黄草
|
||||||
|
雄烯二醇
|
||||||
|
地塞米松
|
||||||
|
tamoxifen
|
||||||
|
strychnine
|
||||||
|
androst
|
||||||
|
新型毒品
|
||||||
|
杜冷丁
|
||||||
|
兴奋剂
|
||||||
|
mdma
|
||||||
|
海洛因
|
||||||
|
海luo因
|
||||||
|
heroin
|
||||||
|
diamorphine
|
||||||
|
diacetylmorphine
|
||||||
|
鸦片
|
||||||
|
阿芙蓉
|
||||||
|
咖啡因
|
||||||
|
cocain
|
||||||
|
三唑仑
|
||||||
|
美沙酮
|
||||||
|
麻古
|
||||||
|
k粉
|
||||||
|
凯他敏
|
||||||
|
ketamine
|
||||||
|
冰毒
|
||||||
|
苯丙胺
|
||||||
|
cannabis
|
||||||
|
大麻
|
||||||
|
爱他死
|
||||||
|
氯胺酮
|
||||||
|
benzodiazepines
|
||||||
|
甲基安非他明
|
||||||
|
安非他命
|
||||||
|
吗啡
|
||||||
|
KC短信
|
||||||
|
KC嘉年华
|
||||||
|
短信广告
|
||||||
|
短信群发
|
||||||
|
短信群发器
|
||||||
|
小6灵通
|
||||||
|
短信商务广告
|
||||||
|
段录定
|
||||||
|
无界浏览
|
||||||
|
无界浏览器
|
||||||
|
无界
|
||||||
|
无网界
|
||||||
|
无网界浏览
|
||||||
|
无帮国
|
||||||
|
KC提示
|
||||||
|
KC网站
|
||||||
|
UP8新势力
|
||||||
|
白皮书
|
||||||
|
UP新势力
|
||||||
|
移民
|
||||||
|
易达网络卡
|
||||||
|
安魂网
|
||||||
|
罢工
|
||||||
|
罢课
|
||||||
|
纽崔莱七折
|
||||||
|
手机复制
|
||||||
|
手机铃声
|
||||||
|
网关
|
||||||
|
神通加持法
|
||||||
|
全1球通
|
||||||
|
如6意通
|
||||||
|
清仓
|
||||||
|
灵动卡
|
||||||
|
答案卫星接收机
|
||||||
|
高薪养廉
|
||||||
|
考后付款
|
||||||
|
佳静安定片
|
||||||
|
航空母舰
|
||||||
|
航空售票
|
||||||
|
号码百事通
|
||||||
|
考前发放
|
||||||
|
成本价
|
||||||
|
诚信通手机商城
|
||||||
|
高利贷
|
||||||
|
联4通
|
||||||
|
黑庄
|
||||||
|
黑手党
|
||||||
|
黑车
|
||||||
|
联通贵宾卡
|
||||||
|
联总
|
||||||
|
联总这声传单
|
||||||
|
联总之声传单
|
||||||
|
高息贷款
|
||||||
|
高干子弟
|
||||||
|
恭喜你的号码
|
||||||
|
恭喜您的号码
|
||||||
|
高干子女
|
||||||
|
各个银行全称
|
||||||
|
各种发票
|
||||||
|
高官
|
||||||
|
高官互调
|
||||||
|
高官子女
|
||||||
|
喝一送一
|
||||||
|
卡号
|
||||||
|
复制
|
||||||
|
监听王
|
||||||
|
传单
|
||||||
|
旦科
|
||||||
|
钓鱼岛
|
||||||
|
钓鱼台
|
||||||
|
当官靠后台
|
||||||
|
党校安插亲信
|
||||||
|
传九促三
|
||||||
|
客户端非法字符
|
||||||
|
刻章
|
||||||
|
大麻树脂
|
||||||
|
大麻油
|
||||||
|
大法
|
||||||
|
大法弟子
|
||||||
|
dpp大法
|
||||||
|
fa lun
|
||||||
|
falu
|
||||||
|
发抡
|
||||||
|
发抡功
|
||||||
|
洗脑
|
||||||
|
下法轮
|
||||||
|
发轮
|
||||||
|
发伦
|
||||||
|
发伦功
|
||||||
|
发仑
|
||||||
|
发沦
|
||||||
|
发纶
|
||||||
|
发论
|
||||||
|
发论功
|
||||||
|
发论公
|
||||||
|
发正念
|
||||||
|
发囵
|
||||||
|
发愣
|
||||||
|
发瞟
|
||||||
|
罚抡
|
||||||
|
罚伦
|
||||||
|
罚仑
|
||||||
|
罚沦
|
||||||
|
罚纶
|
||||||
|
罚囵
|
||||||
|
筏抡
|
||||||
|
筏轮
|
||||||
|
筏伦
|
||||||
|
筏仑
|
||||||
|
筏沦
|
||||||
|
筏纶
|
||||||
|
筏论
|
||||||
|
筏囵
|
||||||
|
伐抡
|
||||||
|
伐轮
|
||||||
|
伐伦
|
||||||
|
伐仑
|
||||||
|
伐沦
|
||||||
|
伐论
|
||||||
|
伐囵
|
||||||
|
乏抡
|
||||||
|
乏轮
|
||||||
|
乏伦
|
||||||
|
乏仑
|
||||||
|
乏沦
|
||||||
|
乏纶
|
||||||
|
乏论
|
||||||
|
乏囵
|
||||||
|
阀抡
|
||||||
|
阀伦
|
||||||
|
阀仑
|
||||||
|
阀沦
|
||||||
|
阀纶
|
||||||
|
阀论
|
||||||
|
阀囵
|
||||||
|
法 轮 功
|
||||||
|
法*功
|
||||||
|
法.轮.功
|
||||||
|
法L功
|
||||||
|
法lun功
|
||||||
|
法功
|
||||||
|
法会
|
||||||
|
法抡
|
||||||
|
法抡功
|
||||||
|
法轮
|
||||||
|
法轮大法
|
||||||
|
法轮佛法
|
||||||
|
法轮功
|
||||||
|
法伦
|
||||||
|
法仑
|
||||||
|
法沦
|
||||||
|
法纶
|
||||||
|
法论
|
||||||
|
法十轮十功
|
||||||
|
法西斯
|
||||||
|
法院
|
||||||
|
法正
|
||||||
|
法谪
|
||||||
|
法谪功
|
||||||
|
法輪
|
||||||
|
法囵
|
||||||
|
法愣
|
||||||
|
珐.輪功
|
||||||
|
珐抡
|
||||||
|
珐轮
|
||||||
|
珐伦
|
||||||
|
珐仑
|
||||||
|
珐沦
|
||||||
|
五不
|
||||||
|
五不争鸣论坛
|
||||||
|
五出三进
|
||||||
|
五套功法
|
||||||
|
邝锦文
|
||||||
|
垡抡
|
||||||
|
垡轮
|
||||||
|
垡伦
|
||||||
|
垡仑
|
||||||
|
垡沦
|
||||||
|
垡纶
|
||||||
|
垡论
|
||||||
|
垡囵
|
||||||
|
茳澤民
|
||||||
|
荭志
|
||||||
|
闳志
|
||||||
|
闵维方
|
||||||
|
氵去
|
||||||
|
氵去车仑工力
|
||||||
|
转法轮
|
||||||
|
砝抡
|
||||||
|
砝轮
|
||||||
|
砝伦
|
||||||
|
砝仑
|
||||||
|
砝沦
|
||||||
|
砝纶
|
||||||
|
真、善、忍
|
||||||
|
真理教
|
||||||
|
真善美
|
||||||
|
真善忍
|
||||||
|
砝论
|
||||||
|
砝囵
|
||||||
|
泓志
|
||||||
|
屙民
|
||||||
|
珐纶
|
||||||
|
珐论
|
||||||
|
珐囵
|
||||||
|
falun
|
||||||
|
Falundafa
|
||||||
|
fa轮
|
||||||
|
Flg
|
||||||
|
弟子
|
||||||
|
地下教会
|
||||||
|
炼功
|
||||||
|
梦网洪志
|
||||||
|
轮大
|
||||||
|
抡功
|
||||||
|
轮功
|
||||||
|
伦功
|
||||||
|
摩门教
|
||||||
|
三水法轮
|
||||||
|
三唑仑
|
||||||
|
天皇
|
||||||
|
天怒
|
||||||
|
天葬
|
||||||
|
车臣
|
||||||
|
达赖
|
||||||
|
功法
|
||||||
|
讲法
|
||||||
|
基督
|
||||||
|
基督教
|
||||||
|
护法
|
||||||
|
回教
|
||||||
|
教徒
|
||||||
|
功友
|
||||||
|
大师
|
||||||
|
达赖喇嘛
|
||||||
|
虹志
|
||||||
|
鸿志
|
||||||
|
洪传
|
||||||
|
贯通两极法
|
||||||
|
光祖
|
||||||
|
洪吟
|
||||||
|
洪哲胜
|
||||||
|
洪志
|
||||||
|
宏法
|
||||||
|
观世音
|
||||||
|
宏志
|
||||||
|
弘志
|
||||||
|
古兰经
|
||||||
|
红志
|
||||||
|
车库
|
||||||
|
经文
|
||||||
|
车仑
|
||||||
929
app/core/api/resources/sensitive/色情词库.txt
Normal file
929
app/core/api/resources/sensitive/色情词库.txt
Normal file
@@ -0,0 +1,929 @@
|
|||||||
|
爱女人
|
||||||
|
爱液
|
||||||
|
按摩棒
|
||||||
|
拔出来
|
||||||
|
爆草
|
||||||
|
包二奶
|
||||||
|
暴干
|
||||||
|
暴奸
|
||||||
|
暴乳
|
||||||
|
爆乳
|
||||||
|
暴淫
|
||||||
|
屄
|
||||||
|
被插
|
||||||
|
被操
|
||||||
|
被干
|
||||||
|
逼奸
|
||||||
|
仓井空
|
||||||
|
插暴
|
||||||
|
操逼
|
||||||
|
操黑
|
||||||
|
操烂
|
||||||
|
肏你
|
||||||
|
肏死
|
||||||
|
操死
|
||||||
|
操我
|
||||||
|
厕奴
|
||||||
|
插比
|
||||||
|
插b
|
||||||
|
插逼
|
||||||
|
插进
|
||||||
|
插你
|
||||||
|
插我
|
||||||
|
插阴
|
||||||
|
潮吹
|
||||||
|
潮喷
|
||||||
|
成人dv
|
||||||
|
成人电影
|
||||||
|
成人论坛
|
||||||
|
成人小说
|
||||||
|
成人电
|
||||||
|
成人电影
|
||||||
|
成人卡通
|
||||||
|
成人聊
|
||||||
|
成人片
|
||||||
|
成人视
|
||||||
|
成人图
|
||||||
|
成人文
|
||||||
|
成人小
|
||||||
|
成人电影
|
||||||
|
成人论坛
|
||||||
|
成人色情
|
||||||
|
成人网站
|
||||||
|
成人文学
|
||||||
|
成人小说
|
||||||
|
艳情小说
|
||||||
|
成人游戏
|
||||||
|
吃精
|
||||||
|
赤裸
|
||||||
|
抽插
|
||||||
|
扌由插
|
||||||
|
抽一插
|
||||||
|
春药
|
||||||
|
大波
|
||||||
|
大力抽送
|
||||||
|
大乳
|
||||||
|
荡妇
|
||||||
|
荡女
|
||||||
|
盗撮
|
||||||
|
多人轮
|
||||||
|
发浪
|
||||||
|
放尿
|
||||||
|
肥逼
|
||||||
|
粉穴
|
||||||
|
封面女郎
|
||||||
|
风月大陆
|
||||||
|
干死你
|
||||||
|
干穴
|
||||||
|
肛交
|
||||||
|
肛门
|
||||||
|
龟头
|
||||||
|
裹本
|
||||||
|
国产av
|
||||||
|
好嫩
|
||||||
|
豪乳
|
||||||
|
黑逼
|
||||||
|
后庭
|
||||||
|
后穴
|
||||||
|
虎骑
|
||||||
|
花花公子
|
||||||
|
换妻俱乐部
|
||||||
|
黄片
|
||||||
|
几吧
|
||||||
|
鸡吧
|
||||||
|
鸡巴
|
||||||
|
鸡奸
|
||||||
|
寂寞男
|
||||||
|
寂寞女
|
||||||
|
妓女
|
||||||
|
激情
|
||||||
|
集体淫
|
||||||
|
奸情
|
||||||
|
叫床
|
||||||
|
脚交
|
||||||
|
金鳞岂是池中物
|
||||||
|
金麟岂是池中物
|
||||||
|
精液
|
||||||
|
就去日
|
||||||
|
巨屌
|
||||||
|
菊花洞
|
||||||
|
菊门
|
||||||
|
巨奶
|
||||||
|
巨乳
|
||||||
|
菊穴
|
||||||
|
开苞
|
||||||
|
口爆
|
||||||
|
口活
|
||||||
|
口交
|
||||||
|
口射
|
||||||
|
口淫
|
||||||
|
裤袜
|
||||||
|
狂操
|
||||||
|
狂插
|
||||||
|
浪逼
|
||||||
|
浪妇
|
||||||
|
浪叫
|
||||||
|
浪女
|
||||||
|
狼友
|
||||||
|
聊性
|
||||||
|
流淫
|
||||||
|
铃木麻
|
||||||
|
凌辱
|
||||||
|
漏乳
|
||||||
|
露b
|
||||||
|
乱交
|
||||||
|
乱伦
|
||||||
|
轮暴
|
||||||
|
轮操
|
||||||
|
轮奸
|
||||||
|
裸陪
|
||||||
|
买春
|
||||||
|
美逼
|
||||||
|
美少妇
|
||||||
|
美乳
|
||||||
|
美腿
|
||||||
|
美穴
|
||||||
|
美幼
|
||||||
|
秘唇
|
||||||
|
迷奸
|
||||||
|
密穴
|
||||||
|
蜜穴
|
||||||
|
蜜液
|
||||||
|
摸奶
|
||||||
|
摸胸
|
||||||
|
母奸
|
||||||
|
奈美
|
||||||
|
奶子
|
||||||
|
男奴
|
||||||
|
内射
|
||||||
|
嫩逼
|
||||||
|
嫩女
|
||||||
|
嫩穴
|
||||||
|
捏弄
|
||||||
|
女优
|
||||||
|
炮友
|
||||||
|
砲友
|
||||||
|
喷精
|
||||||
|
屁眼
|
||||||
|
品香堂
|
||||||
|
前凸后翘
|
||||||
|
强jian
|
||||||
|
强暴
|
||||||
|
强奸处女
|
||||||
|
情趣用品
|
||||||
|
情色
|
||||||
|
拳交
|
||||||
|
全裸
|
||||||
|
群交
|
||||||
|
惹火身材
|
||||||
|
人妻
|
||||||
|
人兽
|
||||||
|
日逼
|
||||||
|
日烂
|
||||||
|
肉棒
|
||||||
|
肉逼
|
||||||
|
肉唇
|
||||||
|
肉洞
|
||||||
|
肉缝
|
||||||
|
肉棍
|
||||||
|
肉茎
|
||||||
|
肉具
|
||||||
|
揉乳
|
||||||
|
肉穴
|
||||||
|
肉欲
|
||||||
|
乳爆
|
||||||
|
乳房
|
||||||
|
乳沟
|
||||||
|
乳交
|
||||||
|
乳头
|
||||||
|
三级片
|
||||||
|
骚逼
|
||||||
|
骚比
|
||||||
|
骚女
|
||||||
|
骚水
|
||||||
|
骚穴
|
||||||
|
色逼
|
||||||
|
色界
|
||||||
|
色猫
|
||||||
|
色盟
|
||||||
|
色情网站
|
||||||
|
色区
|
||||||
|
色色
|
||||||
|
色诱
|
||||||
|
色欲
|
||||||
|
色b
|
||||||
|
少年阿宾
|
||||||
|
少修正
|
||||||
|
射爽
|
||||||
|
射颜
|
||||||
|
食精
|
||||||
|
释欲
|
||||||
|
兽奸
|
||||||
|
兽交
|
||||||
|
手淫
|
||||||
|
兽欲
|
||||||
|
熟妇
|
||||||
|
熟母
|
||||||
|
熟女
|
||||||
|
爽片
|
||||||
|
爽死我了
|
||||||
|
双臀
|
||||||
|
死逼
|
||||||
|
丝袜
|
||||||
|
丝诱
|
||||||
|
松岛枫
|
||||||
|
酥痒
|
||||||
|
汤加丽
|
||||||
|
套弄
|
||||||
|
体奸
|
||||||
|
体位
|
||||||
|
舔脚
|
||||||
|
舔阴
|
||||||
|
调教
|
||||||
|
偷欢
|
||||||
|
偷拍
|
||||||
|
推油
|
||||||
|
脱内裤
|
||||||
|
文做
|
||||||
|
我就色
|
||||||
|
无码
|
||||||
|
舞女
|
||||||
|
无修正
|
||||||
|
吸精
|
||||||
|
夏川纯
|
||||||
|
相奸
|
||||||
|
小逼
|
||||||
|
校鸡
|
||||||
|
小穴
|
||||||
|
小xue
|
||||||
|
写真
|
||||||
|
性感妖娆
|
||||||
|
性感诱惑
|
||||||
|
性虎
|
||||||
|
性饥渴
|
||||||
|
性技巧
|
||||||
|
性交
|
||||||
|
性奴
|
||||||
|
性虐
|
||||||
|
性息
|
||||||
|
性欲
|
||||||
|
胸推
|
||||||
|
穴口
|
||||||
|
学生妹
|
||||||
|
穴图
|
||||||
|
亚情
|
||||||
|
颜射
|
||||||
|
阳具
|
||||||
|
杨思敏
|
||||||
|
要射了
|
||||||
|
夜勤病栋
|
||||||
|
一本道
|
||||||
|
一夜欢
|
||||||
|
一夜情
|
||||||
|
一ye情
|
||||||
|
阴部
|
||||||
|
淫虫
|
||||||
|
阴唇
|
||||||
|
淫荡
|
||||||
|
阴道
|
||||||
|
淫电影
|
||||||
|
阴阜
|
||||||
|
淫妇
|
||||||
|
淫河
|
||||||
|
阴核
|
||||||
|
阴户
|
||||||
|
淫贱
|
||||||
|
淫叫
|
||||||
|
淫教师
|
||||||
|
阴茎
|
||||||
|
阴精
|
||||||
|
淫浪
|
||||||
|
淫媚
|
||||||
|
淫糜
|
||||||
|
淫魔
|
||||||
|
淫母
|
||||||
|
淫女
|
||||||
|
淫虐
|
||||||
|
淫妻
|
||||||
|
淫情
|
||||||
|
淫色
|
||||||
|
淫声浪语
|
||||||
|
淫兽学园
|
||||||
|
淫书
|
||||||
|
淫术炼金士
|
||||||
|
淫水
|
||||||
|
淫娃
|
||||||
|
淫威
|
||||||
|
淫亵
|
||||||
|
淫样
|
||||||
|
淫液
|
||||||
|
淫照
|
||||||
|
阴b
|
||||||
|
应召
|
||||||
|
幼交
|
||||||
|
幼男
|
||||||
|
幼女
|
||||||
|
欲火
|
||||||
|
欲女
|
||||||
|
玉女心经
|
||||||
|
玉蒲团
|
||||||
|
玉乳
|
||||||
|
欲仙欲死
|
||||||
|
玉穴
|
||||||
|
援交
|
||||||
|
原味内衣
|
||||||
|
援助交际
|
||||||
|
张筱雨
|
||||||
|
招鸡
|
||||||
|
招妓
|
||||||
|
中年美妇
|
||||||
|
抓胸
|
||||||
|
自拍
|
||||||
|
自慰
|
||||||
|
作爱
|
||||||
|
18禁
|
||||||
|
99bb
|
||||||
|
a4u
|
||||||
|
a4y
|
||||||
|
adult
|
||||||
|
amateur
|
||||||
|
anal
|
||||||
|
a片
|
||||||
|
fuck
|
||||||
|
gay片
|
||||||
|
g点
|
||||||
|
g片
|
||||||
|
hardcore
|
||||||
|
h动画
|
||||||
|
h动漫
|
||||||
|
incest
|
||||||
|
porn
|
||||||
|
secom
|
||||||
|
sexinsex
|
||||||
|
sm女王
|
||||||
|
xiao77
|
||||||
|
xing伴侣
|
||||||
|
tokyohot
|
||||||
|
yin荡
|
||||||
|
贱人
|
||||||
|
装b
|
||||||
|
大sb
|
||||||
|
傻逼
|
||||||
|
傻b
|
||||||
|
煞逼
|
||||||
|
煞笔
|
||||||
|
刹笔
|
||||||
|
傻比
|
||||||
|
沙比
|
||||||
|
欠干
|
||||||
|
婊子养的
|
||||||
|
我日你
|
||||||
|
我操
|
||||||
|
我草
|
||||||
|
卧艹
|
||||||
|
卧槽
|
||||||
|
爆你菊
|
||||||
|
艹你
|
||||||
|
cao你
|
||||||
|
你他妈
|
||||||
|
真他妈
|
||||||
|
别他吗
|
||||||
|
草你吗
|
||||||
|
草你丫
|
||||||
|
操你妈
|
||||||
|
擦你妈
|
||||||
|
操你娘
|
||||||
|
操他妈
|
||||||
|
日你妈
|
||||||
|
干你妈
|
||||||
|
干你娘
|
||||||
|
娘西皮
|
||||||
|
狗操
|
||||||
|
狗草
|
||||||
|
狗杂种
|
||||||
|
狗日的
|
||||||
|
操你祖宗
|
||||||
|
操你全家
|
||||||
|
操你大爷
|
||||||
|
妈逼
|
||||||
|
你麻痹
|
||||||
|
麻痹的
|
||||||
|
妈了个逼
|
||||||
|
马勒
|
||||||
|
狗娘养
|
||||||
|
贱比
|
||||||
|
贱b
|
||||||
|
下贱
|
||||||
|
死全家
|
||||||
|
全家死光
|
||||||
|
全家不得好死
|
||||||
|
全家死绝
|
||||||
|
白痴
|
||||||
|
无耻
|
||||||
|
sb
|
||||||
|
杀b
|
||||||
|
你吗b
|
||||||
|
你妈的
|
||||||
|
婊子
|
||||||
|
贱货
|
||||||
|
人渣
|
||||||
|
混蛋
|
||||||
|
媚外
|
||||||
|
和弦
|
||||||
|
兼职
|
||||||
|
限量
|
||||||
|
铃声
|
||||||
|
性伴侣
|
||||||
|
男公关
|
||||||
|
火辣
|
||||||
|
精子
|
||||||
|
射精
|
||||||
|
诱奸
|
||||||
|
强奸
|
||||||
|
做爱
|
||||||
|
性爱
|
||||||
|
发生关系
|
||||||
|
按摩
|
||||||
|
快感
|
||||||
|
处男
|
||||||
|
猛男
|
||||||
|
少妇
|
||||||
|
屌
|
||||||
|
屁股
|
||||||
|
下体
|
||||||
|
a片
|
||||||
|
内裤
|
||||||
|
浑圆
|
||||||
|
咪咪
|
||||||
|
发情
|
||||||
|
刺激
|
||||||
|
白嫩
|
||||||
|
粉嫩
|
||||||
|
兽性
|
||||||
|
风骚
|
||||||
|
呻吟
|
||||||
|
sm
|
||||||
|
阉割
|
||||||
|
高潮
|
||||||
|
裸露
|
||||||
|
不穿
|
||||||
|
一丝不挂
|
||||||
|
脱光
|
||||||
|
干你
|
||||||
|
干死
|
||||||
|
我干
|
||||||
|
裙中性运动
|
||||||
|
乱奸
|
||||||
|
乱伦
|
||||||
|
乱伦类
|
||||||
|
乱伦小
|
||||||
|
伦理大
|
||||||
|
伦理电影
|
||||||
|
伦理毛
|
||||||
|
伦理片
|
||||||
|
裸聊
|
||||||
|
裸聊网
|
||||||
|
裸体写真
|
||||||
|
裸舞视
|
||||||
|
裸照
|
||||||
|
美女裸体
|
||||||
|
美女写真
|
||||||
|
美女上门
|
||||||
|
美艳少妇
|
||||||
|
妹按摩
|
||||||
|
妹上门
|
||||||
|
迷幻药
|
||||||
|
迷幻藥
|
||||||
|
迷昏口
|
||||||
|
迷昏药
|
||||||
|
迷昏藥
|
||||||
|
迷魂香
|
||||||
|
迷魂药
|
||||||
|
迷魂藥
|
||||||
|
迷奸粉
|
||||||
|
迷奸药
|
||||||
|
迷情粉
|
||||||
|
迷情水
|
||||||
|
迷情药
|
||||||
|
迷药
|
||||||
|
迷藥
|
||||||
|
谜奸药
|
||||||
|
骚妇
|
||||||
|
骚货
|
||||||
|
骚浪
|
||||||
|
骚女
|
||||||
|
骚嘴
|
||||||
|
色电影
|
||||||
|
色妹妹
|
||||||
|
色情表演
|
||||||
|
色情电影
|
||||||
|
色情服务
|
||||||
|
色情图片
|
||||||
|
色情小说
|
||||||
|
色情影片
|
||||||
|
色情表演
|
||||||
|
色情电影
|
||||||
|
色情服务
|
||||||
|
色情片
|
||||||
|
色视频
|
||||||
|
色小说
|
||||||
|
性伴侣
|
||||||
|
性服务
|
||||||
|
性福情
|
||||||
|
性感少
|
||||||
|
性伙伴
|
||||||
|
性交
|
||||||
|
性交视频
|
||||||
|
性交图片
|
||||||
|
性奴
|
||||||
|
性奴集中营
|
||||||
|
性虐
|
||||||
|
阴唇
|
||||||
|
阴道
|
||||||
|
阴蒂
|
||||||
|
阴户
|
||||||
|
阴间来电
|
||||||
|
阴茎
|
||||||
|
阴茎增大
|
||||||
|
阴茎助勃
|
||||||
|
阴毛
|
||||||
|
陰唇
|
||||||
|
陰道
|
||||||
|
陰戶
|
||||||
|
淫荡
|
||||||
|
淫荡美女
|
||||||
|
淫荡视频
|
||||||
|
淫荡照片
|
||||||
|
淫乱
|
||||||
|
淫靡
|
||||||
|
淫魔
|
||||||
|
淫魔舞
|
||||||
|
淫女
|
||||||
|
淫情女
|
||||||
|
淫肉
|
||||||
|
淫騷妹
|
||||||
|
淫兽
|
||||||
|
淫兽学
|
||||||
|
淫水
|
||||||
|
淫穴
|
||||||
|
morphine
|
||||||
|
摇头丸
|
||||||
|
迷药
|
||||||
|
乖乖粉
|
||||||
|
narcotic
|
||||||
|
麻醉药
|
||||||
|
精神药品
|
||||||
|
爱女人
|
||||||
|
爱液
|
||||||
|
按摩棒
|
||||||
|
拔出来
|
||||||
|
爆草
|
||||||
|
包二奶
|
||||||
|
暴干
|
||||||
|
暴奸
|
||||||
|
暴乳
|
||||||
|
爆乳
|
||||||
|
暴淫
|
||||||
|
屄
|
||||||
|
被操
|
||||||
|
被插
|
||||||
|
被干
|
||||||
|
逼奸
|
||||||
|
仓井空
|
||||||
|
插暴
|
||||||
|
操逼
|
||||||
|
操黑
|
||||||
|
操烂
|
||||||
|
肏你
|
||||||
|
肏死
|
||||||
|
操死
|
||||||
|
操我
|
||||||
|
厕奴
|
||||||
|
插比
|
||||||
|
插b
|
||||||
|
插逼
|
||||||
|
插进
|
||||||
|
插你
|
||||||
|
插我
|
||||||
|
插阴
|
||||||
|
潮吹
|
||||||
|
潮喷
|
||||||
|
成人电影
|
||||||
|
成人论坛
|
||||||
|
成人色情
|
||||||
|
成人网站
|
||||||
|
成人文学
|
||||||
|
成人小说
|
||||||
|
艳情小说
|
||||||
|
成人游戏
|
||||||
|
吃精
|
||||||
|
赤裸
|
||||||
|
抽插
|
||||||
|
扌由插
|
||||||
|
抽一插
|
||||||
|
春药
|
||||||
|
大波
|
||||||
|
大力抽送
|
||||||
|
大乳
|
||||||
|
荡妇
|
||||||
|
荡女
|
||||||
|
盗撮
|
||||||
|
多人轮
|
||||||
|
发浪
|
||||||
|
放尿
|
||||||
|
肥逼
|
||||||
|
粉穴
|
||||||
|
封面女郎
|
||||||
|
风月大陆
|
||||||
|
干死你
|
||||||
|
干穴
|
||||||
|
肛交
|
||||||
|
肛门
|
||||||
|
龟头
|
||||||
|
裹本
|
||||||
|
国产av
|
||||||
|
好嫩
|
||||||
|
豪乳
|
||||||
|
黑逼
|
||||||
|
后庭
|
||||||
|
后穴
|
||||||
|
虎骑
|
||||||
|
花花公子
|
||||||
|
换妻俱乐部
|
||||||
|
黄片
|
||||||
|
几吧
|
||||||
|
鸡吧
|
||||||
|
鸡巴
|
||||||
|
鸡奸
|
||||||
|
寂寞男
|
||||||
|
寂寞女
|
||||||
|
妓女
|
||||||
|
激情
|
||||||
|
集体淫
|
||||||
|
奸情
|
||||||
|
叫床
|
||||||
|
脚交
|
||||||
|
金鳞岂是池中物
|
||||||
|
金麟岂是池中物
|
||||||
|
精液
|
||||||
|
就去日
|
||||||
|
巨屌
|
||||||
|
菊花洞
|
||||||
|
菊门
|
||||||
|
巨奶
|
||||||
|
巨乳
|
||||||
|
菊穴
|
||||||
|
开苞
|
||||||
|
口爆
|
||||||
|
口活
|
||||||
|
口交
|
||||||
|
口射
|
||||||
|
口淫
|
||||||
|
裤袜
|
||||||
|
狂操
|
||||||
|
狂插
|
||||||
|
浪逼
|
||||||
|
浪妇
|
||||||
|
浪叫
|
||||||
|
浪女
|
||||||
|
狼友
|
||||||
|
聊性
|
||||||
|
流淫
|
||||||
|
铃木麻
|
||||||
|
凌辱
|
||||||
|
漏乳
|
||||||
|
露b
|
||||||
|
乱交
|
||||||
|
乱伦
|
||||||
|
轮暴
|
||||||
|
轮操
|
||||||
|
轮奸
|
||||||
|
裸陪
|
||||||
|
买春
|
||||||
|
美逼
|
||||||
|
美少妇
|
||||||
|
美乳
|
||||||
|
美腿
|
||||||
|
美穴
|
||||||
|
美幼
|
||||||
|
秘唇
|
||||||
|
迷奸
|
||||||
|
密穴
|
||||||
|
蜜穴
|
||||||
|
蜜液
|
||||||
|
摸奶
|
||||||
|
摸胸
|
||||||
|
母奸
|
||||||
|
奈美
|
||||||
|
奶子
|
||||||
|
男奴
|
||||||
|
内射
|
||||||
|
嫩逼
|
||||||
|
嫩女
|
||||||
|
嫩穴
|
||||||
|
捏弄
|
||||||
|
女优
|
||||||
|
炮友
|
||||||
|
砲友
|
||||||
|
喷精
|
||||||
|
屁眼
|
||||||
|
品香堂
|
||||||
|
前凸后翘
|
||||||
|
强jian
|
||||||
|
强暴
|
||||||
|
强奸处女
|
||||||
|
情趣用品
|
||||||
|
情色
|
||||||
|
拳交
|
||||||
|
全裸
|
||||||
|
群交
|
||||||
|
惹火身材
|
||||||
|
人妻
|
||||||
|
人兽
|
||||||
|
日逼
|
||||||
|
日烂
|
||||||
|
肉棒
|
||||||
|
肉逼
|
||||||
|
肉唇
|
||||||
|
肉洞
|
||||||
|
肉缝
|
||||||
|
肉棍
|
||||||
|
肉茎
|
||||||
|
肉具
|
||||||
|
揉乳
|
||||||
|
肉穴
|
||||||
|
肉欲
|
||||||
|
乳爆
|
||||||
|
乳房
|
||||||
|
乳沟
|
||||||
|
乳交
|
||||||
|
乳头
|
||||||
|
三级片
|
||||||
|
骚逼
|
||||||
|
骚比
|
||||||
|
骚女
|
||||||
|
骚水
|
||||||
|
骚穴
|
||||||
|
色逼
|
||||||
|
色界
|
||||||
|
色猫
|
||||||
|
色盟
|
||||||
|
色情网站
|
||||||
|
色区
|
||||||
|
色色
|
||||||
|
色诱
|
||||||
|
色欲
|
||||||
|
色b
|
||||||
|
少年阿宾
|
||||||
|
少修正
|
||||||
|
射爽
|
||||||
|
射颜
|
||||||
|
食精
|
||||||
|
释欲
|
||||||
|
兽奸
|
||||||
|
兽交
|
||||||
|
手淫
|
||||||
|
兽欲
|
||||||
|
熟妇
|
||||||
|
熟母
|
||||||
|
熟女
|
||||||
|
爽片
|
||||||
|
爽死我了
|
||||||
|
双臀
|
||||||
|
死逼
|
||||||
|
丝袜
|
||||||
|
丝诱
|
||||||
|
松岛枫
|
||||||
|
酥痒
|
||||||
|
汤加丽
|
||||||
|
套弄
|
||||||
|
体奸
|
||||||
|
体位
|
||||||
|
舔脚
|
||||||
|
舔阴
|
||||||
|
调教
|
||||||
|
偷欢
|
||||||
|
偷拍
|
||||||
|
推油
|
||||||
|
脱内裤
|
||||||
|
文做
|
||||||
|
我就色
|
||||||
|
无码
|
||||||
|
舞女
|
||||||
|
无修正
|
||||||
|
吸精
|
||||||
|
夏川纯
|
||||||
|
相奸
|
||||||
|
小逼
|
||||||
|
校鸡
|
||||||
|
小穴
|
||||||
|
小xue
|
||||||
|
写真
|
||||||
|
性感妖娆
|
||||||
|
性感诱惑
|
||||||
|
性虎
|
||||||
|
性饥渴
|
||||||
|
性技巧
|
||||||
|
性交
|
||||||
|
性奴
|
||||||
|
性虐
|
||||||
|
性息
|
||||||
|
性欲
|
||||||
|
胸推
|
||||||
|
穴口
|
||||||
|
学生妹
|
||||||
|
穴图
|
||||||
|
亚情
|
||||||
|
颜射
|
||||||
|
阳具
|
||||||
|
杨思敏
|
||||||
|
要射了
|
||||||
|
夜勤病栋
|
||||||
|
一本道
|
||||||
|
一夜欢
|
||||||
|
一夜情
|
||||||
|
一ye情
|
||||||
|
阴部
|
||||||
|
淫虫
|
||||||
|
阴唇
|
||||||
|
淫荡
|
||||||
|
阴道
|
||||||
|
淫电影
|
||||||
|
阴阜
|
||||||
|
淫妇
|
||||||
|
淫河
|
||||||
|
阴核
|
||||||
|
阴户
|
||||||
|
淫贱
|
||||||
|
淫叫
|
||||||
|
淫教师
|
||||||
|
阴茎
|
||||||
|
阴精
|
||||||
|
淫浪
|
||||||
|
淫媚
|
||||||
|
淫糜
|
||||||
|
淫魔
|
||||||
|
淫母
|
||||||
|
淫女
|
||||||
|
淫虐
|
||||||
|
淫妻
|
||||||
|
淫情
|
||||||
|
淫色
|
||||||
|
淫声浪语
|
||||||
|
淫兽学园
|
||||||
|
淫书
|
||||||
|
淫术炼金士
|
||||||
|
淫水
|
||||||
|
淫娃
|
||||||
|
淫威
|
||||||
|
淫亵
|
||||||
|
淫样
|
||||||
|
淫液
|
||||||
|
淫照
|
||||||
|
阴b
|
||||||
|
应召
|
||||||
|
幼交
|
||||||
|
幼男
|
||||||
|
幼女
|
||||||
|
欲火
|
||||||
|
欲女
|
||||||
|
玉女心经
|
||||||
|
玉蒲团
|
||||||
|
玉乳
|
||||||
|
欲仙欲死
|
||||||
|
玉穴
|
||||||
|
援交
|
||||||
|
原味内衣
|
||||||
|
援助交际
|
||||||
|
张筱雨
|
||||||
|
招鸡
|
||||||
|
招妓
|
||||||
|
中年美妇
|
||||||
|
抓胸
|
||||||
|
自拍
|
||||||
|
自慰
|
||||||
|
作爱
|
||||||
|
18禁
|
||||||
|
99bb
|
||||||
|
a4u
|
||||||
|
a4y
|
||||||
|
adult
|
||||||
|
amateur
|
||||||
|
anal
|
||||||
|
a片
|
||||||
|
fuck
|
||||||
|
gay片
|
||||||
|
g点
|
||||||
|
g片
|
||||||
|
hardcore
|
||||||
|
h动画
|
||||||
|
h动漫
|
||||||
|
incest
|
||||||
|
porn
|
||||||
|
secom
|
||||||
|
sexinsex
|
||||||
|
sm女王
|
||||||
|
xiao77
|
||||||
|
xing伴侣
|
||||||
|
tokyohot
|
||||||
|
yin荡
|
||||||
1064
app/core/api/resources/sensitive/补充词库.txt
Normal file
1064
app/core/api/resources/sensitive/补充词库.txt
Normal file
File diff suppressed because it is too large
Load Diff
244
app/core/api/resources/sensitive/贪腐词库.txt
Normal file
244
app/core/api/resources/sensitive/贪腐词库.txt
Normal file
@@ -0,0 +1,244 @@
|
|||||||
|
腐败
|
||||||
|
贪污
|
||||||
|
gcd
|
||||||
|
共贪党
|
||||||
|
gongchandang
|
||||||
|
阿共
|
||||||
|
共一产一党
|
||||||
|
产党共
|
||||||
|
公产党
|
||||||
|
工产党
|
||||||
|
共c党
|
||||||
|
共x党
|
||||||
|
供产
|
||||||
|
共铲
|
||||||
|
共惨
|
||||||
|
供铲党
|
||||||
|
供铲谠
|
||||||
|
供铲裆
|
||||||
|
共残党
|
||||||
|
共残主义
|
||||||
|
共产主义的幽灵
|
||||||
|
拱铲
|
||||||
|
老共
|
||||||
|
中珙
|
||||||
|
中gong
|
||||||
|
gc党
|
||||||
|
贡挡
|
||||||
|
gong党
|
||||||
|
g产
|
||||||
|
狗产蛋
|
||||||
|
共残裆
|
||||||
|
恶党
|
||||||
|
邪党
|
||||||
|
共产专制
|
||||||
|
共产王朝
|
||||||
|
裆中央
|
||||||
|
土共
|
||||||
|
土g
|
||||||
|
共狗
|
||||||
|
g匪
|
||||||
|
共匪
|
||||||
|
仇共
|
||||||
|
共产党腐败
|
||||||
|
共产党专制
|
||||||
|
共产党的报应
|
||||||
|
共产党的末日
|
||||||
|
共产党专制
|
||||||
|
communistparty
|
||||||
|
症腐
|
||||||
|
政腐
|
||||||
|
政付
|
||||||
|
正府
|
||||||
|
政俯
|
||||||
|
政f
|
||||||
|
zhengfu
|
||||||
|
政zhi
|
||||||
|
挡中央
|
||||||
|
档中央
|
||||||
|
中国zf
|
||||||
|
中央zf
|
||||||
|
国wu院
|
||||||
|
中华帝国
|
||||||
|
gong和
|
||||||
|
大陆官方
|
||||||
|
北京政权
|
||||||
|
刘志军
|
||||||
|
张曙
|
||||||
|
刘志军
|
||||||
|
买别墅
|
||||||
|
玩女人
|
||||||
|
贪20亿
|
||||||
|
许宗衡
|
||||||
|
贪财物
|
||||||
|
李启红
|
||||||
|
贪腐财富
|
||||||
|
落马
|
||||||
|
高官名单
|
||||||
|
陈希同
|
||||||
|
贪污
|
||||||
|
玩忽职守
|
||||||
|
有期徒刑
|
||||||
|
陈良宇
|
||||||
|
受贿罪
|
||||||
|
滥用职权
|
||||||
|
有期徒刑
|
||||||
|
没收个人财产
|
||||||
|
成克杰
|
||||||
|
死刑
|
||||||
|
程维高
|
||||||
|
严重违纪
|
||||||
|
开除党籍
|
||||||
|
撤销职务
|
||||||
|
刘方仁
|
||||||
|
无期徒刑
|
||||||
|
倪献策
|
||||||
|
徇私舞弊
|
||||||
|
梁湘
|
||||||
|
以权谋私
|
||||||
|
撤职。
|
||||||
|
李嘉廷
|
||||||
|
死刑缓期
|
||||||
|
张国光
|
||||||
|
韩桂芝
|
||||||
|
宋平顺
|
||||||
|
自杀
|
||||||
|
黄瑶
|
||||||
|
双规
|
||||||
|
陈绍基
|
||||||
|
判处死刑
|
||||||
|
剥夺政治权利终身
|
||||||
|
没收个人全部财产
|
||||||
|
石兆彬
|
||||||
|
侯伍杰
|
||||||
|
王昭耀
|
||||||
|
剥夺政治权利
|
||||||
|
杜世成
|
||||||
|
沈图
|
||||||
|
叛逃美国
|
||||||
|
罗云光
|
||||||
|
起诉
|
||||||
|
张辛泰
|
||||||
|
李效时
|
||||||
|
边少斌
|
||||||
|
徐鹏航
|
||||||
|
违纪
|
||||||
|
收受股票
|
||||||
|
王乐毅
|
||||||
|
李纪周
|
||||||
|
郑光迪
|
||||||
|
田凤山。
|
||||||
|
邱晓华
|
||||||
|
郑筱萸
|
||||||
|
孙鹤龄
|
||||||
|
蓝田造假案
|
||||||
|
于幼军
|
||||||
|
留党察看
|
||||||
|
何洪达
|
||||||
|
朱志刚
|
||||||
|
杨汇泉
|
||||||
|
官僚主义
|
||||||
|
徐炳松
|
||||||
|
托乎提沙比尔
|
||||||
|
王宝森
|
||||||
|
经济犯罪
|
||||||
|
畏罪自杀。
|
||||||
|
陈水文
|
||||||
|
孟庆平
|
||||||
|
胡长清
|
||||||
|
朱川
|
||||||
|
许运鸿
|
||||||
|
丘广钟
|
||||||
|
刘知炳
|
||||||
|
丛福奎
|
||||||
|
王怀忠
|
||||||
|
巨额财产
|
||||||
|
来源不明罪
|
||||||
|
李达昌
|
||||||
|
刘长贵
|
||||||
|
王钟麓
|
||||||
|
阿曼哈吉
|
||||||
|
付晓光
|
||||||
|
自动辞
|
||||||
|
刘克田
|
||||||
|
吕德彬
|
||||||
|
刘维明
|
||||||
|
双开
|
||||||
|
刘志华
|
||||||
|
孙瑜
|
||||||
|
李堂堂
|
||||||
|
韩福才 青海
|
||||||
|
欧阳德 广东
|
||||||
|
韦泽芳 海南
|
||||||
|
铁英 北京
|
||||||
|
辛业江 海南
|
||||||
|
于飞 广东
|
||||||
|
姜殿武 河北
|
||||||
|
秦昌典 重庆
|
||||||
|
范广举 黑龙江
|
||||||
|
张凯广东
|
||||||
|
王厚宏海南
|
||||||
|
陈维席安徽
|
||||||
|
王有杰河南
|
||||||
|
王武龙江苏
|
||||||
|
米凤君吉林
|
||||||
|
宋勇辽宁
|
||||||
|
张家盟浙江
|
||||||
|
马烈孙宁夏
|
||||||
|
黄纪诚北京
|
||||||
|
常征贵州
|
||||||
|
王式惠重庆
|
||||||
|
周文吉
|
||||||
|
王庆录广西
|
||||||
|
潘广田山东
|
||||||
|
朱作勇甘肃
|
||||||
|
孙善武河南
|
||||||
|
宋晨光江西
|
||||||
|
梁春禄广西政协
|
||||||
|
鲁家善 中国交通
|
||||||
|
金德琴 中信
|
||||||
|
李大强 神华
|
||||||
|
吴文英 纺织
|
||||||
|
查克明 华能
|
||||||
|
朱小华光大
|
||||||
|
高严 国家电力
|
||||||
|
王雪冰
|
||||||
|
林孔兴
|
||||||
|
刘金宝
|
||||||
|
张恩照
|
||||||
|
陈同海
|
||||||
|
康日新
|
||||||
|
王益
|
||||||
|
张春江
|
||||||
|
洪清源
|
||||||
|
平义杰
|
||||||
|
李恩潮
|
||||||
|
孙小虹
|
||||||
|
陈忠
|
||||||
|
慕绥新
|
||||||
|
田凤岐
|
||||||
|
麦崇楷
|
||||||
|
柴王群
|
||||||
|
吴振汉
|
||||||
|
张秋阳
|
||||||
|
徐衍东
|
||||||
|
徐发 黑龙江
|
||||||
|
张宗海
|
||||||
|
丁鑫发
|
||||||
|
徐国健
|
||||||
|
李宝金
|
||||||
|
单平
|
||||||
|
段义和
|
||||||
|
荆福生
|
||||||
|
陈少勇
|
||||||
|
黄松有
|
||||||
|
皮黔生
|
||||||
|
王华元
|
||||||
|
王守业
|
||||||
|
刘连昆
|
||||||
|
孙晋美
|
||||||
|
邵松高
|
||||||
|
肖怀枢
|
||||||
|
刘广智 空军
|
||||||
|
姬胜德 总参
|
||||||
|
廖伯年 北京
|
||||||
53308
app/core/api/resources/sensitive/零时-Tencent.txt
Normal file
53308
app/core/api/resources/sensitive/零时-Tencent.txt
Normal file
File diff suppressed because it is too large
Load Diff
@@ -1,16 +0,0 @@
|
|||||||
package middleware
|
|
||||||
|
|
||||||
import (
|
|
||||||
"net/http"
|
|
||||||
|
|
||||||
"golang.org/x/text/language"
|
|
||||||
|
|
||||||
"schisandra-album-cloud-microservices/common/i18n"
|
|
||||||
)
|
|
||||||
|
|
||||||
func I18nMiddleware(next http.HandlerFunc) http.HandlerFunc {
|
|
||||||
return i18n.NewI18nMiddleware([]language.Tag{
|
|
||||||
language.English,
|
|
||||||
language.Chinese,
|
|
||||||
}, []string{"../../resources/language/active.en.toml", "../../resources/language/active.zh.toml"}).Handle(next)
|
|
||||||
}
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
package response
|
|
||||||
17
go.mod
17
go.mod
@@ -6,13 +6,12 @@ require (
|
|||||||
entgo.io/ent v0.14.1
|
entgo.io/ent v0.14.1
|
||||||
github.com/chenmingyong0423/go-mongox/v2 v2.0.0-beta1
|
github.com/chenmingyong0423/go-mongox/v2 v2.0.0-beta1
|
||||||
github.com/go-sql-driver/mysql v1.8.1
|
github.com/go-sql-driver/mysql v1.8.1
|
||||||
github.com/golang-jwt/jwt/v5 v5.2.1
|
|
||||||
github.com/nicksnyder/go-i18n/v2 v2.4.1
|
github.com/nicksnyder/go-i18n/v2 v2.4.1
|
||||||
github.com/pelletier/go-toml/v2 v2.2.2
|
github.com/pelletier/go-toml/v2 v2.2.2
|
||||||
github.com/zeromicro/go-zero v1.7.3
|
github.com/zeromicro/go-zero v1.7.3
|
||||||
go.mongodb.org/mongo-driver/v2 v2.0.0-beta2
|
go.mongodb.org/mongo-driver/v2 v2.0.0-beta2
|
||||||
golang.org/x/crypto v0.28.0
|
golang.org/x/crypto v0.28.0
|
||||||
golang.org/x/text v0.19.0
|
golang.org/x/text v0.20.0
|
||||||
google.golang.org/grpc v1.65.0
|
google.golang.org/grpc v1.65.0
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -22,11 +21,13 @@ require (
|
|||||||
github.com/agext/levenshtein v1.2.1 // indirect
|
github.com/agext/levenshtein v1.2.1 // indirect
|
||||||
github.com/apparentlymart/go-textseg/v13 v13.0.0 // indirect
|
github.com/apparentlymart/go-textseg/v13 v13.0.0 // indirect
|
||||||
github.com/beorn7/perks v1.0.1 // indirect
|
github.com/beorn7/perks v1.0.1 // indirect
|
||||||
|
github.com/ccpwcn/kgo v1.2.3 // indirect
|
||||||
github.com/cenkalti/backoff/v4 v4.3.0 // indirect
|
github.com/cenkalti/backoff/v4 v4.3.0 // indirect
|
||||||
github.com/cespare/xxhash/v2 v2.3.0 // indirect
|
github.com/cespare/xxhash/v2 v2.3.0 // indirect
|
||||||
github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect
|
github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect
|
||||||
github.com/fatih/color v1.17.0 // indirect
|
github.com/fatih/color v1.17.0 // indirect
|
||||||
github.com/gabriel-vasile/mimetype v1.4.3 // indirect
|
github.com/gabriel-vasile/mimetype v1.4.3 // indirect
|
||||||
|
github.com/go-bindata/go-bindata v3.1.2+incompatible // indirect
|
||||||
github.com/go-logr/logr v1.4.2 // indirect
|
github.com/go-logr/logr v1.4.2 // indirect
|
||||||
github.com/go-logr/stdr v1.2.2 // indirect
|
github.com/go-logr/stdr v1.2.2 // indirect
|
||||||
github.com/go-openapi/inflect v0.19.0 // indirect
|
github.com/go-openapi/inflect v0.19.0 // indirect
|
||||||
@@ -34,24 +35,33 @@ require (
|
|||||||
github.com/go-playground/universal-translator v0.18.1 // indirect
|
github.com/go-playground/universal-translator v0.18.1 // indirect
|
||||||
github.com/go-playground/validator/v10 v10.20.0 // indirect
|
github.com/go-playground/validator/v10 v10.20.0 // indirect
|
||||||
github.com/golang-jwt/jwt/v4 v4.5.0 // indirect
|
github.com/golang-jwt/jwt/v4 v4.5.0 // indirect
|
||||||
|
github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0 // indirect
|
||||||
github.com/golang/snappy v0.0.4 // indirect
|
github.com/golang/snappy v0.0.4 // indirect
|
||||||
github.com/google/go-cmp v0.6.0 // indirect
|
github.com/google/go-cmp v0.6.0 // indirect
|
||||||
github.com/google/uuid v1.6.0 // indirect
|
github.com/google/uuid v1.6.0 // indirect
|
||||||
|
github.com/gorilla/securecookie v1.1.1 // indirect
|
||||||
|
github.com/gorilla/sessions v1.2.0 // indirect
|
||||||
github.com/grpc-ecosystem/grpc-gateway/v2 v2.20.0 // indirect
|
github.com/grpc-ecosystem/grpc-gateway/v2 v2.20.0 // indirect
|
||||||
github.com/hashicorp/hcl/v2 v2.13.0 // indirect
|
github.com/hashicorp/hcl/v2 v2.13.0 // indirect
|
||||||
github.com/klauspost/compress v1.17.9 // indirect
|
github.com/klauspost/compress v1.17.9 // indirect
|
||||||
github.com/leodido/go-urn v1.4.0 // indirect
|
github.com/leodido/go-urn v1.4.0 // indirect
|
||||||
|
github.com/lionsoul2014/ip2region/binding/golang v0.0.0-20240510055607-89e20ab7b6c6 // indirect
|
||||||
github.com/mattn/go-colorable v0.1.13 // indirect
|
github.com/mattn/go-colorable v0.1.13 // indirect
|
||||||
github.com/mattn/go-isatty v0.0.20 // indirect
|
github.com/mattn/go-isatty v0.0.20 // indirect
|
||||||
|
github.com/mitchellh/go-homedir v1.1.0 // indirect
|
||||||
github.com/mitchellh/go-wordwrap v0.0.0-20150314170334-ad45545899c7 // indirect
|
github.com/mitchellh/go-wordwrap v0.0.0-20150314170334-ad45545899c7 // indirect
|
||||||
|
github.com/mssola/useragent v1.0.0 // indirect
|
||||||
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
|
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
|
||||||
github.com/openzipkin/zipkin-go v0.4.3 // indirect
|
github.com/openzipkin/zipkin-go v0.4.3 // indirect
|
||||||
github.com/prometheus/client_golang v1.20.5 // indirect
|
github.com/prometheus/client_golang v1.20.5 // indirect
|
||||||
github.com/prometheus/client_model v0.6.1 // indirect
|
github.com/prometheus/client_model v0.6.1 // indirect
|
||||||
github.com/prometheus/common v0.55.0 // indirect
|
github.com/prometheus/common v0.55.0 // indirect
|
||||||
github.com/prometheus/procfs v0.15.1 // indirect
|
github.com/prometheus/procfs v0.15.1 // indirect
|
||||||
|
github.com/rbcervilla/redisstore/v9 v9.0.0 // indirect
|
||||||
github.com/redis/go-redis/v9 v9.7.0 // indirect
|
github.com/redis/go-redis/v9 v9.7.0 // indirect
|
||||||
github.com/spaolacci/murmur3 v1.1.0 // indirect
|
github.com/spaolacci/murmur3 v1.1.0 // indirect
|
||||||
|
github.com/wenlng/go-captcha-assets v1.0.1 // indirect
|
||||||
|
github.com/wenlng/go-captcha/v2 v2.0.1 // indirect
|
||||||
github.com/xdg-go/pbkdf2 v1.0.0 // indirect
|
github.com/xdg-go/pbkdf2 v1.0.0 // indirect
|
||||||
github.com/xdg-go/scram v1.1.2 // indirect
|
github.com/xdg-go/scram v1.1.2 // indirect
|
||||||
github.com/xdg-go/stringprep v1.0.4 // indirect
|
github.com/xdg-go/stringprep v1.0.4 // indirect
|
||||||
@@ -69,9 +79,10 @@ require (
|
|||||||
go.opentelemetry.io/otel/trace v1.24.0 // indirect
|
go.opentelemetry.io/otel/trace v1.24.0 // indirect
|
||||||
go.opentelemetry.io/proto/otlp v1.3.1 // indirect
|
go.opentelemetry.io/proto/otlp v1.3.1 // indirect
|
||||||
go.uber.org/automaxprocs v1.6.0 // indirect
|
go.uber.org/automaxprocs v1.6.0 // indirect
|
||||||
|
golang.org/x/image v0.22.0 // indirect
|
||||||
golang.org/x/mod v0.20.0 // indirect
|
golang.org/x/mod v0.20.0 // indirect
|
||||||
golang.org/x/net v0.30.0 // indirect
|
golang.org/x/net v0.30.0 // indirect
|
||||||
golang.org/x/sync v0.8.0 // indirect
|
golang.org/x/sync v0.9.0 // indirect
|
||||||
golang.org/x/sys v0.26.0 // indirect
|
golang.org/x/sys v0.26.0 // indirect
|
||||||
google.golang.org/genproto/googleapis/api v0.0.0-20240711142825-46eb208f015d // indirect
|
google.golang.org/genproto/googleapis/api v0.0.0-20240711142825-46eb208f015d // indirect
|
||||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20240701130421-f6361c86f094 // indirect
|
google.golang.org/genproto/googleapis/rpc v0.0.0-20240701130421-f6361c86f094 // indirect
|
||||||
|
|||||||
51
go.sum
51
go.sum
@@ -22,6 +22,8 @@ github.com/bsm/ginkgo/v2 v2.12.0 h1:Ny8MWAHyOepLGlLKYmXG4IEkioBysk6GpaRTLC8zwWs=
|
|||||||
github.com/bsm/ginkgo/v2 v2.12.0/go.mod h1:SwYbGRRDovPVboqFv0tPTcG1sN61LM1Z4ARdbAV9g4c=
|
github.com/bsm/ginkgo/v2 v2.12.0/go.mod h1:SwYbGRRDovPVboqFv0tPTcG1sN61LM1Z4ARdbAV9g4c=
|
||||||
github.com/bsm/gomega v1.27.10 h1:yeMWxP2pV2fG3FgAODIY8EiRE3dy0aeFYt4l7wh6yKA=
|
github.com/bsm/gomega v1.27.10 h1:yeMWxP2pV2fG3FgAODIY8EiRE3dy0aeFYt4l7wh6yKA=
|
||||||
github.com/bsm/gomega v1.27.10/go.mod h1:JyEr/xRbxbtgWNi8tIEVPUYZ5Dzef52k01W3YH0H+O0=
|
github.com/bsm/gomega v1.27.10/go.mod h1:JyEr/xRbxbtgWNi8tIEVPUYZ5Dzef52k01W3YH0H+O0=
|
||||||
|
github.com/ccpwcn/kgo v1.2.3 h1:lcCO26EH/FcAhjuVgEkkJ2YcEOQd5TiFYAak9qwYknI=
|
||||||
|
github.com/ccpwcn/kgo v1.2.3/go.mod h1:y6G244zGfW95c6aCcw00TdZR6JUfBCmQ4acJcFdaktA=
|
||||||
github.com/cenkalti/backoff/v4 v4.3.0 h1:MyRJ/UdXutAwSAT+s3wNd7MfTIcy71VQueUuFK343L8=
|
github.com/cenkalti/backoff/v4 v4.3.0 h1:MyRJ/UdXutAwSAT+s3wNd7MfTIcy71VQueUuFK343L8=
|
||||||
github.com/cenkalti/backoff/v4 v4.3.0/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE=
|
github.com/cenkalti/backoff/v4 v4.3.0/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE=
|
||||||
github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs=
|
github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs=
|
||||||
@@ -37,6 +39,8 @@ github.com/fatih/color v1.17.0 h1:GlRw1BRJxkpqUCBKzKOw098ed57fEsKeNjpTe3cSjK4=
|
|||||||
github.com/fatih/color v1.17.0/go.mod h1:YZ7TlrGPkiz6ku9fK3TLD/pl3CpsiFyu8N92HLgmosI=
|
github.com/fatih/color v1.17.0/go.mod h1:YZ7TlrGPkiz6ku9fK3TLD/pl3CpsiFyu8N92HLgmosI=
|
||||||
github.com/gabriel-vasile/mimetype v1.4.3 h1:in2uUcidCuFcDKtdcBxlR0rJ1+fsokWf+uqxgUFjbI0=
|
github.com/gabriel-vasile/mimetype v1.4.3 h1:in2uUcidCuFcDKtdcBxlR0rJ1+fsokWf+uqxgUFjbI0=
|
||||||
github.com/gabriel-vasile/mimetype v1.4.3/go.mod h1:d8uq/6HKRL6CGdk+aubisF/M5GcPfT7nKyLpA0lbSSk=
|
github.com/gabriel-vasile/mimetype v1.4.3/go.mod h1:d8uq/6HKRL6CGdk+aubisF/M5GcPfT7nKyLpA0lbSSk=
|
||||||
|
github.com/go-bindata/go-bindata v3.1.2+incompatible h1:5vjJMVhowQdPzjE1LdxyFF7YFTXg5IgGVW4gBr5IbvE=
|
||||||
|
github.com/go-bindata/go-bindata v3.1.2+incompatible/go.mod h1:xK8Dsgwmeed+BBsSy2XTopBn/8uK2HWuGSnA11C3Joo=
|
||||||
github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
|
github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
|
||||||
github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY=
|
github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY=
|
||||||
github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
|
github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
|
||||||
@@ -60,6 +64,8 @@ github.com/golang-jwt/jwt/v4 v4.5.0 h1:7cYmW1XlMY7h7ii7UhUyChSgS5wUJEnm9uZVTGqOW
|
|||||||
github.com/golang-jwt/jwt/v4 v4.5.0/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0=
|
github.com/golang-jwt/jwt/v4 v4.5.0/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0=
|
||||||
github.com/golang-jwt/jwt/v5 v5.2.1 h1:OuVbFODueb089Lh128TAcimifWaLhJwVflnrgM17wHk=
|
github.com/golang-jwt/jwt/v5 v5.2.1 h1:OuVbFODueb089Lh128TAcimifWaLhJwVflnrgM17wHk=
|
||||||
github.com/golang-jwt/jwt/v5 v5.2.1/go.mod h1:pqrtFR0X4osieyHYxtmOUWsAWrfe1Q5UVIyoH402zdk=
|
github.com/golang-jwt/jwt/v5 v5.2.1/go.mod h1:pqrtFR0X4osieyHYxtmOUWsAWrfe1Q5UVIyoH402zdk=
|
||||||
|
github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0 h1:DACJavvAHhabrF08vX0COfcOBJRhZ8lUbR+ZWIs0Y5g=
|
||||||
|
github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k=
|
||||||
github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
|
github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
|
||||||
github.com/golang/protobuf v1.3.4/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw=
|
github.com/golang/protobuf v1.3.4/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw=
|
||||||
github.com/golang/snappy v0.0.4 h1:yAGX7huGHXlcLOEtBnF4w7FQwA26wojNCwOYAEhLjQM=
|
github.com/golang/snappy v0.0.4 h1:yAGX7huGHXlcLOEtBnF4w7FQwA26wojNCwOYAEhLjQM=
|
||||||
@@ -69,12 +75,18 @@ github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI=
|
|||||||
github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
|
github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
|
||||||
github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
|
github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
|
||||||
github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
|
github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
|
||||||
|
github.com/gorilla/securecookie v1.1.1 h1:miw7JPhV+b/lAHSXz4qd/nN9jRiAFV5FwjeKyCS8BvQ=
|
||||||
|
github.com/gorilla/securecookie v1.1.1/go.mod h1:ra0sb63/xPlUeL+yeDciTfxMRAA+MP+HVt/4epWDjd4=
|
||||||
|
github.com/gorilla/sessions v1.2.0 h1:S7P+1Hm5V/AT9cjEcUD5uDaQSX0OE577aCXgoaKpYbQ=
|
||||||
|
github.com/gorilla/sessions v1.2.0/go.mod h1:dk2InVEVJ0sfLlnXv9EAgkf6ecYs/i80K/zI+bUmuGM=
|
||||||
github.com/grpc-ecosystem/grpc-gateway/v2 v2.20.0 h1:bkypFPDjIYGfCYD5mRBvpqxfYX1YCS1PXdKYWi8FsN0=
|
github.com/grpc-ecosystem/grpc-gateway/v2 v2.20.0 h1:bkypFPDjIYGfCYD5mRBvpqxfYX1YCS1PXdKYWi8FsN0=
|
||||||
github.com/grpc-ecosystem/grpc-gateway/v2 v2.20.0/go.mod h1:P+Lt/0by1T8bfcF3z737NnSbmxQAppXMRziHUxPOC8k=
|
github.com/grpc-ecosystem/grpc-gateway/v2 v2.20.0/go.mod h1:P+Lt/0by1T8bfcF3z737NnSbmxQAppXMRziHUxPOC8k=
|
||||||
github.com/h2non/parth v0.0.0-20190131123155-b4df798d6542 h1:2VTzZjLZBgl62/EtslCrtky5vbi9dd7HrQPQIx6wqiw=
|
github.com/h2non/parth v0.0.0-20190131123155-b4df798d6542 h1:2VTzZjLZBgl62/EtslCrtky5vbi9dd7HrQPQIx6wqiw=
|
||||||
github.com/h2non/parth v0.0.0-20190131123155-b4df798d6542/go.mod h1:Ow0tF8D4Kplbc8s8sSb3V2oUCygFHVp8gC3Dn6U4MNI=
|
github.com/h2non/parth v0.0.0-20190131123155-b4df798d6542/go.mod h1:Ow0tF8D4Kplbc8s8sSb3V2oUCygFHVp8gC3Dn6U4MNI=
|
||||||
github.com/hashicorp/hcl/v2 v2.13.0 h1:0Apadu1w6M11dyGFxWnmhhcMjkbAiKCv7G1r/2QgCNc=
|
github.com/hashicorp/hcl/v2 v2.13.0 h1:0Apadu1w6M11dyGFxWnmhhcMjkbAiKCv7G1r/2QgCNc=
|
||||||
github.com/hashicorp/hcl/v2 v2.13.0/go.mod h1:e4z5nxYlWNPdDSNYX+ph14EvWYMFm3eP0zIUqPc2jr0=
|
github.com/hashicorp/hcl/v2 v2.13.0/go.mod h1:e4z5nxYlWNPdDSNYX+ph14EvWYMFm3eP0zIUqPc2jr0=
|
||||||
|
github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8=
|
||||||
|
github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw=
|
||||||
github.com/klauspost/compress v1.17.9 h1:6KIumPrER1LHsvBVuDa0r5xaG0Es51mhhB9BQB2qeMA=
|
github.com/klauspost/compress v1.17.9 h1:6KIumPrER1LHsvBVuDa0r5xaG0Es51mhhB9BQB2qeMA=
|
||||||
github.com/klauspost/compress v1.17.9/go.mod h1:Di0epgTjJY877eYKx5yC51cX2A2Vl2ibi7bDH9ttBbw=
|
github.com/klauspost/compress v1.17.9/go.mod h1:Di0epgTjJY877eYKx5yC51cX2A2Vl2ibi7bDH9ttBbw=
|
||||||
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
|
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
|
||||||
@@ -88,19 +100,29 @@ github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0
|
|||||||
github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw=
|
github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw=
|
||||||
github.com/leodido/go-urn v1.4.0 h1:WT9HwE9SGECu3lg4d/dIA+jxlljEa1/ffXKmRjqdmIQ=
|
github.com/leodido/go-urn v1.4.0 h1:WT9HwE9SGECu3lg4d/dIA+jxlljEa1/ffXKmRjqdmIQ=
|
||||||
github.com/leodido/go-urn v1.4.0/go.mod h1:bvxc+MVxLKB4z00jd1z+Dvzr47oO32F/QSNjSBOlFxI=
|
github.com/leodido/go-urn v1.4.0/go.mod h1:bvxc+MVxLKB4z00jd1z+Dvzr47oO32F/QSNjSBOlFxI=
|
||||||
|
github.com/lionsoul2014/ip2region/binding/golang v0.0.0-20240510055607-89e20ab7b6c6 h1:YeIGErDiB/fhmNsJy0cfjoT8XnRNT9hb19xZ4MvWQDU=
|
||||||
|
github.com/lionsoul2014/ip2region/binding/golang v0.0.0-20240510055607-89e20ab7b6c6/go.mod h1:C5LA5UO2ZXJrLaPLYtE1wUJMiyd/nwWaCO5cw/2pSHs=
|
||||||
github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA=
|
github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA=
|
||||||
github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg=
|
github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg=
|
||||||
github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM=
|
github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM=
|
||||||
github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY=
|
github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY=
|
||||||
github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
|
github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
|
||||||
|
github.com/mattn/go-runewidth v0.0.15 h1:UNAjwbU9l54TA3KzvqLGxwWjHmMgBUVhBiTjelZgg3U=
|
||||||
|
github.com/mattn/go-runewidth v0.0.15/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w=
|
||||||
github.com/mattn/go-sqlite3 v1.14.16 h1:yOQRA0RpS5PFz/oikGwBEqvAWhWg5ufRz4ETLjwpU1Y=
|
github.com/mattn/go-sqlite3 v1.14.16 h1:yOQRA0RpS5PFz/oikGwBEqvAWhWg5ufRz4ETLjwpU1Y=
|
||||||
github.com/mattn/go-sqlite3 v1.14.16/go.mod h1:2eHXhiwb8IkHr+BDWZGa96P6+rkvnG63S2DGjv9HUNg=
|
github.com/mattn/go-sqlite3 v1.14.16/go.mod h1:2eHXhiwb8IkHr+BDWZGa96P6+rkvnG63S2DGjv9HUNg=
|
||||||
|
github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y=
|
||||||
|
github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0=
|
||||||
github.com/mitchellh/go-wordwrap v0.0.0-20150314170334-ad45545899c7 h1:DpOJ2HYzCv8LZP15IdmG+YdwD2luVPHITV96TkirNBM=
|
github.com/mitchellh/go-wordwrap v0.0.0-20150314170334-ad45545899c7 h1:DpOJ2HYzCv8LZP15IdmG+YdwD2luVPHITV96TkirNBM=
|
||||||
github.com/mitchellh/go-wordwrap v0.0.0-20150314170334-ad45545899c7/go.mod h1:ZXFpozHsX6DPmq2I0TCekCxypsnAUbP2oI0UX1GXzOo=
|
github.com/mitchellh/go-wordwrap v0.0.0-20150314170334-ad45545899c7/go.mod h1:ZXFpozHsX6DPmq2I0TCekCxypsnAUbP2oI0UX1GXzOo=
|
||||||
|
github.com/mssola/useragent v1.0.0 h1:WRlDpXyxHDNfvZaPEut5Biveq86Ze4o4EMffyMxmH5o=
|
||||||
|
github.com/mssola/useragent v1.0.0/go.mod h1:hz9Cqz4RXusgg1EdI4Al0INR62kP7aPSRNHnpU+b85Y=
|
||||||
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA=
|
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA=
|
||||||
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ=
|
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ=
|
||||||
github.com/nicksnyder/go-i18n/v2 v2.4.1 h1:zwzjtX4uYyiaU02K5Ia3zSkpJZrByARkRB4V3YPrr0g=
|
github.com/nicksnyder/go-i18n/v2 v2.4.1 h1:zwzjtX4uYyiaU02K5Ia3zSkpJZrByARkRB4V3YPrr0g=
|
||||||
github.com/nicksnyder/go-i18n/v2 v2.4.1/go.mod h1:++Pl70FR6Cki7hdzZRnEEqdc2dJt+SAGotyFg/SvZMk=
|
github.com/nicksnyder/go-i18n/v2 v2.4.1/go.mod h1:++Pl70FR6Cki7hdzZRnEEqdc2dJt+SAGotyFg/SvZMk=
|
||||||
|
github.com/olekukonko/tablewriter v0.0.5 h1:P2Ga83D34wi1o9J6Wh1mRuqd4mF/x/lgBS7N7AbDhec=
|
||||||
|
github.com/olekukonko/tablewriter v0.0.5/go.mod h1:hPp6KlRPjbx+hW8ykQs1w3UBbZlj6HuIJcUGPhkA7kY=
|
||||||
github.com/openzipkin/zipkin-go v0.4.3 h1:9EGwpqkgnwdEIJ+Od7QVSEIH+ocmm5nPat0G7sjsSdg=
|
github.com/openzipkin/zipkin-go v0.4.3 h1:9EGwpqkgnwdEIJ+Od7QVSEIH+ocmm5nPat0G7sjsSdg=
|
||||||
github.com/openzipkin/zipkin-go v0.4.3/go.mod h1:M9wCJZFWCo2RiY+o1eBCEMe0Dp2S5LDHcMZmk3RmK7c=
|
github.com/openzipkin/zipkin-go v0.4.3/go.mod h1:M9wCJZFWCo2RiY+o1eBCEMe0Dp2S5LDHcMZmk3RmK7c=
|
||||||
github.com/pelletier/go-toml/v2 v2.2.2 h1:aYUidT7k73Pcl9nb2gScu7NSrKCSHIDE89b3+6Wq+LM=
|
github.com/pelletier/go-toml/v2 v2.2.2 h1:aYUidT7k73Pcl9nb2gScu7NSrKCSHIDE89b3+6Wq+LM=
|
||||||
@@ -117,14 +139,22 @@ github.com/prometheus/common v0.55.0 h1:KEi6DK7lXW/m7Ig5i47x0vRzuBsHuvJdi5ee6Y3G
|
|||||||
github.com/prometheus/common v0.55.0/go.mod h1:2SECS4xJG1kd8XF9IcM1gMX6510RAEL65zxzNImwdc8=
|
github.com/prometheus/common v0.55.0/go.mod h1:2SECS4xJG1kd8XF9IcM1gMX6510RAEL65zxzNImwdc8=
|
||||||
github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc=
|
github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc=
|
||||||
github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk=
|
github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk=
|
||||||
|
github.com/rbcervilla/redisstore/v9 v9.0.0 h1:wOPbBaydbdxzi1gTafDftCI/Z7vnsXw0QDPCuhiMG0g=
|
||||||
|
github.com/rbcervilla/redisstore/v9 v9.0.0/go.mod h1:q/acLpoKkTZzIsBYt0R4THDnf8W/BH6GjQYvxDSSfdI=
|
||||||
github.com/redis/go-redis/v9 v9.7.0 h1:HhLSs+B6O021gwzl+locl0zEDnyNkxMtf/Z3NNBMa9E=
|
github.com/redis/go-redis/v9 v9.7.0 h1:HhLSs+B6O021gwzl+locl0zEDnyNkxMtf/Z3NNBMa9E=
|
||||||
github.com/redis/go-redis/v9 v9.7.0/go.mod h1:f6zhXITC7JUJIlPEiBOTXxJgPLdZcA93GewI7inzyWw=
|
github.com/redis/go-redis/v9 v9.7.0/go.mod h1:f6zhXITC7JUJIlPEiBOTXxJgPLdZcA93GewI7inzyWw=
|
||||||
|
github.com/rivo/uniseg v0.2.0 h1:S1pD9weZBuJdFmowNwbpi7BJ8TNftyUImj/0WQi72jY=
|
||||||
|
github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc=
|
||||||
github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ=
|
github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ=
|
||||||
github.com/rogpeppe/go-internal v1.10.0/go.mod h1:UQnix2H7Ngw/k4C5ijL5+65zddjncjaFoBhdsK/akog=
|
github.com/rogpeppe/go-internal v1.10.0/go.mod h1:UQnix2H7Ngw/k4C5ijL5+65zddjncjaFoBhdsK/akog=
|
||||||
github.com/sergi/go-diff v1.0.0 h1:Kpca3qRNrduNnOQeazBd0ysaKrUJiIuISHxogkT9RPQ=
|
github.com/sergi/go-diff v1.0.0 h1:Kpca3qRNrduNnOQeazBd0ysaKrUJiIuISHxogkT9RPQ=
|
||||||
github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo=
|
github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo=
|
||||||
github.com/spaolacci/murmur3 v1.1.0 h1:7c1g84S4BPRrfL5Xrdp6fOJ206sU9y293DDHaoy0bLI=
|
github.com/spaolacci/murmur3 v1.1.0 h1:7c1g84S4BPRrfL5Xrdp6fOJ206sU9y293DDHaoy0bLI=
|
||||||
github.com/spaolacci/murmur3 v1.1.0/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA=
|
github.com/spaolacci/murmur3 v1.1.0/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA=
|
||||||
|
github.com/spf13/cobra v1.7.0 h1:hyqWnYt1ZQShIddO5kBpj3vu05/++x6tJ6dg8EC572I=
|
||||||
|
github.com/spf13/cobra v1.7.0/go.mod h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRMrb0=
|
||||||
|
github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA=
|
||||||
|
github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
|
||||||
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
||||||
github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
|
github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
|
||||||
github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo=
|
github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo=
|
||||||
@@ -137,6 +167,10 @@ github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsT
|
|||||||
github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
|
github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
|
||||||
github.com/vmihailenco/msgpack/v4 v4.3.12/go.mod h1:gborTTJjAo/GWTqqRjrLCn9pgNN+NXzzngzBKDPIqw4=
|
github.com/vmihailenco/msgpack/v4 v4.3.12/go.mod h1:gborTTJjAo/GWTqqRjrLCn9pgNN+NXzzngzBKDPIqw4=
|
||||||
github.com/vmihailenco/tagparser v0.1.1/go.mod h1:OeAg3pn3UbLjkWt+rN9oFYB6u/cQgqMEUPoW2WPyhdI=
|
github.com/vmihailenco/tagparser v0.1.1/go.mod h1:OeAg3pn3UbLjkWt+rN9oFYB6u/cQgqMEUPoW2WPyhdI=
|
||||||
|
github.com/wenlng/go-captcha-assets v1.0.1 h1:AdjRFMKmadPRWRTv0XEYfjDvcaayZ2yExITDvlK/7bk=
|
||||||
|
github.com/wenlng/go-captcha-assets v1.0.1/go.mod h1:yQqc7rRbxgLCg+tWtVp+7Y317D1wIZDan/yIwt8wSac=
|
||||||
|
github.com/wenlng/go-captcha/v2 v2.0.1 h1:N6XSHymJ7e9Z/LyWWTWLMAkAXtW27ZROZpvNrqPhSnA=
|
||||||
|
github.com/wenlng/go-captcha/v2 v2.0.1/go.mod h1:5hac1em3uXoyC5ipZ0xFv9umNM/waQvYAQdr0cx/h34=
|
||||||
github.com/xdg-go/pbkdf2 v1.0.0 h1:Su7DPu48wXMwC3bs7MCNG+z4FhcyEuz5dlvchbq0B0c=
|
github.com/xdg-go/pbkdf2 v1.0.0 h1:Su7DPu48wXMwC3bs7MCNG+z4FhcyEuz5dlvchbq0B0c=
|
||||||
github.com/xdg-go/pbkdf2 v1.0.0/go.mod h1:jrpuAogTd400dnrH08LKmI/xc1MbPOebTwRqcT5RDeI=
|
github.com/xdg-go/pbkdf2 v1.0.0/go.mod h1:jrpuAogTd400dnrH08LKmI/xc1MbPOebTwRqcT5RDeI=
|
||||||
github.com/xdg-go/scram v1.1.2 h1:FHX5I5B4i4hKRVRBCFRxq1iQRej7WO3hhBuJf+UUySY=
|
github.com/xdg-go/scram v1.1.2 h1:FHX5I5B4i4hKRVRBCFRxq1iQRej7WO3hhBuJf+UUySY=
|
||||||
@@ -186,7 +220,11 @@ golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACk
|
|||||||
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
|
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
|
||||||
golang.org/x/crypto v0.28.0 h1:GBDwsMXVQi34v5CCYUm2jkJvu4cbtru2U4TN2PSyQnw=
|
golang.org/x/crypto v0.28.0 h1:GBDwsMXVQi34v5CCYUm2jkJvu4cbtru2U4TN2PSyQnw=
|
||||||
golang.org/x/crypto v0.28.0/go.mod h1:rmgy+3RHxRZMyY0jjAJShp2zgEdOqj2AO7U0pYmeQ7U=
|
golang.org/x/crypto v0.28.0/go.mod h1:rmgy+3RHxRZMyY0jjAJShp2zgEdOqj2AO7U0pYmeQ7U=
|
||||||
|
golang.org/x/image v0.16.0/go.mod h1:ugSZItdV4nOxyqp56HmXwH0Ry0nBCpjnZdpDaIHdoPs=
|
||||||
|
golang.org/x/image v0.22.0 h1:UtK5yLUzilVrkjMAZAZ34DXGpASN8i8pj8g+O+yd10g=
|
||||||
|
golang.org/x/image v0.22.0/go.mod h1:9hPFhljd4zZ1GNSIZJ49sqbp45GKK9t6w+iXvGqZUz4=
|
||||||
golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=
|
golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=
|
||||||
|
golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
|
||||||
golang.org/x/mod v0.20.0 h1:utOm6MM3R3dnawAiJgn0y+xvuYRsm1RKM/4giyfDgV0=
|
golang.org/x/mod v0.20.0 h1:utOm6MM3R3dnawAiJgn0y+xvuYRsm1RKM/4giyfDgV0=
|
||||||
golang.org/x/mod v0.20.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c=
|
golang.org/x/mod v0.20.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c=
|
||||||
golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks=
|
golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks=
|
||||||
@@ -194,34 +232,47 @@ golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLL
|
|||||||
golang.org/x/net v0.0.0-20200301022130-244492dfa37a/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
golang.org/x/net v0.0.0-20200301022130-244492dfa37a/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||||
golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
|
golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
|
||||||
golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
|
golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
|
||||||
|
golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=
|
||||||
golang.org/x/net v0.30.0 h1:AcW1SDZMkb8IpzCdQUaIq2sP4sZ4zw+55h6ynffypl4=
|
golang.org/x/net v0.30.0 h1:AcW1SDZMkb8IpzCdQUaIq2sP4sZ4zw+55h6ynffypl4=
|
||||||
golang.org/x/net v0.30.0/go.mod h1:2wGyMJ5iFasEhkwi13ChkO/t1ECNC4X4eBKkVFyYFlU=
|
golang.org/x/net v0.30.0/go.mod h1:2wGyMJ5iFasEhkwi13ChkO/t1ECNC4X4eBKkVFyYFlU=
|
||||||
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||||
golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||||
|
golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||||
golang.org/x/sync v0.8.0 h1:3NFvSEYkUoMifnESzZl15y791HH1qU2xm6eCJU5ZPXQ=
|
golang.org/x/sync v0.8.0 h1:3NFvSEYkUoMifnESzZl15y791HH1qU2xm6eCJU5ZPXQ=
|
||||||
golang.org/x/sync v0.8.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
|
golang.org/x/sync v0.8.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
|
||||||
|
golang.org/x/sync v0.9.0 h1:fEo0HyrW1GIgZdpbhCRO0PkJajUS5H9IFUztCgEo2jQ=
|
||||||
|
golang.org/x/sync v0.9.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
|
||||||
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||||
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||||
golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||||
golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||||
golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||||
|
golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||||
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||||
golang.org/x/sys v0.26.0 h1:KHjCJyddX0LoSTb3J+vWpupP9p0oznkqVk/IfjymZbo=
|
golang.org/x/sys v0.26.0 h1:KHjCJyddX0LoSTb3J+vWpupP9p0oznkqVk/IfjymZbo=
|
||||||
golang.org/x/sys v0.26.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
|
golang.org/x/sys v0.26.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
|
||||||
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
|
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/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
|
||||||
|
golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k=
|
||||||
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
||||||
golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
|
golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
|
||||||
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
||||||
golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
||||||
golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
|
golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
|
||||||
golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ=
|
golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ=
|
||||||
|
golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
|
||||||
|
golang.org/x/text v0.15.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
|
||||||
golang.org/x/text v0.19.0 h1:kTxAhCbGbxhK0IwgSKiMO5awPoDQ0RpfiVYBfK860YM=
|
golang.org/x/text v0.19.0 h1:kTxAhCbGbxhK0IwgSKiMO5awPoDQ0RpfiVYBfK860YM=
|
||||||
golang.org/x/text v0.19.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY=
|
golang.org/x/text v0.19.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY=
|
||||||
|
golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug=
|
||||||
|
golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4=
|
||||||
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
||||||
golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=
|
golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=
|
||||||
|
golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU=
|
||||||
|
golang.org/x/tools v0.24.0 h1:J1shsA93PJUEVaUSaay7UXAyE8aimq3GW0pjlolpa24=
|
||||||
|
golang.org/x/tools v0.24.0/go.mod h1:YhNqVBIfWHdzvTLs0d8LCuMhkKUgSUKldakyV7W/WDQ=
|
||||||
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||||
google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc=
|
google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc=
|
||||||
google.golang.org/genproto/googleapis/api v0.0.0-20240711142825-46eb208f015d h1:kHjw/5UfflP/L5EbledDrcG4C2597RtymmGRZvHiCuY=
|
google.golang.org/genproto/googleapis/api v0.0.0-20240711142825-46eb208f015d h1:kHjw/5UfflP/L5EbledDrcG4C2597RtymmGRZvHiCuY=
|
||||||
|
|||||||
@@ -1,2 +0,0 @@
|
|||||||
[user]
|
|
||||||
name = "John Doe"
|
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
[user]
|
|
||||||
name = "张三"
|
|
||||||
Reference in New Issue
Block a user