Merge branch 'master' into old-engine

This commit is contained in:
nikk gitanes
2023-02-13 00:54:00 +03:00
5 changed files with 20 additions and 58 deletions

View File

@@ -28,8 +28,9 @@ var (
func Start() {
go func() {
if settings.BTsets.EnableRutorSearch {
loadDB()
updateDB()
if !updateDB() {
loadDB()
}
isStop = false
for !isStop {
for i := 0; i < 3*60*60; i++ {
@@ -53,27 +54,27 @@ func Stop() {
}
// https://github.com/yourok-0001/releases/raw/master/torr/rutor.ls
func updateDB() {
func updateDB() bool {
log.TLogln("Update rutor db")
fnTmp := filepath.Join(settings.Path, "rutor.tmp")
out, err := os.Create(fnTmp)
if err != nil {
log.TLogln("Error create file rutor.tmp:", err)
return
return false
}
resp, err := http.Get("https://github.com/yourok-0001/releases/raw/master/torr/rutor.ls")
if err != nil {
log.TLogln("Error connect to rutor db:", err)
out.Close()
return
return false
}
defer resp.Body.Close()
_, err = io.Copy(out, resp.Body)
out.Close()
if err != nil {
log.TLogln("Error download rutor db:", err)
return
return false
}
fnOrig := filepath.Join(settings.Path, "rutor.ls")
@@ -84,17 +85,19 @@ func updateDB() {
err = os.Remove(fnOrig)
if err != nil && !os.IsNotExist(err) {
log.TLogln("Error remove old rutor db:", err)
return
return false
}
err = os.Rename(fnTmp, fnOrig)
if err != nil {
log.TLogln("Error rename rutor db:", err)
return
return false
}
loadDB()
return true
} else {
os.Remove(fnTmp)
}
return false
}
func loadDB() {
@@ -134,15 +137,6 @@ func loadDB() {
log.TLogln("Index rutor db")
torrsearch.NewIndex(torrs)
//err = dec.Decode(&ftorrs)
//if err == nil {
// torrs = ftorrs
// log.TLogln("Index rutor db")
// torrsearch.NewIndex(torrs)
//} else {
// log.TLogln("Error read rutor db:", err)
//}
} else {
log.TLogln("Error load rutor db:", err)
}

View File

@@ -57,42 +57,11 @@ func replaceChars(word string) string {
func isStopWord(word string) bool {
switch word {
case "a", "about", "above", "after", "again", "against", "all", "am", "an",
"and", "any", "are", "as", "at", "be", "because", "been", "before",
"being", "below", "between", "both", "but", "by", "can", "did", "do",
"does", "doing", "don", "down", "during", "each", "few", "for", "from",
"further", "had", "has", "have", "having", "he", "her", "here", "hers",
"herself", "him", "himself", "his", "how", "i", "if", "in", "into", "is",
"it", "its", "itself", "just", "me", "more", "most", "my", "myself",
"no", "nor", "not", "now", "of", "off", "on", "once", "only", "or",
"other", "our", "ours", "ourselves", "out", "over", "own", "s", "same",
"she", "should", "so", "some", "such", "t", "than", "that", "the", "their",
"theirs", "them", "themselves", "then", "there", "these", "they",
"this", "those", "through", "to", "too", "under", "until", "up",
"very", "was", "we", "were", "what", "when", "where", "which", "while",
"who", "whom", "why", "will", "with", "you", "your", "yours", "yourself",
"yourselves", "и", "в", "во", "не", "что", "он", "на", "я", "с",
"со", "как", "а", "то", "все", "она", "так", "его",
"но", "да", "ты", "к", "у", "же", "вы", "за", "бы",
"по", "только", "ее", "мне", "было", "вот", "от",
"меня", "еще", "нет", "о", "из", "ему", "теперь",
"когда", "даже", "ну", "вдруг", "ли", "если", "уже",
"или", "ни", "быть", "был", "него", "до", "вас",
"нибудь", "опять", "уж", "вам", "ведь", "там", "потом",
"себя", "ничего", "ей", "может", "они", "тут", "где",
"есть", "надо", "ней", "для", "мы", "тебя", "их",
"чем", "была", "сам", "чтоб", "без", "будто", "чего",
"раз", "тоже", "себе", "под", "будет", "ж", "тогда",
"кто", "этот", "того", "потому", "этого", "какой",
"совсем", "ним", "здесь", "этом", "один", "почти",
"мой", "тем", "чтобы", "нее", "сейчас", "были", "куда",
"зачем", "всех", "никогда", "можно", "при", "наконец",
"два", "об", "другой", "хоть", "после", "над", "больше",
"тот", "через", "эти", "нас", "про", "всего", "них",
"какая", "много", "разве", "три", "эту", "моя",
"впрочем", "хорошо", "свою", "этой", "перед", "иногда",
"лучше", "чуть", "том", "нельзя", "такой", "им", "более",
"всегда", "конечно", "всю", "между":
case "a", "am", "an", "and", "are", "as", "at", "be",
"by", "did", "do", "is", "of", "or", "s", "so", "t",
"и", "в", "с", "со", "а", "но", "к", "у",
"же", "бы", "по", "от", "о", "из", "ну",
"ли", "ни", "нибудь", "уж", "ведь", "ж", "об":
return true
}
return false

View File

@@ -2,7 +2,6 @@ package torrsearch
import (
"server/rutor/models"
"strconv"
)
// Index is an inverted Index. It maps tokens to document IDs.
@@ -21,7 +20,7 @@ func Search(text string) []int {
func (idx Index) add(torrs []*models.TorrentDetails) {
for ID, torr := range torrs {
for _, token := range analyze(torr.Name + " " + torr.GetNames() + " " + strconv.Itoa(torr.Year)) {
for _, token := range analyze(torr.Title) {
ids := idx[token]
if ids != nil && ids[len(ids)-1] == ID {
// Don't add same ID twice.

View File

@@ -18,6 +18,6 @@ func analyze(text string) []string {
tokens := tokenize(text)
tokens = lowercaseFilter(tokens)
tokens = stopwordFilter(tokens)
tokens = stemmerFilter(tokens)
//tokens = stemmerFilter(tokens)
return tokens
}