This commit is contained in:
parent
5ff8a87680
commit
ce22fb68f3
50 changed files with 539 additions and 1439 deletions
|
|
@ -1,16 +0,0 @@
|
|||
{% extends "base.html" %}
|
||||
{% block content %}
|
||||
<h2>Add feeds</h2>
|
||||
<form method="post" action='{{ url_for("add_feed") }}'>
|
||||
<p>
|
||||
<label for="feed_urls">Feed URLs</label>
|
||||
<textarea id="feed_urls"
|
||||
name="feed_urls"
|
||||
rows="4"
|
||||
cols="50"
|
||||
required
|
||||
placeholder="Enter the URLs of the feeds you want to add"></textarea>
|
||||
</p>
|
||||
<button type="submit">Add feeds</button>
|
||||
</form>
|
||||
{% endblock content %}
|
||||
|
|
@ -1,144 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
{% if description %}<meta name="description" content="{{ description }}" />{% endif %}
|
||||
{% if keywords %}<meta name="keywords" content="{{ keywords }}" />{% endif %}
|
||||
{% if author %}<meta name="author" content="{{ author }}" />{% endif %}
|
||||
{% if canonical %}<link rel="canonical" href="{{ canonical }}" />{% endif %}
|
||||
<title>{{ title | default("FeedVault") }}</title>
|
||||
<style>
|
||||
html {
|
||||
max-width: 88ch;
|
||||
padding: calc(1vmin + 0.5rem);
|
||||
margin-inline: auto;
|
||||
font-size: clamp(1em, 0.909em + 0.45vmin, 1.25em);
|
||||
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,
|
||||
Helvetica, Arial, sans-serif;
|
||||
color-scheme: light dark;
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size: 2.5rem;
|
||||
font-weight: 600;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
header {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.search {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
margin-top: 1rem;
|
||||
margin-inline: auto;
|
||||
}
|
||||
|
||||
.leftright {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.left {
|
||||
margin-right: auto;
|
||||
}
|
||||
|
||||
.right {
|
||||
margin-left: auto;
|
||||
}
|
||||
|
||||
textarea {
|
||||
width: 100%;
|
||||
height: 10rem;
|
||||
resize: vertical;
|
||||
}
|
||||
|
||||
.messages {
|
||||
list-style-type: none;
|
||||
}
|
||||
|
||||
.error {
|
||||
color: red;
|
||||
}
|
||||
|
||||
.success {
|
||||
color: green;
|
||||
}
|
||||
|
||||
.warning {
|
||||
color: orange;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
{% if messages %}
|
||||
<ul class="messages" role="alert" aria-live="polite">
|
||||
{% for message in messages %}
|
||||
<li {% if message.tags %}class="{{ message.tags }}"{% endif %}
|
||||
role="alert">{{ message }}</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
{% endif %}
|
||||
<header>
|
||||
<h1>
|
||||
<a href='{{ url_for("index") }}' aria-label="FeedVault Home">FeedVault</a>
|
||||
</h1>
|
||||
</header>
|
||||
<div class="leftright">
|
||||
<div class="left">
|
||||
<small>Archive of
|
||||
<a href="https://en.wikipedia.org/wiki/Web_feed"
|
||||
aria-label="Wikipedia article on web feeds">web feeds</a>.
|
||||
{{ stats }}
|
||||
</small>
|
||||
</div>
|
||||
<div class="right">
|
||||
<form role="search"
|
||||
action='{{ url_for("search") }}'
|
||||
method="get"
|
||||
class="search"
|
||||
aria-label="Search form">
|
||||
<input type="search" name="q" placeholder="Search" aria-label="Search input" />
|
||||
<button type="submit" aria-label="Search button">Search</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
<nav aria-label="Main navigation">
|
||||
<small>
|
||||
<div class="leftright">
|
||||
<div class="left">
|
||||
<a href='{{ url_for("index") }}' aria-label="Home page">Home</a> |
|
||||
<a href='{{ url_for("feeds") }}' aria-label="Feeds page">Feeds</a> |
|
||||
<a href='{{ url_for("upload_files") }}' aria-label="Upload page">Upload</a> |
|
||||
<a href='{{ url_for("contact") }}' aria-label="Contact page">Contact</a>
|
||||
</div>
|
||||
<div class="right">
|
||||
<a href="https://github.com/TheLovinator1/FeedVault"
|
||||
aria-label="GitHub page">GitHub</a> |
|
||||
<a href="https://github.com/sponsors/TheLovinator1"
|
||||
aria-label="Donate page">Donate</a>
|
||||
</div>
|
||||
</div>
|
||||
</small>
|
||||
</nav>
|
||||
<hr />
|
||||
<main>
|
||||
{% block content %}<!-- default content -->{% endblock %}
|
||||
</main>
|
||||
<hr />
|
||||
<footer>
|
||||
<small>
|
||||
<div class="leftright">
|
||||
<div class="left">Web scraping is not a crime.</div>
|
||||
<div class="right">No rights reserved.</div>
|
||||
</div>
|
||||
<div class="leftright">
|
||||
<div class="left">TheLovinator#9276 on Discord</div>
|
||||
<div class="right">A birthday present for Plipp ❤️</div>
|
||||
</div>
|
||||
</small>
|
||||
</footer>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -1,34 +0,0 @@
|
|||
{% extends "base.html" %}
|
||||
{% block content %}
|
||||
<h2>Contact</h2>
|
||||
<p>
|
||||
If you have any questions, suggestions, or feedback, feel free to contact me. I am always happy to help.
|
||||
<br>
|
||||
You can contact me through the following methods:
|
||||
</p>
|
||||
<p>
|
||||
<ul>
|
||||
<li>
|
||||
<a href="https://github.com/TheLovinator1/FeedVault.se/issues">GitHub issues</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="mailto:tlovinator@gmail.com">tlovinator@gmail.com</a>
|
||||
</li>
|
||||
<li>TheLovinator#9276 on Discord</li>
|
||||
<li>Use the form below to send me a message</li>
|
||||
</ul>
|
||||
</p>
|
||||
<h3>Send a message</h3>
|
||||
<form method="post" action='{{ url_for("contact") }}'>
|
||||
<p>
|
||||
<label for="message">Message</label>
|
||||
<textarea id="message"
|
||||
name="message"
|
||||
rows="4"
|
||||
cols="50"
|
||||
required
|
||||
placeholder="Enter your message"></textarea>
|
||||
</p>
|
||||
<button type="submit">Send message</button>
|
||||
</form>
|
||||
{% endblock content %}
|
||||
|
|
@ -1,15 +0,0 @@
|
|||
{% extends "base.html" %}
|
||||
{% block content %}
|
||||
<h2>{{ feed.url }}</h2>
|
||||
<p>{{ feed.description }}</p>
|
||||
<h3>Entries</h3>
|
||||
{% if entries|length == 0 %}<p>No entries found.</p>{% endif %}
|
||||
<ul>
|
||||
{% for entry in entries %}
|
||||
<li>
|
||||
<a href="{{ entry.link }}">{{ entry.title }}</a>
|
||||
<p>{{ entry.summary | safe }}</p>
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
{% endblock content %}
|
||||
|
|
@ -1,14 +0,0 @@
|
|||
{% extends "base.html" %}
|
||||
{% block content %}
|
||||
<h2>Latest Feeds</h2>
|
||||
<ul>
|
||||
{% for feed in feeds %}
|
||||
<li>
|
||||
<a href="{{ url_for('feed', feed_url=feed.url) }}">{{ feed.url }}</a>
|
||||
<p>{{ feed.description }}</p>
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
{% if next_url %}<a href='{{ url_for("feeds") }}?next_url={{ next_url }}'>Next</a>{% endif %}
|
||||
{% if previous_url %}<a href='{{ url_for("feeds") }}?previous_url={{ previous_url }}'>Previous</a>{% endif %}
|
||||
{% endblock content %}
|
||||
|
|
@ -1,36 +0,0 @@
|
|||
{% extends "base.html" %}
|
||||
{% block content %}
|
||||
<h2>Welcome, archivist!</h2>
|
||||
<h3>Latest Feeds</h3>
|
||||
<ul>
|
||||
{% if not feeds %}<p>No feeds found.</p>{% endif %}
|
||||
{% for feed in feeds %}
|
||||
<li>
|
||||
<a href="{{ url_for('feed', feed_url=feed.url) }}">{{ feed.url }}</a>
|
||||
<p>{{ feed.description }}</p>
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
<h3>FAQ</h3>
|
||||
<summary>What are web feeds?</summary>
|
||||
<p>
|
||||
Web feeds are a way to distribute content on the web. They allow users to access updates from websites without having to visit them directly. Feeds are typically used for news websites, blogs, and other sites that frequently update content.
|
||||
<br>
|
||||
You can read more about web feeds on <a href="https://en.wikipedia.org/wiki/Web_feed">Wikipedia</a>.
|
||||
</p>
|
||||
<hr>
|
||||
<summary>What is FeedVault?</summary>
|
||||
<p>
|
||||
FeedVault is a service that archives web feeds. It allows users to access and search for historical content from various websites. The service is designed to preserve the history of the web and provide a reliable source for accessing content that may no longer be available on the original websites.
|
||||
</p>
|
||||
<hr>
|
||||
<summary>Why archive feeds?</summary>
|
||||
<p>
|
||||
Web feeds are a valuable source of information, and archiving them ensures that the content is preserved for future reference. By archiving feeds, we can ensure that historical content is available for research, analysis, and other purposes. Additionally, archiving feeds can help prevent the loss of valuable information due to website changes, outages, or other issues.
|
||||
</p>
|
||||
<hr>
|
||||
<summary>How can I access the archived feeds?</summary>
|
||||
<p>
|
||||
You can access the archived feeds through the website or API. The website provides a user interface for searching and browsing the feeds, while the API allows you to access the feeds programmatically. You can also download the feeds in various formats, such as JSON, XML, or RSS.
|
||||
</p>
|
||||
{% endblock content %}
|
||||
|
|
@ -1,21 +0,0 @@
|
|||
{% extends "base.html" %}
|
||||
{% block content %}
|
||||
<h2>
|
||||
Searched for:
|
||||
"{{ query }}"
|
||||
</h2>
|
||||
{% if entries %}
|
||||
{% for entry in entries %}
|
||||
<a href="{{ url_for('feed', feed_url=entry.feed_url) }}">{{ entry.feed_url }} →</a>
|
||||
<br>
|
||||
{% endfor %}
|
||||
{% else %}
|
||||
<p>No entries found.</p>
|
||||
{% endif %}
|
||||
{% if next_feed and next_entry %}
|
||||
<a href='{{ url_for("search") }}?query={{ query }}&next_feed={{ next_feed }}&next_entry={{ next_entry }}'>Next</a>
|
||||
{% endif %}
|
||||
{% if prev_feed and prev_entry %}
|
||||
<a href='{{ url_for("search") }}?query={{ query }}&prev_feed={{ prev_feed }}&prev_entry={{ prev_entry }}'>Previous</a>
|
||||
{% endif %}
|
||||
{% endblock content %}
|
||||
|
|
@ -1,47 +0,0 @@
|
|||
{% extends "base.html" %}
|
||||
{% block content %}
|
||||
<h2>Upload</h2>
|
||||
<p>
|
||||
You can upload files to the archive here.
|
||||
<br>
|
||||
Things you can upload include:
|
||||
<ul>
|
||||
<li>Lists of URLs</li>
|
||||
<li>Databases</li>
|
||||
<li>Backups</li>
|
||||
<li>Archives</li>
|
||||
<li>Anything else that is relevant</li>
|
||||
</ul>
|
||||
<br>
|
||||
Uploaded files will be manually reviewed and indexed. If you have any questions, feel free to <a href='{{ url_for("contact") }}''>contact me</a>.
|
||||
<br>
|
||||
You can also provide a description for the file you are uploading.
|
||||
</p>
|
||||
<form enctype="multipart/form-data"
|
||||
method="post"
|
||||
action='{{ url_for("upload_files") }}'>
|
||||
<p>
|
||||
<input type="file" name="files" required multiple>
|
||||
<br>
|
||||
<br>
|
||||
<label for="description">Description (optional)</label>
|
||||
<textarea id="description"
|
||||
name="description"
|
||||
rows="4"
|
||||
cols="50"
|
||||
placeholder="Enter a description for the file"></textarea>
|
||||
</p>
|
||||
<input type="checkbox" id="public" name="public">
|
||||
<label for="public">Public</label>
|
||||
<br>
|
||||
<br>
|
||||
<small>
|
||||
Public files will be listed on FeedVault for everyone to see and download.
|
||||
<br>
|
||||
Private files will only be used for indexing feeds.
|
||||
</small>
|
||||
<br>
|
||||
<br>
|
||||
<button type="submit">Upload file</button>
|
||||
</form>
|
||||
{% endblock content %}
|
||||
Loading…
Add table
Add a link
Reference in a new issue