You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
66 lines
1.3 KiB
66 lines
1.3 KiB
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() |
|
}
|
|
|