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
Miraclx
e222892f72
Skip re-requesting for individual album data after
2020-03-06 07:41:38 +01:00
Miraclx
ed33589874
Ignore falsey value specification
2020-03-06 07:38:52 +01:00
Miraclx
62b7845ecb
Skip requesting album information on a per-track basis
2020-03-06 07:34:30 +01:00
Miraclx
1dfc26f6f0
Hide artist genre in absence of one
2020-03-06 07:31:03 +01:00
Miraclx
3d14902bba
Typo fix: genres
2020-03-06 07:30:14 +01:00
Miraclx
78215e33d3
Remove sortOrder
2020-03-06 07:29:17 +01:00
Miraclx
1bf9a237e7
Translate date to uniform YYYY-MM-DD format
2020-03-06 07:28:49 +01:00
Miraclx
650aff6e5e
Include album_type in wrapped album presentation
2020-03-06 07:27:31 +01:00
Miraclx
f82321a430
Standardized artist properties to an array of names
2020-03-06 07:25:49 +01:00
Miraclx
c1cca9ae3d
Ensure authentication server is closed immediately after authentication
2020-03-06 07:21:05 +01:00
Miraclx
5d6ff88e79
Date.now() rather that new Date()
2020-03-04 03:02:59 +01:00
Miraclx
f3bfcc554d
format cli help manual
2020-03-02 16:53:49 +01:00
Miraclx
ff2c7b485d
Defined constructs to check for the presence of AtomicParsley and react appropriately
2020-03-02 05:17:05 +01:00
Miraclx
9040273068
Show custom error if any
2020-03-02 05:16:26 +01:00
Miraclx
59edabf9ad
Check for and react to custom errors
2020-03-02 05:15:39 +01:00
Miraclx
87fdb1ffc8
Format alignment
2020-02-27 14:29:28 +01:00
Miraclx
45758c32f1
Extend embedder err object if any with stdout and err code
2020-02-27 14:28:32 +01:00
Miraclx
3f5d5f7137
Format: uniformly lowercase descriptions
2020-02-27 04:53:20 +01:00
Miraclx
f859e53f30
Strictly call function to generate stream requests in case of an error
2020-02-27 04:17:48 +01:00
Miraclx
50099828e0
Add flag `-f` to facilitate overwrite of existing tracks
2020-02-27 04:17:04 +01:00
Miraclx
bd5a525f1a
Add support for creating playlists from all processed tracks
2020-02-27 03:57:25 +01:00
Miraclx
0ac10bdd47
Support m3u tagging with extra metadata
2020-02-27 03:56:47 +01:00
Miraclx
e6f7485b13
Handle cases where resolution values are falsey
2020-02-27 03:50:49 +01:00
Miraclx
168243d007
Add core cli
2020-02-26 20:41:50 +01:00