This commit is contained in:
cdle
2021-09-27 09:56:06 +08:00
parent 13d58917a5
commit dc9c2e3556
+32 -2
View File
@@ -2,7 +2,9 @@ package dwz
import (
"fmt"
"math"
"net/http"
"strings"
"github.com/cdle/sillyGirl/core"
"github.com/gin-gonic/gin"
@@ -40,13 +42,41 @@ func getDwz(url string) string {
Url: url,
}
dwz.Create(su)
return dwz.Get("address", "https://4co.cc"+"/d"+fmt.Sprint(su.ID))
return dwz.Get("address", "https://4co.cc"+"/d"+encode(int64(su.ID)))
}
func getWz(id string) string {
su := &ShortUrl{
ID: core.Int(id),
ID: int(decode(id)),
}
dwz.First(su)
return fmt.Sprint(su.Url)
}
var chars string = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"
func encode(num int64) string {
bytes := []byte{}
for num > 0 {
bytes = append(bytes, chars[num%62])
num = num / 62
}
reverse(bytes)
return string(bytes)
}
func decode(str string) int64 {
var num int64
n := len(str)
for i := 0; i < n; i++ {
pos := strings.IndexByte(chars, str[i])
num += int64(math.Pow(62, float64(n-i-1)) * float64(pos))
}
return num
}
func reverse(a []byte) {
for left, right := 0, len(a)-1; left < right; left, right = left+1, right-1 {
a[left], a[right] = a[right], a[left]
}
}