update
This commit is contained in:
+32
-2
@@ -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]
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user