Example #1
0
def run(conf_dir, http_ip, http_port):
    common.conf = config.ConfigDir(conf_dir)
    if common.conf.get_rt() is not None:
        print("Filling torrent cache. May take some time.")
        actions.get_torrents_and_update_cache()
        common.recent_torrent_dests = actions.get_recent_torrent_dests() # TODO: there's probably a better place for this
        print("Caching complete, starting server.")
        
        
    import http
    http.run_server(http_ip, http_port)
Example #2
0
 def main(self):
     args = web.input()
     rpc_ids = args.get("rpc_id", None)
     rt = common.conf.get_rt()
     json_data = {}
     json_data["torrents"] = []
     json_data["client_info"] = {}
     json_data["trackers"] = {}
     json_data["error_code"] = 0
     json_data["error_msg"] = ""
     
     if rt is not None:
         rt.update()
         torrents = actions.get_torrents_and_update_cache()
         json_data["trackers"] = common.conf.tracker_cache
         
         # if specific rpc ids were specified
         if rpc_ids is not None:
             #rpc_ids = parse_qs(rpc_ids).get("ids", []) # not needed?
             if isinstance(rpc_ids, (str, unicode)): rpc_ids = [rpc_ids]
         
             for rpc_id in rpc_ids:
                 t = actions.get_torrent(rpc_id)
                 json_data["torrents"].append(actions.build_torrent_info(t))
     
         else:
             # return all torrents (plus extra info)
             try:
                 du = utils.get_disk_usage(common.conf.settings["du_path"])
             except OSError:
                 print("{0} not found".format(common.conf.settings["du_path"]))
                 du = utils.get_disk_usage("/")
                 
             json_data["torrents"] = actions.build_torrent_info(torrents)        
         
             json_data["client_info"]["disk_free_str"] = formatters.format_size(du.free)
             json_data["client_info"]["disk_total_str"] = formatters.format_size(du.total)
             json_data["client_info"]["disk_free_percentage"] = formatters.format_percentage(du.free, du.total)
             json_data["client_info"]["down_rate"] = formatters.format_speed(rt.down_rate)
             json_data["client_info"]["up_rate"] = formatters.format_speed(rt.up_rate)
             json_data["client_info"]["client_version"] = rt.client_version
             json_data["client_info"]["library_version"] = rt.library_version
             json_data["client_info"]["dartui_version"] = common.__version__
             json_data["client_info"]["recent_torrent_dests"] = common.recent_torrent_dests
     else:
         json_data["error_code"] = 1
         json_data["error_msg"] = "Couldn't connect to rTorrent."
   
     return(to_json(json_data))