import gradio as gr # === Sample Data === news_mentions = [ { "source": "The Daily Signal", "title": "Victor Davis Hanson: The Trump Deranged β€œExperts” Were Wrong. Again.", "link": "https://www.youtube.com/live/WPSiYIl8ZLg " }, { "source": "National Review", "title": "The Decline of Civic Identity in Modern America", "link": "https://example.com/vdh-nr-article " }, { "source": "Fox News", "title": "Hanson Warns About Cultural Erosion", "link": "https://example.com/vdh-fox-interview " } ] tv_appearances = [ { "show": "OANN Live Interview", "date": "April 5, 2024", "link": "https://example.com/vdh-oann-appearance1 " }, { "show": "Political Roundtable Discussion", "date": "March 28, 2024", "link": "https://example.com/vdh-oann-appearance2 " } ] books = [ { "title": "The Dying Citizen: How Progressive Elites, Tribalism, and Globalization Are Destroying the Idea of America", "link": "https://www.amazon.com/Dying-Citizen-Progressive-Globalization-Destroying-ebook/dp/B08W4ZZTTP?r" }, { "title": "The Second World Wars: How the First Global Conflict Was Fought and Won", "link": " https://www.amazon.com/Second-World-Wars-Global-Conflict-ebook/dp/B01N808V2J " } ] # === Helper Function (Flexible) === def display_links(data, title_key="title", link_key="link"): return "\n".join([f"- [{item[title_key]}]({item[link_key]})" for item in data]) # === Gradio Interface === with gr.Blocks(theme="soft") as demo: gr.Markdown( """ # Doctor Victor Davis Hanson News & Publications Aggregator This app aggregates publicly available mentions and publications related to **Dr. Victor Davis Hanson**, a public academic figure known for their commentary on politics and policy. The purpose of this tool is to provide a centralized resource for tracking appearances, articles, interviews, and published works β€” intended for research, media monitoring, and academic study. > πŸ” *Note: This model does not express opinions, endorse views, or verify accuracy. Users are encouraged to consult original sources for context.* """ ) with gr.Tab("News Mentions"): gr.Markdown(display_links(news_mentions)) with gr.Tab("TV Appearances"): gr.Markdown(display_links(tv_appearances, title_key="show")) with gr.Tab("Books"): gr.Markdown("## πŸ“š Books by Dr. Victor Davis Hanson\n") gr.Markdown(display_links(books)) gr.Markdown( "> πŸ“˜ These links open directly to Amazon product pages. No user data is collected via these links." ) gr.Markdown( """ ## βš–οΈ Legal & Ethical Notice - **Fair Use**: Quoted headlines and excerpts fall under U.S. fair use doctrine for purposes of research, criticism, and news reporting. - **GDPR Compliance**: This app does not collect personal data about users or store unnecessary personal information about the subject. - **Right to Be Forgotten**: If the individual or any third party requests removal of content or data, please use the Contact tab. - **No Affiliate Marketing**: We do not use Amazon affiliate links or earn revenue from book referrals. """ ) # Launch the app demo.launch()