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