Files
rolandradio_record/main.go
Mac Call e53fb1b54f initial
2023-03-05 15:06:10 +01:00

98 lines
2.9 KiB
Go

package main
import (
"fmt"
"os"
"time"
// "stream_enregistre"
// "stream_titre"
)
const autocutDelai = 60 //s
// Le filename reçu se verra juste ajouter une extension ici (.mp3 ou .index)
func Enregistre(filename string) {
startTime := time.Now()
fmt.Println("Started... ", startTime)
fmt.Println(" Attendre quelques minutes et regarder dans le repertoire courant... ☺ ")
fmt.Println(" <ctrl>C pour arrêter")
doneChanRecord := make(chan bool)
errChanRecord := make(chan error)
doneChanTitle := make(chan bool)
errChanTitle := make(chan error)
filenameStream := filename + ".mp3"
filenameIndex := filename + ".index"
go Enregistre_stream(doneChanRecord, errChanRecord, filenameStream)
go Enregistre_titres(doneChanTitle, errChanTitle, filenameIndex)
// Exécuter la fonction toutes les 'timer' millisecondes
ticker := time.Tick(autocutDelai * time.Second)
for range ticker {
Cut(filenameStream, filenameIndex)
}
// Attendre que les goroutines aient terminé
successRecord := <-doneChanRecord
if !successRecord {
err := <-errChanRecord
fmt.Println("Erreur enregistrement :", err)
return
}
successTitle := <-doneChanTitle
if !successTitle {
err := <-errChanTitle
fmt.Println("Erreur titres :", err)
return
}
fmt.Println("Programme terminé")
}
func DecoupeAll() {
Cut("data/stream_recorded_2023-03-03T09:10:15.stripped.mp3", "data/index2023-03-03T09:10:14.txt")
Cut("data/stream_recorded_2023-03-02T10:12:03.stripped.mp3", "data/index2023-03-02T10:12:03.txt")
//Cut("data/stream_recorded_2023-02-27T22:55:39.stripped.mp3", "data/index2023-02-27T22:55:39.txt")
Cut("data/stream_recorded_2023-03-01T20:20:48.stripped.mp3", "data/index2023-03-01T20:20:48.txt")
Cut("data/stream_recorded_2023-02-28T18:33:07.stripped.mp3", "data/index2023-02-28T18:33:07.txt")
Cut("data/stream_recorded_2023-03-01T08:16:54.stripped.mp3", "data/index2023-03-01T08:16:53.txt")
Cut("data/stream_recorded_2023-03-04T11:59:43.stripped.mp3", "data/index2023-03-04T11:59:43.txt")
Cut("data/stream_recorded_2023-03-04T13:39:29.stripped.mp3", "data/index2023-03-04T13:39:28.txt")
Cut("data/rolanradio_2023-03-04T14:58:40.mp3", "data/index2023-03-04T14:58:40.txt")
Cut("data/rolanradio_2023-03-04T18:26:17.mp3", "data/index2023-03-04T18:26:16.txt")
Cut("data/rolanradio_2023-03-04T22:17:41.mp3", "data/index2023-03-04T22:17:40.txt")
//Cut("data/", "data/")
}
func main() {
if len(os.Args) != 1 && len(os.Args) != 4 {
fmt.Println("Usage: ")
fmt.Println(" stream : enregistre et decoupe 'en direct' ")
fmt.Println(" stream cut ficher_mp3 fichier_index : découpe un mp3 compte tenu de l'index")
os.Exit(1)
}
if len(os.Args) == 4 && os.Args[1] == "cut" {
mp3 := os.Args[2]
index := os.Args[3]
Cut(mp3, index)
} else {
strdate := time.Now().Format("2006-01-02T15:04:05")
filename := fmt.Sprintf("%s_%s", strdate, "enregistrement")
Enregistre(filename)
}
}