Commit Graph

598 Commits

Author SHA1 Message Date
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
John Maguire 6b87318710 Revert "Typedef QSearchField to old LineEdit on non Mac, and make it compatible with QSearchField"
This reverts commit 59517f5b4e.

Update issue 3047
Status: Accepted
Breaks the mac build. We should do a proper fix for this.
2012-07-12 14:04:29 +02:00
Arnaud Bienner 59517f5b4e Typedef QSearchField to old LineEdit on non Mac, and make it compatible with QSearchField
Fixes issue 3047. (for now)
2012-07-10 00:44:05 +02:00
Arnaud Bienner 124d4e6a59 Always display "did you mean" widget in top of all windows.
Also, update its width to the text it should displayed
2012-07-01 23:55:54 +02:00
Arnaud Bienner 70429217c6 Search on Spotify on the left/Internet tab directly, instead of Spotify magic playlist (like for Grooveshark)
- Next step: fix the "did you mean" widget which is visible to user when displayed
2012-06-28 23:57:51 +02:00
David Sansome abe8d10b9c Add a compatibility header so liblastfm and liblastfm1 can both be used with the same source. 2012-06-28 18:40:20 +01:00
Harald Sitter 769baa5c16 Use liblastfm1 2012-06-28 18:40:20 +01:00
John Maguire 4506c71ac8 Fix missing placeholder text in internet search widget. 2012-06-28 14:32:39 +02:00
John Maguire 35a7c7284b Fix placeholder text in library & icecast filters. 2012-06-28 11:40:09 +02:00
John Maguire c415db1524 Port searchboxwidget to qocoa. 2012-06-28 11:39:55 +02:00
John Maguire 53998ee976 Use qocoa for icecast filter. 2012-06-28 11:39:49 +02:00
Arnaud Bienner c7aca6335d Factorize some code for creating song item in Grooveshark and Spotify 2012-06-27 21:19:30 +02:00
Arnaud Bienner 3c5e91ce84 Remove action for opening GS search playlist 2012-06-27 21:19:04 +02:00
Arnaud Bienner a57e2be7ec Don't sort GS popular songs by name as they are already sorted by popularity 2012-06-27 18:44:17 +02:00
Arnaud Bienner 5fc0e1e354 Correct define guard's name 2012-06-27 02:09:19 +02:00
Arnaud Bienner 91930d470e Correct bad indentation 2012-06-27 02:04:05 +02:00
Arnaud Bienner b49c3db6e0 Sort retrieved GS songs only in some cases.
Indeed, even it makes sense sometimes (e.g. for playlists) it doesn't make sense at all for search results...
Make the sorting function part of Song.
2012-06-27 01:55:51 +02:00
Arnaud Bienner ac936c5374 Search on Grooveshark on the left/Internet tab directly, instead of Grooveshark magic playlist.
Next steps:
- add GS albums search on the left tab
- do the same for Spotify if it's convincing enough
- clean-up magic search playlists
2012-06-27 01:21:57 +02:00
David Sansome 1c338455c3 Add missing copyright headers 2012-06-23 11:31:48 +01:00
John Maguire 0d5d1dbad1 Filter out songkick concerts that are too far away. 2012-06-20 14:13:15 +02:00
John Maguire 86cced782e Add geolocator. 2012-06-20 14:13:15 +02:00
David Sansome 45104adca9 Change the Jamendo logic a bit:
Instead of prompting the user to download the catalogue when the library
backend is initialised (which is now always), only do it when the service
node in the InternetView is expanded, or the global search provider is enabled.

Fixes issue 3009
2012-06-19 21:07:58 +01:00
David Sansome b427fc8a24 Merge branch 'globalsearch-tree'
Fixes issue 2238
Fixes issue 2241
Fixes issue 2368
Fixes issue 2375
Fixes issue 2843
Fixes issue 2872
Fixes issue 2938
2012-06-16 21:24:29 +01:00
John Maguire afd42118f1 Support toplists in the ui. 2012-06-12 15:53:23 +02:00
David Sansome 7b4ff1d2ee Update the Search settings page, use the configured provider order 2012-06-11 16:26:33 +01:00
John Maguire 9dd4f31795 Use libspotify 12.1.45.
Fixes issue #2972
2012-06-07 12:35:24 +02:00
David Sansome 150d5a124a Fix a crash and a never-ending task when expanding the Grooveshark item for the first time with an invalid or expired session. 2012-06-02 13:21:56 +01:00
Arnaud Bienner d2f5a7f811 Use QString::localeAwareCompare instead of compare when sorting GS songs 2012-05-17 01:56:11 +02:00
Arnaud Bienner 2a661ec017 Fix Linux CLang Build 2012-05-17 01:52:05 +02:00
Arnaud Bienner cd7d967271 Update issue 2398
Also sort GS songs by names
2012-05-16 01:37:06 +02:00
Arnaud Bienner aaef0de224 Sort GS playlist by name. Fixes issue 2398. 2012-05-16 01:30:18 +02:00
Kacper "mattrick" Banasik f606ae9ba8 Add an option to prefer AlbumArtist tag over Artist when scrobbling to Last.fm. Fixes issue 2901 2012-05-13 16:05:17 +01:00
David Sansome c3fe642779 Use the new DI.fm/SKY.fm authentication API. Fixes issue 2909 2012-05-13 15:44:11 +01:00
Arnaud Bienner ed11075930 Do the same for favorites 2012-05-11 21:46:07 +02:00
Arnaud Bienner 3356fd9b58 Add the ability to remove mulitple GS songs at once. Fixes issue 2933 2012-05-11 21:28:28 +02:00
Arnaud Bienner e0d61eb66c Check that popular_month_, popular_today_ and stations_ still exist (i.e. aren't NULL) when we receive replies.
Indeed, we do not need to be logged in to get results for popular songs and get stations tags. But if the user has been automatically logged out (e.g. session_id not valid anymore) these items have been deleted.
2012-04-04 19:21:18 +02:00
David Sansome 1c80cfbadb Use libspotify 11.1.56 2012-03-27 22:01:37 +01:00
Arnaud Bienner f98616b60b Correct typo 2012-03-27 00:46:06 +02:00
Arnaud Bienner bee99b7554 Ability to get a URL to share GS playlists 2012-03-27 00:43:47 +02:00
Arnaud Bienner ce75c2827a Add the ability to get a GS URL to share a song from Internet view 2012-03-26 23:57:26 +02:00
Arnaud Bienner 3d350b35e9 Add an icon to Grooveshark song URL message box 2012-03-26 23:32:42 +02:00
John Maguire ab0ae4414b Alphabetically sort SomaFM streams.
Fixes issue #2807
2012-03-15 15:42:22 +01:00
Arnaud Bienner 57e41af461 Use large covers for Grooveshark songs.
As now, there is possiblity to set cover as playlist background, it's nicer, with larger images.
2012-03-13 22:53:55 +01:00
David Sansome 204f7acbfa Merge branch 'podcasts'. Fixes issue 44 2012-03-12 19:40:31 +00:00
David Sansome f16fc8867e Allow podcasts to be added through the normal SongLoader mechanism (dragging to the playlist, on the commandline, "Add Stream", etc.) 2012-03-11 17:57:15 +00:00
David Sansome 75a897e92d Don't require each InternetService to keep track of its own current index - do it in the model instead 2012-03-11 14:44:43 +00:00
David Sansome d538b71809 Add buttons and menu items to open the Podcast settings page. Also route these requests through Application rather than InternetModel 2012-03-10 22:39:24 +00:00
David Sansome 792a2e239d Better (some) UI feedback of downloading podcasts. Also fix a bug parsing the timestamps you see in some RSS feeds 2012-03-10 21:06:16 +00:00
Arnaud Bienner 3338174a1f Do not set cover for Grooveshark songs if we don't have one.
This wrongly gives the impression that these songs have a cover
2012-03-08 23:44:35 +01:00
Arnaud Bienner c2a4ca2cf8 Fix some missing reply->deleteLater() in grooveshark service 2012-03-08 21:26:27 +01:00
David Sansome c91acdb3f1 Add an Add Podcast dialog 2012-03-06 18:39:34 +00:00
Arnaud Bienner 0969432820 emit GS albums songs results as long as we get them, instead of waiting to have all the results available. 2012-03-05 00:54:24 +01:00
Arnaud Bienner 0c1eca5ac1 Extract few other metadata info from GS results when initialising song.
However, currently these fields are filled only when calling getAlbumSongs(), unfortunately.
2012-02-28 23:22:09 +01:00
Arnaud Bienner 747e0f510f When (global) searching GS albums, retrieve albums' songs at the same time (instead of album load time).
Albums search is slower, but we can display songs in search results, which is IMHO really nicer.
2012-02-26 16:51:11 +01:00
David Sansome ab5ccf69da Refactoring: remove BackgroundThread 2012-02-26 15:05:46 +00:00
David Sansome bacef04405 Refactoring: remove a couple of the AlbumCoverLoader instances and instead use a shared CurrentArtLoader. 2012-02-26 14:40:51 +00:00
David Sansome 48f15c9fc7 Refactoring: instead of passing individual pointers to useful core classes (like TaskManager or LibraryBackend) to each class that uses them, pass one singleton-like Application instance everywhere. 2012-02-26 14:40:51 +00:00
Arnaud Bienner 1f93c26d97 Correct another QStringBuilder/QString conversion 2012-02-20 20:38:50 +01:00
Arnaud Bienner 089586ad07 Activate fast QString concatenation.
As this is not source compatible because we sometimes assumed (now wrongly) that '+' operation returns QString object (it now returns QStringBuilder object actually), some minor other corrections were needed.
2012-02-19 14:44:33 +01:00
Alan Briolat 532185c15e Subsonic: Add folder icons for non-track tree items 2012-02-01 21:32:57 +00:00
Alan Briolat 81b7b9e898 Invalidate Subsonic browser tree when login state changes
Also, opening preferences no longer causes an implicit login state change.
2012-02-01 21:32:57 +00:00
Alan Briolat 33a9adffa6 Handle "outdated client API" and "unlicensed" errors, improved error messages 2012-02-01 21:32:57 +00:00
Danilo Bargen 551551b451 When API version doesn't match, show error message (fixes #2) 2012-02-01 21:32:56 +00:00
Alan Briolat 6eb1e853a3 Subsonic: using a "more correct" way of handling self-signed SSL certificates 2012-02-01 21:32:56 +00:00
Alan Briolat 705a547ff2 Subsonic: Even more error log output 2012-02-01 21:32:56 +00:00
Alan Briolat 024af25b00 Subsonic: Added log output to diagnose "could not connect to server" problems 2012-02-01 21:32:56 +00:00
Alan Briolat ea08c583c4 Subsonic: Added more song metadata, and feedback when lazy-loading 2012-02-01 21:32:00 +00:00
Alan Briolat 577d13038a Created SubsonicUrlHandler 2012-02-01 21:32:00 +00:00
Alan Briolat eafb351126 Subsonic: enabled playing tracks from subsonic 2012-02-01 21:32:00 +00:00
Alan Briolat 96fc17bd46 Subsonic: ability to explore full subsonic library via tree view
Removed multiple top-level directory support
Bumped client API version 1.6.0 -> 1.7.0 (depends on server version 4.6)
2012-02-01 21:32:00 +00:00
Alan Briolat 89ac5a41f4 Subsonic: lazy-load top-level "music folders" 2012-02-01 21:32:00 +00:00
Alan Briolat 76b0ffb1f2 Hooked up LoginStateWidget for Subsonic settings 2012-02-01 21:32:00 +00:00
Alan Briolat ebc97e03c5 SubsonicService now successfully pings a Subsonic server and interprets the response 2012-02-01 21:32:00 +00:00
Alan Briolat e24c87861f Corrected subsonic-related artwork 2012-02-01 21:32:00 +00:00
Alan Briolat 8110cdf241 Minimal SubsonicService and SubsonicSettingsPage to show up in UI 2012-02-01 21:32:00 +00:00
David Sansome b4e1cef2c2 Restore last.fm artist and tag radio names properly. Fixes issue 2607 2012-01-29 16:32:58 +00:00
Arnaud Bienner 396f375e8d Correct a bug in Grooveshark that make the subscribed playlists to be added in playlists_.
As a result, subscribed playlists are shown in 'Add to Grooveshark' action (when right clicking a GS song), whereas user cannot actually change this kind of playlist
2012-01-22 17:28:58 +01:00
David Sansome 626ce20ec0 Merge branch 'external-tagreader' 2012-01-08 18:38:48 +00:00
David Sansome ff92815ef0 Display any SSL or HTTP errors that occur when creating a grooveshark session 2012-01-08 17:46:50 +00:00
David Sansome bbf99fdd0b Change Spotify to use the new MessageHandler, remove SpotifyMessageHandler 2012-01-08 15:10:11 +00:00
David Sansome 67c6dead5a Rename SpotifyMessage to Message 2012-01-07 23:31:43 +00:00
David Sansome 68a379ef26 Use pb::spotify instead of spotify_pb for the protobuf namespace 2012-01-07 23:26:27 +00:00
David Sansome 4618651cf4 Merge branch 'master' into external-tagreader 2012-01-07 22:52:18 +00:00
David Sansome e9c0b4bd69 Musicbrainz tagging improvements:
* Fix a bug where the song title would be used for the album field
  * Get the album's year as well
  * Include all releases for a song in the results list
  * Remove duplicate albums
  * Sort results
2012-01-07 21:51:02 +00:00
David Sansome 9be641ee87 The external tagreader mostly works now:
* Make TagReaderClient a singleton until it's easier to pass dependencies around
 * Add a WaitForSignal() that uses a local event loop to wait for a signal to be emitted
 * Add a WaitForFinished() to _MessageReplyBase that blocks using a semaphore
 * Add blocking versions of all TagReaderClient methods
 * Use the TagReaderClient everywhere that Song::InitFromFile and friends were used before
2012-01-07 00:26:07 +00:00
John Maguire 6ac685c4b8 Use correct icon for DI/SkyFM. 2012-01-04 12:39:22 +00:00
John Maguire bcf9475f2b Add a source column to the playlist view with appropriate icons. 2012-01-04 11:56:09 +00:00
Arnaud Bienner 61aaefd65c Magnatune's URL are already encoded: we shouldn't use QUrl constructor directly because some characters (like ') will be encoded twice (%27 then %2527). Fixes issue 2510 2011-12-26 18:15:35 +01:00
Arnaud Bienner bc1e5ec11c Add a refresh action to Grooveshark 2011-12-22 20:49:44 +01:00
Arnaud Bienner d2f531a65b Prefill input dialog with old name when renaming GS playlist 2011-12-22 20:25:45 +01:00
John Maguire ad9525d7da Fix grooveshark string and update translations file. 2011-12-13 17:27:47 +01:00
Arnaud Bienner e2dac6785f Remove useless network_ attribute in some settings pages. Thanks Alan 2011-12-06 23:39:26 +01:00
Arnaud Bienner b364d3fa84 Create GS playlists items when retrieving playlists instead of creating them when retrieving playlists' songs 2011-12-01 23:46:27 +01:00
Arnaud Bienner 74ea844811 Make 'ExtractSongs' not return valid song if 'result' is invalid/empty 2011-12-01 21:46:16 +01:00
Arnaud Bienner 5e80221e18 Ignore invalid urls generated when calling Autoplay 2011-11-30 00:07:10 +01:00
Arnaud Bienner 3f2faf818a Add Grooveshark autoplay radio 2011-11-29 23:52:19 +01:00
David Sansome c1aaed91be Fix the logic for populating somafm and di.fm lists the first time they are expanded 2011-11-29 14:22:02 +00:00
Arnaud Bienner 6f4fab54a2 Remove useless constructor 2011-11-29 14:15:55 +01:00
Arnaud Bienner 1c99c8cc3b Commit missing GS radio files 2011-11-29 14:13:41 +01:00
Arnaud Bienner 1f5ac97934 Add Grooveshark radios 2011-11-29 13:57:35 +01:00
David Sansome 8d5ef62256 Do spotify image requests with string IDs instead of spotify://image/ urls. For some reason this seems to fix occasional crashes when image results arrive. Fixes issue 2411. 2011-11-29 10:21:40 +00:00
Arnaud Bienner ff7cd0334e Ability to rename GS playlists 2011-11-28 21:59:25 +01:00
Arnaud Bienner ac285eeeae Add missing copyright headers 2011-11-28 20:07:18 +01:00
David Sansome 05460f9975 Mark spotify streams as not seekable 2011-11-28 18:45:12 +00:00
David Sansome 22e6a649b7 Remove the custom gstspotifytcpsrc and use tcpserversrc ! gdpdepay to receive data. Use a gstreamer pipeline on the other end as well to send data. 2011-11-28 18:45:12 +00:00
David Sansome 4dc4aa33ac Make the enabled/disabled state of a global search provider separate from its logged in state - means that now Grooveshark and Spotify providers will be enabled as soon as you login 2011-11-28 14:18:20 +00:00
David Sansome b873209d39 Remove the <xiphcomment.h> include from song.h so that windows headers don't infect everything else. Also move other bits of song.h into song.cpp, and reduce the number of includes in song.h. 2011-11-28 13:56:55 +00:00
David Sansome 89e8634928 Treat relogin failed messages from spotify differently, and only show the error dialog once. 2011-11-28 12:32:45 +00:00
Arnaud Bienner a77f4b14d5 When creating a new GS playlist, insert the newly created playlist just above the subscribed playlists, instead of inserting it at the end (after the subscribed playlists) 2011-11-28 00:22:19 +01:00
David Sansome 42bf358b81 Use MP3 URLs for Jamendo instead of Ogg since they seem to keep breaking the Ogg URLs. Fixes issue 2417 2011-11-27 21:28:31 +00:00
David Sansome 456011d100 Don't show the "Retrieving Grooveshark playlists" task forever if the user has no playlists. 2011-11-27 19:02:14 +00:00
David Sansome d0f09d83a1 When a login fails, focus and select all the text in the password field so the user can start typing a new password straight away. 2011-11-27 17:54:36 +00:00
David Sansome add91d32de Fix the tab order in the magnatune settings page so password comes after username 2011-11-27 17:53:54 +00:00
David Sansome 1e0a9e6d94 Fix a bug in the last.fm settings page where logging in with invalid credentials wouldn't hide the busy spinner and re-enable the credential fields. 2011-11-27 17:53:04 +00:00
David Sansome 62c3cb77cd Add settings for spotify bitrate and volume normalisation 2011-11-27 17:29:33 +00:00
Arnaud Bienner 1e02bbe485 Add GS subscribed playlits 2011-11-25 01:00:58 +01:00
Arnaud Bienner 7a188787de Add dividers to Grooveshark tree, to visualise better each type of item 2011-11-24 23:42:22 +01:00
Arnaud Bienner 73a823d190 Explicity mark GS user's playlists as 'UserPlaylist', and display delete action only for this kind of playlist 2011-11-24 20:18:42 +01:00
John Maguire 34111ce373 Consistently use lower case k for kbps. 2011-11-24 16:52:03 +01:00
John Maguire e32bb5cc89 Don't store the spotify password and instead use sp_session_relogin(). 2011-11-24 12:17:19 +01:00
Arnaud Bienner a7cbd28fb9 Don't do a search query if text query is empty: clear special playlist directly 2011-11-24 01:26:29 +01:00
Arnaud Bienner 47be001b8a Add GS homepage action before configure action, like in other internet services menus 2011-11-24 01:13:38 +01:00
Arnaud Bienner ceab3bd6f0 Add Grooveshark songs as internet items, when adding them from global search, so user can use all GS custom actions 2011-11-24 00:30:11 +01:00
Arnaud Bienner c234afb776 Add open in browser action to Grooveshark 2011-11-23 23:56:02 +01:00
Arnaud Bienner 4b8e9b2d82 Oups: missed one 2011-11-23 23:53:55 +01:00
Arnaud Bienner 4b1de1a055 Always use 'Open %1 in browser' string; so just one string to translate: less work, and avoid discrepancies across translations 2011-11-23 23:42:46 +01:00
Arnaud Bienner cc20e6b6ae Use task manager on most GS actions 2011-11-23 01:07:40 +01:00
Arnaud Bienner 4dec500c21 Add GS popular playlists 2011-11-19 18:56:29 +01:00
Arnaud Bienner f8ff785932 Create GS's favorites item at beggining 2011-11-19 17:45:38 +01:00
Arnaud Bienner 74ddfaa3fc Always add session_id to GS queries, except when it is not set (in case of startSession) 2011-11-16 00:34:36 +01:00
David Sansome 97cc6bb1b5 Print a warning if symlink() fails 2011-11-12 19:32:44 +00:00
David Sansome 5f0afa397c Create symlinks for libspotify .so files 2011-11-12 18:45:18 +00:00
David Sansome df8bafe161 Only update di.fm, sky.fm and somafm tree items if they've already been expanded by the user. Fixes duplicate radio streams appearing on first run if the user uses global search before looking in the Internet tab. 2011-11-12 18:18:40 +00:00
Arnaud Bienner 48db13b353 Make Playlist's InformOfCurrentSongChange public and use it when updating item instead of using UpdateItems (which will create a new item) 2011-11-11 02:42:48 +01:00
Arnaud Bienner 5479239d81 Add an action to get GS songs' URLs to share 2011-11-10 00:56:27 +01:00
HYPNOTOAD bfea7b8945 Change Grooveshark secret key 2011-11-09 20:44:09 +01:00
David Sansome 5dcd1d4890 Initialise the item lists for simple search providers on startup so they can be used to populate the global search suggestions. 2011-11-08 18:35:33 +00:00
Arnaud Bienner ed8633b8a9 Make GS user favorites a special kind of user playlist (enable drag'n'drop for favorites) 2011-11-07 19:37:29 +01:00
Arnaud Bienner 01e7a532bf Check GS errors to logout user if its session_id is obsolete 2011-11-06 18:40:06 +01:00
David Sansome c6e252326f Make the Configure... button work for di.fm/sky.fm in the search settings page 2011-11-06 16:41:00 +00:00
Arnaud Bienner f79d38210c Merge branch 'master' of https://code.google.com/p/clementine-player
Conflicts:
	src/translations/translations.pot
2011-11-06 16:23:50 +01:00
Arnaud Bienner 89680a02f0 Add the ability to have custom actions for PlaylistItems, and InternetPlaylistItems (through services). Add 'add to playlists' actions for Grooveshark 2011-11-06 16:12:44 +01:00
David Sansome e3b7afbdf2 Add "Your radio streams" global search provider 2011-11-06 15:00:50 +00:00
David Sansome dac6c1bf09 Add a SomaFM search provider 2011-11-06 00:02:32 +00:00
David Sansome 931efb1f70 Add an icecast search provider, refactor a couple of other bits 2011-11-06 00:02:32 +00:00
David Sansome 8c69094931 Add a generic class for the "cached list of stuff" pattern used by last.fm and di.fm/sky.fm for keeping friend lists or stream lists around and refreshing them after a certain length of time 2011-11-06 00:02:32 +00:00
David Sansome 1f0c2333d0 Show the di.fm/sky.fm "Expires on" date on a separate line 2011-11-05 21:46:34 +00:00
David Sansome b37f679c36 Implement the options to hide/show the global search box, and to hide/show all other search boxes. 2011-11-05 19:09:37 +00:00
David Sansome fafee5af7c Download a new libspotify version and verify its signature. 2011-11-05 17:55:34 +00:00
David Sansome 37166ca19d Give the last.fm global search provider a config dialog 2011-11-05 17:11:02 +00:00
David Sansome 6446ef8b9e Use PNG spotify icons instead of SVG 2011-11-05 16:08:56 +00:00
David Sansome fccd0a5458 Don't make QCA a requirement if we're bundling the spotify blob (since we won't need to download anything at runtime) 2011-11-05 15:44:56 +00:00
David Sansome 568f78d874 There's no need to write each spotify blob file out to a temporary directory first. 2011-11-05 15:44:56 +00:00
Arnaud Bienner e7307aa6d4 Merge branch 'master' of https://code.google.com/p/clementine-player 2011-11-05 02:42:24 +01:00
Arnaud Bienner 4f5265f820 Don't try to insert a row which already exists 2011-11-05 02:42:17 +01:00
Arnaud Bienner 034db5d18b Create and delete Grooveshark playlists 2011-11-05 02:34:49 +01:00
David Sansome c12b3ab399 Verify the signatures of spotify blob files downloaded at runtime. Should protect against MITM attacks, and compromises of our server. 2011-11-05 01:12:28 +00:00
Arnaud Bienner 33abc40bf5 Use the same string for special search playlists, to be consistent (just one same string to translate) 2011-11-05 01:17:25 +01:00
David Sansome a2327c4eb7 Remove some redundant parameters from DigitallyImportedServiceBase and move the subclasses (which are now empty) into the same file. 2011-11-04 22:54:27 +00:00
David Sansome 2b6beb7417 Load the list of sky.fm/di.fm streams using the undocumented API, getting artwork for each stream as well. 2011-11-04 22:31:19 +00:00
John Maguire a9d6535bcc Use a scoped_ptr 2011-11-03 15:07:36 +01:00
John Maguire 0133bccf81 Fix typo in stream format string. 2011-11-03 14:54:43 +01:00
John Maguire 940208a868 Fix showing icons for Sky.fm and DI. 2011-11-03 11:51:52 +01:00
David Sansome 63140f83cf Use an undocumented sky.fm/di.fm api to handle premium account logins, allowing us to remove dodgy code to scrape login information for each service individually 2011-11-02 23:55:45 +00:00
Arnaud Bienner 8e314ef4d8 Ability to remove songs from Grooveshark's playlists (including favorites) 2011-11-02 23:41:58 +01:00
Arnaud Bienner 860d355f00 Ability to add a Grooveshark song to Grooveshark user's favorites 2011-11-02 00:02:49 +01:00
John Maguire f241ebf7b9 Sort grooveshark results better in global search and show fewer of them. 2011-11-01 13:00:27 +01:00
John Maguire 2e2f4e570c Make drag & drop work for Spotify user playlists. 2011-11-01 11:52:22 +01:00
Arnaud Bienner 1df827cedb Pick the last.fm love icon for Grooveshark favorites songs (it's more like the one visible on Grooveshark website) 2011-10-31 00:58:18 +01:00
Arnaud Bienner 85ea3fe37f Add songs to Grooveshark playlists by drag and drop 2011-10-30 23:59:43 +01:00
David Sansome a8dfa31818 Make the logout button on the spotify settings page actually work 2011-10-30 18:52:54 +00:00
Arnaud Bienner c8a4852843 Add user's Grooveshark favorites songs 2011-10-29 20:42:25 +02:00
Arnaud Bienner b3bf374b6e Disable Grooveshark and Spotify in global search by default, because user needs a premium account to use these services 2011-10-20 17:21:24 +02:00
Arnaud Bienner f0c8703dbc When toggling provider button, check if provider can be used by checking if user is logged-in, it this is necessary to make the provider work 2011-10-20 15:03:47 +02:00
Arnaud Bienner 50b4f2ee93 Ignore item only if explicitly marked as playlist. Fixes issue 2297 2011-10-15 18:17:00 +02:00
Arnaud Bienner 03e30d19c4 Make Grooveshark playlists drag'n'drop possible 2011-10-14 00:10:18 +02:00
Arnaud Bienner b3b890b9cf Allow extended selection in Internet view 2011-10-13 23:57:57 +02:00
John Maguire a6e8797b9d Add some syntactic sugar to closures. 2011-10-06 13:11:18 +02:00
Arnaud Bienner bac6095491 Rename GrooveShark to Grooveshark everywhere, as it is actually named like this 2011-10-05 21:59:15 +02:00
Arnaud Bienner ea55ac67eb Actually check if user has a Grooveshark account 2011-10-05 21:02:32 +02:00
John Maguire a0314d34fb Support albums from GrooveShark in global search.
Quality is pretty bad though.
2011-10-05 14:08:33 +02:00
John Maguire fc34a244c6 Tidy up closure implementation. 2011-10-05 11:36:08 +02:00
John Maguire 20a967a19f Basic working closure implementation. 2011-10-04 18:26:40 +02:00
John Maguire ac5511518f Remove redirect craziness from Magnatune downloading. 2011-10-03 13:59:57 +02:00
Arnaud Bienner d93f2c64cb Remove GrooveShark items when user logout. Also, give the ability to quickly access to GrooveShark config by doubleclicking GrooveShark root item 2011-10-02 14:47:03 +02:00
Arnaud Bienner 3c23e44721 Merge branch 'master' of https://code.google.com/p/clementine-player 2011-10-02 12:06:11 +02:00
Arnaud Bienner 4143823870 Get GrooveShark songs' length (give the ability to seek through stream). markStream and markSongComplete, as resquested by GrooveShark 2011-10-02 12:05:56 +02:00
John Maguire bbd0cef2af Consistently name GrooveShark. 2011-09-30 16:02:57 +02:00
John Maguire dd017e99ee Basic global searching in Grooveshark. 2011-09-30 15:35:09 +02:00
John Maguire 2e23eae3aa Fetch medium sized covers from Grooveshark. 2011-09-29 11:31:27 +02:00
Arnaud Bienner f142279a0a Covers for GrooveShark songs 2011-09-28 21:42:39 +02:00
David Sansome c05a2ee182 Add a spotify gstreamer source element instead of hacking about with gsttcpserversrc. Implement seeking on spotify tracks. 2011-09-25 19:24:44 +01:00
David Sansome 892f5f1df1 Add search providers for di.fm and sky.fm 2011-09-24 22:49:04 +01:00
David Sansome e7ab192361 Cache di.fm and sky.fm streams for 2 weeks 2011-09-24 22:11:50 +01:00
David Sansome cc20d90a7a Last.fm global search provider 2011-09-24 17:01:18 +01:00
David Sansome d83736acc0 Initialise a GlobalSearch in main and pass it around, so providers can register themselves 2011-09-24 14:44:23 +01:00
David Sansome 62165a6feb Remember the user's list of last.fm friends, refresh it every day. 2011-09-24 13:49:20 +01:00
Arnaud Bienner 8e6608a29f Adding GrooveShark playlists 2011-09-24 12:06:31 +02:00
Arnaud Bienner 42d228be80 Create search item only if we're connected to GrooveShark 2011-09-22 19:54:59 +02:00
Arnaud Bienner 44773f0ff0 Add extra entries to GrooveShark menu 2011-09-20 19:29:16 +02:00
Arnaud Bienner 2bfe5422f2 Wait a little bit before sending search requests. Also, ignore all old replies 2011-09-20 19:12:06 +02:00
John Maguire 19db619f6a Fix another typo in a comment. 2011-09-20 10:09:32 +02:00
Arnaud Bienner 7cee645539 Oops: forgot to commit few files :( 2011-09-20 00:54:22 +02:00
Arnaud Bienner 5dfa4f4838 Add the ability to play streaming songs from GrooveShark 2011-09-20 00:26:24 +02:00
Arnaud Bienner bc3f56ae0e Add settings page + login method for GrooveShark 2011-09-13 22:32:10 +02:00
John Maguire 09c288a506 Fix compile error in grooveshark service. 2011-09-02 12:52:05 +01:00
Arnaud Bienner 646588da2c Start to work on Grooveshark: currently, we can only search for songs (and this has to be improve); lot of work remains to be done... 2011-09-02 00:28:11 +02:00
David Sansome 5aca9b7984 Support for playing tracks from Spotify 2011-08-29 03:32:50 +01:00
David Sansome 21be90a941 Change spotify protobuf namespace to something that isn't reserved, and do album loading in spotify 2011-08-29 03:32:37 +01:00
David Sansome 13fc24f6c6 Refactor the last.fm, magnatune, spotify and di.fm settings pages - moving the login state display into a separate widget. 2011-08-27 22:01:28 +01:00
David Sansome 143bbb4019 Make the BusyIndicator contain a label too 2011-08-27 15:03:04 +01:00
David Sansome dad76b78dd Move all the settings pages to their own widgets and classes 2011-08-14 00:07:10 +01:00
David Sansome ae4cfeff1c Always assume Icecast-style stream metadata is in the "Artist - Title" format, as this seems more common. Remove the hacks for soma.fm and stations from the icecast list. Fixes issue 1035 2011-07-26 15:56:19 +01:00
David Sansome 38100f5e59 Make CoverProviders not a singleton 2011-07-23 19:34:41 +01:00
David Sansome 9fadf57acc Revert "Move TaskManager::Task and UrlHandler::LoadResult structs out of their parent classes - PythonQt doesn't understand nested structs."
This reverts commit 5234798a7f.
2011-07-23 15:32:12 +01:00
David Sansome dd3eee63e5 Remove python scripting support 2011-07-23 15:32:12 +01:00
David Sansome a0258a9e81 Add c++ implementations of the di.fm and sky.fm radio services 2011-07-23 15:32:11 +01:00
David Sansome 69bd5555e7 Fix a crash when loading an old playlist containing Radio items after an upgrade to a version where they're Internet items 2011-07-18 22:20:22 +00:00
Tyler Rhodes ded8e5f6f0 Refactor "Radio" files into "Internet" files. 2011-07-15 13:27:50 +00:00