mirror of
https://github.com/ArchiveBox/ArchiveBox
synced 2024-11-26 14:10:20 +00:00
unify public archive view
This commit is contained in:
parent
3288f8579b
commit
5e8c115f3f
3 changed files with 36 additions and 41 deletions
|
@ -5,7 +5,7 @@ from django.views import static
|
|||
from django.conf import settings
|
||||
from django.views.generic.base import RedirectView
|
||||
|
||||
from core.views import MainIndex, OldIndex, LinkDetails, PublicArchiveView, SearchResultsView, add_view
|
||||
from core.views import MainIndex, OldIndex, LinkDetails, PublicArchiveView, add_view
|
||||
|
||||
|
||||
# print('DEBUG', settings.DEBUG)
|
||||
|
@ -32,5 +32,4 @@ urlpatterns = [
|
|||
path('index.json', static.serve, {'document_root': settings.OUTPUT_DIR, 'path': 'index.json'}),
|
||||
path('', MainIndex.as_view(), name='Home'),
|
||||
path('public/', PublicArchiveView.as_view(), name='public-index'),
|
||||
path('search_results/', SearchResultsView.as_view(), name='search-results'),
|
||||
]
|
||||
|
|
|
@ -123,6 +123,9 @@ class PublicArchiveView(ListView):
|
|||
|
||||
def get_queryset(self, **kwargs):
|
||||
qs = super().get_queryset(**kwargs)
|
||||
query = self.request.GET.get('q')
|
||||
if query:
|
||||
qs = Snapshot.objects.filter(title__icontains=query)
|
||||
for snapshot in qs:
|
||||
snapshot.icons = get_icons(snapshot)
|
||||
return qs
|
||||
|
@ -134,45 +137,38 @@ class PublicArchiveView(ListView):
|
|||
else:
|
||||
return redirect(f'/admin/login/?next={self.request.path}')
|
||||
|
||||
class SearchResultsView(PublicArchiveView):
|
||||
def get_queryset(self):
|
||||
query = self.request.GET.get('q')
|
||||
results = Snapshot.objects.filter(title__icontains=query)
|
||||
for snapshot in results:
|
||||
snapshot.icons = get_icons(snapshot)
|
||||
return results
|
||||
|
||||
def add_view(request):
|
||||
if PUBLIC_ADD_VIEW or request.user.is_authenticated:
|
||||
context = {
|
||||
'title': 'Add URLs',
|
||||
}
|
||||
if request.method == 'GET':
|
||||
context['form'] = AddLinkForm()
|
||||
if PUBLIC_ADD_VIEW or request.user.is_authenticated:
|
||||
context = {
|
||||
'title': 'Add URLs',
|
||||
}
|
||||
if request.method == 'GET':
|
||||
context['form'] = AddLinkForm()
|
||||
|
||||
elif request.method == 'POST':
|
||||
form = AddLinkForm(request.POST)
|
||||
if form.is_valid():
|
||||
url = form.cleaned_data["url"]
|
||||
print(f'[+] Adding URL: {url}')
|
||||
depth = 0 if form.cleaned_data["depth"] == "0" else 1
|
||||
input_kwargs = {
|
||||
"urls": url,
|
||||
"depth": depth,
|
||||
"update_all": False,
|
||||
"out_dir": OUTPUT_DIR,
|
||||
}
|
||||
add_stdout = StringIO()
|
||||
with redirect_stdout(add_stdout):
|
||||
add(**input_kwargs)
|
||||
print(add_stdout.getvalue())
|
||||
elif request.method == 'POST':
|
||||
form = AddLinkForm(request.POST)
|
||||
if form.is_valid():
|
||||
url = form.cleaned_data["url"]
|
||||
print(f'[+] Adding URL: {url}')
|
||||
depth = 0 if form.cleaned_data["depth"] == "0" else 1
|
||||
input_kwargs = {
|
||||
"urls": url,
|
||||
"depth": depth,
|
||||
"update_all": False,
|
||||
"out_dir": OUTPUT_DIR,
|
||||
}
|
||||
add_stdout = StringIO()
|
||||
with redirect_stdout(add_stdout):
|
||||
add(**input_kwargs)
|
||||
print(add_stdout.getvalue())
|
||||
|
||||
context.update({
|
||||
"stdout": ansi_to_html(add_stdout.getvalue().strip()),
|
||||
"form": AddLinkForm()
|
||||
})
|
||||
else:
|
||||
context["form"] = form
|
||||
return render(template_name='add_links.html', request=request, context=context)
|
||||
else:
|
||||
return redirect(f'/admin/login/?next={request.path}')
|
||||
context.update({
|
||||
"stdout": ansi_to_html(add_stdout.getvalue().strip()),
|
||||
"form": AddLinkForm()
|
||||
})
|
||||
else:
|
||||
context["form"] = form
|
||||
return render(template_name='add_links.html', request=request, context=context)
|
||||
else:
|
||||
return redirect(f'/admin/login/?next={request.path}')
|
|
@ -232,7 +232,7 @@
|
|||
</div>
|
||||
</header>
|
||||
<br>
|
||||
<form action="{% url 'search-results' %}" method="get">
|
||||
<form action="{% url 'public-index' %}" method="get">
|
||||
<input name="q" type="text" placeholder="Search...">
|
||||
<button type="submit">Search</button>
|
||||
<button onclick="location.href='{% url 'public-index' %}'" type="button">
|
||||
|
|
Loading…
Reference in a new issue