d8e17478f8
* Add flags for torrents Add a new field, .Language, to the Torrent model, and a new package, torrentLanguages, which maps languages to flags. Added also a flag icon pack from googlei18n/region-flags, with (mostly) public domain flags from Wikipedia. * Optimize flags * Use FlagSprites CSS instead of .png files * Only use flags for languages we support * Add test for CSS flags Ensure that we have all the flags for the languages we support. * Add AdditionalLanguages field to config This allows us to support additional languages for new uploaded torrents, even if we have no translation for it. * Minor CSS fix * Add "other" and "multiple" torrent languages Also removed the TorrentLanguage struct, as it wasn't much useful. * Fix test * Add colspan=2 to category when language is empty Also hide the language column if empty. * Add lang field to search. Hopefully it works with Elasticsearch as well, but I haven't tested (lol Java) * Add language field to ES index and settings * Add language column to JS template * Add keyword type to language ES field * Remove 'raw' from keyword * Set "simple" analyzer on language * Document .Language field on Torrent model
36 lignes
880 o
Go
36 lignes
880 o
Go
package torrentLanguages
|
|
|
|
import (
|
|
"io/ioutil"
|
|
"path"
|
|
"strings"
|
|
"testing"
|
|
|
|
"github.com/NyaaPantsu/nyaa/config"
|
|
)
|
|
|
|
// run before config/parse.go:init()
|
|
var _ = func() (_ struct{}) {
|
|
config.ConfigPath = path.Join("..", "..", config.ConfigPath)
|
|
config.DefaultConfigPath = path.Join("..", "..", config.DefaultConfigPath)
|
|
config.Parse()
|
|
return
|
|
}()
|
|
|
|
func TestCSSFlags(t *testing.T) {
|
|
languages := GetTorrentLanguages()
|
|
flagsCSSPath := path.Join("..", "..", "public", "css", "flags", "flags.css")
|
|
file, err := ioutil.ReadFile(flagsCSSPath)
|
|
if err != nil {
|
|
t.Errorf("Failed to load flags.css: %v", err)
|
|
return
|
|
}
|
|
|
|
contents := string(file)
|
|
for _, language := range languages {
|
|
flag := FlagFromLanguage(language)
|
|
if !strings.Contains(contents, ".flag-"+flag) {
|
|
t.Errorf("flags.css does not contains class .flag-%s. You probably need to update it.", flag)
|
|
}
|
|
}
|
|
}
|