Added arn to the main repository
This commit is contained in:
48
arn/Nyaa.go
Normal file
48
arn/Nyaa.go
Normal file
@ -0,0 +1,48 @@
|
||||
package arn
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"regexp"
|
||||
"strings"
|
||||
)
|
||||
|
||||
type nyaaAnimeProvider struct{}
|
||||
|
||||
// Nyaa anime provider (singleton)
|
||||
var Nyaa = new(nyaaAnimeProvider)
|
||||
|
||||
var nyaaInvalidCharsRegex = regexp.MustCompile(`[^[:alnum:]!']`)
|
||||
var nyaaTVRegex = regexp.MustCompile(` \(?TV\)?`)
|
||||
|
||||
// GetLink retrieves the Nyaa title for the given anime
|
||||
func (nyaa *nyaaAnimeProvider) GetLink(anime *Anime, additionalSearchTerm string) string {
|
||||
searchTitle := nyaa.GetTitle(anime) + "+" + additionalSearchTerm
|
||||
searchTitle = strings.Replace(searchTitle, " ", "+", -1)
|
||||
|
||||
quality := ""
|
||||
subs := ""
|
||||
|
||||
nyaaSuffix := fmt.Sprintf("?f=0&c=1_2&q=%s+%s+%s&s=seeders&o=desc", searchTitle, quality, subs)
|
||||
nyaaSuffix = strings.Replace(nyaaSuffix, "++", "+", -1)
|
||||
|
||||
return "https://nyaa.si/" + nyaaSuffix
|
||||
}
|
||||
|
||||
// GetTitle retrieves the Nyaa title for the given anime
|
||||
func (nyaa *nyaaAnimeProvider) GetTitle(anime *Anime) string {
|
||||
return nyaa.BuildTitle(anime.Title.Canonical)
|
||||
}
|
||||
|
||||
// BuildTitle tries to create a title for use on Nyaa
|
||||
func (nyaa *nyaaAnimeProvider) BuildTitle(title string) string {
|
||||
if title == "" {
|
||||
return ""
|
||||
}
|
||||
|
||||
title = nyaaInvalidCharsRegex.ReplaceAllString(title, " ")
|
||||
title = nyaaTVRegex.ReplaceAllString(title, "")
|
||||
title = strings.Replace(title, " ", " ", -1)
|
||||
title = strings.TrimSpace(title)
|
||||
|
||||
return title
|
||||
}
|
Reference in New Issue
Block a user