[qcineoob] download torrent operational
This commit is contained in:
parent
e98008338a
commit
23dde42186
8 changed files with 89 additions and 36 deletions
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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()
|
||||
|
|
|
|||
|
|
@ -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()
|
||||
|
|
|
|||
|
|
@ -17,13 +17,10 @@
|
|||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with weboob. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
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])
|
||||
|
|
|
|||
|
|
@ -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:
|
||||
|
|
|
|||
|
|
@ -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):
|
||||
|
|
|
|||
|
|
@ -17,34 +17,56 @@
|
|||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with weboob. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
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
|
||||
|
||||
|
|
|
|||
|
|
@ -207,7 +207,7 @@
|
|||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QFrame" name="frame_7">
|
||||
<widget class="QFrame" name="urlFrame">
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>16777215</width>
|
||||
|
|
@ -240,6 +240,40 @@
|
|||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QFrame" name="magnetFrame">
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>16777215</width>
|
||||
<height>40</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="frameShape">
|
||||
<enum>QFrame::StyledPanel</enum>
|
||||
</property>
|
||||
<property name="frameShadow">
|
||||
<enum>QFrame::Raised</enum>
|
||||
</property>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_10">
|
||||
<property name="topMargin">
|
||||
<number>3</number>
|
||||
</property>
|
||||
<property name="bottomMargin">
|
||||
<number>3</number>
|
||||
</property>
|
||||
<item>
|
||||
<widget class="QLabel" name="label_8">
|
||||
<property name="text">
|
||||
<string>Magnet:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLineEdit" name="magnetEdit"/>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue