package srt import ( "os" "io" "strings" ) func NewWriter(stream_key string) (io.WriteCloser, error) { base_dir, _ := os.UserHomeDir() file, err := os.Create(base_dir + "/live/" + stream_key + "/rawdump.ts") if err != nil { return nil, err } return file, nil } func CheckStreamID(stream_id []byte) (io.WriteCloser, bool) { stream_key := make([]byte, 0) for i := len(stream_id) - 1; i >= 0; i-- { if stream_id[i] == 0 { break } stream_key = append(stream_key, stream_id[i]) } stream_key_string := strings.TrimSpace(string(stream_key)) if check_stream_key(stream_key_string) { writer, err := NewWriter(stream_key_string) if err != nil { return nil, false } return writer, true } return nil, false } func check_stream_key(stream_key string) (bool) { base_dir, _ := os.UserHomeDir() if fileinfo, err := os.Stat(base_dir + "/live/" + stream_key); err == nil && fileinfo.IsDir() { return true } return false }