/
monitorUtils.go
39 lines (35 loc) · 1.24 KB
/
monitorUtils.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
package monitor
import (
"github.com/fzxiao233/Vtb_Record/config"
"github.com/fzxiao233/Vtb_Record/live/interfaces"
"github.com/fzxiao233/Vtb_Record/live/monitor/base"
"github.com/fzxiao233/Vtb_Record/live/monitor/bilibili"
"github.com/fzxiao233/Vtb_Record/live/monitor/twitcasting"
"github.com/fzxiao233/Vtb_Record/live/monitor/youtube"
"github.com/fzxiao233/Vtb_Record/utils"
)
type VideoMonitor = base.VideoMonitor
type LiveTrace func() *interfaces.LiveStatus
// Monitor is responsible for checking if live starts & live's title/link changed
func CreateVideoMonitor(module config.ModuleConfig) VideoMonitor {
var monitor VideoMonitor
//var monitor *BaseMonitor
ctx := base.CreateMonitorCtx(module)
base := base.BaseMonitor{Ctx: ctx, Provider: module.DownloadProvider}
switch module.Name {
case "Youtube":
monitor = &youtube.Youtube{BaseMonitor: base}
case "Twitcasting":
monitor = &twitcasting.Twitcasting{BaseMonitor: base}
case "Bilibili":
monitor = &bilibili.Bilibili{BaseMonitor: base}
default:
return nil
}
return monitor
}
// sanitize everything in the videoinfo for downloader & plugins
func GetCleanVideoInfo(info *interfaces.VideoInfo) *interfaces.VideoInfo {
info.Title = utils.RemoveIllegalChar(info.Title)
return info
}