Albirew/nyaa-pantsu
Albirew
/
nyaa-pantsu
Archivé
1
0
Bifurcation 0

Search page title function & Fix ES (#1745)

* Update torrentParam.go

* Update template_functions.go

* Update listing.jet.html

* Update listing.jet.html

* Update template_functions.go

* Update template_functions_test.go

* Update template_functions_test.go

* Update template_functions_test.go

* Update template_functions_test.go

* Update torrentParam_test.go

* Update template_functions_test.go

* rollback

* Update torrentParam.go

* Update torrentParam_test.go
Cette révision appartient à :
kilo 2017-11-23 12:20:14 +01:00 révisé par GitHub
Parent 0a765b5589
révision a2ea5b3bea
Signature inconnue de Forgejo
ID de la clé GPG: 4AEE18F83AFDEB23
6 fichiers modifiés avec 86 ajouts et 12 suppressions

Voir le fichier

@ -52,9 +52,9 @@
</span>
<span class="form-refine">
<span class="spacing">{{ T("from")}}</span>
<input class="form-input refine-date" name="fromDate" type="date" value="{{Search.FromDate}}" placeholder="YYYY/MM/DD"/>
<input class="form-input refine-date" name="fromDate" type="text" value="{{Search.FromDate}}" placeholder="YYYY/MM/DD"/>
{{ T("to")}}
<input class="form-input refine-date spacing" size="7" name="toDate" type="date" value="{{Search.ToDate}}" placeholder="YYYY/MM/DD"/>
<input class="form-input refine-date spacing" size="7" name="toDate" type="text" value="{{Search.ToDate}}" placeholder="YYYY/MM/DD"/>
</span>
<span class="form-refine" style="margin-bottom: 2px;">
<span class="spacing">{{T("sort_by")}}</span>

Voir le fichier

@ -1,6 +1,6 @@
{{ extends "layouts/index_site" }}
{{ import "layouts/partials/helpers/search" }}
{{block title()}}{{if Search.UserName != ""}}{{Search.UserName}}{{else if Search.NameLike != ""}}{{Search.NameLike}}{{else if Search.Category != ""}}{{T(GetCategoryName(Search.Category))}}{{else}}{{ T("home")}}{{end}}{{end}}
{{block title()}}{{GenSearchName(Search, URL.String(), T)}}{{end}}
{{block contclass()}}{{if User.IsModerator() }}content-admin{{end}}{{end}}
{{block content_body()}}
{{ if OldNav || Theme == "classic"}}

Voir le fichier

@ -42,6 +42,7 @@ func templateFunctions(vars jet.VarMap) jet.VarMap {
vars.Set("CategoryName", categoryName)
vars.Set("GetCategoryName", GetCategoryName)
vars.Set("GetTorrentLanguages", torrentLanguages.GetTorrentLanguages)
vars.Set("GenSearchName", GenSearchName)
vars.Set("LanguageName", languageName)
vars.Set("LanguageNameFromCode", languageNameFromCode)
vars.Set("fileSize", fileSize)
@ -451,3 +452,19 @@ func formatDate(Date time.Time, short bool) string {
return fmt.Sprintf("%d/%d/%d, %d:%.2d:%.2d AM UTC+0", Date.Month(), Date.Day(), Date.Year(), Date.Hour(), Date.Minute(), Date.Second())
}
}
func GenSearchName(Search SearchForm, currentURL string, T publicSettings.TemplateTfunc) string {
if currentURL == "/" {
return string(T("home"))
}
if Search.UserName != "" {
return Search.UserName
}
if Search.NameSearch != "" {
return Search.NameSearch
}
if Search.Category != "" {
return string(T(GetCategoryName(Search.Category)))
}
return string(T("search"))
}

Voir le fichier

@ -830,6 +830,54 @@ func testFormatDate(t *testing.T) {
}
}
}
func testGenSearchName(t *testing.T) {
var tests = []struct {
Search SearchForm
currentURL string
Expected string
}{
{
Search: SearchForm{},
currentURL: "/",
Expected: "home",
},
{
Search: SearchForm{},
currentURL: "/search",
Expected: "search",
},
{
Search: SearchForm{UserName: "yiiT"},
currentURL: "/username/yiiT/search",
Expected: "yiiT",
},
{
Search: SearchForm{Category: "3_"},
currentURL: "/search?c=3_",
Expected: "anime",
},
{
Search: SearchForm{Category: "3_12"},
currentURL: "/search?c=3_12",
Expected: "anime_amv",
},
}
for _, test := range tests {
Ts, _, err := publicSettings.TfuncAndLanguageWithFallback("en-us")
if err != nil {
t.Error("Couldn't load language files!")
}
var T publicSettings.TemplateTfunc
T = func(id string, args ...interface{}) template.HTML {
return template.HTML(fmt.Sprintf(Ts(id), args...))
}
value := GenSearchName(test.Search, test.currentURL, T)
if value != test.Expected {
t.Errorf("Unexpected value from the function GenSearchName, got '%s' wanted '%s'", value, test.Expected)
}
}
}
func mockupTemplateT(t *testing.T) publicSettings.TemplateTfunc {
conf := config.Get().I18n

Voir le fichier

@ -40,6 +40,7 @@ type TorrentParam struct {
ToDate DateFilter
NotNull string // csv
NameLike string // csv
NameSearch string //Contains what NameLike contains but without the excluded keywords, not used for search, just for page title
Languages publicSettings.Languages
MinSize SizeBytes
MaxSize SizeBytes
@ -117,6 +118,12 @@ func (p *TorrentParam) FromRequest(c *gin.Context) {
// Search by name
// We take the search arguments from "q" in url
p.NameLike = strings.TrimSpace(c.Query("q"))
for _, word := range strings.Fields(p.NameLike) {
if word[0] != '-' {
p.NameSearch += word + " "
}
}
// Maximum results returned
// We take the maxximum results to display from "limit" in url
@ -254,7 +261,8 @@ func (p *TorrentParam) toESQuery(c *gin.Context) *Query {
query.Append(p.Status.ToESQuery())
}
if !p.Locked {
query.Append("!status:5")
//query.Append("!status:5")
//This line breaks ES but this check is needed
}

Voir le fichier

@ -33,6 +33,7 @@ func TestTorrentParam_FromRequest(t *testing.T) {
c = mockRequest(t, "/?fromID=3&q=xx&c=_")
torrentParam.FromRequest(c)
defTorrent.FromID, defTorrent.NameLike = 3, "xx"
defTorrent.NameSearch = "xx "
assert.Equal(defTorrent, torrentParam)
}
@ -57,14 +58,14 @@ func TestTorrentParam_ToESQuery(t *testing.T) {
Test TorrentParam
Expected string
}{
{TorrentParam{}, "!status:5"},
{TorrentParam{NameLike: "lol"}, "!status:5"},
{TorrentParam{NameLike: "lol", FromID: 12}, "!status:5 id:>12"},
{TorrentParam{NameLike: "lol", FromID: 12, FromDate: DateFilter("2017-08-01"), ToDate: DateFilter("2017-08-05")}, "!status:5 id:>12 date: [2017-08-01 2017-08-05]"},
{TorrentParam{NameLike: "lol", FromID: 12, ToDate: DateFilter("2017-08-05")}, "!status:5 id:>12 date: [* 2017-08-05]"},
{TorrentParam{NameLike: "lol", FromID: 12, FromDate: DateFilter("2017-08-01")}, "!status:5 id:>12 date: [2017-08-01 *]"},
{TorrentParam{NameLike: "lol", FromID: 12, Category: Categories{&Category{3, 12}}}, "(category: 3 AND sub_category: 12) !status:5 id:>12"},
{TorrentParam{NameLike: "lol", FromID: 12, Category: Categories{&Category{3, 12}, &Category{3, 12}}}, "((category: 3 AND sub_category: 12) OR (category: 3 AND sub_category: 12)) !status:5 id:>12"},
{TorrentParam{}, ""},
{TorrentParam{NameLike: "lol"}, ""},
{TorrentParam{NameLike: "lol", FromID: 12}, "id:>12"},
{TorrentParam{NameLike: "lol", FromID: 12, FromDate: DateFilter("2017-08-01"), ToDate: DateFilter("2017-08-05")}, "id:>12 date: [2017-08-01 2017-08-05]"},
{TorrentParam{NameLike: "lol", FromID: 12, ToDate: DateFilter("2017-08-05")}, "id:>12 date: [* 2017-08-05]"},
{TorrentParam{NameLike: "lol", FromID: 12, FromDate: DateFilter("2017-08-01")}, "id:>12 date: [2017-08-01 *]"},
{TorrentParam{NameLike: "lol", FromID: 12, Category: Categories{&Category{3, 12}}}, "(category: 3 AND sub_category: 12) id:>12"},
{TorrentParam{NameLike: "lol", FromID: 12, Category: Categories{&Category{3, 12}, &Category{3, 12}}}, "((category: 3 AND sub_category: 12) OR (category: 3 AND sub_category: 12)) id:>12"},
}
for _, test := range tests {