diff options
| author | Felix Hanley <felix@userspace.com.au> | 2018-03-13 10:06:29 +0000 |
|---|---|---|
| committer | Felix Hanley <felix@userspace.com.au> | 2018-03-13 10:07:45 +0000 |
| commit | a67075e332458002ce4c56c0aa07e03807dc22ea (patch) | |
| tree | 30abaff23afac39d9c1ed2a33387289796531641 /tag.go | |
| parent | b0cfa1d27cc19f0712e579f5f9357d276b11be6b (diff) | |
| download | dhtsearch-a67075e332458002ce4c56c0aa07e03807dc22ea.tar.gz dhtsearch-a67075e332458002ce4c56c0aa07e03807dc22ea.tar.bz2 | |
Add node blacklist to DHT
Diffstat (limited to 'tag.go')
| -rw-r--r-- | tag.go | 108 |
1 files changed, 0 insertions, 108 deletions
@@ -1,108 +0,0 @@ -package dhtsearch - -import ( - "fmt" - "regexp" - "strings" - "unicode" -) - -// Default tags, can be supplimented or overwritten by config -var tags = map[string]string{ - "flac": `\.flac$`, - "episode": "(season|episode|s[0-9]{2}e[0-9]{2})", - "1080": "1080", - "720": "720", - "hd": "hd|720|1080", - "bdrip": "bdrip", - "adult": `(xxx|p(orn|ussy)|censor|sex|urbat|a(ss|nal)|o(rgy|gasm)|(fu|di|co)ck|esbian|milf|lust|gay)|rotic|18(\+|yr)`, - "dvdrip": "dvdrip", - "ebook": "epub", - "application": `\.(apk|exe|msi|dmg)$`, - "android": `\.apk$`, - "apple": `\.dmg$`, - "subtitles": `\.s(rt|ub)$`, - "archive": `\.(zip|rar|p7|tgz|bz2)$`, - "video": `\.(3g2|3gp|amv|asf|avi|drc|f4a|f4b|f4p|f4v|flv|gif|gifv|m2v|m4p|m4v|mkv|mng|mov|mp2|mp4|mpe|mpeg|mpg|mpv|mxf|net|nsv|ogv|qt|rm|rmvb|roq|svi|vob|webm|wmv|yuv)$`, - "audio": `\.(aa|aac|aax|act|aiff|amr|ape|au|awb|dct|dss|dvf|flac|gsm|iklax|ivs|m4a|m4b|mmf|mp3|mpc|msv|ogg|opus|ra|raw|sln|tta|vox|wav|wma|wv)$`, - "document": `\.(cbr|cbz|cb7|cbt|cba|epub|djvu|fb2|ibook|azw.|lit|prc|mobi|pdb|pdb|oxps|xps)$`, - "font": `(font|\.(ttf|fon)$)`, -} - -func mergeCharacterTagREs(tagREs map[string]*regexp.Regexp) error { - // Add character classes - for cc := range unicode.Scripts { - if cc == "Latin" || cc == "Common" { - continue - } - className := strings.ToLower(cc) - // Test for 3 or more characters per character class - tagREs[className], err = regexp.Compile(fmt.Sprintf(`(?i)\p{%s}{3,}`, cc)) - if err != nil { - return err - } - } - return nil -} - -func mergeTagRegexps(tagREs map[string]*regexp.Regexp, tags map[string]string) error { - for tag, re := range tags { - tagREs[tag], err = regexp.Compile("(?i)" + re) - if err != nil { - return err - } - } - return nil -} - -func createTag(tag string) (tagId int, err error) { - err = DB.QueryRow(sqlSelectTag, tag).Scan(&tagId) - if err == nil { - if Config.Debug { - fmt.Printf("Found existing tag %s\n", tag) - } - } else { - err = DB.QueryRow(sqlInsertTag, tag).Scan(&tagId) - if err != nil { - fmt.Println(err) - return -1, err - } - if Config.Debug { - fmt.Printf("Created new tag %s\n", tag) - } - } - return tagId, nil -} - -func tagTorrent(t *Torrent) { - ttags := make(map[string]bool) - - for tag, re := range tagREs { - if re.MatchString(t.Name) { - ttags[tag] = true - } - for _, f := range t.Files { - if re.MatchString(f.Path) { - ttags[tag] = true - } - } - } - // Make unique - for tt := range ttags { - t.Tags = append(t.Tags, tt) - } -} - -func hasTag(t Torrent, tag string) bool { - for _, t := range t.Tags { - if tag == t { - return true - } - } - return false -} - -const ( - sqlSelectTag = `select id from tags where name = $1` - sqlInsertTag = `insert into tags (name) values ($1) returning id` -) |
