Advertisement
Guest User

Untitled

a guest
Oct 20th, 2011
333
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.77 KB | None | 0 0
  1.  
  2. #!/usr/bin/env python
  3. # -*- coding: utf-8 -*-
  4.  
  5. #import sys
  6. #import logging, traceback
  7. import urllib, Cookie
  8. from urlparse import urlparse
  9.  
  10. import wsgiref.handlers
  11. from google.appengine.api import mail
  12. from google.appengine.api import memcache
  13. from google.appengine.api import urlfetch
  14. from google.appengine.ext import webapp
  15.  
  16. class GetTorrentFile(webapp.RequestHandler):
  17.     def get(self):
  18.         url = self.request.get('url')
  19.         id = dict([part.split('=') for part in urlparse(url)[4].split('&')])['t']
  20.        
  21.         content = memcache.get(id)
  22.         if content is not None:
  23.             self.response.out.write(content)
  24.             return
  25.  
  26.         params = urllib.urlencode({'login_username': 'XXX', 'login_password': 'YYY', 'login': 'Π’Ρ…ΠΎΠ΄'})
  27.         loginUrl = "http://login.rutracker.org/forum/login.php"
  28.         torrentUrl = "http://dl.rutracker.org/forum/dl.php?t=" + id
  29.         headers = {'User-Agent': "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)"}
  30.         cookie = Cookie.SimpleCookie()
  31.        
  32.         # login
  33.         response = urlfetch.fetch(loginUrl, payload = params, method = urlfetch.POST, headers = headers, follow_redirects = False, deadline = 20)
  34.         cookie.load(response.headers.get('set-cookie', ''))
  35.  
  36.         # fetch torrent file
  37.         cookie['bb_dl'] = id
  38.         headers['Cookie'] = cookie.output(attrs = [], header = "", sep = ";")
  39.         response = urlfetch.fetch(torrentUrl, headers = headers, deadline = 20)
  40.         content = response.content
  41.        
  42.         memcache.add(id, content, 4 * 60 * 60) # cache for 4 hours
  43.         self.response.out.write(content)
  44.  
  45. application = webapp.WSGIApplication([('.*', GetTorrentFile)], debug=True)
  46. wsgiref.handlers.CGIHandler().run(application)
  47.  
  48.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement