Skip to content

Instantly share code, notes, and snippets.

@asm0dey
Last active January 2, 2016 16:39
Show Gist options
  • Save asm0dey/8331623 to your computer and use it in GitHub Desktop.
Save asm0dey/8331623 to your computer and use it in GitHub Desktop.
Little bottle server to download torrents from rutracker. requires bottle
# coding=utf-8
import requests
from argparse import ArgumentParser
from bottle import route, run, response
@route('/<id>.torrent')
def download_rutracker_torrent(id):
headers = {'referer': "http://rutracker.org/forum/viewtopic.php?t=" + id,
"Content-Type": "application/x-www-form-urlencoded", "t": id}
data = 't=' + id
r = requests.post("http://dl.rutracker.org/forum/dl.php?t=" + id, data=data, headers=headers, cookies=cookies,
stream=True)
response.content_type = 'application/x-bittorrent'
return r.raw
if __name__ == '__main__':
parser = ArgumentParser()
parser.add_argument('-u', '--username', nargs='?', help='username', required=True, dest='username')
parser.add_argument('-p', '--password', nargs='?', help='password', required=True, dest='password')
parser.add_argument('-P', '--port', nargs='?', type=int, help='port', dest='port')
args = parser.parse_args()
payload = {'login_username': args.username, 'login_password': args.password, 'login': 'Вход'}
authResponse = requests.post("http://login.rutracker.org/forum/login.php", data=payload)
cookies = authResponse.cookies
run(port=8081 if args.port is None else args.port, debug=True)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment