78 lines
1.9 KiB
Python
78 lines
1.9 KiB
Python
#!/usr/bin/env python
|
|
import time
|
|
import io
|
|
|
|
from bs4 import BeautifulSoup
|
|
from bs4 import Tag
|
|
|
|
from u2torrent import U2Torrent
|
|
|
|
import requests
|
|
import itertools
|
|
import json
|
|
|
|
__author__ = 'ty'
|
|
|
|
config = json.load(open('config.json'))
|
|
|
|
url = 'https://u2.dmhy.org/getusertorrentlistajax.php?userid='+config["uid"]+'&type=seeding'
|
|
|
|
info_url = 'https://u2.dmhy.org/torrent_info.php?id='
|
|
|
|
cookies = dict(
|
|
nexusphp_u2=config["nexusphp_u2"],
|
|
__cfduid=config["__cfduid"])
|
|
|
|
r = requests.get(url, cookies=cookies)
|
|
|
|
soup = BeautifulSoup(r.text)
|
|
|
|
td_list = soup.find_all('td', {'class': 'rowfollow nowrap'})
|
|
|
|
table_list = soup.find_all('table', {'class': 'torrentname'})
|
|
|
|
torrents_dict = {}
|
|
torrents = []
|
|
|
|
count = 0
|
|
|
|
for td, table in itertools.izip(td_list, table_list):
|
|
|
|
catalog = ""
|
|
for s in td.contents[0].contents:
|
|
if isinstance(s, Tag):
|
|
catalog += " "
|
|
else:
|
|
catalog = catalog + s
|
|
u2torrent = U2Torrent()
|
|
|
|
u2torrent.catalog = catalog
|
|
u2torrent.title = table.find('b').string
|
|
u2torrent.description = table.find('span').string
|
|
|
|
u2torrent.id = int(table.find('a').get('href').split('&')[0].split('=')[1])
|
|
|
|
info_r = requests.get(info_url + str(u2torrent.id), cookies=cookies)
|
|
|
|
try:
|
|
info_soup = BeautifulSoup(info_r.text)
|
|
|
|
info_name = info_soup.find("span", {'class': 'title'}, text="[name]").parent.find("span", {'class': 'value'})
|
|
u2torrent.folder = info_name.text
|
|
|
|
u2torrent.name = u2torrent.title.split('][')[0].replace('[', '')
|
|
|
|
print u2torrent.name + " : " + u2torrent.folder
|
|
|
|
torrents.append(json.JSONDecoder().decode(u2torrent.json()))
|
|
count += 1
|
|
except AttributeError:
|
|
print "Fetch folder name failed: " + u2torrent.title
|
|
time.sleep(3)
|
|
|
|
torrents_dict["count"] = count
|
|
torrents_dict["torrents"] = torrents
|
|
|
|
with io.open('seeding.json', 'w', encoding='utf-8') as f:
|
|
f.write(unicode(json.dumps(torrents_dict, indent=2, ensure_ascii=False)))
|