Browse Source

Fixed issue retrieving seeders and leechers which caused searching to fail on IPT

pull/2711/head
Dean Gardiner 11 years ago
parent
commit
4147c5b870
  1. 31
      couchpotato/core/providers/torrent/iptorrents/main.py

31
couchpotato/core/providers/torrent/iptorrents/main.py

@ -1,5 +1,5 @@
from bs4 import BeautifulSoup from bs4 import BeautifulSoup
from couchpotato.core.helpers.encoding import tryUrlencode from couchpotato.core.helpers.encoding import tryUrlencode, toSafeString
from couchpotato.core.helpers.variable import tryInt from couchpotato.core.helpers.variable import tryInt
from couchpotato.core.logger import CPLog from couchpotato.core.logger import CPLog
from couchpotato.core.providers.torrent.base import TorrentProvider from couchpotato.core.providers.torrent.base import TorrentProvider
@ -57,21 +57,27 @@ class IPTorrents(TorrentProvider):
entries = result_table.find_all('tr') entries = result_table.find_all('tr')
columns = self.getColumns(entries)
if 'seeders' not in columns or 'leechers' not in columns:
log.warning('Unrecognized table format returned')
return
for result in entries[1:]: for result in entries[1:]:
torrent = result.find_all('td') cells = result.find_all('td')
if len(torrent) <= 1: if len(cells) <= 1:
break break
torrent = torrent[1].find('a') torrent = cells[1].find('a')
torrent_id = torrent['href'].replace('/details.php?id=', '') torrent_id = torrent['href'].replace('/details.php?id=', '')
torrent_name = torrent.string torrent_name = torrent.string
torrent_download_url = self.urls['base_url'] + (result.find_all('td')[3].find('a'))['href'].replace(' ', '.') torrent_download_url = self.urls['base_url'] + (result.find_all('td')[3].find('a'))['href'].replace(' ', '.')
torrent_details_url = self.urls['base_url'] + torrent['href'] torrent_details_url = self.urls['base_url'] + torrent['href']
torrent_size = self.parseSize(result.find_all('td')[5].string) torrent_size = self.parseSize(result.find_all('td')[5].string)
torrent_seeders = tryInt(result.find('td', attrs = {'class' : 'ac t_seeders'}).string) torrent_seeders = tryInt(cells[columns['seeders']].string)
torrent_leechers = tryInt(result.find('td', attrs = {'class' : 'ac t_leechers'}).string) torrent_leechers = tryInt(cells[columns['leechers']].string)
results.append({ results.append({
'id': torrent_id, 'id': torrent_id,
@ -89,6 +95,19 @@ class IPTorrents(TorrentProvider):
current_page += 1 current_page += 1
def getColumns(self, entries):
result = {}
for x, col in enumerate(entries[0].find_all('th')):
key = toSafeString(col.text).strip().lower()
if not key:
continue
result[key] = x
return result
def getLoginParams(self): def getLoginParams(self):
return { return {
'username': self.conf('username'), 'username': self.conf('username'),

Loading…
Cancel
Save