def handle_api(env): """ """ if str(env['REQUEST_METHOD']) != 'POST': return None if not loggedin_and_require(env): return ['403 Forbidden', [('Content-Type', 'application/json')], json.dumps(None, indent=' ' * 4)] # Get JSON request via POST data data = read_post_data(env) request = urllib.unquote_plus(data['request'].value) print 'Request:', repr(request) d = json.loads(request) r = [] for x in d: if 'type' in x: print 'Method:', x['type'] r.append(env, handle_api_method(x['type'], x)) return ['200 OK', [('Content-Type', 'application/json')], \ json.dumps(r, indent=' ' * 4)]
def main_view_page(env, view): """ Main page. Shows all torrents, per target. Does two XMLRPC calls per target. """ if not loggedin_and_require(env): return handle_login(env) rtorrent_data = fetch_global_info() user = fetch_user(env) # if view not in rtorrent_data.get_view_list: # return error_page(env, 'Invalid view: %s' % view) torrents = {} for target in targets: if user == None and USE_AUTH: continue if user and (target['name'] not in user.targets): continue try: t = TorrentRequester(target, view) t.get_name().get_download_rate().get_upload_rate() \ .is_complete().get_size_bytes().get_download_total().get_hash() torrents[target['name']] = t.all() except InvalidTorrentException, e: return error_page(env, str(e))
def webtool_func(env, *args, **key_args): """ webtool internal function wrapper """ # Force a login if necessary if require_login: if not loggedin_and_require(env): return handle_login(env) # Lookup user try: user_name = env['beaker.session']['user_name'] user = lookup_user(user_name) except KeyError, e: user = None
def add_torrent_page(env, target): """ Page for adding torrents. Works: Adding a correct torrent (URL only) What doesn't work: Error handling, Uploading .torrent files Option to add and start, or not start on add """ if not loggedin_and_require(env): return handle_login(env) target = lookup_target(target) if target is None: return None # 404 try: user_name = env['beaker.session']['user_name'] user = lookup_user(user_name) except KeyError, e: user = None
def pyroview_func(*args, **key_args): """ pyroview internal function wrapper """ print "pyroview_func" print args, key_args # Force a login if necessary if require_login: if not loggedin_and_require(): # If you wonder why the definition of the # following function is nowhere to be found, check # '/pyrotorrent.py'. return handle_login() # Lookup user try: user_name = session['user_name'] user = lookup_user(user_name) except KeyError, e: user = None