Commit Graph

468 Commits

Author SHA1 Message Date
John Maguire cea41801db Fix loading of songs from Dropbox that have # in the name.
Fixes issue #3664
2013-05-16 16:40:32 +02:00
Ross Wolfson 7e32cfc358 Added more verbosity to GUI error message for common network issues when
connecting to a Subsonic server.
2013-05-07 22:33:45 -04:00
Ross Wolfson 25d92f5083 Adds option to force SSLv3 usage for Subsonic, as mentioned in
enhancement 1930.
2013-05-04 21:33:03 -04:00
David Sansome 8e3581af64 Fix an ancient typo that was breaking last.fm scrobbling reporting. 2013-04-15 21:41:55 +10:00
David Sansome 264d5ee0fa Add Radio GFM 2013-04-13 14:28:42 +10:00
John Maguire 1b8068dba7 Missed a spot. 2013-03-21 14:16:17 +01:00
John Maguire 160d9edfb6 Fix refresh token issues with Google Drive. 2013-02-26 16:24:47 +01:00
John Maguire 799a088d3d Correctly decode Dropbox download URLs.
Fixes issue #3505
2013-02-18 11:10:28 +01:00
David Sansome 0ae323bfff Don't try to connect to subsonic on startup if nothing is configured. 2013-02-17 15:14:55 +11:00
John Maguire 75394d0e8a Page through Box folders. 2013-02-13 14:19:50 +01:00
John Maguire d21fa8cc67 Add support for Box. 2013-02-12 17:11:18 +01:00
David Sansome 65c077e34f Detect last.fm login failures properly. Fixes issue 3426 2013-02-06 00:12:39 +11:00
David Sansome 6019afb097 Make the library sorting locale aware. Fixes issue 3456 2013-02-05 22:17:09 +11:00
Alan Briolat 970a615846 Improve experience of setting up a subsonic connection 2013-01-30 13:22:04 +01:00
John Maguire 0d743a2065 Fix some style issues in subsonic. 2013-01-24 17:48:58 +01:00
John Maguire fe2fb788d3 Merge branch 'subsonic'
Conflicts:
	data/data.qrc
2013-01-24 17:02:08 +01:00
Alan Briolat 465015fe3c Don't fetch magnatune library until service is expanded. Fixes issue 3440 2013-01-22 23:30:15 +01:00
Alan Briolat a5f6356be4 Subsonic global search provider and some extra UI polish 2013-01-21 22:13:48 +00:00
Alan Briolat d424ed93a4 Don't fetch subsonic library until service is expanded 2013-01-20 23:25:54 +00:00
Alan Briolat a7fe1b693b Eliminate race condition for subsonic library TotalSongCountUpdated 2013-01-20 23:24:14 +00:00
Alan Briolat d8bc3a02fa Fix Magnatune library not being sorted after refresh
Fixes issue #3435
2013-01-18 13:50:20 +01:00
Alan Briolat 2d68315c22 Fix Subsonic library not being sorted after refresh 2013-01-18 10:35:47 +00:00
Alan Briolat 38f271528a Improve subsonic library fetching
* Use task notification
* Update library in one chunk
* Use stored library data, add ability to manually reload
2013-01-17 22:13:57 +00:00
Alan Briolat e8ab6ed40a Subsonic: add LibraryFilterWidget and basic context menu 2013-01-17 21:01:54 +00:00
Alan Briolat 34553d8238 Read subsonic albumartist data 2013-01-17 20:18:26 +00:00
Alan Briolat f88e73737c Re-implement subsonic library scanner
Use the ID3-tag-oriented album listings in Subsonic >= 4.7 to
fetch all library data.
2013-01-14 23:36:23 +00:00
Alan Briolat 49d27b0bfe Load subsonic library recursively 2013-01-11 23:14:15 +00:00
Alan Briolat 349231793f Hacky basics of starting to load Subsonic library 2013-01-10 22:08:52 +00:00
Alan Briolat d05202265e Simplify Subsonic URL handling 2013-01-09 22:20:55 +00:00
Alan Briolat 38ce86529e Revert "Recursive UserPlaylist adding, subsonic uses UserPlaylist for folders"
This reverts commit a62b7752ad.

Using this mechanism for recursively loading trees doesn't work any
more, wasn't that great to start with, and the tree view will soon
be replaced with a library view.
2013-01-09 21:47:51 +00:00
Alan Briolat 90d2511051 Merge remote-tracking branch 'upstream/master' into subsonic
Conflicts:
	src/CMakeLists.txt
	src/internet/internetmodel.cpp
	src/ui/settingsdialog.cpp
2013-01-09 21:26:32 +00:00
John Maguire 020f08438f Support member function pointers in Closure.
Bonus: type-safe slots
2012-12-13 16:27:55 +01:00
John Maguire c57c47ae08 Make skydrive urls playable. 2012-12-13 14:44:59 +01:00
John Maguire 919e9215c4 Support indexing files from Skydrive. 2012-12-13 14:27:21 +01:00
John Maguire c4db401597 More or less working Skydrive authentication. 2012-12-12 18:34:15 +01:00
John Maguire 8eea98ba66 Factor out Google Drive specific code from OAuthenticator. 2012-12-12 17:41:52 +01:00
John Maguire 7d4f5764dc Support WMA in Ubuntu One. 2012-12-07 12:09:17 +01:00
John Maguire 62e3e4cb91 Support WMA in cloud services. 2012-12-07 12:07:43 +01:00
John Maguire 941aaca87c Refactor cloud tagging into base class. 2012-12-06 14:23:27 +01:00
John Maguire 951cac2ad6 Use changes API instead of search API in Google Drive. 2012-12-05 14:17:03 +00:00
John Maguire b41a2b5308 Revert "Try out C++11 strongly typed enums."
This reverts commit 4e74c7af2b.
2012-12-05 09:36:22 +00:00
John Maguire 4e74c7af2b Try out C++11 strongly typed enums. 2012-12-04 16:22:09 +00:00
John Maguire 18c7f3d5ed Support m4a and flac in dropbox. 2012-11-30 16:56:23 +01:00
John Maguire 24b4319504 Fix crash in Google Drive. 2012-11-30 16:43:43 +01:00
John Maguire d4a82a2d50 Read the encoded URL correctly for Dropbox files. 2012-11-30 16:12:31 +01:00
John Maguire 3972f939f7 Support deletion and reset from Dropbox's delta API. 2012-11-30 15:40:09 +01:00
John Maguire 4ba965115c Use Dropbox's delta API to be more efficient. 2012-11-30 15:33:03 +01:00
John Maguire e68a6f9eb8 Factor out oauth redirect & HTTP server logic. 2012-11-30 14:54:23 +01:00
John Maguire 847e4ce121 Fix name of Dropbox settings page. 2012-11-30 11:24:07 +01:00
John Maguire 821405cdd2 Actually start authorisation against Dropbox when login clicked. 2012-11-29 20:53:00 +01:00
John Maguire 8e91e42dcc Add dropbox files locally after tagging and make them playable. 2012-11-29 20:48:34 +01:00
John Maguire 3c9b3d99e6 Read tags from dropbox files. 2012-11-29 20:48:34 +01:00
John Maguire 47cc767daf Scan Dropbox for valid mime types. 2012-11-29 20:48:34 +01:00
John Maguire c66295c8d9 Sort out dropbox authentication & storing credentials; 2012-11-29 20:48:34 +01:00
John Maguire ea8655af83 Add Dropbox service and settings page. 2012-11-29 20:48:34 +01:00
John Maguire b955da5f28 Parse out the Dropbox user's name. 2012-11-29 20:48:34 +01:00
John Maguire 4d1b6fc25d Fetch Dropbox account information after authorisation. 2012-11-29 20:48:34 +01:00
John Maguire d3bd536be0 Working dropbox authentication with oauth redirect. 2012-11-29 20:48:34 +01:00
John Maguire 6bf0b4736a Start of dropbox support. Only whitelisted accounts work for now. 2012-11-29 20:48:25 +01:00
John Maguire c5ce522576 Scan all Ubuntu One volumes for music.
Fixes issue #3325
2012-11-29 16:07:05 +01:00
John Maguire e220b395ea More gracefully deal with files that failed to tag in Ubuntu One. 2012-11-29 14:18:30 +01:00
John Maguire 3eb66ea8c2 Remove another couple of C++11 range-based for loop. 2012-11-29 11:49:26 +01:00
John Maguire 644a12cea7 Remove/work around missing features in Qt < 4.7 2012-11-28 19:02:14 +01:00
John Maguire 6f05a7c45b nullptr not supported either in GCC 4.4 2012-11-28 18:18:50 +01:00
John Maguire d16615334a Add Ubuntu One playlist source icon. 2012-11-28 17:52:46 +01:00
John Maguire bd899b382d Range-based for loops not supported in GCC 4.4. 2012-11-28 17:34:54 +01:00
John Maguire e14334075c Support OGG, FLAC & AAC file types for Ubuntu One. 2012-11-28 17:32:21 +01:00
John Maguire ffc8d53cdb Add cmake option for Ubuntu One. 2012-11-28 16:51:19 +01:00
John Maguire 9c7a3ab105 Rename google drive tagging methods to more appropriate generic names. 2012-11-28 16:34:10 +01:00
John Maguire db7679abe6 Refactor GoogleDriveService into a CloudFileService. 2012-11-28 16:22:54 +01:00
John Maguire 334cd1052b Factor out some common functionality between Google Drive & Ubuntu One. 2012-11-28 16:13:10 +01:00
John Maguire afcc8f86f3 Add support for album covers to Ubuntu One. 2012-11-28 15:26:09 +01:00
John Maguire 4bbbf4dd9d Remove some debug 2012-11-28 15:10:49 +01:00
John Maguire 4aeeb45eaa Show Ubuntu One settings page if user is not signed in. 2012-11-28 15:09:59 +01:00
John Maguire 6486e621f1 Recursively fetch everything in the Ubuntu One volume. 2012-11-28 15:05:06 +01:00
John Maguire 823250c7c7 Add Ubuntu One icon in internet view. 2012-11-28 14:44:57 +01:00
John Maguire db586ca00e Read tags from Ubuntu One files and add to local database. 2012-11-28 14:43:03 +01:00
John Maguire 45b2c1dcf4 Copy Ubuntu One file name into song title for now. 2012-11-27 19:58:53 +01:00
John Maguire 1d20ac4eae Add settings page for Ubuntu One. 2012-11-27 19:56:47 +01:00
John Maguire 24ac9adbe5 Beginnings of playback from Ubuntu One file store. 2012-11-27 18:35:06 +01:00
John Maguire 81e68145cd Basic authentication for Ubuntu One. 2012-11-27 15:38:05 +01:00
John Maguire 8171192df5 Port Closure to variadic templates. 2012-11-22 17:19:04 +01:00
David Sansome 3cc0ba7969 Add ROCKRADIO.com. Fixes issue 3295 2012-11-18 11:18:51 +11:00
John Maguire 5825768f36 Stop logging geolocation. 2012-11-07 13:35:36 +01:00
John Maguire 371b63e159 Use access_token URL param instead of header hack for Google Drive. 2012-11-02 16:47:40 +01:00
David Sansome 885d98b5f0 Remove the SpecialPlaylistType class, it hasn't been used since Spotify and Grooveshark search results went into the sidebar tree. 2012-10-30 22:53:09 -07:00
John Maguire 587e9702d7 Never cache get file requests for Google Drive as the downloadUrl needs to be up to date. 2012-10-23 16:12:58 +02:00
Arnaud Bienner 60f22f5594 Revert revision 42fb7f9b42.
Was generated SIGABRT while exiting Clementine, when calling ServiceDeleted SLOT, because of an assert in moc_internetmodel.
Seems that the receiver (so the parent) of the created Closure object isn't the same at the beginning (InternetModel) and when the Closure::Invoked method is called (QObject).
Reverting this until I can figure out what is going wrong.
2012-10-15 23:03:01 +02:00
Arnaud Bienner 95ce26a556 Remove now obsolete connect in GS service 2012-10-15 22:06:16 +02:00
John Maguire bfc33967be Remove obsolete connect(). 2012-10-15 16:26:44 +02:00
Arnaud Bienner b9606d8a06 Ignore GS search's result if it's not the last one 2012-10-14 23:27:45 +02:00
John Maguire 8eb787a2eb Add missing include. 2012-10-12 14:54:47 +02:00
John Maguire aa7b22c103 Port last.fm service to closures. 2012-10-12 14:31:31 +02:00
John Maguire 42fb7f9b42 Port InternetModel to closures. 2012-10-12 14:18:47 +02:00
John Maguire ff86e07a4b Port IcecastService to closures. 2012-10-12 14:12:19 +02:00
John Maguire ce9d790833 Port DigitallyImported to closure. 2012-10-12 13:52:20 +02:00
John Maguire 16fe238d98 Port remaining calls in GroovesharkService to closures. 2012-10-12 13:43:55 +02:00
John Maguire 07abe82ef3 Add a cover manager for the Google Drive library. 2012-10-01 16:39:58 +02:00
John Maguire bb710ed2ef Remove some excessive debug messages for Grooveshark. 2012-09-27 13:51:16 +02:00
John Maguire 606bf71208 Disable automatic conversions to QUrl from strings. 2012-09-26 17:09:13 +02:00
Olaf Christ 21da34bf8c Soma.Fm: Improved playlist handling (copied from DI.fm handler) 2012-09-16 19:53:58 +02:00
John Maguire 27975c7a16 Separate out spotify blob downloader into a new optional component. 2012-09-03 17:38:07 +02:00
David Sansome 1e89fc5bf4 Remove a non-const reference 2012-08-26 14:22:38 +01:00
David Sansome 78d473512d Disable the google drive login button after starting the browser, re-enable it again when the user comes back to the Clementine window. 2012-08-24 21:33:33 +01:00
David Sansome 7ca7ecbe99 When the user opens the Google Drive section for the first time, open the settings dialog to prompt them to login instead of opening a browser to start OAuth straight away. Also fix a bug where the user's email address would be lost on subsequent authentications. 2012-08-24 21:26:10 +01:00
David Sansome 252f1e38d8 Add a context menu to google drive items 2012-08-24 19:33:05 +01:00
David Sansome 4ec6da0570 Track google drive login state better: show the user's email address in the settings dialog and let him sign out. Also remove the drive folder model which wasn't used yet because uploads aren't done. 2012-08-17 21:50:54 +01:00
John Maguire 0b97b8c74b Re-authenticate to Drive when token expires. 2012-08-17 14:44:28 +02:00
John Maguire b9278c6c8b Merge branch 'drive' 2012-08-13 16:04:38 -07:00
John Maguire 9ce8cf59d6 Make sure Google Drive is connected when converting URLs. 2012-08-10 11:46:26 -07:00
Arnaud Bienner 57d3dfc96e Add source icons for JazzRadio and SoundCloud 2012-08-09 22:36:39 +02:00
John Maguire a55cbc838f Merge branch 'master' into drive 2012-08-09 12:59:09 -07:00
Arnaud Bienner 1cb0869970 Clean GS pending requests when removing items, and don't try to modify non-existing items when receiving obsolete replies. Fix a crash when user tries to refresh GS items before every reply has been received 2012-08-09 00:51:00 +02:00
Arnaud Bienner e545b6d71b Merge branch 'soundcloud' 2012-08-09 00:17:05 +02:00
Arnaud Bienner 26908ed718 Add simple context menu to soundcloud items 2012-08-09 00:16:16 +02:00
Arnaud Bienner f13e7d1e69 Ooops... actually search for the good text in soundcloud global search 2012-08-08 23:52:59 +02:00
Arnaud Bienner 9b8f5892af Set soundcloud tracks' artist field with username value.
Sounds better than "Unknown", but not perfect...
2012-08-08 23:50:20 +02:00
Arnaud Bienner 2bf84f77d9 Add soundcloud in the global search 2012-08-08 23:23:49 +02:00
David Sansome 9a9910a464 Add support for JAZZRADIO.com
Fixes issue 3099
2012-08-08 20:32:11 +01:00
John Maguire c5b74c832e Add tasks for indexing Google Drive songs. 2012-08-06 14:00:54 +02:00
John Maguire a3f9947444 Merge branch 'master' into drive 2012-08-06 13:26:11 +02:00
Arnaud Bienner e69c932577 Update issue 2540
Add basic SoundCloud support.
However, only search in internet tab + listen is done for now.
We should at least add soundcloud in global search.
2012-08-04 15:21:44 +02:00
Arnaud Bienner c8b145c8b6 Remove useless code in groovesharkservice 2012-08-04 00:38:18 +02:00
John Maguire 94878b4bd2 Slightly hacky support for AAC on Google Drive. 2012-07-31 17:57:17 +02:00
John Maguire fc61f0627f Filter out trashed/hidden folders on the server. 2012-07-31 15:25:49 +02:00
John Maguire e06ae8a282 Support reading OGG & FLAC files from Google Drive. 2012-07-31 15:18:14 +02:00
Arnaud Bienner e6d76a72a5 Add "append to/replace/... playlist" and "Configure" actions to Spotify items. 2012-07-29 20:12:16 +02:00
David Sansome fd1d70c644 Add a directory model for selecting a default upload directory on Google Drive. 2012-07-29 15:06:23 +01:00
Arnaud Bienner b08172138a Add a new PlayBehaviour (MultiplesItems) for loading playlits' songs by drag'n'drop for Internet services.
Use it for Spotify and Grooveshark.
2012-07-29 01:35:05 +02:00
David Sansome 9653a45f66 Read Google Drive metadata in the tagreader worker process 2012-07-28 19:35:12 +01:00
David Sansome 165cec1e86 Move some of the Google Drive bits out into a separate client class. 2012-07-28 17:18:03 +01:00
Alan Briolat 92c15f3a5a Merge remote-tracking branch 'upstream/master'
Fixed SubsonicService for new InternetService signature.

Conflicts:
	data/data.qrc
	src/ui/settingsdialog.cpp
	src/ui/settingsdialog.h
2012-07-28 14:10:42 +01:00
Alan Briolat a62b7752ad Recursive UserPlaylist adding, subsonic uses UserPlaylist for folders 2012-07-28 13:13:48 +01:00
David Sansome 51631169fa Show a nicer success page when oauth is complete. 2012-07-27 18:59:03 +01:00
John Maguire f48383c73e Index Google Drive MP3s and write to local database. 2012-07-27 16:04:12 +02:00
David Sansome 73062bce3d Make Google Drive support optional and add a cmake option for it 2012-07-26 21:23:31 +01:00
John Maguire 1031482024 Refresh oauth token when possible to avoid reauthenticating with Drive
all the time.
2012-07-26 16:55:59 +02:00
John Maguire ecf7998f1c Add URL handler for googledrive URLs and fetch a new temporary
download URL for every play.
2012-07-26 16:35:57 +02:00
John Maguire 4a629e636b Cache taglib Drive requests in a google::sparsetable.
Requires sparsehash.
2012-07-26 16:15:19 +02:00
John Maguire bda3d0e033 Hacky support for reading tags from MP3s on Google Drive.
Requires TagLib 1.8
2012-07-26 11:36:07 +02:00
John Maguire 0c861da7a9 Almost working tagging from stream. 2012-07-25 17:57:50 +02:00
John Maguire 517252ccc1 Merge branch 'master' into drive
Conflicts:
	data/data.qrc
2012-07-25 15:36:57 +02:00
Arnaud Bienner 13daaf7106 Don't show the search box for GS and Spotify if user isn't logged in 2012-07-21 20:15:36 +02:00
Arnaud Bienner 63c42503c6 Fix non-ending task in GS which may happen if the user log out (or is logged out because session became invalid) 2012-07-21 19:39:37 +02:00
Arnaud Bienner 07c7bd9bb2 Sort GS MyMusic songs by names, like other playlists 2012-07-21 18:47:18 +02:00
Arnaud Bienner 9a392692dd Add missing const 2012-07-21 18:31:08 +02:00
Arnaud Bienner 77c6199dd9 Add GS 'My Music' support.
Fixes issue 2609
Retrieving and removing songs works well :)
Adding songs doesn't work :(
2012-07-21 18:09:16 +02:00
Arnaud Bienner 16fde37bac Remove Grooveshark and Spotify search playlist: we don't use them anymore since we can search on these services through the Internet tab 2012-07-16 00:27:43 +02:00
John Maguire dbf9970c76 Add suggestions from Spotify starred & top 100. 2012-07-12 16:35:09 +02:00
John Maguire 145f1efaf5 Basic support for Google Drive & OAuth. 2012-07-12 14:09:20 +02:00