Files
eiblog/helper.go
deepzz0 3ace117d0a update
2016-10-21 00:49:36 +08:00

72 lines
1.3 KiB
Go

package main
import (
"crypto/sha1"
"crypto/sha256"
"fmt"
"io"
"io/ioutil"
"path"
"regexp"
)
const (
SUCCESS = iota
FAIL
)
// encrypt password
func EncryptPasswd(name, pass string) string {
salt := "%$@w*)("
h := sha256.New()
io.WriteString(h, name)
io.WriteString(h, salt)
io.WriteString(h, pass)
return fmt.Sprintf("%x", h.Sum(nil))
}
func VerifyPasswd(origin, name, input string) bool {
return origin == EncryptPasswd(name, input)
}
func SHA1(data []byte) [sha1.Size]byte {
return sha1.Sum(data)
}
func ReadDir(dir string, filter func(name string) bool) (files []string) {
fis, err := ioutil.ReadDir(dir)
if err != nil {
return
}
for _, fi := range fis {
if filter(fi.Name()) {
continue
}
if fi.IsDir() {
files = append(files, ReadDir(path.Join(dir, fi.Name()), filter)...)
continue
}
files = append(files, path.Join(dir, fi.Name()))
}
return
}
func IgnoreHtmlTag(src string) string {
//去除所有尖括号内的HTML代码
re, _ := regexp.Compile("\\<[\\S\\s]+?\\>")
src = re.ReplaceAllString(src, "")
//去除换行符
re, _ = regexp.Compile("\\s{1,}")
return re.ReplaceAllString(src, "")
}
func PickFirstImage(html string) string {
re, _ := regexp.Compile(`data-src="(.*?)"`)
sli := re.FindAllStringSubmatch(html, 1)
if len(sli) > 0 && len(sli[0]) > 1 {
return sli[0][1]
}
return ""
}