rewriter

package
v0.1.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 10, 2022 License: MIT Imports: 10 Imported by: 0

Documentation

Index

Constants

View Source
const (
	DataSep    = "\t"
	ReplaceSep = "|"
)
View Source
const (
	AWDBFieldLine = "line"
)

Variables

This section is empty.

Functions

This section is empty.

Types

type AWDBIPLineRewriter

type AWDBIPLineRewriter struct {
	// contains filtered or unexported fields
}

AWDBIPLineRewriter AWDB数据库的IP线路改写 根据线路数据库匹配 ISP

func (*AWDBIPLineRewriter) Rewrite

func (r *AWDBIPLineRewriter) Rewrite(ip net.IP, ipRange *ipx.Range, data map[string]string) (net.IP, *ipx.Range, map[string]string, error)

Rewrite 改写

type DataLoader

type DataLoader struct {
	// field, match, replace
	Data []map[string]map[string]string
}

DataLoader 数据加载

func NewDataLoader

func NewDataLoader() *DataLoader

NewDataLoader 初始化数据加载

func (*DataLoader) LoadFile

func (l *DataLoader) LoadFile(file string) error

LoadFile 加载文件

func (*DataLoader) LoadString

func (l *DataLoader) LoadString(data ...string)

LoadString 加载数据

func (*DataLoader) Rewrite

func (l *DataLoader) Rewrite(data map[string]string)

Rewrite 改写

type DataRewriter

type DataRewriter struct {
	DataLoader *DataLoader
	// contains filtered or unexported fields
}

DataRewriter 数据改写

func NewDataRewriter

func NewDataRewriter(dl *DataLoader, rw Rewriter) *DataRewriter

NewDataRewriter 初始化数据改写 数据以'\t'作为分段,每一行的格式为: <field>\t<match>\t<replace>\n @ <field> - 字段ID @ <match> - 匹配内容 @ <replace> - 改写内容,支持以'|'作为分段,表示匹配后改写其他字段 举例: country\t\t保留地址 - "国家"字段中,如果数据为空,改写为"保留地址" province\t内蒙古\t内蒙 - "省份"字段中,如果数据为"内蒙古",改写为"内蒙" asnumber\t4134\tisp|电信 - "AS号码"字段中,如果数据为"4134",改写"运营商"字段为"电信"

func (*DataRewriter) Rewrite

func (r *DataRewriter) Rewrite(ip net.IP, ipRange *ipx.Range, data map[string]string) (net.IP, *ipx.Range, map[string]string, error)

Rewrite 改写

type EmptyRewriter

type EmptyRewriter struct {
}

EmptyRewriter 空改写

func (*EmptyRewriter) Rewrite

func (r *EmptyRewriter) Rewrite(ip net.IP, ipRange *ipx.Range, data map[string]string) (net.IP, *ipx.Range, map[string]string, error)

Rewrite 改写

type Rewriter

type Rewriter interface {

	// Rewrite 改写
	Rewrite(net.IP, *ipx.Range, map[string]string) (net.IP, *ipx.Range, map[string]string, error)
}
var DefaultRewriter Rewriter = &EmptyRewriter{}

func NewIPLineRewriter

func NewIPLineRewriter(ipLineFile string, rw Rewriter) (Rewriter, error)

NewIPLineRewriter 初始化实例

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL