urls.py 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. from django.contrib import admin
  2. from django.urls import path, include
  3. from django.views import static
  4. from django.conf import settings
  5. from django.views.generic.base import RedirectView
  6. from core.views import HomepageView, SnapshotView, PublicIndexView, AddView
  7. # print('DEBUG', settings.DEBUG)
  8. urlpatterns = [
  9. path('public/', PublicIndexView.as_view(), name='public-index'),
  10. path('robots.txt', static.serve, {'document_root': settings.OUTPUT_DIR, 'path': 'robots.txt'}),
  11. path('favicon.ico', static.serve, {'document_root': settings.OUTPUT_DIR, 'path': 'favicon.ico'}),
  12. path('docs/', RedirectView.as_view(url='https://github.com/ArchiveBox/ArchiveBox/wiki'), name='Docs'),
  13. path('archive/', RedirectView.as_view(url='/')),
  14. path('archive/<path:path>', SnapshotView.as_view(), name='Snapshot'),
  15. path('admin/core/snapshot/add/', RedirectView.as_view(url='/add/')),
  16. path('add/', AddView.as_view(), name='add'),
  17. path('accounts/login/', RedirectView.as_view(url='/admin/login/')),
  18. path('accounts/logout/', RedirectView.as_view(url='/admin/logout/')),
  19. path('accounts/', include('django.contrib.auth.urls')),
  20. path('admin/', admin.site.urls),
  21. path('index.html', RedirectView.as_view(url='/')),
  22. path('index.json', static.serve, {'document_root': settings.OUTPUT_DIR, 'path': 'index.json'}),
  23. path('', HomepageView.as_view(), name='Home'),
  24. ]
  25. # # Proposed UI URLs spec
  26. # path('', HomepageView)
  27. # path('/add', AddView)
  28. # path('/public', PublicIndexView)
  29. # path('/snapshot/:slug', SnapshotView)
  30. # path('/admin', admin.site.urls)
  31. # path('/accounts', django.contrib.auth.urls)
  32. # # Prposed REST API spec
  33. # # :slugs can be uuid, short_uuid, or any of the unique index_fields
  34. # path('api/v1/'),
  35. # path('api/v1/core/' [GET])
  36. # path('api/v1/core/snapshot/', [GET, POST, PUT]),
  37. # path('api/v1/core/snapshot/:slug', [GET, PATCH, DELETE]),
  38. # path('api/v1/core/archiveresult', [GET, POST, PUT]),
  39. # path('api/v1/core/archiveresult/:slug', [GET, PATCH, DELETE]),
  40. # path('api/v1/core/tag/', [GET, POST, PUT]),
  41. # path('api/v1/core/tag/:slug', [GET, PATCH, DELETE]),
  42. # path('api/v1/cli/', [GET])
  43. # path('api/v1/cli/{add,list,config,...}', [POST]), # pass query as kwargs directly to `run_subcommand` and return stdout, stderr, exitcode
  44. # path('api/v1/extractors/', [GET])
  45. # path('api/v1/extractors/:extractor/', [GET]),
  46. # path('api/v1/extractors/:extractor/:func', [GET, POST]), # pass query as args directly to chosen function
  47. # future, just an idea:
  48. # path('api/v1/scheduler/', [GET])
  49. # path('api/v1/scheduler/task/', [GET, POST, PUT]),
  50. # path('api/v1/scheduler/task/:slug', [GET, PATCH, DELETE]),