Commit Graph

176 Commits

Author SHA1 Message Date
Seednode 81b2d4a7b4 Capitalize logging prefixes, limit values to math.MaxInt32 2023-09-26 05:29:55 -05:00
Seednode 935021e464 Replace uint/uint16/uint32 values with int, declare errors as variables 2023-09-26 03:49:20 -05:00
Seednode a1d041dedc Add flags to modify max concurrency directory and file scans 2023-09-26 03:34:50 -05:00
Seednode 173e1528be Rewrite filewalk functions, add (incomplete) to logging when -v|--verbose is passed and a broken pipe error is received 2023-09-16 20:15:39 -05:00
Seednode 280656993d Fix scan stats to be both consistent and actually accurate 2023-09-16 18:04:44 -05:00
Seednode d4cf9cfa4f Add Type() method to types.Type, to allow displaying served file size for both embedded and inline files 2023-09-15 15:13:45 -05:00
Seednode f5eb1f56f4 Replace int for Maximum/MinimumFileCount with uint, since there should never be negative values and default value overflows otherwise 2023-09-15 13:53:12 -05:00
Seednode 0d252d0456 Remove atomic int usage and some mutexes, replace with channels 2023-09-15 13:51:04 -05:00
Seednode 90a480fad4 Simplify caching, allow use of filters with cache 2023-09-15 01:06:52 -05:00
Seednode 76b4053240 Apply format validation even when caching is disabled 2023-09-14 22:39:51 -05:00
Seednode 8923a4c14d Fix validation of files when in cache/not cached mode 2023-09-14 19:10:55 -05:00
Seednode aaee51e9a4 Add syntax highlighting for code 2023-09-14 17:37:22 -05:00
Seednode d612144be1 Fix handling directories with only one or two files 2023-09-13 22:08:01 -05:00
Seednode bfb04cab66 Remove unneeded(?) prepareDirectory() function 2023-09-13 20:45:28 -05:00
Seednode ce99374a9f Removed statistics (sorry) pending full rewrite 2023-09-13 17:02:43 -05:00
Seednode d2d9418b8b Replace user.Home() with os.HomeDir() to remove CGo dependency (hopefully) 2023-09-13 12:46:14 -05:00
Seednode 65b77f33cc Attempt to rework stats handling, add support for '~' in paths 2023-09-13 12:30:24 -05:00
Seednode 64639a87a3 Changed all variables to non-exported by default 2023-09-13 09:26:15 -05:00
Seednode a7daf81754 Replace []string with map[string]string for extensions, to allow setting default MIME type values 2023-09-12 19:46:27 -05:00
Seednode 3b4f8f7499 Change back from uint64 to uint32s because no filesystem ought to ever need over 2^32 files (ZFS? What's that?) 2023-09-12 16:46:58 -05:00
Seednode 732d944036 Rename formats package to types, replace Css string literal in type struct with func() string 2023-09-12 16:32:19 -05:00
Seednode a29390aa76 Added .swf support, fallback to filetype detection by extension if mime type detection fails 2023-09-12 13:06:45 -05:00
Seednode 2097a9ab13 Add looping and preload to audio and video files, add file types listed as supported by MDN 2023-09-11 21:22:26 -05:00
Seednode 04ef12c19a Replaced uint32 with uint64 2023-09-11 20:02:52 -05:00
Seednode 51971feb87 Rearranged source files for consistency 2023-09-11 12:59:40 -05:00
Seednode 86184f26bf Split source into more files and fixed bug where images wouldn't display due to swapped parameter order 2023-09-11 12:09:08 -05:00
Seednode 951ff50f88 Moved types to their own package (formats) 2023-09-11 11:25:39 -05:00
Seednode ce89e24ec9 Moved fileType() function into types.go 2023-09-11 10:50:34 -05:00
Seednode e8ee96c7d6 First attempt at making format registrations modular 2023-09-11 10:43:09 -05:00
Seednode 26933dbe4f Fixed Windows builds after URI structure change 2023-09-10 21:51:58 -05:00
Seednode 2f1cfe28d0 Added support for toggling each of audio|image|video support 2023-09-10 21:05:35 -05:00
Seednode 32bd20522a Added audio file support 2023-09-10 21:02:03 -05:00
Seednode 8d0d271f79 Added mime type tags to <img> and <video> 2023-09-10 20:41:08 -05:00
Seednode 8fa4a7c652 Corrected all references to image->media/file 2023-09-10 20:29:11 -05:00
Seednode 928bbb8c53 Added video support 2023-09-10 20:23:48 -05:00
Seednode caf1b1889c Replaced math/rand with crypto/rand 2023-09-10 12:16:50 -05:00
Seednode 8bbfd36a09 Added --russian flag, fixed issue where last image in cache would never be served 2023-09-09 20:57:50 -05:00
Seednode 01629da407 Replaced uint64 with uint32 2023-08-13 17:29:28 -05:00
Seednode 77f14ea71b Replaced atomic convenience wrappers with suggested versions 2023-08-13 17:02:09 -05:00
Seednode 526e8e15d6 Added --maximum-files and --minimum-files flags, changed structure for stats struct 2023-08-02 13:29:37 -05:00
Seednode d2368884b7 Formatting cleanup for return values 2023-06-03 18:45:32 -05:00
Seednode abae8ba4c1 Replaced net/http with julienschmidt/httprouter and removed (broken) video support, changed stats/debug endpoints 2023-06-03 13:29:49 -05:00
Seednode 4679208eae Replace fmt.Println() + os.Exit(1) with log.Fatal() in error handler, error out if no useful paths are passed in 2023-05-31 13:01:24 -05:00
Seednode 7184542cb6 Updated transitive dependencies 2023-05-11 23:22:31 -05:00
Seednode 3e1fb6be6a Added video support 2023-05-08 20:05:10 -05:00
Seednode c85cd55598 Fixed redirect URIs with relative input paths (e.g. ../../test) and --cache enabled 2023-04-11 07:19:06 -05:00
Seednode 15e2cc52cc Added check for empty input paths 2023-04-11 04:44:18 -05:00
Seednode 290395d0eb Updated transitive dependencies 2023-04-10 15:53:01 -05:00
Seednode 966df032a6 Added retry to new file selection, with 10s timeout 2023-02-18 14:08:11 -06:00
Seednode e2356c180f Readded checks in prepareDirectory to avoid redirect issue with sort=asc 2023-02-18 13:38:18 -06:00
Seednode d05550a991 Preallocate slices when possible, remove unnecessary check when sortOrder is provided 2023-02-18 13:00:08 -06:00
Seednode 537633a030 Added persistent stats file 2023-02-08 07:50:40 -06:00
Seednode 335f6bffde Combined root variable declarations into a block, changed increment/decrement functions to unexported 2023-01-27 13:17:13 -06:00
Seednode 635df29fbc All methods that might mutate state changed to unexported, and all fields set to unexported by default 2023-01-27 10:06:10 -06:00
Seednode 93fa3640ef Reverted changes that entirely broke debug, keeping change to printf strings 2023-01-24 19:06:15 -06:00
Seednode 3cb2e81ec7 Rearranged functions into alphabetical order 2023-01-24 12:03:26 -06:00
Seednode da5bdfe765 Replaced %v with more specific format string in printf calls 2023-01-24 10:13:09 -06:00
Seednode 359ded19f2 Set all functions that modify state to unexported 2023-01-23 17:30:33 -06:00
Seednode 3bf3c5b5ed Moved struct and method declarations to the appropriate source files 2023-01-21 16:08:59 -06:00
Seednode 7c40d62496 Sped up indexing when caching is enabled but filters are applied, added RWMutex to Index struct 2023-01-21 10:27:35 -06:00
Seednode 340b637baf Added Get() and Set() functions for file index 2023-01-21 09:35:23 -06:00
Seednode fcdb81a9b7 Fixed double-scanning with cache enabled 2023-01-20 22:42:44 -06:00
Seednode 6c888ba20a Added filesize and timestamps to debug JSON output 2023-01-20 18:14:07 -06:00
Seednode 0f4c4845b2 JSON output for stats is now pretty-printed and sorted alphabetically 2023-01-19 20:31:02 -06:00
Seednode 71bedaf9e8 Changed json keys to lower-case 2023-01-19 12:40:33 -06:00
Seednode 1a4496b788 Added stats endpoint 2023-01-19 12:07:15 -06:00
Seednode b96ee8ac99 Removed mutually exclusive flag from cache and filter, now cache is bypassed if filters are supplied 2023-01-18 11:50:29 -06:00
Seednode 0906bd6769 Updated copyright year 2023-01-18 11:19:29 -06:00
Seednode f9d7be008d Combined declare/initialize steps for structs 2022-11-11 09:44:47 -06:00
Seednode ea4b1be5c3 Added basic input verification for sortOrder/refreshInterval 2022-11-10 10:09:39 -06:00
Seednode 4b596743f7 Replaced error if/else checks with switch/case, to keep things consistent 2022-11-10 00:29:06 -06:00
Seednode 283b4fccec Unified error handling, fixed missing file checks, and added logging for requested (but not available) files 2022-11-10 00:26:21 -06:00
Seednode 43a515c896 Replaced image dimension string variable with Dimensions struct, replaced handrolled HTML generation with gohtml library, added height and width to img tags 2022-11-09 23:17:19 -06:00
Seednode c213911969 Only generate filter struct once, further simplify switch/case om serveHtmlHandler() into a simple if/else 2022-11-05 11:17:31 -05:00
Seednode b6f7d9c104 Reworked functions to be more concise (e.g. now getNewFile and getNextFile work with or without sortOrder) 2022-11-05 11:00:42 -05:00
Seednode 70a1eaf91d Reverted previous change because the count was actually working fine, I just forgot my test instance was pointing at multiple directories 2022-11-02 09:17:07 -05:00
Seednode ea1d8d52c6 Maybe fixed incorrect total scanned file count displayed when -v is passed 2022-11-02 09:10:55 -05:00
Seednode c13eac975f Fixed length of extensions array, and added bmp to the support formats in the readme 2022-10-31 15:18:47 -05:00
Seednode 3450ea89e0 Fixed for loop requesting out-of-range index in pickFile() 2022-10-29 10:41:03 -05:00
Seednode f6924ba7b5 Added support for .bmp images 2022-10-29 10:32:01 -05:00
Seednode 297c561fab pickFile now iterates through entire file list, instead of stopping after an arbitrary number 2022-10-28 23:07:25 -05:00
Seednode 3d6e7b0493 Added limit on file checking retries 2022-10-28 21:08:08 -05:00
Seednode 97e3b47b19 Only seed rng once, at initialization, and speed up picking random file by using rand.Intn instead of shuffling the slice 2022-10-28 19:49:49 -05:00
Seednode 5c7bb60dcb Entire 404 page is now clickable, and attempts to open a new random file 2022-10-28 19:09:05 -05:00
Seednode 0434353942 Display image size in tab titles, to match behavior of images served directly 2022-10-28 18:32:03 -05:00
Seednode f21c01e085 Added flag to cache directory scan at startup 2022-10-28 17:19:04 -05:00
Seednode 44972fde78 Reordered variable initialization to match parameter orders 2022-10-25 09:40:27 -05:00
Seednode 3801421567 Display size of file served when verbose flag is passed 2022-10-25 00:11:55 -05:00
Seednode 0434d87b3e Added symlink handling 2022-10-25 00:06:57 -05:00
Seednode 8d50f5a088 Second attempt at fixing Linux builds 2022-10-23 16:47:23 -05:00
Seednode f85749b030 Hopefully fixed Linux functionality 2022-10-23 16:29:58 -05:00
Seednode 8dbecba77e Testing initial Windows support 2022-10-23 16:16:40 -05:00
Seednode aa2413eafc Compile regex at start, instead of each page load 2022-10-23 13:45:49 -05:00
Seednode 76109342ed "Replaced switch with sequential if statements" 2022-10-23 13:08:08 -05:00
Seednode ae82762745 Merged -c|--count flag into -v|--verbose, reformatted verbose output 2022-10-20 17:55:25 -05:00
Seednode e39950de68 Switched redirect status code back from 307 to 303, and defined it as a const. 2022-10-20 17:12:29 -05:00
Seednode 8e4c9c5e32 -c|--c now also displays time spent scanning for files 2022-10-20 14:50:42 -05:00
Seednode 1cbc84d789 Attempting to add concurrency, may god have mercy on my soul 2022-10-20 14:22:01 -05:00
Seednode 9cc372d7c4 Added -c|--count flag to display number of files and directories matched and skipped 2022-10-20 11:17:40 -05:00
Seednode 31d16f65b8 Fixed issue where having empty include but non-empty exclude caused 404 2022-10-20 10:38:32 -05:00