{"id":27353,"date":"2024-11-27T13:57:00","date_gmt":"2024-11-27T05:57:00","guid":{"rendered":"https:\/\/cravatar.com\/developer\/?p=27353"},"modified":"2024-11-27T14:28:00","modified_gmt":"2024-11-27T06:28:00","slug":"go-image-requests","status":"publish","type":"post","link":"https:\/\/cravatar.com\/developer\/go-image-requests","title":{"rendered":"Go \u8bed\u8a00\u56fe\u50cf\u8bf7\u6c42"},"content":{"rendered":"\n
\u4e0e\u81ea\u6709\u7a0b\u5e8f\u96c6\u6210\u9875\u9762\u5e0c\u671b\u589e\u52a0 Golang \u8bed\u8a00\u7684\u6848\u4f8b\uff0c\u6765\u81ea
@okatu-loli \uff0cGo \u5b9e\u73b0 Cravatar \u793a\u4f8b\u5982\u4e0b\uff0c\u53ef\u4f9b\u53c2\u8003\u3002<\/p>\n\n\n\n
package main\n\nimport (\n\t"crypto\/md5"\n\t"encoding\/hex"\n\t"fmt"\n\t"net\/url"\n\t"strings"\n)\n\n\/\/ GetCravatar \u8fd4\u56de\u6307\u5b9a\u7535\u5b50\u90ae\u4ef6\u5730\u5740\u7684 Cravatar URL \u6216\u5b8c\u6574\u7684\u56fe\u50cf\u6807\u7b7e\nfunc GetCravatar(email string, size int, defaultImage, rating string, imgTag bool, attrs map[string]string) string {\n\t\/\/ \u6784\u5efa\u57fa\u672c\u7684 Cravatar URL\n\tbaseURL := "https:\/\/cravatar.cn\/avatar\/"\n\t\n\t\/\/ \u6e05\u7406\u5e76\u5bf9\u7535\u5b50\u90ae\u4ef6\u5730\u5740\u8fdb\u884c MD5 \u54c8\u5e0c\u5904\u7406\n\temail = strings.TrimSpace(strings.ToLower(email))\n\thash := md5.New()\n\thash.Write([]byte(email))\n\temailHash := hex.EncodeToString(hash.Sum(nil))\n\t\n\t\/\/ \u6784\u5efa Cravatar URL\n\tcravURL := fmt.Sprintf("%s%s?s=%d&d=%s&r=%s", baseURL, emailHash, size, defaultImage, rating)\n\t\n\t\/\/ \u5982\u679c imgTag \u4e3a true\uff0c\u5219\u8fd4\u56de\u5b8c\u6574\u7684 <img> \u6807\u7b7e\n\tif imgTag {\n\t\timgTagStr := fmt.Sprintf(`<img src="%s"`, cravURL)\n\t\tfor key, value := range attrs {\n\t\t\timgTagStr += fmt.Sprintf(` %s="%s"`, key, value)\n\t\t}\n\t\timgTagStr += " \/>"\n\t\treturn imgTagStr\n\t}\n\t\n\t\/\/ \u5426\u5219\uff0c\u4ec5\u8fd4\u56de URL\n\treturn cravURL\n}\n\nfunc main() {\n\temail := "someone@somewhere.com"\n\tsize := 40\n\tdefaultImage := "https:\/\/www.somewhere.com\/homestar.jpg"\n\trating := "g"\n\timgTag := true\n\tattrs := map[string]string{"class": "avatar", "alt": "User Avatar"}\n\n\t\/\/ \u83b7\u53d6 Cravatar \u56fe\u50cf URL \u6216 img \u6807\u7b7e\n\tresult := GetCravatar(email, size, defaultImage, rating, imgTag, attrs)\n\tfmt.Println(result)\n}\n<\/code><\/pre>\n\n\n\n