Sasha Hilton
deabf1f915
Minor updates to discovery and device types
2021-02-09 03:16:40 +00:00
Sasha Hilton
84ba421818
Merge pull request #566 from xou816/fix/map-auth-errors
...
fix: map authentication errors to a custom error type
2021-02-06 02:54:11 +00:00
Alexandre Trendel
71e9295ee8
fix: map authentication errors to a custom error type
2021-02-05 14:26:32 +01:00
johannesd3
3446864838
Handle corrupt cache files ( #591 )
2021-02-02 02:18:58 +01:00
Sasha Hilton
a09845ee7d
Merge pull request #582 from Johannesd3/refactor_cache_remove_volume
2021-02-02 01:08:07 +00:00
johannesd3
efedc678d0
Handle cache full situation
2021-01-31 10:00:02 +01:00
johannesd3
bb44b99c92
Use proxytunnel in apresolve
...
Implementing the tower_service::Service trait for a newly created
ProxyTunnel struct, so it can be used as connector in hyper.
2021-01-30 14:45:31 +01:00
johannesd3
c1d62d72a7
Fixed ProxyTunnel
2021-01-30 14:03:34 +01:00
johannesd3
a45fe85c27
Enable logging in test
2021-01-30 13:53:44 +01:00
johannesd3
e582f0a3fc
Improved SpotifyId implementation
...
Moved conversion of SpotifyAudioType from and to &str directly to traits
Used a simpler and more idiomatic syntax in some places.
2021-01-29 11:50:50 +01:00
Michał Chojnacki
6b09836117
Refactor SpotifyId
...
- perf:
* base62 encoding is an order of magnitude faster (~20x);
* base16/62 enc/dec and from_uri are several times faster (~2-20x);
* Let FileId::to_base16() reuse the hex encoder (~20x);
- changes:
* Add to_uri() method;
* Make from_uri() error handling consistent;
* Move audio type from string matching to a SpotifyAudioType factory (private);
* Implent From/Into<&str> for SpotifyAudioType;
* Add representation sizes as associated constants (private);
- cs/docs:
* Add rudimentary docs for most public funcs;
* Add trivial test cases for the codecs;
2021-01-29 11:33:31 +01:00
johannesd3
07514c9dcc
Add proxy support to apresolve
2021-01-25 20:55:49 +01:00
johannesd3
fd1f049572
Removed volume struct
2021-01-25 10:52:06 +01:00
johannesd3
fa5c9f7d11
Made locations in cache optional
...
The locations of credentials, volume and audio are now stored
in three separate Optional<PathBuf>s.
Removed the clearing of the cache if an error occurs. This might
be added again later.
2021-01-25 10:48:14 +01:00
johannesd3
14a004f84c
Refactored Cache
...
Proper error handling, and moving the conversion between
{ credentials, volume } and file into the cache module
2021-01-25 10:47:42 +01:00
johannesd3
6c9d8c8d83
Replace pin_project and updated dependencies
2021-01-25 09:04:33 +01:00
johannesd3
6867ad0750
Added test
2021-01-25 09:04:33 +01:00
johannesd3
40e6355c34
Migrate core to tokio 1.0
2021-01-25 09:04:33 +01:00
Sasha Hilton
06f5aa9c90
Fix incorrect audio cache directory reference
2021-01-02 23:31:37 +00:00
Sasha Hilton
414383db18
Merge pull request #506 from LaurentLouf/feature-split_cache_folders
...
Feature split cache folders, resolves #505
2021-01-02 23:17:33 +00:00
Lyndon Brown
4fbbe44ab8
bump base64
dependency (v0.10 to v0.13)
...
very little changed, compiles fine after.
2020-12-14 11:53:54 +00:00
Lyndon Brown
0460429380
bump num-bigint
dependency (v0.2 to v0.3)
...
compiles fine after version change; version changes seem to be very minimal.
2020-12-14 11:53:54 +00:00
Lyndon Brown
bc973d02dc
bump uuid
dependency from 0.7 to 0.8
...
seems compatible
2020-12-14 11:53:54 +00:00
Sasha Hilton
c8713a6c01
Merge pull request #518 from LaurentLouf/feature-handle_cache_full_situation
...
Handle cache full situation
2020-12-13 17:34:14 +00:00
Lyndon Brown
4708e0a2bf
cargo toml formatting fix
...
for consistency
2020-11-26 19:31:51 +00:00
Lyndon Brown
f87cbd6fde
add missing repo links to sub-crate cargo toml files
...
such that links are available from their crates.io pages to the project repo.
2020-11-26 19:30:37 +00:00
Laurent Louf
5f11ddea50
Main issue is probably when copying the content to the file, not during the file creation, but handle both cases just to be sure
2020-08-04 12:25:32 +02:00
Laurent Louf
9d832baf83
Instead of disabling audio cache, just clean the audio cache and start caching again from the current file
2020-08-03 13:18:23 +02:00
Laurent Louf
b34032690b
Don't create directories for the audio cache if it disabled
2020-08-02 10:52:09 +02:00
Sasha Hilton
45f4276d68
Update version numbers to 0.1.3
2020-07-29 16:23:41 +01:00
Sasha Hilton
4886d4eed2
Merge pull request #504 from librespot-org/build-fixes
...
General fixes to protobuf bindings, depreciation warnings and publish.sh
2020-07-27 00:17:38 +01:00
Laurent Louf
c14c254c6b
Format
2020-07-26 16:11:32 +02:00
ashthespy
99be49acd2
Set volume control default to log, clean up stray debugs
2020-07-25 09:52:21 +02:00
Ash
f0b3b2c7e8
Refactor Volume control, allow for a fixed volume option ( #447 )
...
Refactored the old `--linear-volume` flag to a more generic `--volume-ctrl` flag that takes the options of `[linear, log, fixed]`. It defaults as previously to log.
2020-07-25 09:38:08 +02:00
Sasha Hilton
16462b34e2
Accidentally bumped protobuf version
2020-07-25 04:50:58 +01:00
Sasha Hilton
e97911e3cf
Generate proto bindings in OUT_DIR, remove precompiled bindings
2020-07-25 04:43:01 +01:00
Sasha Hilton
dc99cd73c0
Merge pull request #440 from tehcodedninja/SpotfyId-toURI
...
Ability to get the Spotify URI from a SpotifyId
2020-07-25 03:19:44 +01:00
Laurent Louf
f075a75aee
Disable audio cache when there is an error trying to create a file
2020-07-25 01:20:08 +02:00
Laurent Louf
8fc9ebfa8c
Add the option to specify the system cache for credentials and volume files and adapt Cache to use two cache directories instead of one
2020-07-24 23:18:29 +02:00
Sasha Hilton
4a21b5cbeb
Fix depreciation warnings
...
Fixes error description depreciation warnings and removes unnecessary parentheses
2020-07-24 03:32:36 +01:00
Sasha Hilton
cd944035de
Merge pull request #476 from PlusMinus0/fix-utf-username
...
Fix utf username
2020-07-22 17:22:33 +01:00
Sasha Hilton
68949da7c2
Update version numbers to 0.1.2
2020-07-22 16:53:52 +01:00
Ash
72437bff66
Bump protobuf v2.8.1 -> v~2.14.0 and fix build issues ( #485 )
2020-07-22 12:47:25 +02:00
PlusMinus0
6f084d7ea5
Fix utf username.
2020-05-12 08:55:08 +02:00
Michael Pivonka
d47cc75dc6
Fixed formatting
2020-03-02 06:36:27 -05:00
Michael Pivonka
8939954bd7
Added to_uri function to spotify_id
2020-03-02 06:29:13 -05:00
Adam Nielsen
036f1f7cec
Make sequences wrap around to avoid overflows
...
Instead of aborting with an `attempt to add with overflow` error, wrap the sequence around so that it goes back to 0 once it has reached the maximum value for the integer type. Fixes #437 .
2020-02-23 11:27:38 +10:00
Sasha Hilton
6daa2acd0a
Update version numbers to 0.1.1
2020-01-30 02:39:41 +01:00
Konstantin Seiler
65d1c1bf8e
Proper error handling when connecting to the server.
2020-01-29 09:45:06 +11:00
Sasha Hilton
e9c3357e41
Run cargo fmt
2020-01-24 02:26:16 +01:00
Sasha Hilton
cdcb919c08
Merge branch 'dev' into connection-lost-crash
2020-01-24 01:02:40 +01:00
Konstantin Seiler
17821b26aa
Rename variable to be in line with existing code.
2020-01-23 19:32:00 +11:00
Konstantin Seiler
ea1e0925dc
Enable proper shutdown of the channels.
2020-01-23 01:23:34 +11:00
Konstantin Seiler
3fe3849588
Enable Mercury to be shut down and all pending requests being cancelled.
2020-01-23 01:14:43 +11:00
Konstantin Seiler
b6c676ad60
Prevent librespot from panicking if server connection is lost.
2020-01-22 21:55:45 +11:00
Konstantin Seiler
362106df62
Fix error handling for closed channel.
...
fixes #417
2020-01-22 16:58:21 +11:00
marcelbuesing
c9147d31ab
Turn child crates into rust 2018 edition
2020-01-17 20:54:05 +01:00
marcelbuesing
38d82f2dc2
Rerun rustfmt on full codebase
2020-01-17 18:47:30 +01:00
ashthespy
d26590afc5
Update to Rust 2018
...
- Fix deprecated Error::cause warnings and missing dyn
- Reset max_width
- Add rustfmt to Travis
- Run rustfmt on full codebase
with `cargo fmt --all`
- Add rustfmt to Travis
- Complete migration to edition 2018
- Replace try! shorthand
- Use explicit `dyn Trait`
2020-01-17 18:11:52 +01:00
Sasha Hilton
78bd0a1f7b
Merge pull request #394 from ashthespy/autoplay
...
Autoplay similar songs when your music ends
2019-12-12 19:04:48 +01:00
Konstantin Seiler
d2d6df0e24
Run cargo fmt for my code.
2019-11-11 18:22:41 +11:00
Konstantin Seiler
e75021b213
Merge remote-tracking branch 'origin/dev' into dynamic-blocks-kdev
2019-11-08 09:23:30 +11:00
Konstantin Seiler
cdb31f79e4
Merge remote-tracking branch 'kaymes/dynamic-blocks' into dynamic-blocks-kdev
2019-11-08 09:20:31 +11:00
Konstantin Seiler
c4e0f15eb3
Tune prefetch, squish bugs.
2019-11-08 08:58:17 +11:00
Konstantin Seiler
6422dcef78
Refine file downloading heuristics to use data rates and ping times everywhere.
2019-11-08 00:02:53 +11:00
Sasha Hilton
63049d9928
Protobuf exact dependency
2019-11-06 16:52:51 +01:00
Sasha Hilton
394320c7b7
Add description and license to Cargo.toml for each crate
2019-11-06 16:50:26 +01:00
Konstantin Seiler
224ec0a04e
Remove log message
2019-11-06 14:38:28 +11:00
Konstantin Seiler
9b069effb2
Merge remote-tracking branch 'origin/dev' into dynamic-blocks
...
Adapt code for the aternative bitrate selection.
2019-11-06 08:10:41 +11:00
ashthespy
b3c9744b29
Add a autoplay
option flag
2019-11-05 20:34:43 +01:00
Konstantin Seiler
ba7d058784
Merge remote-tracking branch 'origin/dev' into dynamic-blocks
2019-11-02 08:41:42 +11:00
Konstantin Seiler
6545674a63
Merge remote-tracking branch 'origin/master' into dynamic-blocks
2019-11-02 07:15:23 +11:00
Konstantin Seiler
333fc5010c
New file downloading mechanism
2019-11-02 06:46:28 +11:00
ashthespy
b96405af82
Make SpotifyId
understand more URI formats
2019-10-30 11:33:17 +01:00
ashthespy
8eb51e9b55
Streamline and refactor Podcast support,
...
<Metadata>
Add publisher to `Show`
Add `ALLOWED` to `PassthroughEnum`
2019-10-30 11:33:17 +01:00
ashthespy
0cb7a3f7c8
WIP: Podcast support
2019-10-30 11:33:17 +01:00
Will Stott
a7243ff8ce
Use single fixed-width format! macro for SpotifyId.to_base16
2019-10-22 18:31:45 +01:00
Will Stott
ac1c31b786
Use Rust's built-in unsigned 128 bit integer instead of the extprim crate
2019-10-22 18:28:21 +01:00
Ash
e1e8f60628
Merge pull request #351 from ashthespy/vergen
...
Bump up vergen (and switch to rustc-env flags)
2019-09-21 16:56:14 +02:00
Tristan Stenner
1ba6e5886a
Restrict protobuf updates
2019-07-30 11:00:02 +02:00
ashthespy
2bf694a07b
Bump up vergen (and switch to rustc-env flags)
2019-07-24 11:14:20 +02:00
George Hahn
6e280b3c88
Upgrade dependencies
2019-07-17 22:08:15 -05:00
Sasha Hilton
bf7f54a218
Merge pull request #299 from librespot-org/error-source-fix
...
Fix depreciation warnings, bump Travis version to 1.30.0
2019-04-12 05:40:20 +02:00
Sasha Hilton
df3bea8c25
Merge pull request #324 from ashthespy/bloat
...
Remove redundant `rpassword` crate from `librespot-core`
2019-04-12 05:38:10 +02:00
Michael Edwards
9b4ede086a
Server time delta is a signed integer
...
Fixes #322
2019-03-26 21:45:23 +01:00
ashthespy
9f9218f3cc
Remove redundant rpassword
crate from librespot-core
2019-03-26 18:07:05 +01:00
Sasha Hilton
e9b159e9d9
Merge pull request #321 from devgianlu/time-alignment-fix
...
Fix for time alignment issue
2019-03-25 19:05:06 +01:00
devgianlu
dc9b2de314
Fixed issue with time alignment
2019-03-24 07:15:14 -07:00
Michael Edwards
b7a2aad17d
Add credentials field alias
...
`encoded_auth_blob` is used in the credentials response of the Facebook auth flow
2019-03-20 21:17:23 +01:00
Sasha Hilton
1ccf00cfbb
Merge branch 'master' into error-source-fix
2019-03-20 16:48:41 +01:00
Sasha Hilton
fe4b71d76c
Fix tokio depreciation warnings
2019-03-20 16:46:44 +01:00
Michael Edwards
0bbca1d8bc
Use serde 1.0
2019-03-20 12:04:24 +01:00
Артём Павлов [Artyom Pavlov]
72589443c7
update Cargo.lock, use constant time equality check, remove block-modes
2019-03-16 18:30:10 +03:00
Artyom Pavlov
391b9c69c4
Merge branch 'master' into master
2019-03-15 16:32:54 +00:00
Sasha Hilton
7f22785f52
Merge pull request #303 from devgianlu/unlock-features-fix
...
Update version number
2019-03-13 21:59:12 +01:00
Gianlu
4a6d7b921f
Updated version number
2019-03-13 21:52:59 +01:00
Tristan Stenner
113fed5c42
Update rand to 0.6
2019-02-12 08:02:44 +01:00
Artyom Pavlov
772591576a
Merge branch 'master' into master
2018-12-06 09:38:33 +00:00
Артём Павлов [Artyom Pavlov]
06266556de
update dependencies
2018-10-15 05:07:58 +03:00
ashthespy
c5fcdfd43c
Upgrade protobuf
to 2.0
and use protoc-rust
to compile proto files
2018-10-03 15:06:44 +02:00
newpavlov
e4677027d2
replace rust-crypto's hashes, HMAC and PBKDF2
2018-07-23 16:41:39 +03:00
Harold
4fb3d5f271
Add ap-port option to specify preferred port
2018-07-03 13:09:22 +02:00
Brice
d40c0f50db
Cache volume across restarts ( #220 )
...
* create Volume struct for use with Cache
* add "volume" file to Cache
* load cached volume on start, intial overrides cached overrides default
* amend volume_to_mixer function to cache the volume on every change
* pass cache to Spirc and SpircTask so volume_to_mixer has access
* rustfmt changes
* revert volume_to_mixer function and Spirc/SpircTask cache variable
* Volume implements Copy, pass by value instead of reference
* clamp volume to 100 if cached value exceeds limit
* convert Volume to u16 internally, use float and round to convert hex->dec
* convert initial_volume and ConnectConfig.volume to u16 as well
* add cache_volume function to SpircTask
* remove conversion to/from percentage on cached volume
* consolidate device.set_volume, mixer.set_volume, and caching
* streamline intial volume logic
2018-05-17 03:15:17 +02:00
Reinier Balt
870afdb4b6
fix deprecation warning for bytes
2018-04-30 14:28:43 +02:00
Reinier Balt
e6fff8003f
remove deprecated and unused import
2018-04-26 09:15:01 +02:00
Reinier Balt
2aea0e8fe6
do not panic on connection reset
2018-04-21 17:46:29 +02:00
Sasha Hilton
96124c5e18
Add 5xx error panic
2018-04-06 02:44:06 +02:00
Johan Anderholm
96a6978016
Update Cargo.lock
...
librespot now require rust 1.21.0. error_chain is updated to avoid
compilation warnings about unused rustdoc.
2018-03-24 08:45:43 +00:00
Johan Anderholm
3a14e9a6be
Validate proxy urls better.
...
Use the url crate to handle proxies to make sure they conform to a
proper format.
2018-03-24 08:45:43 +00:00
Johan Anderholm
1a04e3b899
Resolve AP through proxy as well
2018-03-24 08:45:43 +00:00
Johan Anderholm
3bdc5e0073
Add support for http proxy
...
Currently only http proxy (no https) is supported.
2018-03-24 08:45:43 +00:00
Johan Anderholm
612978908f
Reformat according to new rustfmt rules
2018-03-24 08:45:43 +00:00
thekr1s
d6b82cd732
revert file mode to original mode
2018-03-14 23:19:49 +01:00
thekr1s
b3966b0e08
Add optional linear volume contol
2018-03-11 11:27:28 +01:00
Sasha Hilton
cbc4ee7554
Add to_base62 method
2018-02-28 13:29:24 +01:00
Sasha Hilton
a7334b6c23
Add to_base62 method
2018-02-28 13:28:57 +01:00
Sasha Hilton
197d80edbf
Fix formatting
2018-02-25 16:33:32 +01:00
Sasha Hilton
0abad9a8f8
Add custom SpotifyIdError type
2018-02-25 15:47:57 +01:00
Sasha Hilton
084646e21b
Use prompt for password in main.rs
2018-02-25 05:40:00 +01:00
Sasha Hilton
4fb8c71b0a
Set SpotifyId methods to return Result
2018-02-25 03:04:07 +01:00
Anton Voyl
58ea1baa98
Issue 130 ( #164 )
...
* Core API: device_id
* Core API: u128
2018-02-24 16:34:04 +01:00
Colm
d0ffb2ecdd
Update for rust format
2018-02-14 04:50:51 +00:00
Sasha Hilton
874cc541de
Merge pull request #138 from librespot-org/authpanic
...
Add error message to auth failure case
2018-02-13 23:19:05 +01:00
Sasha Hilton
6936825783
[ci skip] Accidentally deleted commit
2018-02-13 15:29:01 +01:00
awiouy
edbe00c62b
core API: move StrChunks* to metadata
2018-02-13 08:33:50 +01:00
awiouy
0ed4fb1c68
core API: MercuryManager.request()
2018-02-13 08:24:59 +01:00
awiouy
ea597361ff
core API: component.new()
2018-02-13 08:18:49 +01:00
awiouy
4c2b641cad
core API: move spotify_id to lib.rs
2018-02-13 07:57:28 +01:00
awiouy
6a9084b00c
core API: Lazy
2018-02-12 20:20:43 +01:00
awiouy
aed4fe32d8
core API: SessionInternal
2018-02-12 20:13:37 +01:00
awiouy
0fd398e34d
core API: SessionData
2018-02-12 20:10:36 +01:00
Anton Voyl
e276d39704
core: remove protobuf_macros ( #146 )
...
Fixes #129
2018-02-12 15:58:09 +01:00
Sasha Hilton
234958672f
Implement [replace] for rust-crypto
2018-02-12 14:48:39 +01:00
awiouy
191caca518
core API: move Bitrate and PlayerConfig from core to playback
2018-02-11 23:55:41 +01:00
awiouy
c9ba73c9ef
rustfmt: core
2018-02-11 12:37:08 +01:00
awiouy
a35edc6af4
core API: move run_program to player.rs
2018-02-10 17:58:15 +01:00
awiouy
496a802248
core API: move subfile.rs to player.rs
2018-02-10 17:58:15 +01:00
awiouy
d7fa1464ff
core API: move mkdir_existing to cache.rs
2018-02-10 17:58:15 +01:00
awiouy
77882836ce
core API: move now_ms to spirc.rs
2018-02-10 17:58:15 +01:00
awiouy
55f27a9e0a
core API: SessionWeak.try_upgrade(), SessionWeak.upgrade()
2018-02-10 17:58:15 +01:00
awiouy
ae85e69aca
core API: Session.weak()
2018-02-10 17:58:15 +01:00
awiouy
72cef9a10c
core API: Session.config()
2018-02-10 17:58:15 +01:00
awiouy
a8bb696be8
core API: MercurySender::new
2018-02-10 08:23:46 +01:00
awiouy
762b75803b
core API: connection
2018-02-09 21:36:18 +01:00
awiouy
4c23803c84
core API: cache.rs
2018-02-09 21:29:29 +01:00
awiouy
a105fd44c4
core API: save_to_file, save_to_writer
2018-02-09 21:24:58 +01:00
awiouy
c86f790986
core API: from_file, from_reader
2018-02-09 21:18:06 +01:00
awiouy
434b824c6e
core API: dispatch
2018-02-09 21:06:16 +01:00
awiouy
d34068c5a7
core API: apresolve
2018-02-09 20:57:49 +01:00
Sasha Hilton
6a442a4570
Move keymaster to core
2018-02-06 19:54:28 +01:00
Thomas Bächler
d36017d6f0
Remove usage of deprecated tokio_core::io
2018-01-25 23:23:45 +01:00
Thomas Bächler
630de8c0a9
Use futures::sync::mpsc::UnboundedSender::unbounded_send() instead of the deprecated send()
2018-01-25 23:23:45 +01:00
Thomas Bächler
5237203899
Remove usage of deprecated BoxFuture, BoxStream and BoxSink
2018-01-25 23:23:45 +01:00
Thomas Bächler
644355269e
Use futures::sync::oneshot::Sender::send() instead of the deprecated complete()
2018-01-25 23:23:45 +01:00
Thomas Bächler
a1a3a2e772
core: Remove an unneeded use warning
2018-01-22 01:17:52 +01:00
Colm
5302bd1072
Merge pull request #6 from brain0/work
...
Make librespot more robust against audio failures
2017-12-19 21:46:22 +00:00
Thomas Bächler
35ec580eac
Disable the "variable does not need to be mutable" compiler warning in generated code
2017-12-17 23:15:49 +01:00
fossedihelm
8313da522b
--initial-volume as parameter
2017-12-06 14:37:34 +01:00
Paul Lietar
3a18d1f91d
Update Cargo.lock, use hyper, libpulse-sys and lewton from crates.io.
2017-08-04 05:28:25 +01:00
Paul Lietar
d1447d2bfb
Add support for lewton as an Vorbis decoder.
2017-08-04 05:28:25 +01:00
Paul Lietar
bf60f6e7ab
Create new librespot-core crate
2017-08-03 19:58:44 +01:00