def test_get_files_details(self): """ Test getting the name, length and checksum of the files inside a valid torrent file. """ import os for torrent_file in TORRENTS_INFO: tp = TorrentParser("test_data/%s" % torrent_file) self.assertItemsEqual(tp.get_files_details(), TORRENTS_INFO[torrent_file]["file_details"])
def test_get_creation_date(self): """ Test getting creation date from a valid torrent file. """ for torrent_file in TORRENTS_INFO: tp = TorrentParser("test_data/%s" % torrent_file) self.assertEqual( tp.get_creation_date(), datetime.utcfromtimestamp(TORRENTS_INFO[torrent_file]["creation_date"]).isoformat(), )
from torrentparser import TorrentParser torrent_info = TorrentParser('test_torrents/rs.torrent') x = torrent_info.get_files_details() print type(x) for t in x: #print t print "Name: %s, Size: %d" %(t[0], t[1])
def test_get_client_name(self): """ Test getting Client name from a valid torrent file. """ for torrent_file in TORRENTS_INFO: tp = TorrentParser("test_data/%s" % torrent_file) self.assertEqual(tp.get_client_name(), TORRENTS_INFO[torrent_file]["client_name"])
def test_get_tracker_url(self): """ Test getting Tracker URL from a valid torrent file. """ for torrent_file in TORRENTS_INFO: tp = TorrentParser("test_data/%s" % torrent_file) self.assertEqual(tp.get_tracker_url(), TORRENTS_INFO[torrent_file]["tracker_url"])
import socket from requests.exceptions import RequestException, Timeout from pymongo import Connection from config import MONGO, UPDATE_NUM, REQUEST_TIMEOUT from torrentparser import TorrentParser, ParsingError from log_manager import LogManager # TOOD single file mongo = Connection(host=MONGO['host'], port=MONGO['port']) db = mongo[MONGO['db']] logger = LogManager("application.log") # TODO implement it in C tp = TorrentParser.get_instance() #parse torrent file def parse_torrent_file(file): try: tp.parse_torrent(file) return { "name": tp.get_torrent_name(), "file_list": tp.get_files_details(), "creation_date": tp.get_creation_date(), "tracker_url": tp.get_tracker_url(), "client_name": tp.get_client_name(), # TODO how to get torrent description? "description": None, "parse_result": 'ok'