some improvements

This commit is contained in:
ston1th 2019-07-30 18:57:16 +02:00
commit d9d089be0d
8 changed files with 132 additions and 24 deletions

2
pkg/cache/cache.go vendored
View file

@ -44,7 +44,7 @@ func (c *Cache) Get(title string) (p *core.Page) {
*p = *cp.Page
return
}
return nil
return
}
func (c *Cache) Delete(title string) {

View file

@ -104,6 +104,7 @@ func (i *Index) Search(search string) (results []core.Result, err error) {
}
r := core.Result{StoreTitle: hit.ID}
r.Section, r.Title = render.SplitStoreTitle(hit.ID)
r.Title = render.Untitle(r.Title)
d, err := i.i.Document(hit.ID)
if d == nil || err != nil {
continue

25
pkg/otp/otp_test.go Normal file
View file

@ -0,0 +1,25 @@
// Copyright (C) 2019 Marius Schellenberger
package otp
import (
"testing"
)
func TestNew(t *testing.T) {
_, err := New("admin")
if err != nil {
t.Error(err)
}
}
func TestImageSecretFromURL(t *testing.T) {
r, _ := New("admin")
_, secret, err := ImageSecretFromURL(r.URL)
if err != nil {
t.Error(err)
}
if secret != r.Secret {
t.Error("secret is not equal")
}
}

View file

@ -13,6 +13,8 @@ import (
"strings"
)
const delim = "+"
var filter = makeFilter()
func makeFilter() analysis.CharFilter {
@ -40,7 +42,11 @@ func Render(p *core.Page) string {
}
func Title(title string) string {
return whiteSpace.ReplaceAllString(titleRe.ReplaceAllString(title, ""), "+")
return whiteSpace.ReplaceAllString(titleRe.ReplaceAllString(title, ""), delim)
}
func Untitle(title string) string {
return strings.ReplaceAll(title, delim, " ")
}
func StoreTitle(section, title string) string {

25
pkg/store/gob.go Normal file
View file

@ -0,0 +1,25 @@
// Copyright (C) 2019 Marius Schellenberger
package store
import (
"bytes"
"encoding/gob"
)
type gobMarshaler struct{}
func NewGOB() Marshaler {
return gobMarshaler{}
}
func (gobMarshaler) Marshal(v interface{}) (b []byte, err error) {
buf := new(bytes.Buffer)
err = gob.NewEncoder(buf).Encode(v)
b = buf.Bytes()
return
}
func (gobMarshaler) Unmarshal(data []byte, v interface{}) error {
return gob.NewDecoder(bytes.NewBuffer(data)).Decode(v)
}

39
pkg/store/gob_test.go Normal file
View file

@ -0,0 +1,39 @@
// Copyright (C) 2019 Marius Schellenberger
package store
import "testing"
var g = NewGOB()
func BenchmarkGOBMarshalPage(b *testing.B) {
b.ReportAllocs()
for i := 0; i < b.N; i++ {
g.Marshal(p)
}
}
func BenchmarkGOBUnmarshalPage(b *testing.B) {
bytes, _ := g.Marshal(p)
var pp Page
b.ReportAllocs()
for i := 0; i < b.N; i++ {
g.Unmarshal(bytes, &pp)
}
}
func BenchmarkGOBMarshalUser(b *testing.B) {
b.ReportAllocs()
for i := 0; i < b.N; i++ {
g.Marshal(u)
}
}
func BenchmarkGOBUnmarshalUser(b *testing.B) {
bytes, _ := g.Marshal(u)
var uu User
b.ReportAllocs()
for i := 0; i < b.N; i++ {
g.Unmarshal(bytes, &uu)
}
}

View file

@ -2,29 +2,7 @@
package store
import (
"bytes"
"encoding/gob"
)
type Marshaler interface {
Marshal(v interface{}) ([]byte, error)
Unmarshal(data []byte, v interface{}) error
}
type gobMarshaler struct{}
func NewGOB() Marshaler {
return gobMarshaler{}
}
func (gobMarshaler) Marshal(v interface{}) (b []byte, err error) {
buf := new(bytes.Buffer)
err = gob.NewEncoder(buf).Encode(v)
b = buf.Bytes()
return
}
func (gobMarshaler) Unmarshal(data []byte, v interface{}) error {
return gob.NewDecoder(bytes.NewBuffer(data)).Decode(v)
}

34
pkg/store/marshal_test.go Normal file
View file

@ -0,0 +1,34 @@
// Copyright (C) 2019 Marius Schellenberger
package store
import "time"
type Page struct {
Text string
Date time.Time
Number int
Test bool
}
type User struct {
Username string
Password string
Number int
Test bool
Today time.Time
}
var p = &Page{
"Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.",
time.Now(),
34534534,
true,
}
var u = &User{
"svdfnvdnfvon",
"func BenchmarkNew(b *testing.B) {",
8794355,
false,
time.Now(),
}