Commit graph

169 commits

Author SHA1 Message Date
Antoine Gersant
4ad8d922f7
Platform-specific improvements (#127)
* Use native-windows-gui crate to manage tray icon
Adds log file support on Windows

* Log file location now works like other paths

* Removed context builder

* Context --> App

* Removed mount URLs from App

* Switch to a nicer crate for forking daemon

* Handle errors from notify_ready

* Add application icon to all Windows Polaris executables, not just those created by the release script

* Add build.rs to release tarball

* Create PID file parent directory if necessary
2020-12-30 21:41:57 -08:00
Antoine Gersant
7edcc38483
Test setup improvements (#125)
* More descriptive test names

* Test writing tools

* Migrate to new test tooling

* Adds test for collection cleaner
2020-12-29 20:05:04 -08:00
Antoine Gersant
487d261843 Removed unecessary dependency 2020-12-27 16:39:48 -08:00
Antoine Gersant
ea7edea79b Workaround for broken install paths on Windows 2020-12-27 00:10:57 -08:00
Antoine Gersant
72c8ed9289
Support for bearer token authentication (#120)
* User manager can create and recognize auth tokens

* Implement HTTP bearer auth

* Use bearer auth in test-harness

* Can receive auth token via query parameter (useful for media endpoints)
2020-12-20 03:25:45 -08:00
Antoine Gersant
c2807b60de
Replace rocket with actix-web (#116)
* Adds actix dependency

* Failed attempt at test harness using actix

* Fixed test panic

* Simplified tests

* Run web server in tests

* Send json payloads

* Static file serving

* Default shutdown timeout

* Implement version endpoint

* Implements #[get("/initial_setup")]

* WIP put_settings endpoint

* Adds AdminRights extractor

* Fixed a bug where AdminRights extractor always failed

* Implements collection endpoints

* Re-use system runnner between calls

* Preserve client headers between API calls (tentative)

* Fixed test interferences

* Implemented more endpoints

* Implemented audio file serving

* Fixed sketchy responses

* Implements thumbnail endpoint

* Login endpoint WIP

* Implement login endpoint

* Auth support

* When using HTTP headers to authenticate, response now includes expected cookies

* Tentative fix for server not responding within docker

* Adds logging middleware + browse troubleshooting

* Tentative fix for path decoding issues

* Tentative fix for broken path decoding

* Fix routing issues w/ paths

* Fixed a bug where auth cookies were sent in every response

* More lenient test timeouts

* Fixed a bug where recent/random endpoints required trailing slashes

* Compilation fix for rocket branch

* More useful test matrix

* Signed session cookies (#106)

* Isolate conflicting dependencies between rocket and actix versions

* Removed macOS from test matrix

* Glorious test harness simplification

* Removed RequestBuilder

* Shutdown on ctrl+c

* Pin to stable

* Drop rocket

* Simplify dependencies

* Removed stray rocket dependency

* Better test matrix

* Skip windows build without bundled sqlite

* Offload thumbnail creation to a thread pool

* Compress responses when possible

* Removed unused manage state

* Fixed a bug where large playlists could not be saved

* Return HTTP 401 for last fm requests without authentication

* Web block (#115)

* web::block around DB operations

* web::block during auth utils hitting DB

* Fixed incorrect http response code for missing thumbnail

* Removed unecessary unwrap

* Eliminated unecessary unwrap
2020-12-14 21:18:44 -08:00
Antoine Gersant
847d61f62b
One click release (#113)
* Make release from Github UI
2020-12-13 19:24:06 -08:00
Antoine Gersant
9c45ad5238
Replace reqwest with ureq (#112)
* Replace reqwest with ureq

* Reqwest-free rustfm-scrobble
2020-12-13 15:53:31 -08:00
Antoine Gersant
454d73c754 cargo update 2020-12-08 00:22:16 -08:00
Antoine Gersant
eb917bb9d6 Bumped pbkdf2 2020-12-07 23:35:33 -08:00
Antoine Gersant
e40121c4d0 Bumped crossbeam channel version 2020-12-07 23:33:37 -08:00
Antoine Gersant
1ebc0d9f44 Bump base64 version 2020-12-07 23:30:51 -08:00
Antoine Gersant
b709a8cd64 Bump anyhow version 2020-12-07 23:30:00 -08:00
Antoine Gersant
b678973ef0 Hand-picked subset of image features 2020-12-07 23:06:50 -08:00
Antoine Gersant
351f1b0768 Removed unused dependency 2020-12-07 22:51:36 -08:00
Antoine Gersant
f03d12de3e Removed unused dependency 2020-12-07 20:10:10 -08:00
Antoine Gersant
b6c446fa02
Rewrote indexer (#107)
* Update index without rayon

* Use crossbeam channels

* Use a single thread for DB insertions

* Better use of rayon in clean()

* Index rewrite

* Parallelize traverser

* Don't swallow send error

* Use Drop trait to flush Inserter work

* Configurable number of traverser threads

* Use channels to manage the work queue instead of Mutex

* Removed unusable profiling feature
2020-12-07 20:07:10 -08:00
Antoine Gersant
847c26ddfe
Service unit tests improvements (#103)
- Simpler API for TestService
- More granular tests
- Tests for authentication requirements
- Better error handling (and HTTP response codes) for various bad inputs
2020-11-30 01:26:55 -08:00
Antoine Gersant
538b41a2b4
Use standard directories when running on Linux (#91)
* Use standard Linux directories for application data (https://en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard)

* Use standard system directories

* Cleanup all Polaris files during uninstall

* Expose get_pid_directory to rest of the crate

* Add separate targets for install binary and data files, clean up makefile

* Use environment variables for directory locations during install process

* On Linux, read locations from environment variables at compile time

* Split static_directory in two (web and swagger directories)

* Follow recommendations from the Make manual

* Avoid redundant directories

* Added workflow to validate installer setup

* Added CLI options to locate log file, pid file and cache directory

* Fixed an issue where build command did not support the xdg/system switch

* Renamed log option to log-level

* Fixed an issue where xdg install would do a system build

* Use re-usable action to make linux release

* Avoid nested actions (see https://github.com/actions/runner/issues/646)

* Updated installation instructions

* Replaced deprecated use of set-env
2020-11-26 15:57:08 -08:00
Tobias Schmitz
bff49c22ec
Embedded artwork support (#101)
* Embedded artwork support for mp4 and id3 tags

* Embedded artwork support for flac tags.

* small fixes

* use first embedded artwork for directory

* added artwork tests

* updated Cargo.lock

* use first embedded artwork for missing artworks
2020-11-25 15:46:09 -08:00
Antoine Gersant
8c32d7351c Updated mp4ameta dependency 2020-09-21 19:28:17 -07:00
Yannik Böttcher
fee96e6b49 add support for opus files 2020-08-06 17:26:50 +02:00
Antoine Gersant
797e2e9526 Merge branch 'master' of https://github.com/agersant/polaris 2020-08-04 23:13:17 -07:00
Antoine Gersant
a2dc0ce37a Bumped version number 2020-08-04 23:13:06 -07:00
Laurențiu Nicola
6472349523 Bump deps 2020-07-24 10:13:40 +03:00
Laurențiu Nicola
dbb5f79371 Use more threads when populating index 2020-07-21 06:54:20 +03:00
Laurențiu Nicola
8035856fb6 Bump pear and pear_codegen 2020-07-20 16:30:13 +03:00
Ray
f0fc9e8fba bump mp4meta version for bugfix 2020-06-20 22:05:44 -04:00
Ray
7637037e3d add m4a support via mp4ameta crate 2020-06-16 08:06:40 -04:00
Ray
d8b1f0c002 Enable M4A format support
- Use https://github.com/Saecki/rust-mp4ameta for M4A metadata

Resolves https://github.com/agersant/polaris/issues/70
2020-06-13 20:58:43 -04:00
Antoine Gersant
eb2fd23281 Updated lock file 2020-06-01 00:02:23 -07:00
Antoine Gersant
99db3eda13 Updated transitive dependencies 2020-05-30 17:30:02 -07:00
Antoine Gersant
45f4369301 Bumped diesel dependency 2020-05-30 17:25:51 -07:00
Antoine Gersant
c3466ca248 Bumped simplelog dependency 2020-05-30 17:11:32 -07:00
Antoine Gersant
0c5bd28d56 Updated HTTP dependency 2020-05-30 17:07:25 -07:00
Antoine Gersant
21cf831f74 Updated image dependency 2020-05-30 17:05:41 -07:00
Antoine Gersant
7b12f8f294 More trivial dependency bumps 2020-05-30 16:59:59 -07:00
Antoine Gersant
29819b930a Trivial dependency updates 2020-05-30 16:56:20 -07:00
Antoine Gersant
371b0d0333 Updated cookie dependency to latest 2020-05-30 16:49:39 -07:00
Antoine Gersant
5e1aeb10fb Moved cookie to dev dependencies 2020-05-30 16:47:44 -07:00
Antoine Gersant
eb7c833de5 Bumped Rocket dependency to 0.4.5 2020-05-30 16:32:34 -07:00
Antoine Gersant
d005b86fb0 Lock file update 2020-05-30 15:54:38 -07:00
Antoine Gersant
1af2ba49be Bumped version number 2020-04-16 20:49:53 -07:00
Antoine Gersant
1825056f26 Merge branch 'master' of https://github.com/agersant/polaris 2020-04-16 20:48:04 -07:00
Antoine Gersant
b02d4da979 Bumped version number 2020-04-16 19:38:48 -07:00
Laurențiu Nicola
768ee1122c
Bump deps (#67) 2020-02-06 14:20:24 -08:00
Antoine Gersant
cea8906c3d Merge branch 'master' of https://github.com/agersant/polaris 2020-02-02 15:12:21 -08:00
Laurențiu Nicola
7428891bde
Drop function_name dependency (#66) 2020-02-02 00:58:30 -08:00
Antoine Gersant
b413125a46 Fixed powershell syntax 2020-02-01 19:59:04 -08:00
Antoine Gersant
f9f69cd55c Insert correct polaris version in windows installer 2020-02-01 19:42:20 -08:00