Skip to content

Commit ebf76fd

Browse files
committed
wip
1 parent c762413 commit ebf76fd

File tree

8 files changed

+6787
-18
lines changed

8 files changed

+6787
-18
lines changed

frontend/.astro/settings.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"_variables": {
3+
"lastUpdateCheck": 1757448975604
4+
}
5+
}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
<!DOCTYPE html><html lang="en"> <head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><title>Auto Source - html2rss-web</title><meta name="description" content="Convert websites to RSS feeds instantly with html2rss-web"><link href="/styles.css" rel="stylesheet"><link rel="icon" href="/favicon.ico" type="image/x-icon"><style>.auto-source-form[data-astro-cid-7znq4fz4]{max-width:600px;margin:2rem 0}.form-group[data-astro-cid-7znq4fz4]{margin-bottom:1rem}.form-group[data-astro-cid-7znq4fz4] label[data-astro-cid-7znq4fz4]{display:block;margin-bottom:.5rem;font-weight:700}.form-group[data-astro-cid-7znq4fz4] input[data-astro-cid-7znq4fz4],.form-group[data-astro-cid-7znq4fz4] select[data-astro-cid-7znq4fz4]{width:100%;padding:.5rem;border:1px solid #ddd;border-radius:4px;font-size:1rem}.form-group[data-astro-cid-7znq4fz4] input[data-astro-cid-7znq4fz4]:focus,.form-group[data-astro-cid-7znq4fz4] select[data-astro-cid-7znq4fz4]:focus{outline:2px solid #007bff;outline-offset:2px}.help-text[data-astro-cid-7znq4fz4]{font-size:.875rem;color:#666;margin:.25rem 0 0}.error-area[data-astro-cid-7znq4fz4]{margin-top:2rem;padding:1rem;background:#f8d7da;border:1px solid #f5c6cb;border-radius:4px;color:#721c24}.result-area[data-astro-cid-7znq4fz4]{margin-top:2rem;padding:1rem;background:#f5f5f5;border-radius:4px}.feed-info[data-astro-cid-7znq4fz4]{margin-top:1rem}.feed-info[data-astro-cid-7znq4fz4] p[data-astro-cid-7znq4fz4]{margin:.5rem 0}.info[data-astro-cid-7znq4fz4]{margin-top:3rem;padding:1rem;background:#e8f4f8;border-radius:4px}.info[data-astro-cid-7znq4fz4] ul[data-astro-cid-7znq4fz4]{margin:1rem 0;padding-left:1.5rem}.info[data-astro-cid-7znq4fz4] li[data-astro-cid-7znq4fz4]{margin:.5rem 0}.restrictions[data-astro-cid-7znq4fz4]{margin-top:2rem;padding:1rem;background:#fff3cd;border:1px solid #ffeaa7;border-radius:4px}.restrictions[data-astro-cid-7znq4fz4] h4[data-astro-cid-7znq4fz4]{margin:0 0 .5rem;color:#856404}.restrictions[data-astro-cid-7znq4fz4] p[data-astro-cid-7znq4fz4]{margin:.5rem 0;color:#856404}.restrictions[data-astro-cid-7znq4fz4] ul[data-astro-cid-7znq4fz4]{margin:.5rem 0;padding-left:1.5rem}.restrictions[data-astro-cid-7znq4fz4] li[data-astro-cid-7znq4fz4]{margin:.25rem 0;color:#856404}
2+
</style><script type="module">document.getElementById("auto-source-form").addEventListener("submit",async t=>{t.preventDefault();const e=new FormData(t.target),r=e.get("url"),o=e.get("strategy");if(r)try{const s=`/auto_source/${btoa(r)}?strategy=${o}`,l=document.getElementById("result"),c=document.getElementById("feed-url"),a=document.getElementById("subscribe-link");c.textContent=s,a.href=s,l.style.display="block",l.scrollIntoView({behavior:"smooth"})}catch(n){console.error("Error generating feed:",n),d("Error generating feed. Please try again.")}});function d(t){const e=document.getElementById("error"),r=document.getElementById("error-message"),o=document.getElementById("result");o.style.display="none",r.textContent=t,e.style.display="block",e.scrollIntoView({behavior:"smooth"})}
3+
</script></head> <body> <header> <h1><a href="/" aria-label="html2rss-web - Home">html2rss-web</a></h1> <nav aria-label="Main navigation"> <a href="/gallery">Gallery</a> <a href="/auto_source/">Auto Source</a> </nav> </header> <main> <main data-astro-cid-7znq4fz4> <h1 data-astro-cid-7znq4fz4>Auto Source</h1> <p data-astro-cid-7znq4fz4>Generate RSS feeds from any website automatically</p> <div class="auto-source-form" data-astro-cid-7znq4fz4> <form id="auto-source-form" novalidate data-astro-cid-7znq4fz4> <div class="form-group" data-astro-cid-7znq4fz4> <label for="url" data-astro-cid-7znq4fz4>Website URL:</label> <input type="url" id="url" name="url" placeholder="https://example.com" required aria-describedby="url-help" autocomplete="url" data-astro-cid-7znq4fz4> <p id="url-help" class="help-text" data-astro-cid-7znq4fz4>Enter the full URL of the website you want to convert to RSS</p> </div> <div class="form-group" data-astro-cid-7znq4fz4> <label for="strategy" data-astro-cid-7znq4fz4>Strategy:</label> <select id="strategy" name="strategy" aria-describedby="strategy-help" data-astro-cid-7znq4fz4> <option value="ssrf_filter" data-astro-cid-7znq4fz4>SSRF Filter (Recommended)</option> <option value="faraday" data-astro-cid-7znq4fz4>Faraday</option> </select> <p id="strategy-help" class="help-text" data-astro-cid-7znq4fz4>Choose the method for fetching the website content</p> </div> <button type="submit" class="btn btn-primary" aria-describedby="submit-help" data-astro-cid-7znq4fz4>Generate Feed</button> <p id="submit-help" class="help-text" data-astro-cid-7znq4fz4>This will create a new RSS feed from the provided URL</p> </form> <div id="result" class="result-area" style="display: none;" role="region" aria-labelledby="result-heading" data-astro-cid-7znq4fz4> <h3 id="result-heading" data-astro-cid-7znq4fz4>Generated Feed</h3> <div class="feed-info" data-astro-cid-7znq4fz4> <p data-astro-cid-7znq4fz4><strong data-astro-cid-7znq4fz4>Feed URL:</strong> <span id="feed-url" aria-label="Generated RSS feed URL" data-astro-cid-7znq4fz4></span></p> <a id="subscribe-link" href="#" class="btn btn-secondary" aria-label="Subscribe to the generated RSS feed" data-astro-cid-7znq4fz4>Subscribe</a> </div> </div> <div id="error" class="error-area" style="display: none;" role="alert" aria-labelledby="error-heading" data-astro-cid-7znq4fz4> <h3 id="error-heading" data-astro-cid-7znq4fz4>Error</h3> <p id="error-message" data-astro-cid-7znq4fz4></p> </div> </div> <div class="info" data-astro-cid-7znq4fz4> <h3 data-astro-cid-7znq4fz4>How it works</h3> <ul data-astro-cid-7znq4fz4> <li data-astro-cid-7znq4fz4>Enter any website URL</li> <li data-astro-cid-7znq4fz4>html2rss automatically detects content structure</li> <li data-astro-cid-7znq4fz4>Get a working RSS feed instantly</li> <li data-astro-cid-7znq4fz4>Use the generated URL in your RSS reader</li> </ul> <div class="restrictions" data-astro-cid-7znq4fz4> <h4 data-astro-cid-7znq4fz4>⚠️ URL Restrictions</h4> <p data-astro-cid-7znq4fz4>
4+
For security reasons, this public instance only allows certain URLs. If you need to scrape other
5+
sites, please:
6+
</p> <ul data-astro-cid-7znq4fz4> <li data-astro-cid-7znq4fz4>Deploy your own instance with full access</li> <li data-astro-cid-7znq4fz4>Use the pre-built feeds from our gallery</li> <li data-astro-cid-7znq4fz4>Contact the administrator for specific URL access</li> </ul> </div> </div> </main> </main> </body></html>

frontend/dist/gallery/index.html

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
<!DOCTYPE html><html lang="en"> <head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><title>Feed Gallery - html2rss-web</title><meta name="description" content="Convert websites to RSS feeds instantly with html2rss-web"><link href="/styles.css" rel="stylesheet"><link rel="icon" href="/favicon.ico" type="image/x-icon"><style>.no-feeds[data-astro-cid-sahthylw]{margin:2rem 0;padding:1rem;background:#fff3cd;border:1px solid #ffeaa7;border-radius:4px;color:#856404}
2+
</style></head> <body> <header> <h1><a href="/" aria-label="html2rss-web - Home">html2rss-web</a></h1> <nav aria-label="Main navigation"> <a href="/gallery">Gallery</a> <a href="/auto_source/">Auto Source</a> </nav> </header> <main> <h2 data-astro-cid-sahthylw>Feed Gallery</h2> <p data-astro-cid-sahthylw>Browse our collection of pre-configured RSS feeds</p> <div class="feed-grid" role="list" data-astro-cid-sahthylw> <div class="feed-card" role="listitem" data-astro-cid-sahthylw> <h3 data-astro-cid-sahthylw>example</h3> <p data-astro-cid-sahthylw>Sample feed from this repository</p> <span class="category" aria-label="Feed type" data-astro-cid-sahthylw>
3+
RSS Feed
4+
</span> <a href="/api/example" class="btn" aria-label="Subscribe to example RSS feed" data-astro-cid-sahthylw>
5+
Subscribe
6+
</a> </div> </div> <div class="no-feeds" role="alert" data-astro-cid-sahthylw> <p data-astro-cid-sahthylw>No feeds available. Using sample feeds for demonstration.</p> </div> </main> </body></html>

frontend/dist/index.html

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
<!DOCTYPE html><html lang="en"> <head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><title>html2rss-web - Convert websites to RSS feeds</title><meta name="description" content="Convert websites to RSS feeds instantly with html2rss-web"><link href="/styles.css" rel="stylesheet"><link rel="icon" href="/favicon.ico" type="image/x-icon"><style>.sr-only[data-astro-cid-j7pv25f6]{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
2+
</style></head> <body> <header> <h1><a href="/" aria-label="html2rss-web - Home">html2rss-web</a></h1> <nav aria-label="Main navigation"> <a href="/gallery">Gallery</a> <a href="/auto_source/">Auto Source</a> </nav> </header> <main> <div class="hero" data-astro-cid-j7pv25f6> <h2 data-astro-cid-j7pv25f6>Convert websites to RSS feeds</h2> <p data-astro-cid-j7pv25f6>Transform any website into a structured RSS feed instantly</p> <a href="/api/example" class="btn" aria-describedby="example-desc" data-astro-cid-j7pv25f6>Try Example Feed</a> <p id="example-desc" class="sr-only" data-astro-cid-j7pv25f6>Opens the example RSS feed in a new tab</p> </div> <div class="features" data-astro-cid-j7pv25f6> <div class="feature" data-astro-cid-j7pv25f6> <h3 data-astro-cid-j7pv25f6>Pre-built Feeds</h3> <p data-astro-cid-j7pv25f6>Access popular feeds from our curated gallery</p> <a href="/gallery" aria-describedby="gallery-desc" data-astro-cid-j7pv25f6>Browse Gallery</a> <p id="gallery-desc" class="sr-only" data-astro-cid-j7pv25f6>View our collection of pre-configured RSS feeds</p> </div> <div class="feature" data-astro-cid-j7pv25f6> <h3 data-astro-cid-j7pv25f6>Auto Source</h3> <p data-astro-cid-j7pv25f6>Generate feeds from any website automatically</p> <a href="/auto_source/" aria-describedby="auto-source-desc" data-astro-cid-j7pv25f6>Try Auto Source</a> <p id="auto-source-desc" class="sr-only" data-astro-cid-j7pv25f6>Create RSS feeds from any website URL</p> </div> </div> </main> </body></html>

frontend/dist/styles.css

Lines changed: 103 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,103 @@
1+
:root {
2+
--primary: #2563eb;
3+
--gray: #64748b;
4+
--light-gray: #f1f5f9;
5+
--border: #e2e8f0;
6+
}
7+
8+
* {
9+
box-sizing: border-box;
10+
}
11+
12+
body {
13+
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
14+
line-height: 1.6;
15+
color: #1e293b;
16+
max-width: 1200px;
17+
margin: 0 auto;
18+
padding: 0 1rem;
19+
}
20+
21+
header {
22+
display: flex;
23+
justify-content: space-between;
24+
align-items: center;
25+
padding: 1rem 0;
26+
border-bottom: 1px solid var(--border);
27+
margin-bottom: 2rem;
28+
}
29+
30+
header h1 a {
31+
color: var(--primary);
32+
text-decoration: none;
33+
}
34+
35+
nav a {
36+
margin-left: 1rem;
37+
color: var(--gray);
38+
text-decoration: none;
39+
}
40+
41+
.hero {
42+
text-align: center;
43+
padding: 3rem 0;
44+
background: var(--light-gray);
45+
border-radius: 0.5rem;
46+
margin: 2rem 0;
47+
}
48+
49+
.btn {
50+
display: inline-block;
51+
background: var(--primary);
52+
color: white;
53+
padding: 0.75rem 1.5rem;
54+
text-decoration: none;
55+
border-radius: 0.375rem;
56+
font-weight: 500;
57+
}
58+
59+
.btn:hover {
60+
background: #1d4ed8;
61+
}
62+
63+
.features {
64+
display: grid;
65+
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
66+
gap: 2rem;
67+
margin: 3rem 0;
68+
}
69+
70+
.feature {
71+
padding: 1.5rem;
72+
border: 1px solid var(--border);
73+
border-radius: 0.5rem;
74+
background: white;
75+
}
76+
77+
.feed-grid {
78+
display: grid;
79+
grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
80+
gap: 1.5rem;
81+
margin-top: 2rem;
82+
}
83+
84+
.feed-card {
85+
padding: 1.5rem;
86+
border: 1px solid var(--border);
87+
border-radius: 0.5rem;
88+
background: white;
89+
}
90+
91+
.feed-card:hover {
92+
box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
93+
}
94+
95+
.category {
96+
display: inline-block;
97+
background: var(--light-gray);
98+
padding: 0.25rem 0.5rem;
99+
border-radius: 0.25rem;
100+
font-size: 0.875rem;
101+
color: var(--gray);
102+
margin: 0.5rem 0;
103+
}

0 commit comments

Comments
 (0)