From 340a4595ddc9e08f4c51f40496affb8fd3bb013d Mon Sep 17 00:00:00 2001 From: Unknwon Date: Sun, 16 Nov 2014 20:27:04 -0500 Subject: [PATCH] support duoshuo mirror of gravatar --- conf/app.ini | 2 ++ gogs.go | 2 +- models/user.go | 2 +- models/webhook.go | 1 + modules/base/tool.go | 2 +- modules/setting/setting.go | 10 ++++++++-- routers/api/v1/repo_file.go | 5 +++++ templates/.VERSION | 2 +- 8 files changed, 20 insertions(+), 6 deletions(-) create mode 100644 routers/api/v1/repo_file.go diff --git a/conf/app.ini b/conf/app.ini index 014411ce45..dbae8a4fd0 100644 --- a/conf/app.ini +++ b/conf/app.ini @@ -167,6 +167,8 @@ SESSION_LIFE_TIME = 86400 [picture] ; The place to picture data, either "server" or "qiniu", default is "server" SERVICE = server +; Chinese users can choose "duoshuo" +GRAVATAR_SOURCE = gravatar DISABLE_GRAVATAR = false [attachment] diff --git a/gogs.go b/gogs.go index 0c01cfcc19..01cee6138a 100644 --- a/gogs.go +++ b/gogs.go @@ -17,7 +17,7 @@ import ( "github.com/gogits/gogs/modules/setting" ) -const APP_VER = "0.5.8.1114 Beta" +const APP_VER = "0.5.8.1116 Beta" func init() { runtime.GOMAXPROCS(runtime.NumCPU()) diff --git a/models/user.go b/models/user.go index 88fcb8388e..7038e075f8 100644 --- a/models/user.go +++ b/models/user.go @@ -100,7 +100,7 @@ func (u *User) AvatarLink() string { } else if setting.Service.EnableCacheAvatar { return setting.AppSubUrl + "/avatar/" + u.Avatar } - return "//1.gravatar.com/avatar/" + u.Avatar + return setting.GravatarSource + u.Avatar } // NewGitSig generates and returns the signature of given user. diff --git a/models/webhook.go b/models/webhook.go index 2f2accf9d2..33146b529a 100644 --- a/models/webhook.go +++ b/models/webhook.go @@ -207,6 +207,7 @@ const ( PUSH HookEventType = "push" ) +// FIXME: just use go-gogs-client structs maybe? type PayloadAuthor struct { Name string `json:"name"` Email string `json:"email"` diff --git a/modules/base/tool.go b/modules/base/tool.go index 50f073a525..0e083c8d0c 100644 --- a/modules/base/tool.go +++ b/modules/base/tool.go @@ -180,7 +180,7 @@ func AvatarLink(email string) string { } else if setting.Service.EnableCacheAvatar { return setting.AppSubUrl + "/avatar/" + EncodeMd5(email) } - return "//1.gravatar.com/avatar/" + EncodeMd5(email) + return setting.GravatarSource + EncodeMd5(email) } // Seconds-based time units diff --git a/modules/setting/setting.go b/modules/setting/setting.go index 99116fff70..6b1b9fed4c 100644 --- a/modules/setting/setting.go +++ b/modules/setting/setting.go @@ -67,6 +67,7 @@ var ( // Picture settings. PictureService string + GravatarSource string DisableGravatar bool // Log settings. @@ -257,8 +258,13 @@ func NewConfigContext() { } ScriptType = Cfg.MustValue("repository", "SCRIPT_TYPE", "bash") - PictureService = Cfg.MustValueRange("picture", "SERVICE", "server", - []string{"server"}) + PictureService = Cfg.MustValueRange("picture", "SERVICE", "server", []string{"server"}) + switch Cfg.MustValue("picture", "GRAVATAR_SOURCE", "gravatar") { + case "duoshuo": + GravatarSource = "http://gravatar.duoshuo.com/avatar/" + default: + GravatarSource = "//1.gravatar.com/avatar/" + } DisableGravatar = Cfg.MustBool("picture", "DISABLE_GRAVATAR") MaxGitDiffLines = Cfg.MustInt("git", "MAX_GITDIFF_LINES", 10000) diff --git a/routers/api/v1/repo_file.go b/routers/api/v1/repo_file.go new file mode 100644 index 0000000000..ca06a2e9b8 --- /dev/null +++ b/routers/api/v1/repo_file.go @@ -0,0 +1,5 @@ +// Copyright 2014 The Gogs Authors. All rights reserved. +// Use of this source code is governed by a MIT-style +// license that can be found in the LICENSE file. + +package v1 diff --git a/templates/.VERSION b/templates/.VERSION index a60a985a7d..78403f16c7 100644 --- a/templates/.VERSION +++ b/templates/.VERSION @@ -1 +1 @@ -0.5.8.1114 Beta \ No newline at end of file +0.5.8.1116 Beta \ No newline at end of file