-
Notifications
You must be signed in to change notification settings - Fork 5
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #21 from xxxsen/xxxsen/feature/add_rule_api
Xxxsen/feature/add rule api
- Loading branch information
Showing
54 changed files
with
647 additions
and
498 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
package ruleapi | ||
|
||
type IMatcher interface { | ||
Match(res string) (string, bool, error) | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,46 @@ | ||
package ruleapi | ||
|
||
type RegexpMatchRule struct { | ||
Regexp []string | ||
Match string | ||
} | ||
|
||
type regexpMatchItem struct { | ||
reg ITester | ||
match string | ||
} | ||
|
||
type RegexpMatcher struct { | ||
matchList []*regexpMatchItem | ||
} | ||
|
||
func NewRegexpMatcher() *RegexpMatcher { | ||
return &RegexpMatcher{} | ||
} | ||
|
||
func (m *RegexpMatcher) AddRules(rules ...RegexpMatchRule) error { | ||
for _, rule := range rules { | ||
t := NewRegexpTester() | ||
if err := t.AddRules(rule.Regexp...); err != nil { | ||
return err | ||
} | ||
m.matchList = append(m.matchList, ®expMatchItem{ | ||
reg: t, | ||
match: rule.Match, | ||
}) | ||
} | ||
return nil | ||
} | ||
|
||
func (m *RegexpMatcher) Match(res string) (string, bool, error) { | ||
for _, matcher := range m.matchList { | ||
ok, err := matcher.reg.Test(res) | ||
if err != nil { | ||
return "", false, err | ||
} | ||
if ok { | ||
return matcher.match, true, nil | ||
} | ||
} | ||
return "", false, nil | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,43 @@ | ||
package ruleapi | ||
|
||
import ( | ||
"regexp" | ||
) | ||
|
||
type RegexpRewriteRule struct { | ||
Rule string | ||
Rewrite string | ||
} | ||
|
||
type regexpRewriteItem struct { | ||
reg *regexp.Regexp | ||
rewrite string | ||
} | ||
|
||
type RegexpRewriter struct { | ||
rewriteList []*regexpRewriteItem | ||
} | ||
|
||
func NewRegexpRewriter() *RegexpRewriter { | ||
return &RegexpRewriter{} | ||
} | ||
|
||
func (r *RegexpRewriter) AddRules(rs ...RegexpRewriteRule) error { | ||
for _, rule := range rs { | ||
reg, err := regexp.Compile(rule.Rule) | ||
if err != nil { | ||
return err | ||
} | ||
r.rewriteList = append(r.rewriteList, ®expRewriteItem{ | ||
reg: reg, | ||
rewrite: rule.Rewrite, | ||
}) | ||
} | ||
return nil | ||
} | ||
func (r *RegexpRewriter) Rewrite(res string) (string, error) { | ||
for _, rewriter := range r.rewriteList { | ||
res = rewriter.reg.ReplaceAllString(res, rewriter.rewrite) | ||
} | ||
return res, nil | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,33 @@ | ||
package ruleapi | ||
|
||
import ( | ||
"regexp" | ||
) | ||
|
||
type RegexpTester struct { | ||
testList []*regexp.Regexp | ||
} | ||
|
||
func NewRegexpTester() *RegexpTester { | ||
return &RegexpTester{} | ||
} | ||
|
||
func (t *RegexpTester) AddRules(rules ...string) error { | ||
for _, rule := range rules { | ||
reg, err := regexp.Compile(rule) | ||
if err != nil { | ||
return err | ||
} | ||
t.testList = append(t.testList, reg) | ||
} | ||
return nil | ||
} | ||
|
||
func (t *RegexpTester) Test(res string) (bool, error) { | ||
for _, tester := range t.testList { | ||
if tester.MatchString(res) { | ||
return true, nil | ||
} | ||
} | ||
return false, nil | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
package ruleapi | ||
|
||
type IRewriter interface { | ||
Rewrite(res string) (string, error) | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
package ruleapi | ||
|
||
type ITester interface { | ||
Test(res string) (bool, error) | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
package config | ||
|
||
var sysDependencies = []Dependency{ | ||
{Link: "https://github.com/Kagami/go-face-testdata/raw/master/models/shape_predictor_5_face_landmarks.dat", RelPath: "models/shape_predictor_5_face_landmarks.dat"}, | ||
{Link: "https://github.com/Kagami/go-face-testdata/raw/master/models/dlib_face_recognition_resnet_model_v1.dat", RelPath: "models/dlib_face_recognition_resnet_model_v1.dat"}, | ||
{Link: "https://github.com/Kagami/go-face-testdata/raw/master/models/mmod_human_face_detector.dat", RelPath: "models/mmod_human_face_detector.dat"}, | ||
{Link: "https://github.com/esimov/pigo/raw/master/cascade/facefinder", RelPath: "models/facefinder"}, | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
package config | ||
|
||
var sysHandler = []string{ | ||
"image_transcoder", | ||
"poster_cropper", | ||
"watermark_maker", | ||
"actor_spliter", | ||
"tag_padder", | ||
"duration_fixer", | ||
"number_title", | ||
"translater", | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
package config | ||
|
||
import "github.com/xxxsen/common/logger" | ||
|
||
var sysLogConfig = logger.LogConfig{ | ||
Level: "info", | ||
Console: true, | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
package config | ||
|
||
var sysPlugins = []string{ | ||
"javbus", | ||
"javhoo", | ||
"airav", | ||
"javdb", | ||
"jav321", | ||
"caribpr", | ||
"18av", | ||
"njav", | ||
"missav", | ||
"freejavbt", | ||
"tktube", | ||
"avsox", | ||
} | ||
|
||
var sysCategoryPlugins = []CategoryPlugin{ | ||
//如果存在分配配置, 那么当番号被识别为特定分类的场景下, 将会使用分类插件直接查询 | ||
{Name: "FC2", Plugins: []string{"fc2", "18av", "njav", "freejavbt", "tktube", "avsox", "fc2ppvdb"}}, | ||
} |
Oops, something went wrong.