Commit Graph

374 Commits

Author SHA1 Message Date
Miraclx f73a710f5c
Fix implicit value check for field that may be nullish 2020-06-12 05:45:02 +01:00
Miraclx 8a5d798085
Remove filenamify from BASE_DIRECTORY 2020-06-12 02:27:04 +01:00
Miraclx ae828ae696
Add CLI logo banner and new flags 2020-06-11 18:25:57 +01:00
Miraclx e7238c391d
fix: create playlist files for playlist 2020-06-11 03:42:15 +01:00
Miraclx 4d948fe7ba
Implement cache-dir flag 2020-06-11 03:23:03 +01:00
Miraclx bdc9ad86ca
Valid-ify BASENAME and playlist filename 2020-06-11 03:17:44 +01:00
Miraclx 444720f1c6
Update example snippets for urify 2020-06-11 02:51:55 +01:00
Miraclx 74339668d6
Only proceed to default to stdin when urls are not given 2020-06-11 02:49:05 +01:00
Miraclx 39df08519f
Prefer stdin over FILE if piped while specifying input 2020-06-11 02:48:10 +01:00
Miraclx 5de12d8ab8
Use --no-tag instead of --tag 2020-06-11 02:41:49 +01:00
Miraclx ac63449089
Fix logic on the urify subcommand, default to tty if no entry 2020-06-11 02:41:36 +01:00
Miraclx 8648f9cf22
Default to --input `-` if stdin is piped 2020-06-11 01:58:54 +01:00
Miraclx a93feb30a5
Update urify subcommand functionality to handle streams and comments 2020-06-11 01:42:31 +01:00
Miraclx 4146890fcb
Extract the line parser for input streams to its own function 2020-06-11 01:40:47 +01:00
Miraclx e38e7dda97
Add functionality for reading queue from stdin 2020-06-11 00:42:23 +01:00
Miraclx 21f6c5e1c3
Update freyrCore ENGINES reference in cli.js 2020-06-11 00:34:52 +01:00
Miraclx 8171ce253a
Add better readable description for the via-tor flag 2020-06-10 15:13:59 +01:00
Miraclx c4d104c07c
Implement the urify subcommand 2020-06-10 07:14:38 +01:00
Miraclx d4b10c191e
Include unimplemented subcommands search, profile and urify 2020-06-10 06:04:13 +01:00
Miraclx 6357be41f4
Add and implement the filter sub command 2020-06-10 05:57:49 +01:00
Miraclx 5817f2e548
Use the x4p file extension as opposed to the .enc 2020-06-10 05:37:04 +01:00
Miraclx 2ffeed622f
Add better redirection to main help information when using --quiet without args 2020-06-10 05:36:39 +01:00
Miraclx d1ccafb6e6
Added better checks for when to hide banner 2020-06-09 21:07:16 +01:00
Miraclx 3a5055f000
Add help description text 2020-06-09 20:20:21 +01:00
Miraclx 2d65772943
Add --quiet flag to silence banner 2020-06-09 19:39:57 +01:00
Miraclx dedc34876d
Expressively detailed description with newlines and examples 2020-06-08 23:25:10 +01:00
Miraclx a751d5d522
Update desc and fix mp4 to mp3 typo 2020-06-08 23:20:48 +01:00
Miraclx 8447ea7135
Update CLI interface to accommodate multiple commands 2020-06-08 23:04:00 +01:00
Miraclx e7615a2168
Update parse line to program 2020-06-08 21:02:01 +01:00
Miraclx 404817feb9
Retask the `-x` flag for audio format, standardize the `--filter` flag 2020-06-08 09:54:06 +01:00
Miraclx e83d7b781d
Stick unimplemented label to flag description to top line only 2020-06-08 09:53:07 +01:00
Miraclx b7d2ac83b8
Add CLI arg commander features to fortify the interface 2020-06-08 09:50:10 +01:00
Miraclx 748de03f2f
Improve bitrate description line 2020-06-08 02:55:06 +01:00
Miraclx e4cfdb484a
Update icon characters for a uniform monospaced view 2020-06-08 00:11:51 +01:00
Miraclx 7dc03bc812
CLI: Fix feed sourcing rejection handling. Stay silent until needed 2020-06-08 00:01:07 +01:00
Miraclx a7bb1fe638
Fix query tracks awaiting capability 2020-06-07 15:58:25 +01:00
Miraclx be0261c0cd
Extract queryStats from the successfully processed queries 2020-06-04 05:51:42 +01:00
Miraclx 6ed4c83350
Fix artist skip logic: reject query if no result was returned 2020-06-04 05:49:56 +01:00
Miraclx a7951d317d
Walkback a6758e: fallback to normal -d flag handling 2020-06-04 05:27:11 +01:00
Miraclx f490e22a39
Add filename escaping to support names with invalid or reserved characters 2020-06-04 05:21:32 +01:00
Miraclx f77b1560f6
Update special characters for a more generalized unicode-indifferent view 2020-06-03 03:40:03 +01:00
Miraculous Owonubi a6758eba87
Ignore -d flags when queries are not provided 2020-06-02 05:20:32 +01:00
Miraclx daa09df8db
Include the base directory as a field in the config file 2020-05-22 22:31:38 +01:00
Miraclx 4a8bdddf43
Include flags for explicit dependency paths 2020-05-21 22:51:45 +01:00
Miraclx 657770470a
Replace stat character for album art to \u2bc8 2020-05-21 03:24:06 +01:00
Miraclx 94a93091e5
Include total queries to the stats 2020-05-21 03:23:15 +01:00
Miraclx 91ffea16ff
Fix (...length < 0) to effectively skip post-processing for failed queries 2020-05-21 03:22:46 +01:00
Miraclx a71f6efbd9
Fix service authentication concurrency race
Limit service authentication channel to one to fix errors with opening the same port when collecting data from the server.
Fix re-authentication of already authenticated services.
2020-05-21 03:21:08 +01:00
Miraclx a577c1e827
Add informative description on how to comment and structure input files 2020-05-15 04:52:40 +01:00
Miraclx f1dca77dda
Await collation of all tracks before calling it 2020-05-15 04:36:44 +01:00
Miraclx 3f0236df46
fix unidentified service name 2020-05-15 04:27:04 +01:00
Miraclx 900731ce7a
Cast queryStats as an array of responses and parse each one to support artist albums 2020-05-15 04:22:35 +01:00
Miraclx 3816da0fc6
Simplify the artist album handler, fix async awaiting
• Skip sorting albums as we could have promise responses
• Await all tracks in album to be resolved before next
2020-05-15 04:15:44 +01:00
Miraclx 58db59c46a
insulate track request errors and process their report 2020-05-14 22:00:47 +01:00
Miraclx 03198a8587
Print (no data) when queries return nullish values 2020-05-14 21:55:35 +01:00
Miraclx 500dad9802
Add support for printing (no data) from processedPromises with a null-ish return value 2020-05-14 21:53:46 +01:00
Miraclx 376b4d6af3
Remove the useless `requests` field from the default contained config 2020-05-14 18:03:21 +01:00
Miraclx 7bef03b45d
redo(d6ac2): Fix typo from copy before commit that fixed typo 2020-05-14 18:02:21 +01:00
Miraclx 2355512903
Standardize error handling and printing
Catch variable: `err`
Printing precedence:
• err.code (if any)
• err.message (if any)
• err (fallback)
2020-05-14 17:58:38 +01:00
Miraclx 0edf82e250
Use unified VALIDS object 2020-05-14 17:39:57 +01:00
Miraclx b3c3a5d769
Update concurrency description to include valid concurrency keys 2020-05-14 17:34:22 +01:00
Miraclx d6ac21183d
Fix typo: downoloader 2020-05-14 17:33:14 +01:00
Miraclx 5acff666f4
Remove sources and feed concurrency keys 2020-05-14 17:32:57 +01:00
Miraclx d1e8138a03
Fallback to native async interface as opposed to queues for source and feed handles 2020-05-14 17:32:02 +01:00
Miraclx 334e4010b9
Implement the dymanic source and feed collator into the broker 2020-05-14 17:14:44 +01:00
Miraclx 735582b93c
Replace source and feed queues with a single unifying interface for querying services in order 2020-05-14 17:06:27 +01:00
Miraclx 9b6911bb74
Use getEngineMetas to collate download-compatible services 2020-05-14 05:49:13 +01:00
Miraclx b82acece8e
Insert blank line between functions 2020-05-14 05:43:29 +01:00
Miraclx d178a6a692
Use getBitrates() to collate compatible bitrates for arg scanning and cli help 2020-05-14 05:38:13 +01:00
Miraclx cc0da20191
CLI: Include newline breaks where possible, reword some descriptions 2020-05-14 04:11:51 +01:00
Miraclx 463515f92d
Include a per-initialization field that extends the static properties of it's constructor 2020-05-14 04:08:54 +01:00
Miraclx 2e13f14e82
fix(465f93): Remove former declaration of BASE_DIRECTORY 2020-05-13 21:51:51 +01:00
Miraclx f56e98e4c7
Implement the downloader arg and downloader config order 2020-05-13 21:50:06 +01:00
Miraclx bf2c3de90c
Concatenate any array field with the `order` key 2020-05-13 21:48:12 +01:00
Miraclx 5997487500
Replace lodash.merge with lodash itself 2020-05-13 20:13:36 +01:00
Miraclx 3af411c1c7
Revert to single-line eslint exceptions 2020-05-13 19:47:35 +01:00
Miraclx b41b6e4f66
Standardize dependency require ordering
1st: Node core
2nd: Third-party libraries
3rd: Local scripts
2020-05-13 19:43:35 +01:00
Miraclx 771fb52049
Assigned the downloader flag the `-D` shorthand 2020-05-13 04:10:15 +01:00
Miraclx 465f937146
Reworded fat flag `directory-prefix` to `directory` 2020-05-13 04:09:49 +01:00
Miraclx e50591578d
Remove yt_music from possible downloaders 2020-05-13 03:29:42 +01:00
Miraclx 3ea5bc8f41
Standardize means to getting service metadata with shared symbols 2020-05-13 03:25:37 +01:00
Miraclx cac5f790d0
Fix typo on cli name libxget to freyr 2020-05-12 23:20:26 +01:00
Miraclx d689319a2e
Ensure return code is appropriate for errors with initialization of a freyr instance 2020-05-11 23:15:11 +01:00
Miraclx 4ee779293a
Switch to the freyrCoreConfig from the CLI 2020-05-11 23:15:05 +01:00
Miraclx 9a1ae554a9
Added method to collect prop schema from the services themselves 2020-05-11 23:12:27 +01:00
Miraclx c91e2cb0e3
Moved configuration base to the cli script as opposed to the main library file 2020-05-11 23:11:43 +01:00
Miraclx b5fd5a37ea
refactor informative message 2020-05-11 22:42:53 +01:00
Miraclx 5f0b578fcb
Do not respond to error events if for some reason it's emitted after completion
Wouldn't want unsolicited errors getting rid of our perfectly completed download, now would we?
2020-05-11 22:40:51 +01:00
Miraclx 6a6b57b926
Implement windows executable extension check 2020-05-11 22:00:13 +01:00
Miraclx 8ee1278ebe
Added method to force explicit .exe extension inclusion on windows platforms 2020-05-11 21:59:40 +01:00
Miraclx 9200615e8f
Replace comma with `,` 2020-05-11 03:52:22 +01:00
Miraclx ac803533b7
Update cli description for the `--downloader` flag for comma-separated ordering 2020-05-11 03:52:22 +01:00
Miraclx 4b8281bbd7
Updated flag descriptions 2020-05-11 03:52:22 +01:00
Miraclx 78cbf3f136
Add a separator on the `--concurrency` flag 2020-05-07 02:37:37 +01:00
Miraclx 9ef8f093da
Ensure to handle errors once on the single fragment stream 2020-05-07 02:35:47 +01:00
Miraclx 5cf49248e0
Inplement the `--config` flag 2020-05-07 02:30:29 +01:00
Miraclx e3cd691f2d
Add checks to ensure input file is non-binary 2020-05-06 11:37:39 +01:00
Miraclx a5a8821ee7
Invalidate the query checking process only when there's no input file 2020-05-06 11:29:34 +01:00
Miraclx 8931fb4231
CLI: Check that there's at least one query 2020-05-06 11:29:09 +01:00
Miraclx 56441fe322
Prioritize CLI arg checks before configuration 2020-05-06 11:26:56 +01:00
Miraclx f7c9fed044
Include album art cover size in stats 2020-05-06 11:19:08 +01:00
Miraclx 09c5765dcb
Include extra unimplemented flags 2020-05-06 01:54:01 +01:00
Miraclx 66d2ef721a
Better error handling for query-related errors 2020-05-06 01:52:03 +01:00
Miraclx 1144c2fe6f
Skip showing totalBytes if its not defined 2020-05-03 21:41:14 +01:00
Miraclx 9e4d789dd8
Update retryHandler after libxget update including the meta field 2020-05-02 07:54:48 +01:00
Miraclx f23753704f
Fix bug showing "Download complete" before actually completing the download 2020-05-02 04:23:25 +01:00
Miraclx cc09a29899
Add support for parsing width and height from within config objects 2020-05-01 05:54:58 +01:00
Miraclx a7d294ce2c
Add CLI flag and config field for defining preferred cover art dimensions 2020-05-01 05:41:16 +01:00
Miraclx 56435f91e5
Added feature for individual services' album art url parsing based on width, height 2020-05-01 04:51:07 +01:00
Miraclx 1671fc1e0a
Add a key to make error message more descriptive 2020-05-01 04:38:06 +01:00
Miraclx e3c2ecd56c
Tweak code to workaround showing an empty array on help 2020-05-01 04:37:25 +01:00
Miraclx 955a1f1f4d
CLI: Modify atomicParsley not found message as it covers cases where what's available isn't a binary 2020-05-01 02:32:21 +01:00
Miraclx d56aa4324e
Handle, parse and merge the config spec collated from the --concurrency option 2020-04-23 08:41:36 +01:00
Miraclx 3c79a47c5d
Define repeatable logic for handling the concurrency flag 2020-04-23 08:40:51 +01:00
Miraclx 9d02379e00
Removed deprecated logic 2020-04-23 08:40:10 +01:00
Miraclx 2da890c2b6
Update the unimplemented concurrency CLI flag to use more specific key-value pairs 2020-04-23 06:55:38 +01:00
Miraclx fc13e7908b
Add concurrency feature specification in conf file with optimized defaults 2020-04-23 06:33:41 +01:00
Miraclx 3d209e8194
Define defaults object to be merged with file config 2020-04-23 06:16:44 +01:00
Miraclx 7e14040dc0
Propagate & print caught errors in the final postprocessor list 2020-04-23 06:14:50 +01:00
Miraclx cdab463077
Replace the feedMeta with audioSource. Misreferenced property 2020-04-23 06:13:49 +01:00
Miraclx 43ff91cd3a
Fix directory inexistence bug by ensuring directory creation before other post processing events 2020-04-23 06:12:05 +01:00
Miraclx f76f2f7a60
Properly report failure code/reason for images as done with the raw audio 2020-04-23 06:10:19 +01:00
Miraclx cad1364d08
Convert emitted errors to proper objects 2020-04-23 06:09:25 +01:00
Miraclx c75fe7c2da
Properly ignore other segment errors when one has caused whole rejection 2020-04-23 06:08:12 +01:00
Miraclx b82742d2b1
Add support for identifying which chunk of a segment was retried 2020-04-23 06:05:49 +01:00
Miraclx af9a2c2d39
Hint to new feature: filtering out explicit 2020-04-21 08:03:47 +01:00
Miraclx 27c8278ac6
Add CLI flag: --cover-size 2020-04-21 08:03:15 +01:00
Miraclx f23e5a4dcc
Reorder CLI flags 2020-04-21 07:58:51 +01:00
Miraclx 74c1e7e381
Update author field within package.json to support node's expansion 2020-04-21 07:57:58 +01:00
Miraclx db1aaed46f
CLI: Add sorted stats for skipped, passed and failed tracks 2020-04-21 03:29:02 +01:00
Miraclx 31c787e23f
Show change track post-download text to reflect actual event 2020-04-21 03:27:20 +01:00
Miraclx 545038f2f5
Standardize download interrupt messages 2020-04-21 03:26:24 +01:00
Miraclx 35d5eaa119
Major Commit: Switch to AsyncQueue for handling queries 2020-04-21 03:25:27 +01:00
Miraclx 3d6530e5fe
Support unencoded errors by printing their content 2020-04-19 05:58:50 +01:00
Miraclx 48ce0150ed
Major Commit: Breakdown track processes into individual queues to induce manageable concurrency 2020-04-19 05:57:58 +01:00
Miraclx 0a5769f5c9
Skip catching an error rather, insulating the event 2020-04-19 05:54:59 +01:00
Miraclx 5783c827ec
Fix timeout bug 2020-04-19 05:54:16 +01:00
Miraclx e0d0e7add0
CLI: await track response to support cases of returned promises 2020-04-13 17:33:54 +01:00
Miraclx 320393b5bc
Standardise inclusion of associated data count. ntracks for albums and playlists, nalbum for artists 2020-04-13 17:24:02 +01:00
Miraclx 585389cc42
Eslint Rules: Ignore function called before its definition 2020-04-10 00:58:18 +01:00
Miraclx 36e76f2f5f
Update CLI after async_queue update 2020-04-10 00:57:26 +01:00
Miraclx 4b068e0ef3
Add support for handling errors with a function 2020-04-07 02:54:27 +01:00
Miraclx 7982f13a3b
Rewrite asynchronouslyProcessTracks method to utilize the AsyncQueue 2020-04-07 02:52:49 +01:00
Miraclx 71219e3b23
AtomicParsley: Skip undefined values 2020-04-07 02:52:39 +01:00
Miraclx 8b1cc72ff4
Base attempt at utilizing the async queue to pre-process tracks 2020-04-05 04:13:36 +01:00
Miraclx 99eb1c24f9
Skip over artist genres wherever absent 2020-04-01 01:22:53 +01:00
Miraclx d851928707
Include ntracks property within the playlist object 2020-03-31 00:59:17 +01:00
Miraclx 23481fbb2e
Add apple music specification for default storefront 2020-03-26 21:44:21 +01:00
Miraclx d55be6af6c
Add base implementation support for the --storefront flag 2020-03-26 18:28:37 +01:00
Miraclx af6292657f
Prioritize the `P` type copyright as opposed to the `C` type copyright 2020-03-26 01:13:10 +01:00
Miraclx 65e45cf0a4
Defined methods per-service for checking for authentication properties like tokens to be saved within the config 2020-03-26 00:46:20 +01:00
Miraclx d31c1cac63
Add unimplemented flag for future concurrency support 2020-03-25 23:57:44 +01:00
Miraclx 4bfa7dadd0
Add unimplemented flag for future conf-file path specification 2020-03-25 23:57:44 +01:00
Miraclx a04417446b
Persist to conf.json in project root directory only 2020-03-23 01:27:33 +01:00
Miraclx 2779467354
Add method for checking if a service can try to authenticate 2020-03-23 00:22:20 +01:00
Miraclx 7612f53edb
Standardize return codes 2020-03-23 00:19:40 +01:00
Miraclx a968dc791f
Catch and report freyr constructor errors 2020-03-23 00:12:29 +01:00
Miraclx 10babcf546
Ensure configuration file can be loaded and parsed appropriately. 2020-03-23 00:12:12 +01:00
Miraclx 9de41be701
Pass serverOpts as a third argument through freyr to the service constructor 2020-03-22 23:46:52 +01:00
Miraclx 1e37ab3bfc
Revert back to using a plain configuration file. 2020-03-22 21:16:47 +01:00
Miraclx 5a3955f30c
Request individual album metadata as artist albums list might not always be complete 2020-03-22 02:33:41 +01:00
Miraclx de577ec1c7
Implement new method for asynchronously track pre-processing 2020-03-22 02:32:53 +01:00
Miraclx 333b4838d4
Add feature allowing to asynchronously load audio source and feed 2020-03-22 02:31:36 +01:00
Miraclx 19869e9241
Skip matching milli secs to support cases without them 2020-03-18 19:32:19 +01:00
Miraclx 31e5dc2417
Only show followers if the property is present 2020-03-15 21:06:28 +01:00
Miraclx 0ee5b71511
Add timeout option 2020-03-15 19:03:58 +01:00
Miraclx 5d5897ca68
Asynchronously process fragment streams rather than sequentially. 2020-03-15 19:03:05 +01:00
Miraclx 3cdc938807
Return null if invalid object construct. In turn, invalidate the query 2020-03-15 19:00:59 +01:00
Miraclx cee8aef385
Merge remote-tracking branch 'github/master' 2020-03-15 18:37:16 +01:00
Miraclx 3d69ce6522
Unify type property based on server response 2020-03-15 18:33:18 +01:00
Miraclx 924b55b3c3
Extend trackName if playlist or album compilation 2020-03-15 18:33:18 +01:00
Miraclx 57541d1cf0
Unify return err code for stage directory errors: 3 2020-03-15 18:33:18 +01:00
Miraclx fe296480c9
Check if working directory exists before proceeding 2020-03-15 18:33:18 +01:00
Miraclx 7ece1e5508
Bug fix: Typo compilation instead of collection 2020-03-15 18:33:18 +01:00
Miraclx 0dd8d1dd4f
Bug fix: -f redundancy. undefined --filter redefined to -x 2020-03-15 18:33:18 +01:00
Miraclx 393be4f09b
Show album type when querying albums 2020-03-15 18:33:18 +01:00
Miraclx 7b4d6b2a91
Support compilation collation 2020-03-15 18:33:18 +01:00
Miraclx 4494775b6a
Indicate whether or not track is part of a compilation 2020-03-15 18:33:18 +01:00
Miraclx 42d8f788a5
Embed source name within audio file 2020-03-15 18:33:18 +01:00
Miraclx aff261593a
Appropriate metadata definition 2020-03-15 18:33:18 +01:00
Miraclx babc48e309
Configure operation by distinguishing between an album and a compilation 2020-03-15 18:33:18 +01:00
Miraclx f7a2d4aa82
Unify return err code for stage directory errors: 3 2020-03-09 07:19:35 +01:00
Miraclx fbadd10ff0
Check if working directory exists before proceeding 2020-03-09 07:17:38 +01:00
Miraclx fb8266d0ec
Bug fix: Typo compilation instead of collection 2020-03-09 07:04:36 +01:00
Miraclx c94b525f70
Bug fix: -f redundancy. undefined --filter redefined to -x 2020-03-09 07:02:19 +01:00
Miraclx a8a799e14b
Show album type when querying albums 2020-03-09 07:01:32 +01:00
Miraclx 9a7af7bffb
Support compilation collation 2020-03-09 07:00:25 +01:00
Miraclx 12a8698a57
Indicate whether or not track is part of a compilation 2020-03-09 06:44:34 +01:00
Miraclx 3cfb3eaecc
Embed source name within audio file 2020-03-09 06:42:51 +01:00
Miraclx c52d528a3a
Appropriate metadata definition 2020-03-09 06:42:02 +01:00
Miraclx 0acdc4175e
Configure operation by distinguishing between an album and a compilation 2020-03-09 06:41:25 +01:00
Miraclx c541850f09
Create playlists for album collections 2020-03-08 05:50:13 +01:00
Miraclx a8a3fa0ecd
Show album genres, if any is specified 2020-03-08 05:49:50 +01:00
Miraclx 4fe0389a65
Removed extraTrackProps for uniformity 2020-03-08 05:48:55 +01:00
Miraclx 0beb5b5996
Better track processing
• Request multiple URIs, caching each result
• Efficient caching for objects to maximise efficiency
• Split URIs to multiple requests for each request
• Request tracks separate from group objects such as Album tracks, artist albums, playlist tracks
2020-03-08 05:47:20 +01:00
Miraclx dc6761d21c
Show artist follower count 2020-03-08 05:40:45 +01:00
Miraclx ae5dbeabec
Show artist followers 2020-03-08 05:36:18 +01:00
Miraclx cb11b27d4b
Print message or entire reason 2020-03-08 04:53:25 +01:00
Miraclx b4805c3538
Add storefront cli flag (unimplemented) 2020-03-06 07:48:54 +01:00
Miraclx 39389f2efa
Skip some metadata if not provided 2020-03-06 07:48:34 +01:00