1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
|
TODO: Get `avconv` working. Oftentimes `play` won't be able to play
some tracks due to an unsupported format; we'll need to use
`avconv` to convert them (to WAV).
(Done!)
TODO: Get `play` working.
(Done!)
TODO: Get play-next working; probably just act like a shuffle. Will
need to keep an eye out for the `play` process finishing.
(Done!)
TODO: Preemptively download and process the next track, while the
current one is playing, to eliminate the silent time between
tracks.
(Done!)
TODO: Delete old tracks! Since we aren't overwriting files, we
need to manually delete files once we're done with them.
(Done!)
TODO: Get library filter path from stdin.
(Done!)
TODO: Show library tree. Do this AFTER filtering, so that people
can e.g. see all albums by a specific artist.
(Done!)
TODO: Ignore .DS_Store.
(Done!)
TODO: Have a download timeout, somehow.
TODO: Fix the actual group format. Often times we get single-letter
files being downloaded (which don't exist); I'm guessing that's
related to folder names (which are just strings, not title-href
arrays) still being in the group array. (Update: that's defin-
itely true; 'Saucey Sounds'[0] === 'S', and 'Unofficial'[0]
=== 'U', which are the two "files" it crashes on while playing
-g 'Jake Chudnow'.)
(Done!)
TODO: A way to exclude a specific group path.
(Done!)
TODO: Better argv handling.
(Done!)
TODO: Option to include a specific path from the source playlist.
(Done!)
TODO: Make a playlist generator that parses http://billwurtz.com
instrumentals.html.
(Done!)
TODO: Make crawl-itunes.js a bit more general, more command-line
friendly (i.e. don't require editing the script itself), and
make it use the getHTMLLinks function defined in the new
crawl-links.js script.
(Done!)
TODO: Play-in-order track picker.
(Done!)
TODO: Volume controls. Who knows how to do this? It might have to be an
argument passed to `play`. Being able to change the volume while it's
playing would be nice, but I'm not sure if that's really possible.
(Done! - To the greatest current ability.)
TODO: Tempfiles, maybe?
(Done!)
TODO: Use NOT the internet as its source, so that it's a bit more general
purpose. This would only take adding a new downloader.
(Done!)
TODO: Recursive local file playlist crawler.
(Done!)
TODO: *Requiring* a literal `playlist.json` file doesn't seem quite right,
especially since there's the `--open` option.
(Done!)
TODO: Make local downlaoder sort more natural - that is, 10 comes immediately
after 9, not 1. (1, 5, 9, 10, 12; not 1, 10, 12, 5, 9.)
(Done!)
TODO: Make a way to skip tracks while playing. Currently the only way is to
kill and restart the http-music process; this is bad for numerous
reasons, particularly because it gets rid of the pre-downloaded track and
forces the user to wait for another one to be downloaded.
TODO: Make a --help/-h/-? option that directs helpless users to the man page.
(Done!)
TODO: Make a way to write the current playlist to a file. I think just renaming
the debug-playlist-log option could work, since you could pipe that to a
file through your shell.
TODO: Figure out a less "hacky" way to kill the process. Ideally we shouldn't
have to handle ^C and ^D ourselves; for instance right now ^Z is actually
broken, since we aren't using the shell's normal way of handling any
keyboard controls such as those!
TODO: Separate the code in loop-play.js to be a bit nicer.
(Done!)
TODO: Cleaning up http-music.js would be nice as well!
TODO: A way to kill the up-next song.
(Done!)
TODO: A way to see information about the currently playing song, as well as
the up-next song.
TODO: A way to see the previously played songs, and to skip back (or forwards).
|