From f8112723f8b09aa2bd0c93025e2b8ecf21c7f175 Mon Sep 17 00:00:00 2001 From: kilo Date: Sat, 9 Sep 2017 14:05:51 +0200 Subject: [PATCH] fix "torrent file button grayed out for old torrents (anicache.com link)" (#1542) * add strfind function & check for pantsu.cat when checking torrent file exists * test * Update listing.jet.html * Update view.jet.html * Update torrents.jet.html * Update template_functions_test.go --- templates/site/torrents/listing.jet.html | 2 +- templates/site/torrents/view.jet.html | 2 +- templates/site/user/torrents.jet.html | 2 +- templates/template_functions.go | 21 ++++++++++++++++-- templates/template_functions_test.go | 27 +++++++++++++++++++++++- 5 files changed, 48 insertions(+), 6 deletions(-) diff --git a/templates/site/torrents/listing.jet.html b/templates/site/torrents/listing.jet.html index 24ff9bca..844606fa 100644 --- a/templates/site/torrents/listing.jet.html +++ b/templates/site/torrents/listing.jet.html @@ -83,7 +83,7 @@
- +
diff --git a/templates/site/torrents/view.jet.html b/templates/site/torrents/view.jet.html index 8dadc6e6..c4c70b7f 100644 --- a/templates/site/torrents/view.jet.html +++ b/templates/site/torrents/view.jet.html @@ -133,7 +133,7 @@
{{ T("magnet_link")}}
- +
{{ T("torrent_file")}}
{{ if User.ID > 0}} diff --git a/templates/site/user/torrents.jet.html b/templates/site/user/torrents.jet.html index fb6ceec2..d01272ad 100644 --- a/templates/site/user/torrents.jet.html +++ b/templates/site/user/torrents.jet.html @@ -36,7 +36,7 @@
- +
diff --git a/templates/template_functions.go b/templates/template_functions.go index fecce525..8eb69534 100644 --- a/templates/template_functions.go +++ b/templates/template_functions.go @@ -50,6 +50,7 @@ func templateFunctions(vars jet.VarMap) jet.VarMap { vars.Set("genActivityContent", genActivityContent) vars.Set("contains", contains) vars.Set("kilo_strcmp", kilo_strcmp) + vars.Set("kilo_strfind", kilo_strfind) return vars } func getRawQuery(currentURL *url.URL) string { @@ -296,8 +297,10 @@ func contains(arr interface{}, comp string) bool { return false } -func torrentFileExists(hash string) bool { - +func torrentFileExists(hash string, TorrentLink string) bool { + if(len(TorrentLink) > 30 && !kilo_strfind(TorrentLink, ".pantsu.cat", 8)) { + return true + } Openfile, err := os.Open(fmt.Sprintf("%s%c%s.torrent", config.Get().Torrents.FileStorage, os.PathSeparator, hash)) if err != nil { return false @@ -329,3 +332,17 @@ func kilo_strcmp(str1 string, str2 string, end int, start int) bool { return strings.Compare(str1[start:end], str2[start:end]) == 0 } + +func kilo_strfind(str1 string, searchfor string, start int) bool { + //Search a string inside another with start parameter + //start parameter indicates where we start searching + + len1 := len(str1) + + if start >= len1 { + return false + } + + + return strings.Contains(str1[start:len1], searchfor) +} diff --git a/templates/template_functions_test.go b/templates/template_functions_test.go index 035506a5..39b143ca 100644 --- a/templates/template_functions_test.go +++ b/templates/template_functions_test.go @@ -599,7 +599,7 @@ func testTorrentFileExists(t *testing.T) { }, } for _, test := range tests { - value := torrentFileExists(test.hash) + value := torrentFileExists(test.hash, "") if value != test.Expected { t.Errorf("Unexpected value from the function TorrentFileExists, got '%t', wanted '%t' for '%s'", value, test.Expected, test.hash) } @@ -630,6 +630,31 @@ func Testkilo_strcmp(t *testing.T) { } } } + + func Testkilo_strfind(t *testing.T) { + var tests = []struct { + TestString string + TestString2 string + Expected bool + }{ + { + TestString: "kilo", + TestString2: "kilo", + Expected: true, + }, + { + TestString: "kilo", + TestString2: "loki", // Clearly not the same level + Expected: false, + }, + } + for _, test := range tests { + value := kilo_strfind(test.TestString, test.TestString2, 0) + if value != test.Expected { + t.Errorf("Unexpected value from the function languageName, got '%t', wanted '%t'", value, test.Expected, test.TestString, test.TestString) + } + } + } func mockupTemplateT(t *testing.T) publicSettings.TemplateTfunc { conf := config.Get().I18n