Commit Graph

732 Commits

Author SHA1 Message Date
Jim Broadus 2f36b34c33 Remove some user info from logs. 2020-02-18 09:03:08 +00:00
Jim Broadus 4f9b81459a Remove leading / from google file id.
The Google Drive Client::GetFile currently fails due to an extra / in the
request. Use QString::remove to strip all "/" characters from the id.

Note: While this fixes the ability to get the media URL, a change to the
Google Drive API breaks the playback. This will be addressed in a future
commit.
2020-02-18 09:03:08 +00:00
Jim Broadus f81533bb58 Handle Google Drive get file errors.
When a call to translate a file ID to a URL fails, tell the user and
don't try to load the file.
2020-02-18 09:03:08 +00:00
Jim Broadus a0bb8ab3a1 Replace closures with new Qt functor variant of connect. 2020-02-15 15:00:49 +00:00
Jim Broadus 58e59adcfc Pass correct type to FetchContentUrlFinished. 2020-02-15 15:00:49 +00:00
Jim Broadus b86b8a45cc Fix dropbox json parsing.
Incorrect QJsonDocument::fromBinaryData was used several places in
DropboxService. Add a single ParseJsonReply method to the base class that
properly checks and parses network replies and reports errors.
2020-02-15 15:00:49 +00:00
Jim Broadus 61de3c6e93 Convert remaining QJsonValue::isUndefined usage.
Noted previously, using the [] operator on a non-const QJsonObject causes the
creation of the key and does not work for checking existence. Convert the
remaining isUndefined call sites to use QJsonObect::contains.
2020-02-13 11:12:52 +00:00
Jim Broadus a5db937d23 Fix itunes search.
Using the [] operator on a non-const QJsonObject inserts an item. The test
for an error message was always positive. Use the contains method instead.
2020-02-12 09:53:45 +00:00
Jim Broadus 18a08e87c2 Add a directory_model accessor to Application class. 2020-02-11 08:09:22 +00:00
Jim Broadus efb4f8a15a Handle errors from icecast directory requests.
When a request fails, show an error dialog and don't attempt to parse results.
2020-02-07 10:06:14 +00:00
Jim Broadus 2132310873 Display message to user when IntergalacticFM channel list fails.
At the time of this commit, the channel list from intergalactic.fm is
unavailable. To the user, this is failing silently. Add an error message for
this failure. If this issue persists, then the service should be removed or a
hardcoded station list should be used.
2020-02-07 10:05:39 +00:00
Jonas Kvinge f674847431 Use HTTPS 2020-01-27 22:46:38 +01:00
Jim Broadus 6a9276ec0a Fix LibraryModel async query crash.
A LibraryBackend may be deleted while an associated LibraryModel object is using
it. An example is an async query running while a connected device is removed.
To prevent this, use a share pointer for the LibraryBackend.

This fixes one case where LibraryBackend is used after deletion. However, the
raw pointer is still passed around in several other places. These should be
evaluated on a case-by-case basis to insure that circular depencencies aren't
introduced.
2020-01-14 21:47:31 -08:00
Pavel Liavonau 3f4c788339 Fixed lastfm workflow with "now playing" and scrobbling feature
(Maybe Issue #2672)
2020-01-07 22:29:23 +00:00
John Maguire 57841cf947
Merge pull request #6515 from jonaski/child
Replace QModelIndex::child() with QAbstractItemModel::index()
2020-01-06 00:11:22 +00:00
Jonas Kvinge 6b50d5140d Fix formatting 2020-01-05 19:09:03 +01:00
Jonas Kvinge 959a957a56 Replace QModelIndex::child() with QAbstractItemModel::index() 2020-01-05 18:37:27 +01:00
John Maguire 0991209087
Revert "Add an option to specify a gpodder server." 2020-01-05 17:10:00 +00:00
John Maguire 41c103413c
Merge pull request #6497 from jbroadus/gpodder-server
Add an option to specify a gpodder server.
2020-01-05 15:27:08 +00:00
John Maguire 10e807dd7d
Merge pull request #6509 from jonaski/tolist
Replace QSet::toList() with QSet::values()
2020-01-05 15:13:33 +00:00
Jonas Kvinge 5eb32b33c1 Replace QSet::toList() with QSet::values() 2020-01-05 00:58:33 +01:00
Jonas Kvinge ddc8a5f010 Initialize QObject in constructor and add explicit 2020-01-05 00:21:04 +01:00
Jim Broadus 590d7f3823 Add an option to specify a gpodder server.
Add an "Advanced Settings" option to the gpodder sign in. If selected, a fully
qualified URL must be specified as the gpodder base. Upon successful login, the
URL is saved along with username and password. If advanced settings are not
selected, an empty URL is stored and the default will be used.
2020-01-03 22:46:15 -08:00
Jim Broadus e32ba7eac5 Gpodder login cleanup.
It's not necessary for the PodcastSettingsPage class to have knowledge of
GPodderSync's login implementation. Handling the network reply in a single
location sightly simplifies the code. It also makes the handling order
more deterministic.
2019-12-30 20:58:30 -08:00
Jim Broadus a1da067002 Reset gpodder session cookies on logout.
A sessionid cookie is stored when logging in to gpodder. After logging out, a
subsequent login with the same user name but incorrect password will succeed,
ignoring the authorization header. The incorrect password will be stored for
future use.

To fix this, reset the cookie jar for GPodderSync's network access manager at
logout.
2019-12-30 14:19:08 -08:00
Jim Broadus 36179a7197 Fix gpodder sync memory leaks in success cases.
A closure created by NewClosure that handles Qt signals is destroyed if the
signal object is destroyed, the slot object is destroyed, or the signal is
invoked. In the case where the sender is passed as a shared pointer, the
reference prevents the sender from being destroyed before the closure.

So for closures built to handle responses returned from ApiRequest in
GPodderSync, the closure object and the response object will only be destroyed
after the signal is invoked. In some cases, separate closures are built for
error signals as well. For these, only one closure will be destroyed. The other
closures and the response object will be leaked.

A simple fix for the success cases is to remove the unnecessary error case
closures and directly connect the signals to slots. This is low hanging fruit
and still leaves leaks in the error cases. Those cases will require a more
complete solution to properly manage the life cycle of the response object.
2019-12-29 10:11:29 -08:00
Jim Broadus 5e7e57df73 Set a 30 second timeout for gpodder requests. 2019-12-25 23:53:47 -08:00
John Maguire b7c3173001
Merge pull request #6439 from jonaski/signalmapper
Replace all uses of QSignalMapper with C++11 lambda expressions
2019-11-10 19:13:31 +00:00
Jonas Kvinge 344023e6dd Fix formatting 2019-11-10 15:16:39 +01:00
Jonas Kvinge ba31c755ef Replace all uses of QSignalMapper with C++11 lambda expressions 2019-11-10 15:07:12 +01:00
John Maguire 21da802630
Merge pull request #6438 from jonaski/remove-extra-semicolon
Remove extra ';'
2019-11-10 00:53:37 +00:00
Jonas Kvinge 9519829d1f Fix formatting 2019-11-10 00:31:37 +01:00
Jonas Kvinge d09c27f719 Remove extra ';' 2019-11-10 00:30:18 +01:00
Jonas Kvinge 0da490a5e1 Replace QString::null with QString() 2019-11-09 23:45:28 +01:00
John Maguire cb6cd7c485 Merge remote-tracking branch 'origin/master' into qt5 2019-10-04 16:51:43 +01:00
luz.paz fb93ae4b02 Fix misc. source comment typos
Typos found via `codespell`
2019-08-21 23:43:16 -04:00
Jonas Kvinge 1a2274bd2b Merge branch 'master' into qt5-update 2019-07-21 14:20:59 +02:00
Filip Gawin be827f4f7f Simplify some statements 2019-02-22 18:49:48 +01:00
Jonas Kvinge 16bdd39c03 Merge remote-tracking branch 'upstream/master' into qt5-update 2018-11-29 23:21:54 +01:00
Jonas Kvinge 2d1f6cd239 Replace Q_OS_MACOS with Q_OS_MAC (#6223) 2018-11-29 22:11:55 +00:00
Jonas Kvinge 9f946a2898 Improvements to makefiles and make components optional (#6221) 2018-11-29 21:32:12 +00:00
Jonas Kvinge 8c198a99a5 Qt 5 fixes 2018-11-21 10:31:17 +00:00
Jim Broadus 5a1a5a9d95 Display podcast episode information. (#6203)
* Display podcast episode information.
Add an EpisodeInfoWidget with title, author, duration, date, and description fields. Include this in the PodcastInfoDialog. If exactly one episode is selected, then show both the podcast and episode widgets and display the episode's URL. Otherwise, hide the episode widget and follow the existing behavior. Note that the desription field for the EpisodeInfoWidget uses the QLabel and does not currently download embedded images.
Add an always_show_hours option to the PrettyTime methods to include hours in formatting even if the field is zero. This is less ambiguious in some cases where duration is displayed.

* Apply patch from automated formatter test.
2018-11-17 13:29:16 +00:00
Jim Broadus d8bab5a49f Fix memory leak in PodcastInfoWidget. (#6202) 2018-11-13 08:09:15 +00:00
Jonas Kvinge d4fab4a2ea Merge remote-tracking branch 'upstream/master' into qt5-update 2018-11-11 22:46:07 +01:00
Jim Broadus 2e4814eb36 Create a PodcastInfoDialog that utilizes the existing PodcastInfoWidget. Add a Podcast Information menu item that is enabled when exactly one podcast is represented by the highlighted items. (#6190) 2018-11-11 20:53:06 +00:00
Amish Naidu 107e945872 Convert uses of QtAlgorithms to std:: algorithms 2018-10-09 19:17:54 +01:00
Jonas Kvinge 159d3c6ba6 Merge remote-tracking branch 'upstream/master' into qt5-update 2018-10-01 22:54:05 +02:00
John Maguire 5511583966 Remove SoundCloud support
Closes #5766, closes #5538, closes #6114, closes #5914
2018-10-01 17:46:24 +01:00
Jonas Kvinge a5e8eba91c Merge remote-tracking branch 'upstream/master' into qt5-update 2018-06-29 02:38:19 +02:00
ftiede c01b7bc430 Add option to verify subsonic server certificate. (#6060)
* Add option to verify subsonic server certificate.

Defaults to true, as it is safer to have a server certificate verified,
even more so, if the server is used over an insecure WAN link.
During subsonic configuration the checkbox can be deactivated, so that
no certificate verification will occur when talking to a subsonic
server, allowing for self-signed certificates.

With the proliferation of let's encrypt certificates there's probably
less need for this option but it has been requested and hard-coding
verify-off is IMHO bad security practice.
If a valid certificate has been installed, the configuration file can be
modified manually and after a restart Clementine will perform a proper
server certificate verification.

The patch might need some UI polishing and asks for string translations
but is operational so far.

* Satisfy CLang format checker.

* Use QSettings' default value support.

* Consistently use QSettings' default value method.
2018-05-23 14:23:53 +01:00
ftiede 4619a4c1ab Work around Qt's QUrl parser. (#6059)
Qt's QUrl parser does no longer accept pure numeric hostnames without
trying to make a dotted IPv4 address of them.
Thus current method of storing subsonic's numeric ids in the host part
of a QUrl ("subsonic://<id>") does no longer work.
Instead a query is constructed omitting the host-part entirely and using
"subsonic://?id=<id>" to store and retrieve subsonic titles.
2018-05-23 14:23:21 +01:00
Chocobozzz 16b4f9a991
Merge remote-tracking branch 'upstream/master' into qt5 2018-05-14 08:25:27 +02:00
Chocobozzz 5bd2c77c58 Fix compilation with GCC 8 (#6053) 2018-05-13 18:02:33 +01:00
Pulfer ddfa5e63f1 Fix channels loading for DI.fm services after API domain changes (#6023) 2018-03-10 18:35:09 +00:00
John Maguire 4273c03132 Merge branch 'master' into qt5 2018-02-19 16:46:42 +00:00
Chocobozzz a1a892b35e Fix "Invalid key" error in lastfm auth 2018-02-19 09:10:26 +00:00
Benjamin Sproule 595eec7878 Removed filter for audio/folder OneDrive items as OneDrive doesn't count many audio file types as audio (e.g. flac) (#5977) 2018-02-01 11:38:25 +00:00
Chocobozzz 70f68b1926
Merge remote-tracking branch 'upstream/master' into qt5 2018-02-01 09:50:42 +01:00
Chocobozzz 38c1f8777c Fix compilation with crypto++ >= 6.0.0 (#5974) 2018-02-01 08:07:51 +00:00
Stephen Dawkins d9b12a5599 Added additional check when enclosure type is missing (#5934) 2017-12-23 12:48:38 +00:00
Adrian Garcia dfa7042ff3 Subsonic: download cover art (#5880) 2017-10-06 14:08:00 +01:00
Allan Nordhøy c29886d8c9 Spelling: URL (#5836) 2017-08-28 23:03:49 +02:00
Allan Nordhøy 55ef908728 Spelling: Log in, Last.fm (#5835)
As per https://www.last.fm/
2017-08-28 23:03:22 +02:00
John Maguire a8cb9bbd2a Authenticate Last.fm with "oauth". 2017-08-24 19:32:14 +01:00
David Roeca 49876536a5 Resolve #3693 (#5790)
* bring in playlist updates for potential fix

* define signal to handle organise playlist bugs

* work in progress

* fix wrong signal/slot

* next push forward on handling new song creation

* Reorganize signals/slots; still need to figure out why not all signals are being handled

* Get playlists to work when they're in memory

* more changes to playlist updates

* revert unnecessary changes and finalize fix
2017-07-22 18:57:33 +01:00
Chocobozzz fc517ce7a5 Merge remote-tracking branch 'upstream/master' into qt5 2017-06-05 21:28:05 +02:00
Rix 8ff7d5750c SoundCloud service simple search limit is set. (#5738)
SoundCloud search limit it set to 100. Pagination may be added soon. (see SoundCloud HTTP api: https://developers.soundcloud.com/docs/api/guide#pagination)
2017-05-30 18:17:40 +01:00
MelissaManley97 a5d12d0d10 Request to merge a fix for a crash during searching under Internet Tab (#5682)
* Changing ClearSearchResults order.

If search_ is null, there is no point in clearing it.

* Update to fix 12 (Crash when searching under Internet tab with Spotify)

* Formatting Fixes
2017-03-28 17:38:55 +01:00
John Maguire 27bf50d702 Do not log sensitive data in OAuthenticator. 2017-02-27 12:41:34 +00:00
John Maguire 1aed6193e7 Fix intergalactic FM URLs. 2017-02-21 14:24:50 +00:00
Florian Bigard 69b2a832db Merge branch 'master' into qt5 2017-01-18 15:57:07 +01:00
Ilya Selyuminov 1a477201ed Use CaseInsensitive file type checking #5499 (#5592)
* Fix Seafile setting page loading

Check access_token instead of QSetting parameters to make
sure that we're logged in.

* Use CaseInsensitive file type checking  (#5499)

CloudFileService and TagReader classes use
QString::endWith() method for checking file type.
This method is CaseSensitive by default.
2017-01-12 15:58:44 +00:00
John Maguire c7b8aacad8 Remove support for VK
Fixes #5591
2017-01-11 18:08:43 +00:00
John Maguire bd2de93e3c Add more override specifiers. 2016-12-20 14:16:42 +00:00
John Maguire df5c53af84 Add "override" to SpotifyService. 2016-12-20 13:02:06 +00:00
Chocobozzz 2ede85bdcd Merge branch 'master' into qt5 2016-12-18 17:04:08 +01:00
Bigard Florian 6901c9b1b6 Fix podcast episodes forgotten (#5560) 2016-12-18 15:48:08 +00:00
Chocobozzz 2096b1f268 Merge branch 'master' into qt5 2016-12-13 20:26:19 +01:00
John Maguire 420601f10a Add support for classicalradio.com 2016-11-07 18:22:06 +00:00
Nicolas Martinelli 650f06f7ad Fix Subsonic endpoint
According to the documentation, the endpoint is `getAlbumList`, not
`GetAlbumList`. This typo makes the complete feature not working at
all.

Source: http://www.subsonic.org/pages/api.jsp#getAlbumList
2016-10-20 22:08:26 +02:00
Chocobozzz 18a89f78a9 Merge remote-tracking branch 'upstream/master' into qt5 2016-10-07 14:30:09 +02:00
John Maguire 13aa0adc84 Migrate to dropbox api v2 2016-06-29 12:16:08 +01:00
John Maguire 0beb6d3c59 Remove support for Amazon Cloud Drive. 2016-05-16 18:00:10 +01:00
Chocobozzz 0aa3405274 Merge remote-tracking branch 'upstream/master' into qt5 2016-05-09 12:46:08 +02:00
Vavooon d019cb7f80 Initialize user_favorites_ and remove an excessive line
* Add Favorites support to SoundCloud

* Initialize variable and remove an excessive line
2016-04-21 21:03:58 +01:00
Vavooon 7ef095d0cb Add Favorites support to SoundCloud (#5345) 2016-04-20 13:03:48 +01:00
David G. F f1825629db Qt5
* Fixing a couple of issues with subsonic in the qt5 port

* Forgot to add this fixes as well, otherwise won't play music!
2016-04-19 23:22:23 +01:00
David G. F 182e5c3034 Fixing a couple of issues with subsonic in the qt5 port (#5346) 2016-04-19 21:50:21 +01:00
John Maguire 6693a870ad Reformat intergalacticfm service 2016-04-06 15:45:25 +01:00
John Maguire 9291f09b1b Merge branch 'master' into PanderMusubi-master 2016-04-06 15:43:32 +01:00
John Maguire b2c506656c Avoid redirects from IntergalacticFM 2016-04-06 15:42:25 +01:00
John Maguire be958495fe Merge branch 'master' of https://github.com/PanderMusubi/Clementine into PanderMusubi-master 2016-04-06 15:30:28 +01:00
David Sansome 2257dcd278 Merge pull request #5318 from goggle/master
Fixed compile error for the subsonic module.
2016-03-30 10:01:07 +11:00
John Maguire b20d0d87fd Revert "Adding support for subsonic cover art download" 2016-03-29 21:12:54 +01:00
Alex Seiler 6cc60d0cf8 Fixed compile error for the subsonic module. 2016-03-29 21:23:53 +02:00
David Guillen Fandos 10bac1cd2d Fixing issues in the pull request. 2016-03-12 19:44:32 +00:00
Chocobozzz e6e189967d Merge remote-tracking branch 'upstream/master' into qt5 2016-02-29 18:03:02 +01:00
David Guillen Fandos e4efde900a Adding support for subsonic cover art download 2016-02-26 23:29:13 +00:00
Pander 1496d581cd Changed HTTPS to HTTP for Intergalactic FM 2016-02-25 17:37:45 +01:00