spl0k
9c58b695ff
Watcher now handles cover art
...
Closes #92
2018-08-28 17:44:32 +02:00
spl0k
9736622ce1
Recently played API returns albums/folders that have been played at least once
...
Fixes #107
2018-08-27 15:51:01 +02:00
spl0k
38f718b4df
Using new pony on_connect
decorator
...
Revert "Restore SQLite case insensitive LIKE"
This reverts commit a08689e8c0
.
2018-08-11 16:16:34 +02:00
spl0k
a08689e8c0
Restore SQLite case insensitive LIKE
...
See ponyorm/pony#367
2018-08-05 15:35:29 +02:00
spl0k
dd33e8da14
Fixed LastFM account linking
2018-08-04 13:12:20 +02:00
spl0k
1b0cc54581
Workaround new pony QueryResult behaviour
...
Ref ponyorm/pony#369
2018-08-04 12:24:29 +02:00
spl0k
b25e943e4e
Removed bulk deletes from scanner
...
Was causing either cache issues or constraint errors
Fixes #103 , #102
2018-07-29 17:58:20 +02:00
spl0k
78cf84e136
Remove invalid folders before scanning for covers
...
Fixes #101
2018-06-24 13:19:04 +02:00
spl0k
b43a70a045
Cover art discovery: handle badly encoded files
2018-05-21 16:37:21 +02:00
spl0k
405a26a20a
Don't restrict cover art to 'cover.jpg' files
...
Ref #81
2018-05-21 16:16:06 +02:00
spl0k
918cd11262
Allow missing/empty tags
...
Closes #94 , closes #99
2018-05-20 17:35:32 +02:00
spl0k
a7cdeb0b2d
Don't bulk delete folders
...
Fixes issue with MariaDB<10.3.1
Ref #99
2018-05-20 13:38:17 +02:00
spl0k
2b1977892e
Generate a secret key only once
2018-04-01 12:32:36 +02:00
hhm
6bb98085bc
B"H allow accessing public playlists even when not admin
2018-03-21 23:11:28 -04:00
spl0k
6ac969e2c5
Index folder and track path
...
Speeds up scanning
2018-03-17 23:25:26 +01:00
spl0k
b72daea109
Improved folder deletion
2018-03-15 20:50:01 +01:00
spl0k
b4a9a21671
Don't distinct random queries
...
Fixes #89
2018-03-12 21:06:57 +01:00
spl0k
e5d9050fa7
Improved transcoding configuration parsing
2018-03-11 21:29:17 +01:00
spl0k
9eb1bf63d7
API: stream.view: added support for 'estimateContentLength'
2018-03-10 23:04:57 +01:00
spl0k
a6b894c586
API: marked explicitly unsupported methods/parameters as such
2018-03-10 22:15:40 +01:00
spl0k
adb4e7e89b
API: improved client preference passing
2018-03-10 18:35:00 +01:00
spl0k
0988d4319e
Unified file headers
2018-03-04 21:49:56 +01:00
spl0k
4cbc8765e0
Refactored FolderManager to raise exceptions
...
rather than returning status codes
2018-03-04 17:36:35 +01:00
spl0k
ef9e7af026
Refactored UserManager to raise exceptions
...
rather than returning status codes
2018-03-02 22:51:49 +01:00
spl0k
8bf488fab2
Refactored star/unstar error handling
2018-02-28 20:12:34 +01:00
spl0k
5188976e6f
Merge branch 'master'
2018-02-25 22:36:39 +01:00
spl0k
58b8a1171a
More error refactoring
2018-02-25 22:28:47 +01:00
spl0k
177b0cce0d
Refactoring API error handling
2018-02-25 11:39:26 +01:00
spl0k
ba61281ba1
Allow extra db connection args. Set utf8mb4 as the default charset for MySQL
2018-02-21 22:13:35 +01:00
spl0k
43b197a95e
Wrapping all request handling in a database transaction
2018-02-14 22:48:44 +01:00
spl0k
e3ccf0809f
Bumping the version, just because
2018-02-14 19:53:17 +01:00
spl0k
005ae4803b
More formatter refactoring
2018-02-11 12:40:10 +01:00
spl0k
27b9c232c2
Small refactoring of supysonic.api.get_entity
2018-01-30 21:56:06 +01:00
spl0k
66b6eb341e
Tests: removed context/module unload dance
...
Was a workaround for issues fixed by blueprints
2018-01-29 22:09:28 +01:00
spl0k
7455711b60
Frontend as blueprint
...
Ref #76
2018-01-29 21:37:19 +01:00
spl0k
0de87e64b0
API as blueprint
...
Ref #76
2018-01-28 22:50:21 +01:00
spl0k
aedda4f642
Add CORS header on JSON responses only
2018-01-27 17:18:30 +01:00
spl0k
b33e8ae6d1
Set mimetype when creating the response, don't try to fix it afterwards
...
Ref #76
2018-01-27 15:18:44 +01:00
spl0k
8275966db0
Dropped simplejson dependency
...
Ref #79
2018-01-21 22:02:32 +01:00
spl0k
c6992a4726
Fixed reading malformed tags
...
Fixes #86
2018-01-21 14:42:27 +01:00
spl0k
2df4de47a8
Replaced most of catch-all exception handlers
...
Closes #82
2018-01-20 22:46:41 +01:00
spl0k
3fd748cc5a
Scanner: handle permission errors
2018-01-20 21:44:20 +01:00
spl0k
954c75bc35
Ignore files with a badly encoded path
...
Closes #85
2018-01-20 18:26:58 +01:00
spl0k
bfe6da12d7
Dropped 'future' dependency
2018-01-18 21:10:01 +01:00
spl0k
fd67eb9cd4
Fixed DeprecationWarnings
2018-01-16 23:16:13 +01:00
spl0k
420003dfc1
Py3: fixed remaining errors (hidden due to skipped tests)
...
Ref #75
2018-01-16 22:19:24 +01:00
spl0k
c36d1813ee
Fixed setting client preferences
2018-01-16 19:45:28 +01:00
spl0k
7edb246b1e
Py3: str/bytes, iterators, etc.
...
It seems to work on Python 3 now!
Ref #75
2018-01-11 23:08:53 +01:00
spl0k
1a79fe3d70
Py3: basestring
...
Ref #75
2018-01-08 23:13:50 +01:00
spl0k
8674965c03
Read config files without interpolation
...
Fixes #84
2018-01-08 19:17:00 +01:00
spl0k
1605fcd202
Py3: imports, exceptions, dicts
...
Ref #75
2018-01-06 00:33:45 +01:00
spl0k
d807f26ccb
Provided migration scripts for existing storm databases
2017-12-30 19:06:43 +01:00
spl0k
df63919634
Look at my pony, my pony is amazing
2017-12-23 22:59:04 +01:00
spl0k
53fd4865cb
Get on my pony
2017-12-21 23:29:00 +01:00
spl0k
6daedc6919
I'm on a pony
2017-12-19 23:16:55 +01:00
spl0k
2428ffeb57
Scanner, CLI and watcher are on a pony
2017-12-17 23:25:34 +01:00
spl0k
a4b9a97271
All managers get a pony
2017-12-16 17:42:53 +01:00
spl0k
6bd61e0388
Getting out of the storm on a pony
2017-12-16 13:53:43 +01:00
spl0k
8046457661
Relative imports
2017-12-12 22:24:18 +01:00
spl0k
0a47ef89a5
CLI: fixed foreign key errors on user deletion
2017-12-10 15:11:50 +01:00
spl0k
d3271e7174
CLI: added ability to set stdin/stdout/stderr
2017-12-10 14:31:04 +01:00
spl0k
5236abf6ff
Moved CLI code to package
2017-12-08 22:02:12 +01:00
spl0k
bb72ce8f7c
Slight changes to watcher
...
Configurable scan delay
Test friendliness
2017-12-05 22:48:55 +01:00
spl0k
c515a25b69
Config sample update
2017-11-29 22:55:39 +01:00
spl0k
9ffe40aa2c
Reactivated config-dependent test
2017-11-27 22:46:09 +01:00
spl0k
a62976ba9d
Reworked config handling
2017-11-27 22:30:13 +01:00
spl0k
510d9e6dc7
Added some validation to scanner
2017-11-25 22:03:42 +01:00
spl0k
18383a6cc4
Removed users import/export
...
That was some method I was using by the time I deleted/recreated the
database on each schema change
2017-11-24 19:24:00 +01:00
spl0k
c947219f59
Web UI user section: validation
2017-11-24 19:19:24 +01:00
spl0k
0353a8a1bc
Web UI user section: factoring some usual validation with a decorator
2017-11-22 23:11:58 +01:00
spl0k
b7e9914246
Web UI: split GET and POST handlers
2017-11-22 22:39:54 +01:00
spl0k
b998bb0684
Web UI: reworked how data is passed to templates
...
Logged user is pushed in request data
No more 'username' session key
Small fixes along the way
2017-11-22 22:07:06 +01:00
spl0k
1488f29e9f
Fixed playlist related errors
2017-11-20 21:31:10 +01:00
spl0k
aac5ee6936
Small None-formatting / mimetype fix (and (c) dates)
2017-11-17 19:46:35 +01:00
spl0k
da857b9ceb
Reworked star/unstar error handling
...
Don't stop at the first error anymore, instead treat all provided ids
Potential errors are aggregated, if there's only one it is returned
as-is, if there are more they are all nested in a top-level error whose
code is 0 if there are different error codes, or their value if all
error codes are the same.
This error-nesting doesn't validate against the XSD, but the Subsonic
API gives absolutely no information on how errors should be handled.
And reverse-engineering is not in my line of work
2017-11-14 23:16:58 +01:00
spl0k
c709fa7e29
Better errors on listings
2017-11-11 00:12:10 +01:00
spl0k
336f556ced
Improved playlists error handling
2017-11-08 23:18:41 +01:00
spl0k
0602bed2e8
Fixed error in old search and handled newerThan
parameter
2017-11-03 23:14:39 +01:00
spl0k
b20c151765
Prevent server error when browsing on tracks that have been deleted
2017-11-03 23:12:38 +01:00
spl0k
d8c3b9fa88
User management error code tweaks
2017-11-01 20:52:59 +01:00
spl0k
7de57cb680
Small API content-type and error codes adjustments
2017-10-29 16:00:39 +01:00
spl0k
8f5fcc82f5
Response formatting tests
2017-10-28 21:18:34 +02:00
spl0k
033a86381b
Removed password decoding from UserManager
...
Decode only when passwords are coming from API query parameters
2017-10-28 12:41:34 +02:00
spl0k
7effd3aee5
Untabbify
2017-10-28 12:23:31 +02:00
spl0k
4eb7386c99
Playlists improvements
...
They don't mess up the the track order anymore
A same track can now be added more than once to a playlist
Closes #61
2017-10-22 22:05:17 +02:00
spl0k
4d3809a835
Return a correct error when the client parameter isn't supplied
2017-10-16 19:57:09 +02:00
spl0k
534a6de4a0
Slightly improved API responses
2017-10-16 19:49:29 +02:00
spl0k
da4cde77e1
Fix for cache folder set as relative path
2017-10-14 14:25:32 +02:00
spl0k
62bcce331a
Dropped python-daemon and its daemon-runner wrapper
...
This makes the watcher persisting with the terminal, breaking
installs using it as a initd/sysV daemon. The watcher currently
doesn't print anything on standard output or standard error.
Closes #39 , #72
2017-10-08 16:22:04 +02:00
spl0k
81609be7ce
Untabify watcher
2017-10-08 12:40:49 +02:00
spl0k
68aaf145ad
Merge branch 'scanner_daemon'
2017-10-08 12:30:16 +02:00
Óscar García Amor
76b55a7fe7
Fix small issue with makedirs import
2017-08-15 17:35:26 +02:00
spl0k
10ca91bd6f
Fixed potential issue when trying to delete a user
2017-08-08 19:19:33 +02:00
Óscar García Amor
7fe88d4670
Set some imports in one line
2017-08-08 10:56:42 +02:00
Óscar García Amor
a1619dd96a
Improve config.py to read file only in check
2017-08-08 10:37:22 +02:00
Óscar García Amor
5f011ed3e4
Support UTF-8 passwords with old enc:
2017-08-07 14:32:08 +02:00
Óscar García Amor
a5afece2d7
Add missing import
2017-08-07 14:07:52 +02:00
Óscar García Amor
81c356355b
Check that username match with UUID in login
2017-08-07 13:14:03 +02:00
Óscar García Amor
d9d90ffacf
Retab and change header to frontend __init__.py
2017-08-07 13:10:06 +02:00
Óscar García Amor
9818117b46
Fixes #67
2017-08-07 11:31:15 +02:00
Óscar García Amor
a6a37475c2
Retab and change header of user.py
2017-08-07 11:11:15 +02:00
Óscar García Amor
523903cac5
Improved setup script
2017-08-07 11:04:00 +02:00
Óscar García Amor
47237fd8e7
Add missing return in config.py
2017-08-07 10:59:21 +02:00
Óscar García Amor
81c2fafe86
Rewrite web.py to use new config.py
2017-08-07 09:47:39 +02:00
Óscar García Amor
1271a35c20
WIP rewrite config.py: simply retab web.py
2017-08-07 09:37:37 +02:00
Óscar García Amor
8fe9f9b715
WIP rewrite config.py: change several files to use new config
2017-08-07 09:34:43 +02:00
Óscar García Amor
2a3f13bb82
WIP: Rewrite config.py to make project more clean
2017-08-07 08:58:32 +02:00
Óscar García Amor
cb9f792ffd
Add confirmation dialog before deleting
2017-08-04 13:53:41 +02:00
Óscar García Amor
c856345c6c
Retab templates and simplify headers
2017-08-04 11:57:38 +02:00
Óscar García Amor
4c6cb3a678
Prevent admin user to delete itself
2017-08-04 10:58:47 +02:00
Óscar García Amor
be03239f9d
Use UserManager.SUCCESS to check UIDs
2017-08-04 10:24:12 +02:00
Óscar García Amor
fcf1a83234
Now admins can modify other users passwords
2017-07-27 10:23:24 +02:00
Óscar García Amor
fe5e966dbc
Check when uid param isn't me
2017-07-27 10:06:51 +02:00
Óscar García Amor
97fb5232e5
New feature: Now admins can edit users profiles
2017-07-11 16:43:55 +02:00
Óscar García Amor
c888af2d83
Added missing style files
2017-07-10 18:07:26 +02:00
Óscar García Amor
41e386e6ad
Fix: List only public playlists
2017-07-10 18:05:06 +02:00
Óscar García Amor
b53c33f92c
Add some style to web frontend
2017-07-10 17:39:30 +02:00
Óscar García Amor
ac851f04bf
WIP: Add some style to web frontend
2017-07-10 16:18:17 +02:00
Óscar García Amor
672cf0183c
Fixed issue when delete an user
2017-07-10 16:03:46 +02:00
Óscar García Amor
aa7939cbc7
WIP: Add some style to web frontend
2017-07-10 14:25:19 +02:00
Óscar García Amor
8a91e23043
WIP: Add some style to web frontend
2017-07-09 21:45:59 +02:00
Óscar García Amor
b42d0e7af2
WIP: Add some style to web frontend
2017-07-09 16:22:09 +02:00
Óscar García Amor
eb1e5a3f56
Added last play date to user list
2017-07-05 14:58:24 +02:00
spl0k
1e1b475fe6
Add 'transcoded' info to API responses if the server is set to transcode for that client
...
Closes #62
2017-07-02 17:08:40 +02:00
spl0k
5e51468246
Merge remote-tracking branch 'baldurmen/master'
2017-06-26 19:03:20 +02:00
Louis-Philippe Véronneau
b27e04c66a
new link for UltraSonic, replace Subsonic app (deprecated) by DSub
2017-06-24 14:04:23 -04:00
hhm
11031fcbd9
B"H api/search3: return search3 response tag
2017-05-17 00:01:56 -04:00
hhm
d714c691cf
B"H use range requests when available (flask >= 0.12)
2017-03-01 17:11:59 -05:00
spl0k
80e9e40248
Prevent hanging transcoding processes on client disconnection
...
Fixes #55
2016-11-27 19:00:17 +01:00
spl0k
02ac2df31a
Missing imports
...
Fixes #53
2016-11-14 19:29:09 +01:00
spl0k
1de9e2bf6e
References deletion
...
Should fix #38
2016-11-11 17:28:14 +01:00
spl0k
783e9b5465
More checks on folder add
...
Fixes #49
2016-11-11 16:31:44 +01:00
spl0k
2e8d57b9d0
Updated API responses for new album artist support
...
Closes #52
2016-10-30 21:45:34 +01:00
spl0k
104c9ffbb6
Adding support for track artist vs album artist. Scanner only
2016-10-30 20:58:00 +01:00
spl0k
074a0dc026
CLI: Added a '--force' option to folder scan command
2016-10-28 22:03:32 +02:00
spl0k
5fb98d96f5
Merge remote-tracking branch 'hhm0/rescan_albums'
2016-09-09 22:46:55 +02:00
hhm
0ca628a8fd
B"H check old albums when track metadata changed
2016-09-09 00:58:50 -04:00
hhm
ef64db46d1
B"H api: use GET and POST values in get_entity helper
2016-08-24 02:21:11 -04:00
hhm
306a7b3ec3
B"H api: use GET and POST values
2016-08-24 01:45:07 -04:00
sanderd
e1e5961c41
Fixed lookup of parent folder in scanner, to resolve issue when two folders start with the same characters.
2016-02-12 02:21:41 +01:00
spl0k
541efa6437
Added header allowing web-clients using JSON to work
2015-08-15 16:07:28 +02:00
spl0k
5fdd28290b
Fixed scanner folder lookup
...
Closes #33 , #35
2015-08-06 20:51:28 +02:00
spl0k
e73b358c63
Prevent issuing useless move operations if files have been created
2015-04-11 16:21:19 +02:00
spl0k
8b9fa416f8
Merge branch 'scanner_daemon'
2015-04-05 16:15:41 +02:00
spl0k
3c8c563b31
Providing an init.d script for the watcher using python-daemon
2014-10-26 19:37:14 +01:00
spl0k
276ebc9410
count() instead of length
2014-10-24 14:44:45 +02:00
Andre-Nam
76f23a5f01
Storm: use .count() instead of length filter
2014-10-22 21:03:05 +02:00
spl0k
f61a3a7937
Added basic file move support
2014-08-31 16:32:17 +02:00
spl0k
deba8aeee4
Changing which methods are available from Scanner
and what they do
2014-08-04 20:01:43 +02:00
spl0k
18ecf0fc08
Fixed scanning
2014-07-27 23:20:17 +02:00
spl0k
a18f670ff0
Merge branch 'master' into scanner_daemon
...
Conflicts:
README.md
supysonic/scanner.py
supysonic/web.py
2014-07-27 20:24:35 +02:00
spl0k
dd79c4d750
Fixed getNowPlaying
2014-07-27 15:05:00 +02:00
spl0k
0bd788b74d
Fixed import
2014-06-16 12:09:06 +02:00
spl0k
2c41e1af64
Merge branch 'master' into storm
...
Conflicts:
bin/supysonic-cli
supysonic/api/__init__.py
supysonic/api/albums_songs.py
supysonic/api/annotation.py
supysonic/api/browse.py
supysonic/api/chat.py
supysonic/api/media.py
supysonic/api/playlists.py
supysonic/api/search.py
supysonic/api/user.py
supysonic/db.py
supysonic/frontend/__init__.py
supysonic/frontend/folder.py
supysonic/frontend/playlist.py
supysonic/frontend/user.py
supysonic/lastfm.py
supysonic/managers/folder.py
supysonic/managers/user.py
supysonic/scanner.py
supysonic/web.py
2014-06-14 17:55:52 +02:00
spl0k
b83538f80b
A tiny bit more configuration on logging
2014-06-14 14:49:03 +02:00
spl0k
d1d3d4416e
Fixed scanner scanning untouched files
2014-06-12 14:25:58 +02:00
spl0k
f2ca878301
Scanner: exposing scan_file
2014-06-11 17:55:01 +02:00
spl0k
21f14a6dc1
Scanner: don't require a folder instance to call __scan_file
2014-06-11 17:53:33 +02:00
Andre-Nam
c29a2284b8
make it ready for packaging
2014-05-10 18:11:20 +02:00
Jelmer Vernooij
a254d17801
Add a setup.py file.
2014-05-04 23:48:17 +02:00
Jelmer Vernooij
2eb65c33f3
Move all code into a package.
2014-05-01 02:55:39 +02:00