2020-07-10 08:13:08 +00:00
|
|
|
package intimate
|
|
|
|
|
|
|
|
import (
|
|
|
|
"database/sql"
|
2020-07-16 07:25:55 +00:00
|
|
|
"reflect"
|
|
|
|
|
|
|
|
"github.com/474420502/hunter"
|
|
|
|
"github.com/tidwall/gjson"
|
2020-07-10 08:13:08 +00:00
|
|
|
)
|
|
|
|
|
2020-07-17 10:21:38 +00:00
|
|
|
type GetSet struct {
|
2020-07-10 08:13:08 +00:00
|
|
|
}
|
|
|
|
|
2020-07-17 10:21:38 +00:00
|
|
|
type Streamer struct {
|
2020-07-20 10:13:54 +00:00
|
|
|
Uid int64 //
|
|
|
|
Platform string //
|
|
|
|
UserId string //
|
|
|
|
|
|
|
|
UserName sql.NullString //
|
|
|
|
LiveUrl sql.NullString //
|
|
|
|
Channel sql.NullString //
|
|
|
|
Ext interface{} //
|
|
|
|
|
|
|
|
IsUpdateStreamer bool // 更新上面的内容
|
|
|
|
IsUpdateUrl bool
|
|
|
|
updateInterval int32
|
|
|
|
UpdateUrl interface{}
|
|
|
|
LatestLogUid int64
|
|
|
|
UpdateTime sql.NullTime //
|
|
|
|
|
|
|
|
ErrorMsg sql.NullString
|
|
|
|
Operator int32
|
|
|
|
|
|
|
|
LastOperator int32
|
2020-07-10 08:13:08 +00:00
|
|
|
}
|
|
|
|
|
2020-07-17 10:21:38 +00:00
|
|
|
// Get Simple Value
|
|
|
|
func (ai *Streamer) Get(field string) interface{} {
|
|
|
|
return reflect.ValueOf(ai).Elem().FieldByName(field).Interface()
|
2020-07-15 11:23:45 +00:00
|
|
|
}
|
|
|
|
|
2020-07-16 07:25:55 +00:00
|
|
|
// Set Simple Value
|
2020-07-17 10:21:38 +00:00
|
|
|
func (ai *Streamer) Set(field string, value interface{}) {
|
2020-07-16 07:25:55 +00:00
|
|
|
reflect.ValueOf(ai).Elem().FieldByName(field).Set(reflect.ValueOf(value))
|
|
|
|
}
|
|
|
|
|
2020-07-10 08:13:08 +00:00
|
|
|
type CollectLog struct {
|
2020-07-17 10:21:38 +00:00
|
|
|
LogUid int64 // 日志id
|
|
|
|
StreamerUid int64 // StreamerId 表id与
|
|
|
|
|
2020-07-16 07:25:55 +00:00
|
|
|
Platform string //
|
2020-07-17 10:21:38 +00:00
|
|
|
UserId string // 平台的UserId
|
2020-07-20 10:13:54 +00:00
|
|
|
IsLiveStreaming bool //
|
|
|
|
IsError bool //
|
2020-07-16 07:25:55 +00:00
|
|
|
Followers sql.NullInt64 //
|
|
|
|
Views sql.NullInt64 //
|
|
|
|
Giver interface{} //
|
|
|
|
Gratuity sql.NullInt64 //
|
|
|
|
LiveTitle sql.NullString //
|
|
|
|
LiveStartTime sql.NullTime //
|
|
|
|
LiveEndTime sql.NullTime //
|
|
|
|
UpdateTime sql.NullTime //
|
|
|
|
Tags interface{}
|
|
|
|
Ext interface{} //
|
|
|
|
ErrorMsg sql.NullString //
|
|
|
|
}
|
|
|
|
|
2020-07-17 10:21:38 +00:00
|
|
|
// Get Simple Value
|
|
|
|
func (cl *CollectLog) Get(field string) interface{} {
|
|
|
|
return reflect.ValueOf(cl).Elem().FieldByName(field).Interface()
|
|
|
|
}
|
|
|
|
|
2020-07-16 07:25:55 +00:00
|
|
|
// Set Simple Value
|
|
|
|
func (cl *CollectLog) Set(field string, value interface{}) {
|
|
|
|
reflect.ValueOf(cl).Elem().FieldByName(field).Set(reflect.ValueOf(value))
|
2020-07-10 08:13:08 +00:00
|
|
|
}
|
|
|
|
|
2020-07-16 07:25:55 +00:00
|
|
|
type ExtractorSource struct {
|
|
|
|
source gjson.Result
|
|
|
|
extractor *hunter.Extractor
|
|
|
|
}
|
|
|
|
|
|
|
|
func NewExtractorSource(gr gjson.Result) *ExtractorSource {
|
|
|
|
es := &ExtractorSource{}
|
|
|
|
es.source = gr
|
|
|
|
return es
|
|
|
|
}
|
|
|
|
|
|
|
|
func (es *ExtractorSource) CreateExtractor() {
|
|
|
|
es.extractor = hunter.NewExtractor([]byte(es.source.Str))
|
|
|
|
}
|
|
|
|
|
|
|
|
func (es *ExtractorSource) GetSource() gjson.Result {
|
|
|
|
return es.source
|
|
|
|
}
|
|
|
|
|
|
|
|
func (es *ExtractorSource) GetExtractor() *hunter.Extractor {
|
|
|
|
return es.extractor
|
|
|
|
}
|