Compare commits
70 Commits
release-2.
...
release-2.
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8664140275 | ||
|
|
0b9640d471 | ||
|
|
d66c88d59e | ||
|
|
b92c152d30 | ||
|
|
148ec32825 | ||
|
|
8298b62f56 | ||
|
|
53f46875d8 | ||
|
|
a67caf1730 | ||
|
|
6a38f69fad | ||
|
|
d5bf2b2e1f | ||
|
|
f6df1c7fed | ||
|
|
fa88bce77d | ||
|
|
571465ff7e | ||
|
|
09a3f78a28 | ||
|
|
f98520e6c2 | ||
|
|
0211f3aee3 | ||
|
|
7c580a87e2 | ||
|
|
0dcd33fb6d | ||
|
|
797a4608bf | ||
|
|
abb8554c51 | ||
|
|
258a3ea3b0 | ||
|
|
6d1ad28d8c | ||
|
|
38aca6af6f | ||
|
|
0fd8ecd9ee | ||
|
|
f24224649d | ||
|
|
b41aa38f39 | ||
|
|
b267ac169d | ||
|
|
1c0f1b91e7 | ||
|
|
9bf673210f | ||
|
|
42f5cbf2a6 | ||
|
|
45f0383ee2 | ||
|
|
a39c7f52cf | ||
|
|
f1ca4f40af | ||
|
|
62503fb663 | ||
|
|
0853ae4691 | ||
|
|
bb19cfce1f | ||
|
|
287cdc43c1 | ||
|
|
79e595c195 | ||
|
|
d198451bb0 | ||
|
|
ebf252ce86 | ||
|
|
f9ece8b447 | ||
|
|
efe5ca6242 | ||
|
|
0dbcf5653d | ||
|
|
20a201703c | ||
|
|
bfaa6c69fd | ||
|
|
6744ee8a4d | ||
|
|
20630e91ec | ||
|
|
cec74eb080 | ||
|
|
4e51393dd2 | ||
|
|
5d86930c80 | ||
|
|
cc1b812232 | ||
|
|
0fcbcd0dcd | ||
|
|
dd9e290a60 | ||
|
|
61a05c7e5b | ||
|
|
1c27e2bd35 | ||
|
|
68f66579ea | ||
|
|
e5eaea8949 | ||
|
|
ed491cf7cb | ||
|
|
3b3642bbba | ||
|
|
28eddb74ed | ||
|
|
401693dccd | ||
|
|
826e137aa5 | ||
|
|
7d4805988e | ||
|
|
bc2694bb88 | ||
|
|
19db0d471f | ||
|
|
2f337f9191 | ||
|
|
e05536a115 | ||
|
|
7364815ef3 | ||
|
|
bcc6597e93 | ||
|
|
661e2cb6fc |
2
AUTHORS
@@ -76,7 +76,7 @@ Translations authors:
|
|||||||
- Croatian: Oliver Mucafir (oliver.untwist@gmail.com)
|
- Croatian: Oliver Mucafir (oliver.untwist@gmail.com)
|
||||||
- Czech: Jirka Vilim (web@tets.cz)
|
- Czech: Jirka Vilim (web@tets.cz)
|
||||||
- Danish: Mathias Nielsen (comoneo@gmail.com)
|
- Danish: Mathias Nielsen (comoneo@gmail.com)
|
||||||
- Dutch: Joost Schipper (heavyjoost@users.sourceforge.net)
|
- Dutch: Pieter Heyvaert (pieter_heyvaert@hotmail.com)
|
||||||
- English: Christophe Dumez (chris@qbittorrent.org)
|
- English: Christophe Dumez (chris@qbittorrent.org)
|
||||||
- Finnish: Niklas Laxström (nikerabbit@users.sourceforge.net)
|
- Finnish: Niklas Laxström (nikerabbit@users.sourceforge.net)
|
||||||
- French: Christophe Dumez (chris@qbittorrent.org)
|
- French: Christophe Dumez (chris@qbittorrent.org)
|
||||||
|
|||||||
24
Changelog
@@ -1,4 +1,18 @@
|
|||||||
* Unreleased - Christophe Dumez <chris@qbittorrent.org> - v2.5.0
|
* Sun Dec 19 2010 - Christophe Dumez <chris@qbittorrent.org> - v2.5.2
|
||||||
|
- BUGFIX: Fix alternative speed icon staying pressed when disabled
|
||||||
|
- BUGFIX: Fix slot warning on startup
|
||||||
|
- BUGFIX: Fix alignment issues in program preferences
|
||||||
|
- BUGFIX: Make sure we don't move completed torrent to the temp directory
|
||||||
|
for checking (closes #602938)
|
||||||
|
- BUGFIX: Fix some 'File Not found' warning in the Web UI
|
||||||
|
- BUGFIX: Fix dangerous usage of vector iterator
|
||||||
|
- BUGFIX: No longer expand the first folder in the torrent content list
|
||||||
|
- BUGFIX: Fixes possible crash in the RSS Downloader dialog (closes #691426)
|
||||||
|
|
||||||
|
* Sun Dec 5 2010 - Christophe Dumez <chris@qbittorrent.org> - v2.5.1
|
||||||
|
- BUGFIX: Fix possible crash when right-clicking on a torrent
|
||||||
|
|
||||||
|
* Sun Dec 5 2010 - Christophe Dumez <chris@qbittorrent.org> - v2.5.0
|
||||||
- FEATURE: qBittorrent can now act as a tracker
|
- FEATURE: qBittorrent can now act as a tracker
|
||||||
- FEATURE: New and improved RSS feed automated downloader
|
- FEATURE: New and improved RSS feed automated downloader
|
||||||
- FEATURE: Added feature to shutdown qbittorrent on torrents completion
|
- FEATURE: Added feature to shutdown qbittorrent on torrents completion
|
||||||
@@ -14,10 +28,18 @@
|
|||||||
- FEATURE: Optimized and improved the peer country resolution code
|
- FEATURE: Optimized and improved the peer country resolution code
|
||||||
- FEATURE: Download first/last pieces first when sequential download is
|
- FEATURE: Download first/last pieces first when sequential download is
|
||||||
enabled (Thanks Ahmad)
|
enabled (Thanks Ahmad)
|
||||||
|
- FEATURE: Download first/last pieces first now applies to all media files
|
||||||
|
in the torrent (Thanks Ahmad)
|
||||||
- BUGFIX: Fix SOCKS5 proxy authentication in search engine(closes #680072)
|
- BUGFIX: Fix SOCKS5 proxy authentication in search engine(closes #680072)
|
||||||
|
- BUGFIX: Fix two advanced settings (ignore limits on LAN and protocol
|
||||||
|
overhead inclusion in rate limiter)
|
||||||
|
- BUGFIX: Fix strict super seeding (was not working)
|
||||||
|
- BUGFIX: Improve magnet save path handling (closes #683395)
|
||||||
|
- BUGFIX: Disable overwrite confirmation in torrent addition dialog (closes # 685269)
|
||||||
- COSMETIC: Replaced message box by on-screen notification for download errors
|
- COSMETIC: Replaced message box by on-screen notification for download errors
|
||||||
- COSMETIC: Improved the torrent creation tool appearance
|
- COSMETIC: Improved the torrent creation tool appearance
|
||||||
- COSMETIC: Use country flags by Mark James (Thanks to Dmytro Pukha)
|
- COSMETIC: Use country flags by Mark James (Thanks to Dmytro Pukha)
|
||||||
|
- COSMETIC: Use bigger alternative speed icon
|
||||||
- OTHERS: Dropped support for Qt <= 4.4
|
- OTHERS: Dropped support for Qt <= 4.4
|
||||||
|
|
||||||
* Tue Aug 24 2010 - Christophe Dumez <chris@qbittorrent.org> - v2.4.0
|
* Tue Aug 24 2010 - Christophe Dumez <chris@qbittorrent.org> - v2.4.0
|
||||||
|
|||||||
5
configure
vendored
@@ -32,7 +32,8 @@ Dependency options:
|
|||||||
executable (please follow
|
executable (please follow
|
||||||
instructions in
|
instructions in
|
||||||
src/geoip/README)
|
src/geoip/README)
|
||||||
--disable-qtsingleapplication Disable use of libboost
|
--disable-qtsingleapplication Disable use of
|
||||||
|
qtsingleapplication
|
||||||
--with-qtsingleapplication=[system|shipped] Use the shipped
|
--with-qtsingleapplication=[system|shipped] Use the shipped
|
||||||
qtsingleapplication library
|
qtsingleapplication library
|
||||||
or the system one
|
or the system one
|
||||||
@@ -609,7 +610,7 @@ public:
|
|||||||
#line 1 "qtsingleapplication.qcm"
|
#line 1 "qtsingleapplication.qcm"
|
||||||
/*
|
/*
|
||||||
-----BEGIN QCMOD-----
|
-----BEGIN QCMOD-----
|
||||||
name: libboost
|
name: qtsingleapplication
|
||||||
arg: with-qtsingleapplication=[system|shipped], Use the shipped qtsingleapplication library or the system one
|
arg: with-qtsingleapplication=[system|shipped], Use the shipped qtsingleapplication library or the system one
|
||||||
-----END QCMOD-----
|
-----END QCMOD-----
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
-----BEGIN QCMOD-----
|
-----BEGIN QCMOD-----
|
||||||
name: libboost
|
name: qtsingleapplication
|
||||||
arg: with-qtsingleapplication=[system|shipped], Use the shipped qtsingleapplication library or the system one
|
arg: with-qtsingleapplication=[system|shipped], Use the shipped qtsingleapplication library or the system one
|
||||||
-----END QCMOD-----
|
-----END QCMOD-----
|
||||||
*/
|
*/
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 439 B After Width: | Height: | Size: 423 B |
|
Before Width: | Height: | Size: 439 B After Width: | Height: | Size: 423 B |
@@ -1,6 +1,6 @@
|
|||||||
[Desktop Entry]
|
[Desktop Entry]
|
||||||
Categories=Qt;Network;P2P;
|
Categories=Qt;Network;P2P;
|
||||||
Comment=V2.5.0
|
Comment=V2.5.2
|
||||||
Exec=qbittorrent %f
|
Exec=qbittorrent %f
|
||||||
GenericName=Bittorrent client
|
GenericName=Bittorrent client
|
||||||
GenericName[ar]=العميل Bittorrent
|
GenericName[ar]=العميل Bittorrent
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 1.7 KiB |
|
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.3 KiB |
@@ -47,7 +47,7 @@
|
|||||||
<key>CFBundlePackageType</key>
|
<key>CFBundlePackageType</key>
|
||||||
<string>APPL</string>
|
<string>APPL</string>
|
||||||
<key>CFBundleGetInfoString</key>
|
<key>CFBundleGetInfoString</key>
|
||||||
<string>2.5.0</string>
|
<string>2.5.2</string>
|
||||||
<key>CFBundleSignature</key>
|
<key>CFBundleSignature</key>
|
||||||
<string>????</string>
|
<string>????</string>
|
||||||
<key>CFBundleExecutable</key>
|
<key>CFBundleExecutable</key>
|
||||||
|
|||||||
@@ -68,7 +68,7 @@ class about : public QDialog, private Ui::AboutDlg{
|
|||||||
<li><u>Croatian:</u> Oliver Mucafir (oliver.untwist@gmail.com)</li>\
|
<li><u>Croatian:</u> Oliver Mucafir (oliver.untwist@gmail.com)</li>\
|
||||||
<li><u>Czech:</u> Jirka Vilim (web@tets.cz)</li>\
|
<li><u>Czech:</u> Jirka Vilim (web@tets.cz)</li>\
|
||||||
<li><u>Danish:</u> Mathias Nielsen (comoneo@gmail.com)</li>\
|
<li><u>Danish:</u> Mathias Nielsen (comoneo@gmail.com)</li>\
|
||||||
<li><u>Dutch:</u> Joost Schipper (heavyjoost@users.sourceforge.net) and Peter Koeleman (peter@peerweb.nl)</li>\
|
<li><u>Dutch:</u> Pieter Heyvaert (pieter_heyvaert@hotmail.com)</li>\
|
||||||
<li><u>Finnish:</u> Niklas Laxström (nikerabbit@users.sourceforge.net) and Pekka Niemi (pekka.niemi@iki.fi)</li>\
|
<li><u>Finnish:</u> Niklas Laxström (nikerabbit@users.sourceforge.net) and Pekka Niemi (pekka.niemi@iki.fi)</li>\
|
||||||
<li><u>German:</u> Niels Hoffmann (zentralmaschine@users.sourceforge.net)</li>\
|
<li><u>German:</u> Niels Hoffmann (zentralmaschine@users.sourceforge.net)</li>\
|
||||||
<li><u>Greek:</u> Tsvetan Bankov (emerge_life@users.sourceforge.net)</li>\
|
<li><u>Greek:</u> Tsvetan Bankov (emerge_life@users.sourceforge.net)</li>\
|
||||||
|
|||||||
@@ -1,57 +1,55 @@
|
|||||||
<ui version="4.0" >
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<author></author>
|
<ui version="4.0">
|
||||||
<comment></comment>
|
|
||||||
<exportmacro></exportmacro>
|
|
||||||
<class>downloadFromURL</class>
|
<class>downloadFromURL</class>
|
||||||
<widget class="QDialog" name="downloadFromURL" >
|
<widget class="QDialog" name="downloadFromURL">
|
||||||
<property name="geometry" >
|
<property name="geometry">
|
||||||
<rect>
|
<rect>
|
||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
<width>360</width>
|
<width>482</width>
|
||||||
<height>220</height>
|
<height>220</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<property name="windowTitle" >
|
<property name="windowTitle">
|
||||||
<string>Download from urls</string>
|
<string>Download from urls</string>
|
||||||
</property>
|
</property>
|
||||||
<layout class="QVBoxLayout" >
|
<layout class="QVBoxLayout">
|
||||||
<property name="margin" >
|
<property name="spacing">
|
||||||
<number>9</number>
|
|
||||||
</property>
|
|
||||||
<property name="spacing" >
|
|
||||||
<number>6</number>
|
<number>6</number>
|
||||||
</property>
|
</property>
|
||||||
|
<property name="margin">
|
||||||
|
<number>9</number>
|
||||||
|
</property>
|
||||||
<item>
|
<item>
|
||||||
<layout class="QHBoxLayout" >
|
<layout class="QHBoxLayout">
|
||||||
<property name="margin" >
|
<property name="spacing">
|
||||||
<number>0</number>
|
|
||||||
</property>
|
|
||||||
<property name="spacing" >
|
|
||||||
<number>6</number>
|
<number>6</number>
|
||||||
</property>
|
</property>
|
||||||
|
<property name="margin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QLabel" name="icon_lbl" >
|
<widget class="QLabel" name="icon_lbl">
|
||||||
<property name="minimumSize" >
|
<property name="minimumSize">
|
||||||
<size>
|
<size>
|
||||||
<width>32</width>
|
<width>32</width>
|
||||||
<height>32</height>
|
<height>32</height>
|
||||||
</size>
|
</size>
|
||||||
</property>
|
</property>
|
||||||
<property name="maximumSize" >
|
<property name="maximumSize">
|
||||||
<size>
|
<size>
|
||||||
<width>32</width>
|
<width>32</width>
|
||||||
<height>32</height>
|
<height>32</height>
|
||||||
</size>
|
</size>
|
||||||
</property>
|
</property>
|
||||||
<property name="text" >
|
<property name="text">
|
||||||
<string/>
|
<string/>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QLabel" name="downloadURL_lbl" >
|
<widget class="QLabel" name="downloadURL_lbl">
|
||||||
<property name="font" >
|
<property name="font">
|
||||||
<font>
|
<font>
|
||||||
<family>Sans Serif</family>
|
<family>Sans Serif</family>
|
||||||
<pointsize>12</pointsize>
|
<pointsize>12</pointsize>
|
||||||
@@ -62,7 +60,7 @@
|
|||||||
<strikeout>false</strikeout>
|
<strikeout>false</strikeout>
|
||||||
</font>
|
</font>
|
||||||
</property>
|
</property>
|
||||||
<property name="text" >
|
<property name="text">
|
||||||
<string>Download Torrents from URLs</string>
|
<string>Download Torrents from URLs</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
@@ -70,21 +68,21 @@
|
|||||||
</layout>
|
</layout>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QTextEdit" name="textUrls" >
|
<widget class="QTextEdit" name="textUrls">
|
||||||
<property name="acceptRichText" >
|
<property name="acceptRichText">
|
||||||
<bool>false</bool>
|
<bool>false</bool>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QLabel" name="label_infos" >
|
<widget class="QLabel" name="label_infos">
|
||||||
<property name="maximumSize" >
|
<property name="maximumSize">
|
||||||
<size>
|
<size>
|
||||||
<width>16777215</width>
|
<width>16777215</width>
|
||||||
<height>17</height>
|
<height>17</height>
|
||||||
</size>
|
</size>
|
||||||
</property>
|
</property>
|
||||||
<property name="font" >
|
<property name="font">
|
||||||
<font>
|
<font>
|
||||||
<family>Sans Serif</family>
|
<family>Sans Serif</family>
|
||||||
<pointsize>9</pointsize>
|
<pointsize>9</pointsize>
|
||||||
@@ -95,25 +93,25 @@
|
|||||||
<strikeout>false</strikeout>
|
<strikeout>false</strikeout>
|
||||||
</font>
|
</font>
|
||||||
</property>
|
</property>
|
||||||
<property name="text" >
|
<property name="text">
|
||||||
<string>Only one URL per line</string>
|
<string>Only one URL per line</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<layout class="QHBoxLayout" >
|
<layout class="QHBoxLayout">
|
||||||
<property name="margin" >
|
<property name="spacing">
|
||||||
<number>0</number>
|
|
||||||
</property>
|
|
||||||
<property name="spacing" >
|
|
||||||
<number>6</number>
|
<number>6</number>
|
||||||
</property>
|
</property>
|
||||||
|
<property name="margin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
<item>
|
<item>
|
||||||
<spacer>
|
<spacer>
|
||||||
<property name="orientation" >
|
<property name="orientation">
|
||||||
<enum>Qt::Horizontal</enum>
|
<enum>Qt::Horizontal</enum>
|
||||||
</property>
|
</property>
|
||||||
<property name="sizeHint" >
|
<property name="sizeHint" stdset="0">
|
||||||
<size>
|
<size>
|
||||||
<width>40</width>
|
<width>40</width>
|
||||||
<height>20</height>
|
<height>20</height>
|
||||||
@@ -122,25 +120,25 @@
|
|||||||
</spacer>
|
</spacer>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QPushButton" name="downloadButton" >
|
<widget class="QPushButton" name="downloadButton">
|
||||||
<property name="text" >
|
<property name="text">
|
||||||
<string>Download</string>
|
<string>Download</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QPushButton" name="cancelButton" >
|
<widget class="QPushButton" name="cancelButton">
|
||||||
<property name="text" >
|
<property name="text">
|
||||||
<string>Cancel</string>
|
<string>Cancel</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<spacer>
|
<spacer>
|
||||||
<property name="orientation" >
|
<property name="orientation">
|
||||||
<enum>Qt::Horizontal</enum>
|
<enum>Qt::Horizontal</enum>
|
||||||
</property>
|
</property>
|
||||||
<property name="sizeHint" >
|
<property name="sizeHint" stdset="0">
|
||||||
<size>
|
<size>
|
||||||
<width>40</width>
|
<width>40</width>
|
||||||
<height>20</height>
|
<height>20</height>
|
||||||
@@ -152,7 +150,6 @@
|
|||||||
</item>
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
<pixmapfunction></pixmapfunction>
|
|
||||||
<resources/>
|
<resources/>
|
||||||
<connections/>
|
<connections/>
|
||||||
</ui>
|
</ui>
|
||||||
|
|||||||
@@ -45,9 +45,9 @@
|
|||||||
/** Download Thread **/
|
/** Download Thread **/
|
||||||
|
|
||||||
downloadThread::downloadThread(QObject* parent) : QObject(parent) {
|
downloadThread::downloadThread(QObject* parent) : QObject(parent) {
|
||||||
connect(&networkManager, SIGNAL(finished (QNetworkReply*)), this, SLOT(processDlFinished(QNetworkReply*)));
|
connect(&m_networkManager, SIGNAL(finished (QNetworkReply*)), this, SLOT(processDlFinished(QNetworkReply*)));
|
||||||
#ifndef QT_NO_OPENSSL
|
#ifndef QT_NO_OPENSSL
|
||||||
connect(&networkManager, SIGNAL(sslErrors(QNetworkReply*,QList<QSslError>)), this, SLOT(ignoreSslErrors(QNetworkReply*,QList<QSslError>)));
|
connect(&m_networkManager, SIGNAL(sslErrors(QNetworkReply*,QList<QSslError>)), this, SLOT(ignoreSslErrors(QNetworkReply*,QList<QSslError>)));
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -63,13 +63,13 @@ void downloadThread::processDlFinished(QNetworkReply* reply) {
|
|||||||
if(redirection.isValid()) {
|
if(redirection.isValid()) {
|
||||||
// We should redirect
|
// We should redirect
|
||||||
qDebug("Redirecting from %s to %s", qPrintable(url), qPrintable(redirection.toUrl().toString()));
|
qDebug("Redirecting from %s to %s", qPrintable(url), qPrintable(redirection.toUrl().toString()));
|
||||||
redirect_mapping.insert(redirection.toUrl().toString(), url);
|
m_redirectMapping.insert(redirection.toUrl().toString(), url);
|
||||||
downloadUrl(redirection.toUrl().toString());
|
downloadUrl(redirection.toUrl().toString());
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
// Checking if it was redirecting, restoring initial URL
|
// Checking if it was redirecting, restoring initial URL
|
||||||
if(redirect_mapping.contains(url)) {
|
if(m_redirectMapping.contains(url)) {
|
||||||
url = redirect_mapping.take(url);
|
url = m_redirectMapping.take(url);
|
||||||
}
|
}
|
||||||
// Success
|
// Success
|
||||||
QString filePath;
|
QString filePath;
|
||||||
@@ -104,7 +104,7 @@ void downloadThread::processDlFinished(QNetworkReply* reply) {
|
|||||||
#ifndef DISABLE_GUI
|
#ifndef DISABLE_GUI
|
||||||
void downloadThread::loadCookies(const QString &host_name, QString url) {
|
void downloadThread::loadCookies(const QString &host_name, QString url) {
|
||||||
const QList<QByteArray> raw_cookies = RssSettings().getHostNameCookies(host_name);
|
const QList<QByteArray> raw_cookies = RssSettings().getHostNameCookies(host_name);
|
||||||
QNetworkCookieJar *cookie_jar = networkManager.cookieJar();
|
QNetworkCookieJar *cookie_jar = m_networkManager.cookieJar();
|
||||||
QList<QNetworkCookie> cookies;
|
QList<QNetworkCookie> cookies;
|
||||||
qDebug("Loading cookies for host name: %s", qPrintable(host_name));
|
qDebug("Loading cookies for host name: %s", qPrintable(host_name));
|
||||||
foreach(const QByteArray& raw_cookie, raw_cookies) {
|
foreach(const QByteArray& raw_cookie, raw_cookies) {
|
||||||
@@ -115,7 +115,7 @@ void downloadThread::loadCookies(const QString &host_name, QString url) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
cookie_jar->setCookiesFromUrl(cookies, url);
|
cookie_jar->setCookiesFromUrl(cookies, url);
|
||||||
networkManager.setCookieJar(cookie_jar);
|
m_networkManager.setCookieJar(cookie_jar);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -148,12 +148,12 @@ QNetworkReply* downloadThread::downloadUrl(QString url){
|
|||||||
// Web server banning
|
// Web server banning
|
||||||
request.setRawHeader("User-Agent", "Mozilla/5.0 (X11; U; Linux i686 (x86_64); en-US; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5");
|
request.setRawHeader("User-Agent", "Mozilla/5.0 (X11; U; Linux i686 (x86_64); en-US; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5");
|
||||||
qDebug("Downloading %s...", request.url().toEncoded().data());
|
qDebug("Downloading %s...", request.url().toEncoded().data());
|
||||||
qDebug("%d cookies for this URL", networkManager.cookieJar()->cookiesForUrl(url).size());
|
qDebug("%d cookies for this URL", m_networkManager.cookieJar()->cookiesForUrl(url).size());
|
||||||
for(int i=0; i<networkManager.cookieJar()->cookiesForUrl(url).size(); ++i) {
|
for(int i=0; i<m_networkManager.cookieJar()->cookiesForUrl(url).size(); ++i) {
|
||||||
qDebug("%s=%s", networkManager.cookieJar()->cookiesForUrl(url).at(i).name().data(), networkManager.cookieJar()->cookiesForUrl(url).at(i).value().data());
|
qDebug("%s=%s", m_networkManager.cookieJar()->cookiesForUrl(url).at(i).name().data(), m_networkManager.cookieJar()->cookiesForUrl(url).at(i).value().data());
|
||||||
qDebug("Domain: %s, Path: %s", qPrintable(networkManager.cookieJar()->cookiesForUrl(url).at(i).domain()), qPrintable(networkManager.cookieJar()->cookiesForUrl(url).at(i).path()));
|
qDebug("Domain: %s, Path: %s", qPrintable(m_networkManager.cookieJar()->cookiesForUrl(url).at(i).domain()), qPrintable(m_networkManager.cookieJar()->cookiesForUrl(url).at(i).path()));
|
||||||
}
|
}
|
||||||
return networkManager.get(request);
|
return m_networkManager.get(request);
|
||||||
}
|
}
|
||||||
|
|
||||||
void downloadThread::checkDownloadSize(qint64 bytesReceived, qint64 bytesTotal) {
|
void downloadThread::checkDownloadSize(qint64 bytesReceived, qint64 bytesTotal) {
|
||||||
@@ -200,7 +200,7 @@ void downloadThread::applyProxySettings() {
|
|||||||
} else {
|
} else {
|
||||||
proxy.setType(QNetworkProxy::NoProxy);
|
proxy.setType(QNetworkProxy::NoProxy);
|
||||||
}
|
}
|
||||||
networkManager.setProxy(proxy);
|
m_networkManager.setProxy(proxy);
|
||||||
}
|
}
|
||||||
|
|
||||||
QString downloadThread::errorCodeToString(QNetworkReply::NetworkError status) {
|
QString downloadThread::errorCodeToString(QNetworkReply::NetworkError status) {
|
||||||
|
|||||||
@@ -41,34 +41,34 @@ class QNetworkAccessManager;
|
|||||||
class downloadThread : public QObject {
|
class downloadThread : public QObject {
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
private:
|
public:
|
||||||
QNetworkAccessManager networkManager;
|
downloadThread(QObject* parent = 0);
|
||||||
QHash<QString, QString> redirect_mapping;
|
QNetworkReply* downloadUrl(QString url);
|
||||||
|
void downloadTorrentUrl(QString url);
|
||||||
|
//void setProxy(QString IP, int port, QString username, QString password);
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void downloadFinished(QString url, QString file_path);
|
void downloadFinished(QString url, QString file_path);
|
||||||
void downloadFailure(QString url, QString reason);
|
void downloadFailure(QString url, QString reason);
|
||||||
|
|
||||||
public:
|
private slots:
|
||||||
downloadThread(QObject* parent);
|
|
||||||
QNetworkReply* downloadUrl(QString url);
|
|
||||||
void downloadTorrentUrl(QString url);
|
|
||||||
//void setProxy(QString IP, int port, QString username, QString password);
|
|
||||||
|
|
||||||
protected:
|
|
||||||
QString errorCodeToString(QNetworkReply::NetworkError status);
|
|
||||||
void applyProxySettings();
|
|
||||||
#ifndef DISABLE_GUI
|
|
||||||
void loadCookies(const QString &host_name, QString url);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
protected slots:
|
|
||||||
void processDlFinished(QNetworkReply* reply);
|
void processDlFinished(QNetworkReply* reply);
|
||||||
void checkDownloadSize(qint64 bytesReceived, qint64 bytesTotal);
|
void checkDownloadSize(qint64 bytesReceived, qint64 bytesTotal);
|
||||||
#ifndef QT_NO_OPENSSL
|
#ifndef QT_NO_OPENSSL
|
||||||
void ignoreSslErrors(QNetworkReply*,QList<QSslError>);
|
void ignoreSslErrors(QNetworkReply*,QList<QSslError>);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
private:
|
||||||
|
QString errorCodeToString(QNetworkReply::NetworkError status);
|
||||||
|
void applyProxySettings();
|
||||||
|
#ifndef DISABLE_GUI
|
||||||
|
void loadCookies(const QString &host_name, QString url);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
private:
|
||||||
|
QNetworkAccessManager m_networkManager;
|
||||||
|
QHash<QString, QString> m_redirectMapping;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -118,9 +118,7 @@ void GeoIPManager::loadDatabase(session *s) {
|
|||||||
#endif
|
#endif
|
||||||
if(QFile::exists(geoipDBpath(false))) {
|
if(QFile::exists(geoipDBpath(false))) {
|
||||||
qDebug("Loading GeoIP database from %s...", qPrintable(geoipDBpath(false)));
|
qDebug("Loading GeoIP database from %s...", qPrintable(geoipDBpath(false)));
|
||||||
if(!s->load_country_db(geoipDBpath(false).toLocal8Bit().constData())) {
|
s->load_country_db(geoipDBpath(false).toLocal8Bit().constData());
|
||||||
std::cerr << "Failed to load Geoip Database at " << qPrintable(geoipDBpath(false)) << std::endl;
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
qDebug("ERROR: Impossible to find local Geoip Database");
|
qDebug("ERROR: Impossible to find local Geoip Database");
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -40,15 +40,14 @@ class HeadlessLoader: public QObject {
|
|||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
public:
|
public:
|
||||||
HeadlessLoader(QStringList torrentCmdLine) {
|
HeadlessLoader(const QStringList &torrentCmdLine) {
|
||||||
Preferences pref;
|
Preferences pref;
|
||||||
// Enable Web UI
|
// Enable Web UI
|
||||||
pref.setWebUiEnabled(true);
|
pref.setWebUiEnabled(true);
|
||||||
// Instanciate Bittorrent Object
|
// Instanciate Bittorrent Object
|
||||||
BTSession = QBtSession::instance();
|
connect(QBtSession::instance(), SIGNAL(newConsoleMessage(QString)), this, SLOT(displayConsoleMessage(QString)));
|
||||||
connect(BTSession, SIGNAL(newConsoleMessage(QString)), this, SLOT(displayConsoleMessage(QString)));
|
|
||||||
// Resume unfinished torrents
|
// Resume unfinished torrents
|
||||||
BTSession->startUpTorrents();
|
QBtSession::instance()->startUpTorrents();
|
||||||
// Process command line parameters
|
// Process command line parameters
|
||||||
processParams(torrentCmdLine);
|
processParams(torrentCmdLine);
|
||||||
// Display some information to the user
|
// Display some information to the user
|
||||||
@@ -72,7 +71,7 @@ public slots:
|
|||||||
qApp->quit();
|
qApp->quit();
|
||||||
}
|
}
|
||||||
|
|
||||||
void displayConsoleMessage(QString msg) {
|
void displayConsoleMessage(const QString &msg) {
|
||||||
std::cout << qPrintable(msg) << std::endl;
|
std::cout << qPrintable(msg) << std::endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -88,24 +87,21 @@ public slots:
|
|||||||
foreach(QString param, params) {
|
foreach(QString param, params) {
|
||||||
param = param.trimmed();
|
param = param.trimmed();
|
||||||
if(param.startsWith(QString::fromUtf8("http://"), Qt::CaseInsensitive) || param.startsWith(QString::fromUtf8("ftp://"), Qt::CaseInsensitive) || param.startsWith(QString::fromUtf8("https://"), Qt::CaseInsensitive)) {
|
if(param.startsWith(QString::fromUtf8("http://"), Qt::CaseInsensitive) || param.startsWith(QString::fromUtf8("ftp://"), Qt::CaseInsensitive) || param.startsWith(QString::fromUtf8("https://"), Qt::CaseInsensitive)) {
|
||||||
BTSession->downloadFromUrl(param);
|
QBtSession::instance()->downloadFromUrl(param);
|
||||||
}else{
|
}else{
|
||||||
if(param.startsWith("bc://bt/", Qt::CaseInsensitive)) {
|
if(param.startsWith("bc://bt/", Qt::CaseInsensitive)) {
|
||||||
qDebug("Converting bc link to magnet link");
|
qDebug("Converting bc link to magnet link");
|
||||||
param = misc::bcLinkToMagnet(param);
|
param = misc::bcLinkToMagnet(param);
|
||||||
}
|
}
|
||||||
if(param.startsWith("magnet:", Qt::CaseInsensitive)) {
|
if(param.startsWith("magnet:", Qt::CaseInsensitive)) {
|
||||||
BTSession->addMagnetUri(param);
|
QBtSession::instance()->addMagnetUri(param);
|
||||||
} else {
|
} else {
|
||||||
BTSession->addTorrent(param);
|
QBtSession::instance()->addTorrent(param);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private:
|
|
||||||
QBtSession *BTSession;
|
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||