mirror of
				https://github.com/owncast/owncast.git
				synced 2025-11-04 05:17:27 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			67 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			67 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
package utils
 | 
						|
 | 
						|
import (
 | 
						|
	"io/ioutil"
 | 
						|
	"os"
 | 
						|
	"path/filepath"
 | 
						|
	"strings"
 | 
						|
 | 
						|
	"github.com/mssola/user_agent"
 | 
						|
)
 | 
						|
 | 
						|
//GetTemporaryPipePath gets the temporary path for the streampipe.flv file
 | 
						|
func GetTemporaryPipePath() string {
 | 
						|
	return filepath.Join(os.TempDir(), "streampipe.flv")
 | 
						|
}
 | 
						|
 | 
						|
//DoesFileExists checks if the file exists
 | 
						|
func DoesFileExists(name string) bool {
 | 
						|
	if _, err := os.Stat(name); err != nil {
 | 
						|
		if os.IsNotExist(err) {
 | 
						|
			return false
 | 
						|
		}
 | 
						|
	}
 | 
						|
 | 
						|
	return true
 | 
						|
}
 | 
						|
 | 
						|
//GetRelativePathFromAbsolutePath gets the relative path from the provided absolute path
 | 
						|
func GetRelativePathFromAbsolutePath(path string) string {
 | 
						|
	pathComponents := strings.Split(path, "/")
 | 
						|
	variant := pathComponents[len(pathComponents)-2]
 | 
						|
	file := pathComponents[len(pathComponents)-1]
 | 
						|
 | 
						|
	return filepath.Join(variant, file)
 | 
						|
}
 | 
						|
 | 
						|
//Copy copies the
 | 
						|
func Copy(source, destination string) error {
 | 
						|
	input, err := ioutil.ReadFile(source)
 | 
						|
	if err != nil {
 | 
						|
		return err
 | 
						|
	}
 | 
						|
 | 
						|
	return ioutil.WriteFile(destination, input, 0644)
 | 
						|
}
 | 
						|
 | 
						|
// IsUserAgentABot returns if a web client user-agent is seen as a bot
 | 
						|
func IsUserAgentABot(userAgent string) bool {
 | 
						|
	if userAgent == "" {
 | 
						|
		return false
 | 
						|
	}
 | 
						|
 | 
						|
	botStrings := []string{
 | 
						|
		"mastodon",
 | 
						|
		"pleroma",
 | 
						|
	}
 | 
						|
 | 
						|
	for _, botString := range botStrings {
 | 
						|
		if strings.Contains(strings.ToLower(userAgent), botString) {
 | 
						|
			return true
 | 
						|
		}
 | 
						|
	}
 | 
						|
 | 
						|
	ua := user_agent.New(userAgent)
 | 
						|
	return ua.Bot()
 | 
						|
}
 |