import os from pathlib import Path import gradio as gr from rich.console import Console from rich.syntax import Syntax proj_dir = Path(__name__).parent subreddit = os.environ["SUBREDDIT"] username = os.environ["USERNAME"] dataset_name = f"{username}/dataset-creator-{subreddit}" with open(proj_dir / "media/reddit_scraper.drawio.html", "r") as f: html_string = f.read() html_string.replace("SPACE_NAME", f"{username}/reddit-dataset-creator") html_string.replace("SPACE_LINK", f"https://huggingface.co/spaces/{username}/reddit-dataset-creator") html_string.replace("DATASET_NAME", f"{username}/dataset-creator-{subreddit}") html_string.replace("DATASET_LINK", f"https://huggingface.co/datasets/{username}/dataset-creator-{subreddit}") def log_file_to_html_string(): log_file = "mylog.log" console = Console(record=True, width=150) with open(log_file, "rt") as f: syntax = Syntax(f.read(), "python", theme="monokai", word_wrap=True) console.print(syntax) html_content = console.export_html(inline_styles=True) return html_content # theme = gr.themes.Default().set( # body_background_fill="repeating-linear-gradient(45deg, *primary_800, *primary_800 10px, *primary_900 10px, *primary_900 20px)", # body_background_fill_dark="repeating-linear-gradient(45deg, *primary_800, *primary_800 10px, *primary_900 10px, *primary_900 20px)", # ) markdown = f""" # Reddit Scraper This is a reddit scraper which builds [{dataset_name}](https://huggingface.co/datasets/{dataset_name}). See the diagram below: {html_string} """ with gr.Blocks() as demo: name = gr.Markdown(markdown) output = gr.HTML(log_file_to_html_string, every=1) demo.load(None, _js=""" () => { document.body.classList.toggle('dark'); document.querySelector('gradio-app').style.backgroundColor = 'var(--color-background-primary)' } """, ) if __name__ == '__main__': demo.launch(server_name="0.0.0.0", show_error=True, server_port=7860, enable_queue=True)