mirror of
https://github.com/stashapp/stash.git
synced 2025-12-17 20:34:37 +03:00
Add scene rating to scene filename parser (#432)
* Fix scene parser display issues in 2.5 * Dropdown menu presentation improvements * Fix refresh on parser apply * Ignore line endings on scss files
This commit is contained in:
@@ -87,6 +87,7 @@ func initParserFields() {
|
||||
//I = new ParserField("i", undefined, "Matches any ignored word", false);
|
||||
|
||||
ret["d"] = newParserField("d", `(?:\.|-|_)`, false)
|
||||
ret["rating"] = newParserField("rating", `\d`, true)
|
||||
ret["performer"] = newParserField("performer", ".*", true)
|
||||
ret["studio"] = newParserField("studio", ".*", true)
|
||||
ret["movie"] = newParserField("movie", ".*", true)
|
||||
@@ -224,6 +225,10 @@ func newSceneHolder(scene *models.Scene) *sceneHolder {
|
||||
return &ret
|
||||
}
|
||||
|
||||
func validateRating(rating int) bool {
|
||||
return rating >= 1 && rating <= 5
|
||||
}
|
||||
|
||||
func validateDate(dateStr string) bool {
|
||||
splits := strings.Split(dateStr, "-")
|
||||
if len(splits) != 3 {
|
||||
@@ -304,6 +309,14 @@ func (h *sceneHolder) setField(field parserField, value interface{}) {
|
||||
Valid: true,
|
||||
}
|
||||
}
|
||||
case "rating":
|
||||
rating, _ := strconv.Atoi(value.(string))
|
||||
if validateRating(rating) {
|
||||
h.result.Rating = sql.NullInt64{
|
||||
Int64: int64(rating),
|
||||
Valid: true,
|
||||
}
|
||||
}
|
||||
case "performer":
|
||||
// add performer to list
|
||||
h.performers = append(h.performers, value.(string))
|
||||
@@ -661,6 +674,11 @@ func (p *SceneFilenameParser) setParserResult(h sceneHolder, result *models.Scen
|
||||
result.Date = &h.result.Date.String
|
||||
}
|
||||
|
||||
if h.result.Rating.Valid {
|
||||
rating := int(h.result.Rating.Int64)
|
||||
result.Rating = &rating
|
||||
}
|
||||
|
||||
if len(h.performers) > 0 {
|
||||
p.setPerformers(h, result)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user