Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 08bb88e

Browse files
committed
https 和 http 同时支持
1 parent f5382eb commit 08bb88e

File tree

27 files changed

+114
-52
lines changed

27 files changed

+114
-52
lines changed

config/env.sample.ini

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,10 @@ activate_sign_salt = Gj&NaEqio1Tv2&4&3$
4848
access_key = xxxxxx
4949
secret_key = xxxxxxx
5050
bucket_name = xxxx
51-
domain = xxx
51+
; CND HTTP 的域名
52+
http_domain = xxx
53+
; CND HTTPS 的域名
54+
https_domain = xxx
5255

5356
; 抓取程序
5457
[crawl]

src/global/app.go

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,11 @@ import (
3232
"github.com/polaris1119/config"
3333
)
3434

35+
const (
36+
DefaultCDNHttp = "http://studygolang.qiniudn.com/"
37+
DefaultCDNHttps = "https://dn-studygolang.qbox.me/"
38+
)
39+
3540
var Build string
3641

3742
type app struct {
@@ -48,6 +53,10 @@ type app struct {
4853

4954
Host string
5055
Port string
56+
57+
// CDN 资源域名
58+
CDNHttp string
59+
CDNHttps string
5160
}
5261

5362
var App = app{}
@@ -74,6 +83,9 @@ func init() {
7483
App.Date = fileInfo.ModTime()
7584

7685
App.Env = config.ConfigFile.MustValue("global", "env")
86+
87+
App.CDNHttp = config.ConfigFile.MustValue("qiniu", "http_domain", DefaultCDNHttp)
88+
App.CDNHttps = config.ConfigFile.MustValue("qiniu", "https_domain", DefaultCDNHttps)
7789
}
7890

7991
func (this *app) SetUptime() {

src/http/controller/comment.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,8 @@ func (self CommentController) RegisterRoute(g *echo.Group) {
2929
// AtUsers 评论或回复 @ 某人 suggest
3030
func (CommentController) AtUsers(ctx echo.Context) error {
3131
term := ctx.QueryParam("term")
32-
users := logic.DefaultUser.GetUserMentions(term, 10)
32+
isHttps := goutils.MustBool(ctx.Request().Header().Get("X-Https"), false)
33+
users := logic.DefaultUser.GetUserMentions(term, 10, isHttps)
3334
return ctx.JSON(http.StatusOK, users)
3435
}
3536

src/http/controller/image.go

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
package controller
88

99
import (
10+
"global"
1011
"io/ioutil"
1112
"logic"
1213
"os"
@@ -15,6 +16,7 @@ import (
1516
. "http"
1617

1718
"github.com/labstack/echo"
19+
"github.com/polaris1119/goutils"
1820
"github.com/polaris1119/times"
1921
)
2022

@@ -76,5 +78,10 @@ func (ImageController) Transfer(ctx echo.Context) error {
7678
return fail(ctx, 2, "文件上传失败!")
7779
}
7880

79-
return success(ctx, map[string]interface{}{"uri": logic.QiniuDomain + path})
81+
cdnDomain := global.App.CDNHttp
82+
if goutils.MustBool(ctx.Request().Header().Get("X-Https")) {
83+
cdnDomain = global.App.CDNHttps
84+
}
85+
86+
return success(ctx, map[string]interface{}{"uri": cdnDomain + path})
8087
}

src/http/http.go

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ import (
2121
"github.com/labstack/echo"
2222
"github.com/labstack/echo/engine/standard"
2323
"github.com/polaris1119/config"
24+
"github.com/polaris1119/goutils"
2425
)
2526

2627
var Store = sessions.NewCookieStore([]byte(config.ConfigFile.MustValue("global", "cookie_secret")))
@@ -211,7 +212,15 @@ func executeTpl(ctx echo.Context, tpl *template.Template, data map[string]interf
211212
data["wshost"] = global.App.Host + ":" + global.App.Port
212213
}
213214
global.App.SetUptime()
215+
216+
isHttps := goutils.MustBool(ctx.Request().Header().Get("X-Https"))
217+
cdnDomain := global.App.CDNHttp
218+
if isHttps {
219+
cdnDomain = global.App.CDNHttps
220+
}
214221
data["app"] = global.App
222+
data["is_https"] = goutils.MustBool(ctx.Request().Header().Get("X-Https"))
223+
data["cdn_domain"] = cdnDomain
215224

216225
data["online_users"] = map[string]int{"online": logic.Book.Len(), "maxonline": logic.MaxOnlineNum()}
217226

src/logic/uploader.go

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -37,11 +37,6 @@ import (
3737
"github.com/qiniu/api.v6/rs"
3838
)
3939

40-
var (
41-
// QiniuDomain = "https://dn-studygolang.qbox.me/"
42-
QiniuDomain = "http://studygolang.qiniudn.com/"
43-
)
44-
4540
const (
4641
MaxImageSize = 5 << 20 // 5M
4742
)
@@ -61,11 +56,6 @@ func (this *UploaderLogic) InitQiniu() {
6156
conf.ACCESS_KEY = config.ConfigFile.MustValue("qiniu", "access_key")
6257
conf.SECRET_KEY = config.ConfigFile.MustValue("qiniu", "secret_key")
6358
this.bucketName = config.ConfigFile.MustValue("qiniu", "bucket_name")
64-
65-
qiniuDomain := config.ConfigFile.MustValue("qiniu", "domain")
66-
if qiniuDomain != "" {
67-
QiniuDomain = qiniuDomain
68-
}
6959
}
7060

7161
// 生成上传凭证

src/logic/user.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -531,7 +531,7 @@ func (UserLogic) FindNewUsers(ctx context.Context, limit int, offset ...int) []*
531531
}
532532

533533
// GetUserMentions 获取 @ 的 suggest 列表
534-
func (UserLogic) GetUserMentions(term string, limit int) []map[string]string {
534+
func (UserLogic) GetUserMentions(term string, limit int, isHttps bool) []map[string]string {
535535
userActives := make([]*model.UserActive, 0)
536536
err := MasterDB.Where("username like ?", "%"+term+"%").Desc("mtime").Limit(limit).Find(&userActives)
537537
if err != nil {
@@ -543,7 +543,7 @@ func (UserLogic) GetUserMentions(term string, limit int) []map[string]string {
543543
for i, userActive := range userActives {
544544
user := make(map[string]string, 2)
545545
user["username"] = userActive.Username
546-
user["avatar"] = util.Gravatar(userActive.Avatar, userActive.Email, 20)
546+
user["avatar"] = util.Gravatar(userActive.Avatar, userActive.Email, 20, isHttps)
547547
users[i] = user
548548
}
549549

src/util/tool.go

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,27 +8,30 @@ package util
88

99
import (
1010
"fmt"
11+
"global"
1112
"regexp"
1213
"strings"
1314

1415
"github.com/polaris1119/goutils"
1516
)
1617

17-
const qiniuDomain = "https://dn-studygolang.qbox.me"
18-
19-
// const qiniuDomain = "http://studygolang.qiniudn.com"
20-
2118
// 获取头像
22-
func Gravatar(avatar string, emailI interface{}, size uint16) string {
19+
func Gravatar(avatar string, emailI interface{}, size uint16, isHttps bool) string {
20+
cdnDomain := global.App.CDNHttp
21+
gravatarDomain := "http://gravatar.com"
22+
if isHttps {
23+
cdnDomain = global.App.CDNHttps
24+
gravatarDomain = "https://secure.gravatar.com"
25+
}
2326
if avatar != "" {
24-
return fmt.Sprintf("%s/avatar/%s?imageView2/2/w/%d", qiniuDomain, avatar, size)
27+
return fmt.Sprintf("%savatar/%s?imageView2/2/w/%d", cdnDomain, avatar, size)
2528
}
2629

2730
email, ok := emailI.(string)
2831
if !ok {
29-
return fmt.Sprintf("%s/avatar/gopher28.png?imageView2/2/w/%d", qiniuDomain, size)
32+
return fmt.Sprintf("%savatar/gopher28.png?imageView2/2/w/%d", cdnDomain, size)
3033
}
31-
return fmt.Sprintf("http://gravatar.duoshuo.com/avatar/%s?s=%d", goutils.Md5(email), size)
34+
return fmt.Sprintf("%s/avatar/%s?s=%d", gravatarDomain, goutils.Md5(email), size)
3235
}
3336

3437
// 内嵌 Wide iframe 版

static/css/outer/hight-light.css

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

static/js/comment.js

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -73,9 +73,13 @@
7373

7474
var avatar = user.avatar;
7575
if (avatar == "") {
76-
avatar = 'http://gravatar.duoshuo.com/avatar/'+md5(user.email)+"?s=48";
76+
if (isHttps) {
77+
avatar = 'http://gravatar.com/avatar/'+md5(user.email)+"?s=48";
78+
} else {
79+
avatar = 'https://secure.gravatar.com/avatar/'+md5(user.email)+"?s=48";
80+
}
7781
} else {
78-
avatar = 'http://studygolang.qiniudn.com/avatar/'+avatar+'?imageView2/2/w/40';
82+
avatar = cdnDomain+'avatar/'+avatar+'?imageView2/2/w/40';
7983
}
8084

8185
var cmtTime = SG.timeago(comments[i].ctime);

static/js/sidebar.js

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -148,9 +148,13 @@ $(function(){
148148

149149
var avatar = user.avatar;
150150
if (avatar == "") {
151-
avatar = 'http://gravatar.duoshuo.com/avatar/'+md5(user.email)+"?s=40";
151+
if (isHttps) {
152+
avatar = 'http://gravatar.com/avatar/'+md5(user.email)+"?s=48";
153+
} else {
154+
avatar = 'https://secure.gravatar.com/avatar/'+md5(user.email)+"?s=48";
155+
}
152156
} else {
153-
avatar = 'http://studygolang.qiniudn.com/avatar/'+avatar+'?imageView2/2/w/40';
157+
avatar = cdnDomain+'avatar/'+avatar+'?imageView2/2/w/40';
154158
}
155159

156160
var cmtTime = SG.timeago(comments[i].ctime);
@@ -200,9 +204,13 @@ $(function(){
200204
for(var i in data) {
201205
var avatar = data[i].avatar;
202206
if (avatar == "") {
203-
avatar = 'http://gravatar.duoshuo.com/avatar/'+md5(data[i].email)+"?s=40";
207+
if (isHttps) {
208+
avatar = 'http://gravatar.com/avatar/'+md5(user.email)+"?s=48";
209+
} else {
210+
avatar = 'https://secure.gravatar.com/avatar/'+md5(user.email)+"?s=48";
211+
}
204212
} else {
205-
avatar = 'http://studygolang.qiniudn.com/avatar/'+avatar+'?imageView2/2/w/40';
213+
avatar = cdnDomain+'avatar/'+avatar+'?imageView2/2/w/40';
206214
}
207215

208216
content += '<li class="pull-left">'+

template/admin/common.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,13 +30,13 @@ <h1 class="logo">Go语言中文网<span>管理后台</span></h1>
3030

3131
<div class="right">
3232
<div class="userinfo">
33-
<img src="{{gravatar .me.Avatar .me.Email 23}}" alt="" />
33+
<img src="{{gravatar .me.Avatar .me.Email 23 .is_https}}" alt="" />
3434
<span>{{.me.Username}}</span>
3535
</div><!--userinfo-->
3636

3737
<div class="userinfodrop">
3838
<div class="avatar">
39-
<a href=""><img src="{{gravatar .me.Avatar .me.Email 95}}" alt="" /></a>
39+
<a href=""><img src="{{gravatar .me.Avatar .me.Email 95 .is_https}}" alt="" /></a>
4040
<div class="changetheme">
4141
更改皮肤: <br />
4242
<a class="default"></a>

template/articles/detail.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ <h1>{{.article.Title}}</h1>
7979
{{if .next}}<div><a href="/articles/{{.next.Id}}" title="{{.next.Title}}">» </a>下一篇: <a href="/articles/{{.next.Id}}" title="{{.next.Title}}">{{.next.Title}}</a></div>{{end}}
8080
</div>
8181
<!-- 评论 -->
82-
<div class="page-comment" data-objid="{{.article.Id}}" data-objtype="1" {{if .me}}data-username="{{.me.Username}}" data-uid="{{.me.Uid}}" data-avatar="{{gravatar .me.Avatar .me.Email 48}}"{{end}}>
82+
<div class="page-comment" data-objid="{{.article.Id}}" data-objtype="1" {{if .me}}data-username="{{.me.Username}}" data-uid="{{.me.Uid}}" data-avatar="{{gravatar .me.Avatar .me.Email 48 .is_https}}"{{end}}>
8383
<div class="words hide">
8484
<h3><span class="cmtnum">{{.article.Cmtnum}}</span>条评论</h3>
8585
<ul class="list-unstyled">

template/common/layout.html

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -206,6 +206,9 @@ <h5>第三方账号登录</h5>
206206

207207
<div style="display:none;">
208208
<script type="text/javascript">
209+
var isHttps = "{{.is_https}}",
210+
cdnDomain = "{{.cdnDomain}}";
211+
209212
var _bdhmProtocol = (("https:" == document.location.protocol) ? " https://" : " http://");
210213
document.write(unescape("%3Cscript src='" + _bdhmProtocol + "hm.baidu.com/h.js%3F224c227cd9239761ec770bc8c1fb134c' type='text/javascript'%3E%3C/script%3E"));
211214
</script>
@@ -218,8 +221,12 @@ <h5>第三方账号登录</h5>
218221
<script src="/static/js/libs/jquery.timeago.zh-CN.js"></script>
219222
<script src="/static/js/libs/md5.js"></script>
220223
<script type="text/javascript">
221-
var wsUrl = 'ws://{{.wshost}}/ws?uid={{.me.Uid}}',
222-
GLaunchTime = {{timestamp .app.LaunchTime}}*1000;
224+
if (isHttps) {
225+
var wsUrl = 'ws://{{.wshost}}/ws?uid={{.me.Uid}}';
226+
} else {
227+
var wsUrl = 'wss://{{.wshost}}/ws?uid={{.me.Uid}}';
228+
}
229+
var GLaunchTime = {{timestamp .app.LaunchTime}}*1000;
223230
</script>
224231
<script src="/static/js/common.js?v=1.20"></script>
225232
{{template "js" .}}

template/download/dl.html

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,11 @@
2121
<div class="box_white">
2222
<div class="clearfix"></div>
2323
<dl class="topics dl-horizontal">
24+
{{with $root := .}}
2425
{{range .topics}}
2526
<div class="topic">
2627
<dt class="avatar">
27-
<a href="/user/{{.user.Username}}" title="{{.user.Username}}"><img alt="{{.user.Username}}" class="img-rounded" src="{{gravatar .user.Avatar .user.Email 48}}" width="48px" height="48px"></a>
28+
<a href="/user/{{.user.Username}}" title="{{.user.Username}}"><img alt="{{.user.Username}}" class="img-rounded" src="{{gravatar .user.Avatar .user.Email 48 $root.is_https}}" width="48px" height="48px"></a>
2829
</dt>
2930
<dd class="right-info">
3031
<div class="title">
@@ -58,6 +59,7 @@
5859
{{else}}
5960
<p class="text-center">暂时没有任何帖子</p>
6061
{{end}}
62+
{{end}}
6163
</dl>
6264
{{if .page}}
6365
<nav class="text-center"><ul class="pagination pagination-sm">{{.page}}</ul></nav>

template/index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -241,7 +241,7 @@ <h3><a href="javascript:">学习资料</a></h3>
241241
{{if .me}}
242242
<div class="box">
243243
<div class="avatar-area pull-left">
244-
<span class="avatar"><a href="/account/edit#change-avatar"><img alt="个人首页" width="80" height="80" src="{{gravatar .me.Avatar .me.Email 80}}" class="img-circle tool-tip" data-toggle="tooltip" data-placement="left" title="更换头像"></a></span>
244+
<span class="avatar"><a href="/account/edit#change-avatar"><img alt="个人首页" width="80" height="80" src="{{gravatar .me.Avatar .me.Email 80 .is_https}}" class="img-circle tool-tip" data-toggle="tooltip" data-placement="left" title="更换头像"></a></span>
245245
</div>
246246
<div class="profile-show pull-left">
247247
<p></p>

template/messages/list.html

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,11 @@
1717
<li role="presentation"{{if eq .msgtype "outbox"}}class="active"{{end}}><a href="/message/outbox">发件箱</a></li>
1818
</ul>
1919
<ul class="list-unstyled data">
20+
{{with $root := .}}
2021
{{range .messages}}
2122
<li>
2223
<h3>
23-
<a href="/user/{{.user.Username}}" title="{{.user.Username}}"><img src="{{gravatar .user.Avatar .user.Email 48}}" width="48" height="48" alt="{{.user.Username}}"></a>
24+
<a href="/user/{{.user.Username}}" title="{{.user.Username}}"><img src="{{gravatar .user.Avatar .user.Email 48 $root.is_https}}" width="48" height="48" alt="{{.user.Username}}"></a>
2425
<span class="user">{{if eq $.msgtype "outbox"}}你对 {{end}}<a href="/user/{{.user.Username}}" title="{{.user.Username}}">{{.user.Username}}</a> {{if eq $.msgtype "outbox"}}说:{{else}}{{.title}}{{end}}</span>
2526
{{if .objtitle}}<a href="{{.objurl}}" title="{{.objtitle}}">{{.objtitle}}</a>{{end}}
2627
{{if eq .hasread "未读"}}
@@ -38,6 +39,7 @@ <h3>
3839
{{else}}
3940
<li class="alert alert-info text-center">暂无消息</li>
4041
{{end}}
42+
{{end}}
4143
</ul>
4244
{{if .page}}
4345
<nav class="text-center"><ul class="pagination pagination-sm">{{.page}}</ul></nav>

template/projects/detail.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ <h1>
9191
</div>
9292
</div>
9393
<!-- 评论 -->
94-
<div class="page-comment" data-objid="{{.project.Id}}" data-objtype="4" {{if .me}}data-username="{{.me.Username}}" data-uid="{{.me.Uid}}" data-avatar="{{gravatar .me.Avatar .me.Email 48}}"{{end}}>
94+
<div class="page-comment" data-objid="{{.project.Id}}" data-objtype="4" {{if .me}}data-username="{{.me.Username}}" data-uid="{{.me.Uid}}" data-avatar="{{gravatar .me.Avatar .me.Email 48 .is_https}}"{{end}}>
9595
<div class="words hide">
9696
<h3><span class="cmtnum">{{.project.Cmtnum}}</span>条评论</h3>
9797
<ul class="list-unstyled">

template/resources/detail.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ <h1>
6767
<div id="hm_t_56958" style="margin:0 auto;max-width:790px;"></div>
6868

6969
<!-- 评论 -->
70-
<div class="page-comment" data-objid="{{.resource.id}}" data-objtype="2" {{if .me}}data-username="{{.me.Username}}" data-uid="{{.me.Uid}}" data-avatar="{{gravatar .me.Avatar .me.Email 48}}"{{end}}>
70+
<div class="page-comment" data-objid="{{.resource.id}}" data-objtype="2" {{if .me}}data-username="{{.me.Username}}" data-uid="{{.me.Uid}}" data-avatar="{{gravatar .me.Avatar .me.Email 48 .is_https}}"{{end}}>
7171
<div class="words hide">
7272
<h3><span class="cmtnum">{{.resource.cmtnum}}</span>条评论</h3>
7373
<ul class="list-unstyled">
@@ -93,7 +93,7 @@ <h3 class="title"><i class="glyphicon glyphicon-user"></i>&nbsp;作者</h3>
9393
</div>
9494
<div class="sb-content">
9595
<a href="/user/{{.resource.user.Username}}" class="pull-left avatar" title="{{.resource.user.Username}}">
96-
<img src="{{gravatar .resource.user.Avatar .resource.user.Email 48}}" alt="{{if .resource.user.Name}}{{.resource.user.Name}}{{else}}{{.resource.user.Username}}{{end}}" width="48px" height="48px">
96+
<img src="{{gravatar .resource.user.Avatar .resource.user.Email 48 .is_https}}" alt="{{if .resource.user.Name}}{{.resource.user.Name}}{{else}}{{.resource.user.Username}}{{end}}" width="48px" height="48px">
9797
</a>
9898
<h4>
9999
<a href="/user/{{.resource.user.Username}}" title="{{if .resource.user.Name}}{{.resource.user.Name}}{{else}}{{.resource.user.Username}}{{end}}">{{if .resource.user.Name}}{{.resource.user.Name}}({{.resource.user.Username}}){{else}}{{.resource.user.Username}}{{end}}</a>

template/resources/index.html

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,11 @@
2020
<i class="glyphicon glyphicon-star"></i> <span id="cat_intro"></span>
2121
</div>
2222
<div class="resources">
23+
{{with $root := .}}
2324
{{range .resources}}
2425
<div class="resource">
2526
<div class="rinfo">
26-
<a class="avatar pull-right" href="/user/{{.user.Username}}"><img src="{{gravatar .user.Avatar .user.Email 48}}" alt="{{.user.Username}}"></a>
27+
<a class="avatar pull-right" href="/user/{{.user.Username}}"><img src="{{gravatar .user.Avatar .user.Email 48 $root.is_https}}" alt="{{.user.Username}}"></a>
2728
<a class="link-url" href="{{.url}}" target="_blank" data-id="{{.id}}">{{.title}}</a>
2829
{{if .host}}
2930
<span class="host">({{.host}})</span>
@@ -44,6 +45,7 @@
4445
{{else}}
4546
<p class="text-center">该分类暂时没有任何资源</p>
4647
{{end}}
48+
{{end}}
4749
</div>
4850
{{if .page}}
4951
<nav class="text-center"><ul class="pagination pagination-sm">{{.page}}</ul></nav>

0 commit comments

Comments
 (0)