"""
WGet Library
"""
from tools import which,TRUE,FALSE
from log4py import Logger
from os import spawnv,P_WAIT
from string import join
class wget:
recursive = FALSE # recursive web-suck
tries = -1 # number of retries
username = "" # HTTP user
password = "" # HTTP password
timestamping = FALSE # don't re-retrieve files unless newer than local
level = -1 # maximum recursion depth (0 for infinite)
quiet = TRUE # turn off Wget's output
relative = TRUE # follow relative links only
def __init__(self):
self.__wget_logger = Logger().get_instance(self)
self.__wget_command = which("wget")
if (self.__wget_command == ""):
self.__wget_logger.error("wget executable not found.")
def set_source(self, url):
self.__wget_url = url
def set_target(self, directory):
self.__wget_target_directory = directory
def arguments(self):
""" Returns a list of all arguments defined by the class attributes. """
args = []
if (self.recursive): args.append("--recursive")
if (self.tries != -1): args.append("--tries=%d" % self.tries)
if (self.username != ""): args.append("--http-user=%s" % self.username)
if (self.password != ""): args.append("--http-passwd=%s" % self.password)
if (self.timestamping): args.append("--timestamping")
if (self.level != -1): args.append("--level=%d" % self.level)
if (self.quiet == TRUE): args.append("--quiet")
if (self.relative == TRUE): args.append("--relative")
args.append("--directory-prefix=%s" % self.__wget_target_directory)
args.append("%s" % self.__wget_url)
self.__wget_logger.debug("Command arguments: %s" % join(args))
return args
def executable(self):
""" Returns the full path to the wget executable. """
return self.__wget_command
def execute(self, show_output = TRUE):
args = self.arguments()
if (show_output == FALSE):
args.insert(0, "--quiet")
self.__wget_logger.debug("Executing: %s %s" % (self.__wget_command, join(args)))
return spawnv(P_WAIT, self.__wget_command, args)
|