MCPcopy Create free account
hub / github.com/gogs/gogs / GenerateRandomAvatar

Function GenerateRandomAvatar

internal/userutil/userutil.go:66–93  ·  view source on GitHub ↗

GenerateRandomAvatar generates a random avatar and stores to local file system using given user information.

(userID int64, name, email string)

Source from the content-addressed store, hash-verified

64// GenerateRandomAvatar generates a random avatar and stores to local file
65// system using given user information.
66func GenerateRandomAvatar(userID int64, name, email string) error {
67 seed := email
68 if seed == "" {
69 seed = name
70 }
71
72 img, err := avatar.RandomImage([]byte(seed))
73 if err != nil {
74 return errors.Wrap(err, "generate random image")
75 }
76
77 avatarPath := CustomAvatarPath(userID)
78 err = os.MkdirAll(filepath.Dir(avatarPath), os.ModePerm)
79 if err != nil {
80 return errors.Wrap(err, "create avatar directory")
81 }
82
83 f, err := os.Create(avatarPath)
84 if err != nil {
85 return errors.Wrap(err, "create avatar file")
86 }
87 defer func() { _ = f.Close() }()
88
89 if err = png.Encode(f, img); err != nil {
90 return errors.Wrap(err, "encode avatar image to file")
91 }
92 return nil
93}
94
95// SaveAvatar saves the given avatar for the user.
96func SaveAvatar(userID int64, data []byte) error {

Callers 3

CreateOrganizationFunction · 0.92
AvatarURLPathMethod · 0.92
TestGenerateRandomAvatarFunction · 0.85

Calls 3

RandomImageFunction · 0.92
CustomAvatarPathFunction · 0.85
CreateMethod · 0.45

Tested by 1

TestGenerateRandomAvatarFunction · 0.68