import urllib.parse
import time
import logging
# Configure logging
logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
def decode_url_list(url_list, task_duration=60):
"""
Decodes a list of URLs for short-lived tasks with verbose logging.
Args:
url_list (list): A list of URLs to decode.
task_duration (int): Duration of the task in seconds.
Returns:
list: A list of decoded URLs. Returns an empty list if an error occurs.
"""
decoded_urls = []
start_time = time.time()
for url in url_list:
try:
# Decode the URL
parsed_url = urllib.parse.urlparse(url)
decoded_url = parsed_url.geturl()
decoded_urls.append(decoded_url)
logging.info(f"Successfully decoded: {url} -> {decoded_url}")
except Exception as e:
logging.error(f"Error decoding URL {url}: {e}")
end_time = time.time()
logging.info(f"URL decoding completed in {end_time - start_time:.2f} seconds.")
return decoded_urls
if __name__ == '__main__':
# Example usage
url_list = [
"https://www.example.com/path?query=value1&another=value2",
"http://subdomain.example.org/resource",
"ftp://ftp.example.net/file.txt"
]
decoded_urls = decode_url_list(url_list)
print(decoded_urls)
Add your comment