add admins
This commit is contained in:
Generated
+1
-7
@@ -111,12 +111,6 @@
|
||||
revision = "645ef00459ed84a119197bfb8d8205042c6df63d"
|
||||
version = "v0.8.0"
|
||||
|
||||
[[projects]]
|
||||
branch = "master"
|
||||
name = "github.com/pkg4go/rewrite"
|
||||
packages = ["."]
|
||||
revision = "7a613570d084fe7506c069d2cd8216d4795bd7e0"
|
||||
|
||||
[[projects]]
|
||||
name = "github.com/pmezard/go-difflib"
|
||||
packages = ["difflib"]
|
||||
@@ -201,6 +195,6 @@
|
||||
[solve-meta]
|
||||
analyzer-name = "dep"
|
||||
analyzer-version = 1
|
||||
inputs-digest = "0d83e980a218ae9ca20daebde2587524e09b17a2d4c8f21ff717504f580b0dfc"
|
||||
inputs-digest = "f4e55d0be501f335781d2365e71384e7aee319599603a8f3fef16759e9fd57d1"
|
||||
solver-name = "gps-cdcl"
|
||||
solver-version = 1
|
||||
|
||||
@@ -98,7 +98,7 @@ _instructions for google oauth2 setup borrowed from [oauth2_proxy](https://githu
|
||||
|
||||
#### Initial import from Disqus
|
||||
|
||||
1. Disqus provides an export of all comments on your site in a g-zipped file. This is found in your Moderation panel at Disqus Admin > Setup > Export. The export will be sent into a queue and then emailed to the address associated with your account once it's ready.
|
||||
1. Disqus provides an export of all comments on your site in a g-zipped file. This is found in your Moderation panel at Disqus Admin > Setup > Export. The export will be sent into a queue and then emailed to the address associated with your account once it's ready. Direct link to export will be `https://<siteud>.disqus.com/admin/discussions/export/`
|
||||
2. Move this file to your remark42 host and unzip.
|
||||
3. Stop remark42 containers if started, i.e. `docker-compose stop`
|
||||
4. Run import command - `docker-compose run --rm remark /srv/remark import --file=<disqus-export-xml> --site=<your site id>`
|
||||
|
||||
@@ -30,7 +30,7 @@ func NewGoogle(p Params) Provider {
|
||||
Profile: data.value("profile"),
|
||||
}
|
||||
if userInfo.Name == "" {
|
||||
userInfo.Name = strings.Split(userInfo.ID, "@")[0]
|
||||
userInfo.Name = strings.Split(data.value("email"), "@")[0]
|
||||
}
|
||||
return userInfo
|
||||
},
|
||||
|
||||
-1
@@ -1 +0,0 @@
|
||||
.DS_Store
|
||||
-5
@@ -1,5 +0,0 @@
|
||||
language: go
|
||||
go:
|
||||
- 1.5
|
||||
- 1.6
|
||||
- tip
|
||||
-35
@@ -1,35 +0,0 @@
|
||||
|
||||
[![Build status][travis-img]][travis-url]
|
||||
[![License][license-img]][license-url]
|
||||
[![GoDoc][doc-img]][doc-url]
|
||||
|
||||
### rewrite
|
||||
|
||||
golang URL rewriting
|
||||
|
||||
### Usage
|
||||
|
||||
```go
|
||||
import "github.com/pkg4go/rewrite"
|
||||
|
||||
// ...
|
||||
|
||||
handler := rewrite.NewHandler(map[string]string{
|
||||
"/a": "/b",
|
||||
"/api/(.*)", "/api/v1/$1",
|
||||
"/api/(.*)/actions/(.*)", "/api/v1/$1/actions/$2",
|
||||
"/from/:one/to/:two", "/from/:two/to/:one",
|
||||
})
|
||||
|
||||
// ...
|
||||
```
|
||||
|
||||
### License
|
||||
MIT
|
||||
|
||||
[travis-img]: https://img.shields.io/travis/pkg4go/rewrite.svg?style=flat-square
|
||||
[travis-url]: https://travis-ci.org/pkg4go/rewrite
|
||||
[license-img]: https://img.shields.io/badge/license-MIT-green.svg?style=flat-square
|
||||
[license-url]: http://opensource.org/licenses/MIT
|
||||
[doc-img]: https://img.shields.io/badge/GoDoc-reference-blue.svg?style=flat-square
|
||||
[doc-url]: http://godoc.org/github.com/pkg4go/rewrite
|
||||
-134
@@ -1,134 +0,0 @@
|
||||
package rewrite
|
||||
|
||||
import "net/http"
|
||||
import "net/url"
|
||||
import "strings"
|
||||
import "regexp"
|
||||
import "path"
|
||||
import "fmt"
|
||||
|
||||
const headerField = "X-Rewrite-Original-URI"
|
||||
|
||||
type Rule struct {
|
||||
Pattern string
|
||||
To string
|
||||
*regexp.Regexp
|
||||
}
|
||||
|
||||
var regfmt = regexp.MustCompile(`:[^/#?()\.\\]+`)
|
||||
|
||||
func NewRule(pattern, to string) (*Rule, error) {
|
||||
pattern = regfmt.ReplaceAllStringFunc(pattern, func(m string) string {
|
||||
return fmt.Sprintf(`(?P<%s>[^/#?]+)`, m[1:])
|
||||
})
|
||||
|
||||
reg, err := regexp.Compile(pattern)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return &Rule{
|
||||
pattern,
|
||||
to,
|
||||
reg,
|
||||
}, nil
|
||||
}
|
||||
|
||||
func (r *Rule) Rewrite(req *http.Request) bool {
|
||||
oriPath := req.URL.Path
|
||||
|
||||
if !r.MatchString(oriPath) {
|
||||
return false
|
||||
}
|
||||
|
||||
to := path.Clean(r.Replace(req.URL))
|
||||
|
||||
u, e := url.Parse(to)
|
||||
if e != nil {
|
||||
return false
|
||||
}
|
||||
|
||||
req.Header.Set(headerField, req.URL.RequestURI())
|
||||
|
||||
req.URL.Path = u.Path
|
||||
req.URL.RawPath = u.RawPath
|
||||
if u.RawQuery != "" {
|
||||
req.URL.RawQuery = u.RawQuery
|
||||
}
|
||||
|
||||
return true
|
||||
}
|
||||
|
||||
func (r *Rule) Replace(u *url.URL) string {
|
||||
if !hit("\\$|\\:", r.To) {
|
||||
return r.To
|
||||
}
|
||||
|
||||
uri := u.RequestURI()
|
||||
|
||||
regFrom := regexp.MustCompile(r.Pattern)
|
||||
match := regFrom.FindStringSubmatchIndex(uri)
|
||||
|
||||
result := regFrom.ExpandString([]byte(""), r.To, uri, match)
|
||||
|
||||
str := string(result[:])
|
||||
|
||||
if hit("\\:", str) {
|
||||
return r.replaceNamedParams(uri, str)
|
||||
}
|
||||
|
||||
return str
|
||||
}
|
||||
|
||||
var urlreg = regexp.MustCompile(`:[^/#?()\.\\]+|\(\?P<[a-zA-Z0-9]+>.*\)`)
|
||||
|
||||
func (r *Rule) replaceNamedParams(from, to string) string {
|
||||
fromMatches := r.FindStringSubmatch(from)
|
||||
|
||||
if len(fromMatches) > 0 {
|
||||
for i, name := range r.SubexpNames() {
|
||||
if len(name) > 0 {
|
||||
to = strings.Replace(to, ":"+name, fromMatches[i], -1)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return to
|
||||
}
|
||||
|
||||
func NewHandler(rules map[string]string) RewriteHandler {
|
||||
var h RewriteHandler
|
||||
|
||||
for key, val := range rules {
|
||||
r, e := NewRule(key, val)
|
||||
if e != nil {
|
||||
panic(e)
|
||||
}
|
||||
|
||||
h.rules = append(h.rules, r)
|
||||
}
|
||||
|
||||
return h
|
||||
}
|
||||
|
||||
type RewriteHandler struct {
|
||||
rules []*Rule
|
||||
}
|
||||
|
||||
func (h *RewriteHandler) ServeHTTP(res http.ResponseWriter, req *http.Request) {
|
||||
for _, r := range h.rules {
|
||||
ok := r.Rewrite(req)
|
||||
if ok {
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func hit(pattern, str string) bool {
|
||||
r, e := regexp.MatchString(pattern, str)
|
||||
if e != nil {
|
||||
return false
|
||||
}
|
||||
|
||||
return r
|
||||
}
|
||||
Reference in New Issue
Block a user