import gradio as gr import os import requests import base64 # Get the Hugging Face token for accessing the private space hf_read_write = os.getenv('hf_read_write') print('hf_read_write = ', hf_read_write) # Load the private space interface iface = gr.load("spaces/Preeda/stock-update-processer", hf_token=hf_read_write) # Define a function to return the file for download def download_file(): # List of file URLs (replace these with your actual file URLs) file_list = [ "https://github.com/mmlanla/resource_share/raw/main/sp_1_shop_1.xlsx", "https://github.com/mmlanla/resource_share/raw/main/sp_1_shop_2.xlsx", "https://github.com/mmlanla/resource_share/raw/main/sp_1_laz_1.xlsx" # Add more URLs here ] # Loop through the file list outfile_path = [] for i, file_url in enumerate(file_list): try: print(f"Downloading file {i+1} from: {file_url}") # Download the base64 encoded file content from GitHub response = requests.get(file_url) # Ensure the download was successful if response.status_code == 200: base64_content = response.text # Get the raw text content (base64 encoded) # Decode the base64 content decoded_content = base64.b64decode(base64_content) # Save the decoded content back to a file (give it a unique name or index it) output_file = f"downloaded_file_{i+1}.xlsx" with open(output_file, "wb") as file: file.write(decoded_content) print(f"File {i+1} downloaded and saved as '{output_file}'.") abs_path = os.path.abspath(output_file) print(f"File {i+1} downloaded and saved as '{output_file}' : abs_path",abs_path) else: print(f"Failed to download file {i+1} from {file_url}. Status code: {response.status_code}") outfile_path.append(abs_path) except Exception as e: print(f"An error occurred while downloading file {i+1}: {e}") return outfile_path # Create a new Blocks interface for the download button with gr.Blocks() as demo: # Inject CSS for custom button height gr.HTML(""" """) # Add a button and file download functionality with gr.Row(): # download_btn = gr.Button("Download File 1") download_btn = gr.Button("Download File", elem_id="custom_button") file_output = gr.File(label="Get file for Shopee (shop 1)", file_types=[".xlsx"]) file_output_2 = gr.File(label="Get file for Shopee (shop 2)", file_types=[".xlsx"]) file_output_3 = gr.File(label="Get file for Lazada (shop 1)", file_types=[".xlsx"]) # Set up the button click to trigger file download download_btn.click(download_file, inputs=None, outputs=[file_output,file_output_2,file_output_3]) # Load the private interface from the space inside this block gr.Markdown("## Loaded Private Space Interface:") iface.render() # Use render() to embed the loaded space interface into this custom block # Launch the combined interface demo.launch() if 0: import gradio as gr import os # Replace 'your_token_here' with your actual Hugging Face access token # hf_token = os.environ['hf_write'] hf_read_write = os.getenv('hf_read_write') print('hf_read_write = ', hf_read_write) # os.environ['HF_TOKEN'] = ".." # Load the Space with access token # iface = gr.load("spaces/Preeda/private_test", hf_token=hf_write) # iface = gr.load("spaces/Preeda/stock_auto_update", hf_token=hf_write) iface = gr.load("spaces/Preeda/stock-update-processer", hf_token=hf_read_write) print('OK') # iface.launch(share=True, allow_flagging='never', show_download_button=True) iface.launch()