2020-06-23 04:11:56 +03:00
|
|
|
package utils
|
|
|
|
|
|
|
|
import (
|
|
|
|
"io/ioutil"
|
|
|
|
"os"
|
|
|
|
"path/filepath"
|
|
|
|
"strings"
|
2020-07-14 05:07:30 +03:00
|
|
|
|
|
|
|
"github.com/mssola/user_agent"
|
2020-06-23 04:11:56 +03:00
|
|
|
)
|
|
|
|
|
|
|
|
//GetTemporaryPipePath gets the temporary path for the streampipe.flv file
|
|
|
|
func GetTemporaryPipePath() string {
|
2020-07-12 02:04:02 +03:00
|
|
|
return filepath.Join(os.TempDir(), "streampipe.flv")
|
2020-06-23 04:11:56 +03:00
|
|
|
}
|
|
|
|
|
|
|
|
//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)
|
|
|
|
}
|
2020-07-14 05:07:30 +03:00
|
|
|
|
|
|
|
// 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",
|
2020-09-01 06:36:52 +03:00
|
|
|
"applebot",
|
2020-07-14 05:07:30 +03:00
|
|
|
}
|
|
|
|
|
|
|
|
for _, botString := range botStrings {
|
|
|
|
if strings.Contains(strings.ToLower(userAgent), botString) {
|
|
|
|
return true
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
ua := user_agent.New(userAgent)
|
|
|
|
return ua.Bot()
|
|
|
|
}
|