Corrected all references to image->media/file
This commit is contained in:
parent
928bbb8c53
commit
8fa4a7c652
12
README.md
12
README.md
|
@ -1,14 +1,14 @@
|
|||
## About
|
||||
|
||||
Sometimes, you just need a way to randomly display images from your filesystem.
|
||||
Sometimes, you just need a way to randomly display media from your filesystem.
|
||||
|
||||
Simply point this tool at one or more directories, and then open the specified port (default `8080`) in your browser.
|
||||
|
||||
A new file will be selected if you open `/` directly, or if you click on any displayed images.
|
||||
A new file will be selected if you open `/` directly, or if you click on any displayed files.
|
||||
|
||||
Browser history is preserved, so you can always go back to any previously displayed images.
|
||||
Browser history is preserved, so you can always go back to any previously displayed media.
|
||||
|
||||
Supported file types and extensions are `bmp`, `gif`, `jp[e]g`, `png`, and `webp`.
|
||||
Supported file types and extensions are `bmp`, `gif`, `jp[e]g`, `png`, `webp`, `mp4`, `ogv`, `webm`.
|
||||
|
||||
Feature requests, code criticism, bug reports, general chit-chat, and unrelated angst accepted at `roulette@seedno.de`.
|
||||
|
||||
|
@ -102,7 +102,7 @@ Enjoy!
|
|||
|
||||
## Usage output
|
||||
```
|
||||
Serves random images from the specified directories.
|
||||
Serves random media from the specified directories.
|
||||
|
||||
Usage:
|
||||
roulette <path> [path]... [flags]
|
||||
|
@ -121,7 +121,7 @@ Flags:
|
|||
--profile register net/http/pprof handlers
|
||||
-r, --recursive recurse into subdirectories
|
||||
--refresh-interval string force refresh interval equal to this duration (minimum 500ms)
|
||||
--russian remove selected images after serving
|
||||
--russian remove selected media after serving
|
||||
-s, --sort enable sorting
|
||||
--stats expose stats endpoint
|
||||
--stats-file string path to optional persistent stats file
|
||||
|
|
10
cmd/files.go
10
cmd/files.go
|
@ -43,8 +43,8 @@ type Concurrency struct {
|
|||
}
|
||||
|
||||
var (
|
||||
ErrNoImagesFound = errors.New("no supported image formats found which match all criteria")
|
||||
Extensions = [8]string{".jpg", ".jpeg", ".png", ".gif", ".webp", ".bmp", ".mp4", ".webm"}
|
||||
ErrNoMediaFound = errors.New("no supported media formats found which match all criteria")
|
||||
Extensions = [9]string{".jpg", ".jpeg", ".png", ".gif", ".webp", ".bmp", ".mp4", ".ogv", ".webm"}
|
||||
)
|
||||
|
||||
type Dimensions struct {
|
||||
|
@ -133,7 +133,7 @@ func imageDimensions(path string) (*Dimensions, error) {
|
|||
}
|
||||
|
||||
func preparePath(path string) string {
|
||||
path = ImagePrefix + path
|
||||
path = MediaPrefix + path
|
||||
|
||||
if runtime.GOOS == "windows" {
|
||||
path = fmt.Sprintf("/%s", filepath.ToSlash(path))
|
||||
|
@ -618,7 +618,7 @@ func pickFile(args []string, filters *Filters, sort string, index *Index) (strin
|
|||
|
||||
fileCount := len(fileList)
|
||||
if fileCount < 1 {
|
||||
return "", ErrNoImagesFound
|
||||
return "", ErrNoMediaFound
|
||||
}
|
||||
|
||||
r, err := rand.Int(rand.Reader, big.NewInt(int64(fileCount-2)))
|
||||
|
@ -656,7 +656,7 @@ func pickFile(args []string, filters *Filters, sort string, index *Index) (strin
|
|||
return filePath, nil
|
||||
}
|
||||
|
||||
return "", ErrNoImagesFound
|
||||
return "", ErrNoMediaFound
|
||||
}
|
||||
|
||||
func normalizePath(path string) (string, error) {
|
||||
|
|
|
@ -17,7 +17,7 @@ var (
|
|||
)
|
||||
|
||||
const (
|
||||
Version string = "0.61.0"
|
||||
Version string = "0.61.1"
|
||||
)
|
||||
|
||||
var (
|
||||
|
|
32
cmd/web.go
32
cmd/web.go
|
@ -40,7 +40,7 @@ var favicons embed.FS
|
|||
const (
|
||||
LogDate string = `2006-01-02T15:04:05.000-07:00`
|
||||
SourcePrefix string = `/source`
|
||||
ImagePrefix string = `/view`
|
||||
MediaPrefix string = `/view`
|
||||
RedirectStatusCode int = http.StatusSeeOther
|
||||
Timeout time.Duration = 10 * time.Second
|
||||
|
||||
|
@ -213,20 +213,20 @@ type exportedServeStats struct {
|
|||
Times map[string][]string
|
||||
}
|
||||
|
||||
func (s *ServeStats) incrementCounter(image string, timestamp time.Time, filesize string) {
|
||||
func (s *ServeStats) incrementCounter(file string, timestamp time.Time, filesize string) {
|
||||
s.mutex.Lock()
|
||||
|
||||
s.count[image]++
|
||||
s.count[file]++
|
||||
|
||||
s.times[image] = append(s.times[image], timestamp.Format(LogDate))
|
||||
s.times[file] = append(s.times[file], timestamp.Format(LogDate))
|
||||
|
||||
_, exists := s.size[image]
|
||||
_, exists := s.size[file]
|
||||
if !exists {
|
||||
s.size[image] = filesize
|
||||
s.size[file] = filesize
|
||||
}
|
||||
|
||||
if !contains(s.list, image) {
|
||||
s.list = append(s.list, image)
|
||||
if !contains(s.list, file) {
|
||||
s.list = append(s.list, file)
|
||||
}
|
||||
|
||||
s.mutex.Unlock()
|
||||
|
@ -283,7 +283,7 @@ func (s *ServeStats) toImported(stats *exportedServeStats) {
|
|||
s.mutex.Unlock()
|
||||
}
|
||||
|
||||
func (s *ServeStats) ListImages(page int) ([]byte, error) {
|
||||
func (s *ServeStats) ListFiles(page int) ([]byte, error) {
|
||||
stats := s.toExported()
|
||||
|
||||
sort.SliceStable(stats.List, func(p, q int) bool {
|
||||
|
@ -612,7 +612,7 @@ func serveStats(args []string, stats *ServeStats) httprouter.Handle {
|
|||
page = -1
|
||||
}
|
||||
|
||||
response, err := stats.ListImages(page)
|
||||
response, err := stats.ListFiles(page)
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
|
||||
|
@ -686,7 +686,7 @@ func serveDebugHtml(args []string, index *Index, paginate bool) httprouter.Handl
|
|||
if sorting {
|
||||
shouldSort = "?sort=asc"
|
||||
}
|
||||
htmlBody.WriteString(fmt.Sprintf("<tr><td><a href=\"%s%s%s\">%s</a></td></tr>\n", ImagePrefix, v, shouldSort, v))
|
||||
htmlBody.WriteString(fmt.Sprintf("<tr><td><a href=\"%s%s%s\">%s</a></td></tr>\n", MediaPrefix, v, shouldSort, v))
|
||||
}
|
||||
}
|
||||
if pageLength != 0 {
|
||||
|
@ -883,7 +883,7 @@ func serveRoot(paths []string, Regexes *Regexes, index *Index) httprouter.Handle
|
|||
return
|
||||
}
|
||||
|
||||
strippedRefererUri := strings.TrimPrefix(refererUri, ImagePrefix)
|
||||
strippedRefererUri := strings.TrimPrefix(refererUri, MediaPrefix)
|
||||
|
||||
filters := &Filters{
|
||||
includes: splitQueryParams(r.URL.Query().Get("include"), Regexes),
|
||||
|
@ -921,7 +921,7 @@ func serveRoot(paths []string, Regexes *Regexes, index *Index) httprouter.Handle
|
|||
|
||||
filePath, err = newFile(paths, filters, sortOrder, Regexes, index)
|
||||
switch {
|
||||
case err != nil && err == ErrNoImagesFound:
|
||||
case err != nil && err == ErrNoMediaFound:
|
||||
notFound(w, r, filePath)
|
||||
|
||||
return
|
||||
|
@ -945,7 +945,7 @@ func serveRoot(paths []string, Regexes *Regexes, index *Index) httprouter.Handle
|
|||
}
|
||||
}
|
||||
|
||||
func serveImage(paths []string, Regexes *Regexes, index *Index) httprouter.Handle {
|
||||
func serveMedia(paths []string, Regexes *Regexes, index *Index) httprouter.Handle {
|
||||
return func(w http.ResponseWriter, r *http.Request, p httprouter.Params) {
|
||||
filters := &Filters{
|
||||
includes: splitQueryParams(r.URL.Query().Get("include"), Regexes),
|
||||
|
@ -954,7 +954,7 @@ func serveImage(paths []string, Regexes *Regexes, index *Index) httprouter.Handl
|
|||
|
||||
sortOrder := SortOrder(r)
|
||||
|
||||
filePath := strings.TrimPrefix(r.URL.Path, ImagePrefix)
|
||||
filePath := strings.TrimPrefix(r.URL.Path, MediaPrefix)
|
||||
|
||||
if runtime.GOOS == "windows" {
|
||||
filePath = strings.TrimPrefix(filePath, "/")
|
||||
|
@ -1154,7 +1154,7 @@ func ServePage(args []string) error {
|
|||
|
||||
mux.GET("/favicon.ico", serveFavicons())
|
||||
|
||||
mux.GET(ImagePrefix+"/*image", serveImage(paths, regexes, index))
|
||||
mux.GET(MediaPrefix+"/*media", serveMedia(paths, regexes, index))
|
||||
|
||||
mux.GET(SourcePrefix+"/*static", serveStaticFile(paths, stats, index))
|
||||
|
||||
|
|
Loading…
Reference in New Issue