diff --git a/weboob/applications/qcineoob/main_window.py b/weboob/applications/qcineoob/main_window.py
index 1815a960..daf20bbe 100644
--- a/weboob/applications/qcineoob/main_window.py
+++ b/weboob/applications/qcineoob/main_window.py
@@ -25,6 +25,7 @@ from weboob.capabilities.torrent import ICapTorrent
from weboob.tools.application.qt import QtMainWindow, QtDo
from weboob.tools.application.qt.backendcfg import BackendCfg
+
from weboob.applications.qcineoob.ui.main_window_ui import Ui_MainWindow
from .minimovie import MiniMovie
@@ -247,13 +248,13 @@ class MainWindow(QtMainWindow):
self.ui.list_content.layout().addWidget(minitorrent)
self.minis.append(minitorrent)
- def displayTorrent(self, torrent):
+ def displayTorrent(self, torrent, backend):
self.ui.stackedWidget.setCurrentWidget(self.ui.info_page)
if self.current_info_widget != None:
self.ui.info_content.layout().removeWidget(self.current_info_widget)
self.current_info_widget.hide()
self.current_info_widget.deleteLater()
- wtorrent = Torrent(torrent,self)
+ wtorrent = Torrent(torrent, backend, self)
self.ui.info_content.layout().addWidget(wtorrent)
self.current_info_widget = wtorrent
diff --git a/weboob/applications/qcineoob/minimovie.py b/weboob/applications/qcineoob/minimovie.py
index b856fd17..c473351e 100644
--- a/weboob/applications/qcineoob/minimovie.py
+++ b/weboob/applications/qcineoob/minimovie.py
@@ -21,9 +21,8 @@ import urllib
from PyQt4.QtGui import QFrame, QImage, QPixmap
-from weboob.tools.application.qt import QtDo
from weboob.applications.qcineoob.ui.minimovie_ui import Ui_MiniMovie
-from weboob.capabilities.base import NotAvailable, NotLoaded
+from weboob.capabilities.base import NotAvailable
class MiniMovie(QFrame):
def __init__(self, weboob, backend, movie, parent=None):
@@ -39,9 +38,6 @@ class MiniMovie(QFrame):
self.ui.shortDescLabel.setText(movie.short_description)
self.ui.backendLabel.setText(backend.name)
- #self.process_thumbnail = QtDo(self.weboob, self.gotThumbnail)
- #self.process_thumbnail.do('fillobj', self.movie, ['thumbnail_url'], backends=backend)
-
def gotThumbnail(self, backend, movie):
if self.movie.thumbnail_url != NotAvailable:
data = urllib.urlopen(self.movie.thumbnail_url).read()
diff --git a/weboob/applications/qcineoob/miniperson.py b/weboob/applications/qcineoob/miniperson.py
index 6361ce61..92f59049 100644
--- a/weboob/applications/qcineoob/miniperson.py
+++ b/weboob/applications/qcineoob/miniperson.py
@@ -21,9 +21,8 @@ import urllib
from PyQt4.QtGui import QFrame, QImage, QPixmap
-from weboob.tools.application.qt import QtDo
from weboob.applications.qcineoob.ui.miniperson_ui import Ui_MiniPerson
-from weboob.capabilities.base import NotAvailable, NotLoaded
+from weboob.capabilities.base import NotAvailable
class MiniPerson(QFrame):
def __init__(self, weboob, backend, person, parent=None):
@@ -39,9 +38,6 @@ class MiniPerson(QFrame):
self.ui.shortDescLabel.setText('%s'%person.short_description)
self.ui.backendLabel.setText(backend.name)
- #self.process_thumbnail = QtDo(self.weboob, self.gotThumbnail)
- #self.process_thumbnail.do('fillobj', self.person, ['thumbnail_url'], backends=backend)
-
def gotThumbnail(self, backend, person):
if self.person.thumbnail_url != NotAvailable:
data = urllib.urlopen(self.person.thumbnail_url).read()
diff --git a/weboob/applications/qcineoob/minitorrent.py b/weboob/applications/qcineoob/minitorrent.py
index f9ac1df5..c55c4508 100644
--- a/weboob/applications/qcineoob/minitorrent.py
+++ b/weboob/applications/qcineoob/minitorrent.py
@@ -17,13 +17,10 @@
# You should have received a copy of the GNU Affero General Public License
# along with weboob. If not, see .
-import urllib
+from PyQt4.QtGui import QFrame
-from PyQt4.QtGui import QFrame, QImage, QPixmap
-
-from weboob.tools.application.qt import QtDo
from weboob.applications.qcineoob.ui.minitorrent_ui import Ui_MiniTorrent
-from weboob.capabilities.base import NotAvailable, NotLoaded
+from weboob.capabilities.base import NotAvailable
class MiniTorrent(QFrame):
def __init__(self, weboob, backend, torrent, parent=None):
@@ -53,4 +50,4 @@ class MiniTorrent(QFrame):
torrent = self.backend.get_torrent(self.torrent.id)
if torrent:
- self.parent.doAction('Details of torrent "%s"'%torrent.name,self.parent.displayTorrent,[torrent])
+ self.parent.doAction('Details of torrent "%s"'%torrent.name,self.parent.displayTorrent,[torrent,self.backend])
diff --git a/weboob/applications/qcineoob/movie.py b/weboob/applications/qcineoob/movie.py
index 0208fc6f..3069cc8c 100644
--- a/weboob/applications/qcineoob/movie.py
+++ b/weboob/applications/qcineoob/movie.py
@@ -19,11 +19,11 @@
import urllib
-from PyQt4.QtCore import QUrl,Qt,SIGNAL
+from PyQt4.QtCore import Qt,SIGNAL
from PyQt4.QtGui import QFrame, QImage, QPixmap
from weboob.applications.qcineoob.ui.movie_ui import Ui_Movie
-from weboob.capabilities.base import NotAvailable, NotLoaded
+from weboob.capabilities.base import NotAvailable
from weboob.applications.suboob.suboob import LANGUAGE_CONV
class Movie(QFrame):
@@ -39,6 +39,7 @@ class Movie(QFrame):
self.connect(self.ui.castingButton, SIGNAL("clicked()"), self.casting)
self.connect(self.ui.torrentButton, SIGNAL("clicked()"), self.searchTorrent)
+ self.connect(self.ui.subtitleButton, SIGNAL("clicked()"), self.searchSubtitle)
self.movie = movie
self.ui.titleLabel.setText(movie.original_title)
@@ -62,6 +63,12 @@ class Movie(QFrame):
img = QImage.fromData(data)
self.ui.imageLabel.setPixmap(QPixmap.fromImage(img))
+ def searchSubtitle(self):
+ tosearch = self.movie.original_title
+ lang = unicode(self.ui.langCombo.currentText())
+ desc = 'Search subtitles for "%s" (lang:%s)'%(tosearch,lang)
+ self.parent.doAction(desc, self.parent.searchSubtitleAction,[lang,tosearch])
+
def searchTorrent(self):
tosearch = self.movie.original_title
if self.movie.release_date != NotAvailable:
diff --git a/weboob/applications/qcineoob/person.py b/weboob/applications/qcineoob/person.py
index c5a632c7..ffbeabb4 100644
--- a/weboob/applications/qcineoob/person.py
+++ b/weboob/applications/qcineoob/person.py
@@ -19,11 +19,11 @@
import urllib
-from PyQt4.QtCore import QUrl,Qt,SIGNAL
+from PyQt4.QtCore import SIGNAL
from PyQt4.QtGui import QFrame, QImage, QPixmap
from weboob.applications.qcineoob.ui.person_ui import Ui_Person
-from weboob.capabilities.base import NotAvailable, NotLoaded
+from weboob.capabilities.base import NotAvailable
class Person(QFrame):
def __init__(self, person, parent=None):
diff --git a/weboob/applications/qcineoob/torrent.py b/weboob/applications/qcineoob/torrent.py
index 5b120866..9a86025f 100644
--- a/weboob/applications/qcineoob/torrent.py
+++ b/weboob/applications/qcineoob/torrent.py
@@ -17,34 +17,56 @@
# You should have received a copy of the GNU Affero General Public License
# along with weboob. If not, see .
-import urllib
+import sys
-from PyQt4.QtCore import QUrl,Qt,SIGNAL
-from PyQt4.QtGui import QFrame, QImage, QPixmap
+from PyQt4.QtCore import Qt,SIGNAL
+from PyQt4.QtGui import QFrame, QFileDialog
from weboob.applications.qcineoob.ui.torrent_ui import Ui_Torrent
from weboob.capabilities.base import NotAvailable, NotLoaded
class Torrent(QFrame):
- def __init__(self, torrent, parent=None):
+ def __init__(self, torrent, backend, parent=None):
QFrame.__init__(self, parent)
self.parent = parent
+ self.backend = backend
self.ui = Ui_Torrent()
self.ui.setupUi(self)
- #self.connect(self.ui.downloadButton, SIGNAL("clicked()"), self.download)
+ self.connect(self.ui.downloadButton, SIGNAL("clicked()"), self.download)
self.torrent = torrent
self.ui.nameLabel.setText(u'%s'%torrent.name)
+ if torrent.url != NotAvailable:
+ self.ui.urlEdit.setText(u'%s'%torrent.url)
+ else:
+ self.ui.urlFrame.hide()
+ self.ui.downloadButton.setDisabled(True)
+ self.ui.downloadButton.setToolTip('Use the magnet link')
+ if torrent.magnet != NotAvailable and torrent.magnet != NotLoaded:
+ self.ui.magnetEdit.setText(u'%s'%torrent.magnet)
+ else:
+ self.ui.magnetFrame.hide()
self.ui.verticalLayout.setAlignment(Qt.AlignTop)
def download(self):
- role = None
- tosearch = self.ui.castingCombo.currentText()
- role_desc = ''
- if tosearch != 'all':
- role = tosearch[:-1]
- role_desc = ' as %s'%role
- self.parent.doAction('Casting%s of movie "%s"'%(role_desc,self.movie.original_title),
- self.parent.castingAction,[self.movie.id,role])
+ fileDial = QFileDialog(self,'Save "%s" torrent file'%self.torrent.name,'%s.torrent'%self.torrent.name,'Torrent file (*.torrent);;all files (*)')
+ fileDial.setAcceptMode(QFileDialog.AcceptSave)
+ fileDial.setLabelText(QFileDialog.Accept,'Save torrent file')
+ fileDial.setLabelText(QFileDialog.FileName,'Torrent file name')
+ ok = (fileDial.exec_() == 1)
+ if not ok:
+ return
+ result = fileDial.selectedFiles()
+ if len(result) > 0:
+ dest = result[0]
+ data = self.backend.get_torrent_file(self.torrent.id)
+ try:
+ with open(dest, 'w') as f:
+ f.write(data)
+ except IOError, e:
+ print >>sys.stderr, 'Unable to write .torrent in "%s": %s' % (dest, e)
+ return 1
+ return
+
diff --git a/weboob/applications/qcineoob/ui/torrent.ui b/weboob/applications/qcineoob/ui/torrent.ui
index ad999ae4..ec9f43f0 100644
--- a/weboob/applications/qcineoob/ui/torrent.ui
+++ b/weboob/applications/qcineoob/ui/torrent.ui
@@ -207,7 +207,7 @@
-
-
+
16777215
@@ -240,6 +240,40 @@
+ -
+
+
+
+ 16777215
+ 40
+
+
+
+ QFrame::StyledPanel
+
+
+ QFrame::Raised
+
+
+
+ 3
+
+
+ 3
+
+
-
+
+
+ Magnet:
+
+
+
+ -
+
+
+
+
+