Commit Graph

273 Commits

Author SHA1 Message Date
Seednode 13440f6a4e Apply normalization to paths before passing to list for index 2023-10-03 09:28:00 -05:00
Seednode 900b59155b Replace filepath.WalkDir() with recursive function based on os.ReadDir(), to skip unnecessary Stat() calls 2023-10-03 08:26:55 -05:00
Seednode 64133afe33 Make entire canvas clickable link on not found/error pages 2023-10-01 10:11:13 -05:00
Seednode 10a3f0927d Add pagination button to both bottom and top of html info pages when enabled 2023-09-30 08:51:13 -05:00
Seednode 8c4633f40f Load timezone before displaying first log output, to ensure consistent timestamps 2023-09-30 07:49:40 -05:00
Seednode fa1e3d126f Simplify type registration system 2023-09-29 14:36:11 -05:00
Seednode 71497198fa Remove -c shorthand for --index, update PGO profile 2023-09-29 08:31:35 -05:00
Seednode 09ccf91a39 Change /clear_cache endpoint to /rebuild_index 2023-09-28 10:35:01 -05:00
Seednode 3c9f5095f9 Bump version to v2.0.0 due to breaking change with --cache -> -index 2023-09-28 10:16:18 -05:00
Seednode 1d0e4634c7 Rename cache to index for more accurate terminology 2023-09-28 10:09:45 -05:00
Seednode 19c2e616fc Rework verbose output for visual consistency 2023-09-28 07:29:33 -05:00
Seednode 0e8ac8cdc5 Preserve case of filter query params even without --case-sensitive, include filename in --verbose output for cache import/export 2023-09-28 06:15:10 -05:00
Seednode 4d8b47a6e3 Remove trailing ellipsis after displaying bound socket 2023-09-28 04:50:08 -05:00
Seednode c8dcc58c1a Release first stable version! 2023-09-28 04:42:30 -05:00
Seednode 602f344654 Split sorting types, methods, and functions into their own file 2023-09-28 03:39:16 -05:00
Seednode c57bb9c4c2 Sorting now supports arbitrary numbering length, so long as it is sequential 2023-09-28 03:36:26 -05:00
Seednode abe3dbb54f Rename variables for consistency's sake 2023-09-28 02:47:43 -05:00
Seednode c11ddae546 Fix capitalization of Serve->SERVE, fix double cache export 2023-09-27 19:01:18 -05:00
Seednode 1b84606232 Remove debug statements, update PGO profile 2023-09-26 16:47:01 -05:00
Seednode 64e756f6a3 Make multiple filters actually function, instead of only applying the last filter 2023-09-26 16:37:28 -05:00
Seednode 9a2bf05790 Ensure listen port log entry displays before cache import 2023-09-26 16:11:40 -05:00
Seednode 88a8aff135 Return to pass-by-value instead of globals, to make Sean happy 2023-09-26 15:50:16 -05:00
Seednode 81b2d4a7b4 Capitalize logging prefixes, limit values to math.MaxInt32 2023-09-26 05:29:55 -05:00
Seednode f7376e89b9 Add basic validation for max/min file count and scan values 2023-09-26 04:03:52 -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 974a4c79fc Fix inverted functionality of --case-sensitive flag, but actually apply the change when filtering 2023-09-25 17:13:31 -05:00
Seednode 271714f1de Fix inverted functionality of --case-sensitive flag 2023-09-25 17:08:40 -05:00
Seednode 5d866a74e3 Add option for case-sensitive filters 2023-09-25 11:15:49 -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 16d1428a52 Display bytes written to response instead of size of files being served in logs 2023-09-15 15:30:52 -05:00
Seednode 7d49a86e70 Format inline file sizes with humanReadableSize() 2023-09-15 15:19:56 -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 e67384caeb Remove test statement accidentally left in (oops) 2023-09-15 14:37:35 -05:00
Seednode 1ed9df3932 Add log channel, add --exit-on-error option 2023-09-15 14:28:21 -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 ba827430bb Change --theme to --code-theme 2023-09-15 01:31:23 -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 5ab6d1ee85 Add custom theme support 2023-09-14 22:13:21 -05:00
Seednode 0b62009fa3 Remove debug argument 2023-09-14 21:13:12 -05:00
Seednode bc268db233 Remove svg from image handler, remove line numbers from code handler 2023-09-14 21:09:19 -05:00
Seednode 28bc560098 Add more languages for code syntax highlighting 2023-09-14 21:02:48 -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 6b70741a68 Replace --refresh-interval flag with --refresh 2023-09-14 00:07:54 -05:00
Seednode 99ec1d7ebd Allow toggling of page refreshInterval 2023-09-14 00:01:50 -05:00
Seednode a94b7e208d Remove html from text handler, add yaml/toml/sh/ps1 2023-09-13 23:32:02 -05:00
Seednode fdd33376ce Add --prefix flag for easy reverse proxying 2023-09-13 23:24:29 -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 61f10a6f3c Split http handler registration into source files 2023-09-13 12:00:24 -05:00
Seednode 64639a87a3 Changed all variables to non-exported by default 2023-09-13 09:26:15 -05:00
Seednode d7bc6e2451 Total restructure, just look at the diffs at this point 2023-09-12 23:35:17 -05:00
Seednode cbf7218453 Added endpoints to view registered file formats 2023-09-12 22:35:15 -05:00
Seednode c77a151a24 Gonna be honest, guys, I don't think I know what an interface is 2023-09-12 20:56:39 -05:00
Seednode 62a8bde8ea Disable line-wrapping for text files 2023-09-12 19:55:54 -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 57bcd40c29 Enclose text content in readonly textarea to preserve formatting 2023-09-12 19:12:40 -05:00
Seednode cc00a1b63b Fixed Next button when serving SWF files 2023-09-12 18:51:40 -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 6fea978459 Updated readme to replace --debug with --index 2023-09-12 14:00:15 -05:00
Seednode c0265d2a6e Enable --images flag if nothing else is passed, to retain backward compatibility 2023-09-12 13:51:00 -05:00
Seednode d18dc9a41c Remove unused Name value from SupportedFormat structs 2023-09-12 13:19:24 -05:00
Seednode c996f3fc53 Serve ruffle from their CDN, instead of vendoring locally 2023-09-12 13:14:05 -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 7942ea85b5 Added .ogm as extension for Ogg videos 2023-09-11 22:02:56 -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 93799e16fe Replaced cssFunction with string literal, since no customization should be needed 2023-09-11 19:43:18 -05:00
Seednode 26bdedb5a2 Added UTF-8 validation for files when using --text 2023-09-11 19:38:38 -05:00
Seednode 3c21946351 Add --all flag to allow all supported file types at once; add --text flag 2023-09-11 19:11:45 -05:00
Seednode a3f8a85d28 Replaced h2non/filetype with net/http DetectContentType() 2023-09-11 16:05:38 -05:00
Seednode c06b536123 Added first/last buttons to debug pages 2023-09-11 14:37:59 -05:00
Seednode 189b7d269c Disable prev/next buttons when at beginning/end of debug lists 2023-09-11 14:09:12 -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 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 c7984d0743 Only remove file from cache after file has been removed from filesystem when --russian is passed 2023-09-10 21:28:27 -05:00
Seednode 494f9271f4 Updated readme 2023-09-10 21:08:51 -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 d869a375ab Removed redundant isImage check 2023-09-10 11:27:55 -05:00
Seednode 30eead7e2f Cleaned up pagination calculations 2023-09-09 23:27:40 -05:00
Seednode 53d14ff279 Remove file from filesystem and cache at same time during serveStaticFile() 2023-09-09 21:17:17 -05:00
Seednode 26475ed491 Moved warning for --russian earlier in init process 2023-09-09 21:00:58 -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 e4a4cb6bcd Remove unused debug statement, update usage info for --page-length 2023-09-09 19:47:44 -05:00
Seednode 425857af84 Fixed pagination for stats, was using query parameter instead of httprouter parameter 2023-09-09 00:25:04 -05:00
Seednode e170990e83 Added pagination to debug and stats endpoints 2023-09-09 00:06:28 -05:00
Seednode 5d86be871f Added initial PGO test 2023-09-08 00:20:06 -05:00
Seednode fc0c9974b1 Simplified alphanumeric regex 2023-09-07 16:20:48 -05:00
Seednode 05f8084089 Removed unused Stat type, removed unused regex for durations, replaced strings.Builder with string constant for favicon html 2023-09-06 11:53:19 -05:00
Seednode de9bc0af97 Added --profile flag for net/http/pprof 2023-09-06 10:15:11 -05:00
Seednode ec8b5c9c7f Import net/http/pprof 2023-09-06 09:06:44 -05:00
Seednode 6ff79b1817 Added option to force refreshInterval from command line, and added minimum interval of 500ms 2023-08-21 15:38:56 -05:00
Seednode 9b250416d9 Reworked port uint16-to-string conversion 2023-08-13 18:07:45 -05:00
Seednode 6678d0af36 Completely broke serveStats, whoops 2023-08-13 17:43:35 -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 53ee79b87f Reworked favicon and error page handlers 2023-08-05 21:38:28 -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 7c93fc8c37 Added explicit timezone loading 2023-07-17 07:41:32 -05:00
Seednode 830e661223 Removed explicit w.WriteHeader(http.StatusOK) calls in favor of implicit 2023-06-22 05:10:40 -05:00
Seednode 40ed9889f9 Added HTTP 500 response on all failed requests, instead of not sending any response 2023-06-20 10:24:12 -05:00
Seednode 7ca86c19fd Added strings.ToLower() to all stable sorts to ensure intuitive ordering 2023-06-20 09:02:13 -05:00
Seednode 780bed087d HTML debug sort is now case-insensitive 2023-06-19 14:34:30 -05:00
Seednode c5e6723bfa Added formatting to HTML debug page, for easier reading 2023-06-13 19:40:29 -05:00
Seednode 911708b95c Open files to export as O_WRONLY instead of O_RDWR 2023-06-13 08:50:13 -05:00
Seednode 9a23387a6b Added favicon to HTML debug page 2023-06-09 15:56:03 -05:00
Seednode 9c668ea04d Significantly increased timeouts so clear_cache doesn't error out 2023-06-03 19:49:58 -05:00
Seednode 7780b8eaa9 Added strings.TrimPrefix to refererUri so sorting works with the new setup 2023-06-03 18:37:06 -05:00
Seednode 3d8d4c3869 Fixed hyperlinks in /html endpoint 2023-06-03 18:14:53 -05:00
Seednode 72e41ba413 Added version endpoint 2023-06-03 15:51:08 -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 29afaa3025 Changed wording of file count 2023-06-02 21:04:06 -05:00
Seednode 99ad647614 Added file count to HTML debug endpoint 2023-06-02 21:00:44 -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 af9b79878f Switched back from go-chi to net/http, explicitly declared mux and http.Server 2023-05-31 12:43:07 -05:00
Seednode 8fc7084098 Recompressed favicons to save space, and replaced multiple favicon handler functions with a single catchall 2023-05-30 19:13:02 -05:00
Seednode 229aaa7da2 Added embedded favicons, and replaced default mux with go-chi 2023-05-30 18:47:26 -05:00
Seednode c31518d932 Added first served/last served/most served stats to /_/stats 2023-05-12 09:05:14 -05:00
Seednode 7184542cb6 Updated transitive dependencies 2023-05-11 23:22:31 -05:00
Seednode 4be011755b Added -b|--bind to bind to specific address 2023-05-08 11:45:57 -05:00
Seednode 5beb1fc858 --debug now requires --cache, exits with error if not provided 2023-05-08 11:16:19 -05:00
Seednode 8dae3865c0 Renamed /_/index to /_/debug, and adjusted readme accordingly 2023-04-28 13:31:07 -05:00
Seednode 9cd9c286c2 Added -d|--debug flag and /_/index endpoint 2023-04-28 13:19:07 -05:00
Seednode 537633a030 Added persistent stats file 2023-02-08 07:50:40 -06:00
Seednode ae1a1bbc5e Added zstd compression for cache file 2023-02-05 14:34:22 -06:00
Seednode 69c4ccfc97 Added support for persistent index file 2023-02-04 23:44:31 -06:00
Seednode 2f92089191 Replaced Run with RunE in rootcmd, to cascade errors back to main Execute() 2023-01-27 13:20:07 -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 da5bdfe765 Replaced %v with more specific format string in printf calls 2023-01-24 10:13:09 -06:00
Seednode ed748a9b8c Corrected usage message 2023-01-19 12:12:40 -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