aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/Transports
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2015-03-12 06:30:51 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2015-03-12 06:30:51 +0000
commite01deb8acaf49b76b52d271ae8f1224d20296ce8 (patch)
treea9dca4199aae90311c5484b41f2bf101c443b035 /src/plugins/Transports
parent088a0426ee71244af997872b7bb1e67c7b47ba08 (diff)
downloadqmmp-e01deb8acaf49b76b52d271ae8f1224d20296ce8.tar.gz
qmmp-e01deb8acaf49b76b52d271ae8f1224d20296ce8.tar.bz2
qmmp-e01deb8acaf49b76b52d271ae8f1224d20296ce8.zip
added feature to change user agent (Closes issue 747)
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@4796 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src/plugins/Transports')
-rw-r--r--src/plugins/Transports/http/httpstreamreader.cpp9
-rw-r--r--src/plugins/Transports/http/httpstreamreader.h3
-rw-r--r--src/plugins/Transports/http/settingsdialog.cpp32
-rw-r--r--src/plugins/Transports/http/settingsdialog.h6
-rw-r--r--src/plugins/Transports/http/settingsdialog.ui66
5 files changed, 78 insertions, 38 deletions
diff --git a/src/plugins/Transports/http/httpstreamreader.cpp b/src/plugins/Transports/http/httpstreamreader.cpp
index 3141dce77..7d5167244 100644
--- a/src/plugins/Transports/http/httpstreamreader.cpp
+++ b/src/plugins/Transports/http/httpstreamreader.cpp
@@ -1,5 +1,5 @@
/***************************************************************************
- * Copyright (C) 2006-2013 by Ilya Kotov *
+ * Copyright (C) 2006-2015 by Ilya Kotov *
* forkotov02@hotmail.ru *
* *
* This program is free software; you can redistribute it and/or modify *
@@ -123,6 +123,10 @@ HttpStreamReader::HttpStreamReader(const QString &url, HTTPInputSource *parent)
settings.beginGroup("HTTP");
m_codec = QTextCodec::codecForName(settings.value("icy_encoding","UTF-8").toByteArray ());
m_buffer_size = settings.value("buffer_size",384).toInt() * 1000;
+ if(settings.value("override_user_agent",false).toBool())
+ m_userAgent = settings.value("user_agent").toString();
+ if(m_userAgent.isEmpty())
+ m_userAgent = QString("qmmp/%1").arg(Qmmp::strVersion());;
if (!m_codec)
m_codec = QTextCodec::codecForName ("UTF-8");
#ifdef WITH_ENCA
@@ -322,8 +326,7 @@ void HttpStreamReader::run()
curl_easy_setopt(m_handle, CURLOPT_FAILONERROR, 1);
curl_easy_setopt(m_handle, CURLOPT_MAXREDIRS, 15);
// user agent
- QString user_agent = QString("qmmp/%1").arg(Qmmp::strVersion());
- curl_easy_setopt(m_handle, CURLOPT_USERAGENT, qPrintable(user_agent));
+ curl_easy_setopt(m_handle, CURLOPT_USERAGENT, qPrintable(m_userAgent));
curl_easy_setopt(m_handle, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0);
// error message
curl_easy_setopt(m_handle, CURLOPT_ERRORBUFFER, errorBuffer);
diff --git a/src/plugins/Transports/http/httpstreamreader.h b/src/plugins/Transports/http/httpstreamreader.h
index 1159dfe1f..61ea1be14 100644
--- a/src/plugins/Transports/http/httpstreamreader.h
+++ b/src/plugins/Transports/http/httpstreamreader.h
@@ -1,5 +1,5 @@
/***************************************************************************
- * Copyright (C) 2006-2012 by Ilya Kotov *
+ * Copyright (C) 2006-2015 by Ilya Kotov *
* forkotov02@hotmail.ru *
* *
* This program is free software; you can redistribute it and/or modify *
@@ -99,6 +99,7 @@ private:
QMutex m_mutex;
HttpStreamData m_stream;
QString m_url;
+ QString m_userAgent;
int m_metacount;
QString m_title;
bool m_ready;
diff --git a/src/plugins/Transports/http/settingsdialog.cpp b/src/plugins/Transports/http/settingsdialog.cpp
index d1bc99cad..988d3a42d 100644
--- a/src/plugins/Transports/http/settingsdialog.cpp
+++ b/src/plugins/Transports/http/settingsdialog.cpp
@@ -1,5 +1,5 @@
/***************************************************************************
- * Copyright (C) 2010-2012 by Ilya Kotov *
+ * Copyright (C) 2010-2015 by Ilya Kotov *
* forkotov02@hotmail.ru *
* *
* This program is free software; you can redistribute it and/or modify *
@@ -27,26 +27,28 @@
SettingsDialog::SettingsDialog(QWidget *parent) : QDialog(parent)
{
- ui.setupUi(this);
+ m_ui.setupUi(this);
setAttribute(Qt::WA_DeleteOnClose);
findCodecs();
foreach (QTextCodec *codec, codecs)
- ui.icyEncodingComboBox->addItem(codec->name());
+ m_ui.icyEncodingComboBox->addItem(codec->name());
#ifdef WITH_ENCA
size_t n = 0;
const char **langs = enca_get_languages(&n);
for (size_t i = 0; i < n; ++i)
- ui.encaAnalyserComboBox->addItem(langs[i]);
+ m_ui.encaAnalyserComboBox->addItem(langs[i]);
#endif
QSettings settings(Qmmp::configFile(), QSettings::IniFormat);
settings.beginGroup("HTTP");
- int pos = ui.icyEncodingComboBox->findText(settings.value("icy_encoding","UTF-8").toString());
- ui.icyEncodingComboBox->setCurrentIndex(pos);
- ui.bufferSizeSpinBox->setValue(settings.value("buffer_size",384).toInt());
+ int pos = m_ui.icyEncodingComboBox->findText(settings.value("icy_encoding","UTF-8").toString());
+ m_ui.icyEncodingComboBox->setCurrentIndex(pos);
+ m_ui.bufferSizeSpinBox->setValue(settings.value("buffer_size",384).toInt());
+ m_ui.userAgentCheckBox->setChecked(settings.value("override_user_agent",false).toBool());
+ m_ui.userAgentLineEdit->setText(settings.value("user_agent").toString());
#ifdef WITH_ENCA
- ui.autoCharsetCheckBox->setChecked(settings.value("use_enca", false).toBool());
- pos = ui.encaAnalyserComboBox->findText(settings.value("enca_lang", langs[n-1]).toString());
- ui.encaAnalyserComboBox->setCurrentIndex(pos);
+ m_ui.autoCharsetCheckBox->setChecked(settings.value("use_enca", false).toBool());
+ pos = m_ui.encaAnalyserComboBox->findText(settings.value("enca_lang", langs[n-1]).toString());
+ m_ui.encaAnalyserComboBox->setCurrentIndex(pos);
#else
ui.autoCharsetCheckBox->setEnabled(false);
#endif
@@ -61,11 +63,13 @@ void SettingsDialog::accept()
{
QSettings settings(Qmmp::configFile(), QSettings::IniFormat);
settings.beginGroup("HTTP");
- settings.setValue("icy_encoding", ui.icyEncodingComboBox->currentText());
- settings.setValue("buffer_size", ui.bufferSizeSpinBox->value());
+ settings.setValue("icy_encoding", m_ui.icyEncodingComboBox->currentText());
+ settings.setValue("buffer_size", m_ui.bufferSizeSpinBox->value());
+ settings.setValue("override_user_agent",m_ui.userAgentCheckBox->isChecked());
+ settings.setValue("user_agent",m_ui.userAgentLineEdit->text());
#ifdef WITH_ENCA
- settings.setValue("use_enca", ui.autoCharsetCheckBox->isChecked());
- settings.setValue("enca_lang", ui.encaAnalyserComboBox->currentText());
+ settings.setValue("use_enca", m_ui.autoCharsetCheckBox->isChecked());
+ settings.setValue("enca_lang", m_ui.encaAnalyserComboBox->currentText());
#endif
settings.endGroup();
QDialog::accept();
diff --git a/src/plugins/Transports/http/settingsdialog.h b/src/plugins/Transports/http/settingsdialog.h
index 5bb6d2d4a..98f49a3bb 100644
--- a/src/plugins/Transports/http/settingsdialog.h
+++ b/src/plugins/Transports/http/settingsdialog.h
@@ -1,5 +1,5 @@
/***************************************************************************
- * Copyright (C) 2010 by Ilya Kotov *
+ * Copyright (C) 2010-2015 by Ilya Kotov *
* forkotov02@hotmail.ru *
* *
* This program is free software; you can redistribute it and/or modify *
@@ -24,7 +24,7 @@
#include "ui_settingsdialog.h"
/**
- @author Ilya Kotov <forkotov02@hotmail.ru>
+ @author Ilya Kotov <forkotov02@hotmail.ru>
*/
class SettingsDialog : public QDialog
{
@@ -39,7 +39,7 @@ private slots:
private:
void findCodecs();
- Ui::SettingsDialog ui;
+ Ui::SettingsDialog m_ui;
QList<QTextCodec *> codecs;
};
diff --git a/src/plugins/Transports/http/settingsdialog.ui b/src/plugins/Transports/http/settingsdialog.ui
index c90c89ef4..003cd6607 100644
--- a/src/plugins/Transports/http/settingsdialog.ui
+++ b/src/plugins/Transports/http/settingsdialog.ui
@@ -6,8 +6,8 @@
<rect>
<x>0</x>
<y>0</y>
- <width>218</width>
- <height>179</height>
+ <width>310</width>
+ <height>266</height>
</rect>
</property>
<property name="windowTitle">
@@ -65,14 +65,14 @@
</property>
</widget>
</item>
- <item row="2" column="1" colspan="2">
+ <item row="4" column="1" colspan="2">
<widget class="QDialogButtonBox" name="buttonBox">
<property name="standardButtons">
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
</property>
</widget>
</item>
- <item row="1" column="0" colspan="3">
+ <item row="3" column="0" colspan="3">
<widget class="QGroupBox" name="groupBox">
<property name="title">
<string>Metadata encoding</string>
@@ -131,12 +131,28 @@
</layout>
</widget>
</item>
+ <item row="2" column="0">
+ <widget class="QLabel" name="label_3">
+ <property name="text">
+ <string>User Agent:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="1" colspan="2">
+ <widget class="QLineEdit" name="userAgentLineEdit">
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0" colspan="3">
+ <widget class="QCheckBox" name="userAgentCheckBox">
+ <property name="text">
+ <string>Change User Agent</string>
+ </property>
+ </widget>
+ </item>
</layout>
- <zorder>label_17_2_2</zorder>
- <zorder>bufferSizeSpinBox</zorder>
- <zorder>label</zorder>
- <zorder>buttonBox</zorder>
- <zorder>groupBox</zorder>
</widget>
<resources/>
<connections>
@@ -147,8 +163,8 @@
<slot>reject()</slot>
<hints>
<hint type="sourcelabel">
- <x>222</x>
- <y>172</y>
+ <x>303</x>
+ <y>259</y>
</hint>
<hint type="destinationlabel">
<x>70</x>
@@ -163,8 +179,8 @@
<slot>accept()</slot>
<hints>
<hint type="sourcelabel">
- <x>222</x>
- <y>172</y>
+ <x>303</x>
+ <y>259</y>
</hint>
<hint type="destinationlabel">
<x>61</x>
@@ -179,12 +195,28 @@
<slot>setEnabled(bool)</slot>
<hints>
<hint type="sourcelabel">
- <x>59</x>
- <y>67</y>
+ <x>82</x>
+ <y>149</y>
</hint>
<hint type="destinationlabel">
- <x>143</x>
- <y>90</y>
+ <x>288</x>
+ <y>182</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>userAgentCheckBox</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>userAgentLineEdit</receiver>
+ <slot>setEnabled(bool)</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>131</x>
+ <y>52</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>136</x>
+ <y>76</y>
</hint>
</hints>
</connection>