Repository navigation
Expand file tree
/
Copy pathurls.py
More file actions
163 lines (153 loc) · 6.03 KB
/
Copy pathurls.py
File metadata and controls
163 lines (153 loc) · 6.03 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
from django.conf import settings
from django.contrib.auth import views as django_auth_views
from django.urls import include, path, re_path
from bookmarks import feeds
from bookmarks.admin import linkding_admin_site
from bookmarks.api import routes as api_routes
from bookmarks.views import assets as assets_views
from bookmarks.views import auth as linkding_auth_views
from bookmarks.views import bookmarks as bookmarks_views
from bookmarks.views import bundles as bundles_views
from bookmarks.views import settings as settings_views
from bookmarks.views import tags as tags_views
from bookmarks.views import toasts as toasts_views
from bookmarks.views.custom_css import custom_css as custom_css_view
from bookmarks.views.health import health as health_view
from bookmarks.views.manifest import manifest as manifest_view
from bookmarks.views.opensearch import opensearch as opensearch_view
from bookmarks.views.root import root as root_view
urlpatterns = [
# Root view handling redirection based on user authentication
re_path(r"^$", root_view, name="root"),
# Bookmarks
path("bookmarks", bookmarks_views.index, name="bookmarks.index"),
path(
"bookmarks/action", bookmarks_views.index_action, name="bookmarks.index.action"
),
path("bookmarks/archived", bookmarks_views.archived, name="bookmarks.archived"),
path(
"bookmarks/archived/action",
bookmarks_views.archived_action,
name="bookmarks.archived.action",
),
path("bookmarks/shared", bookmarks_views.shared, name="bookmarks.shared"),
path(
"bookmarks/shared/action",
bookmarks_views.shared_action,
name="bookmarks.shared.action",
),
path("bookmarks/new", bookmarks_views.new, name="bookmarks.new"),
path("bookmarks/close", bookmarks_views.close, name="bookmarks.close"),
path(
"bookmarks/<int:bookmark_id>/edit", bookmarks_views.edit, name="bookmarks.edit"
),
# Assets
path(
"assets/<int:asset_id>",
assets_views.view,
name="assets.view",
),
path(
"assets/<int:asset_id>/read",
assets_views.read,
name="assets.read",
),
# Bundles
path("bundles", bundles_views.index, name="bundles.index"),
path("bundles/action", bundles_views.action, name="bundles.action"),
path("bundles/new", bundles_views.new, name="bundles.new"),
path("bundles/<int:bundle_id>/edit", bundles_views.edit, name="bundles.edit"),
path("bundles/preview", bundles_views.preview, name="bundles.preview"),
# Tags
path("tags", tags_views.tags_index, name="tags.index"),
path("tags/new", tags_views.tag_new, name="tags.new"),
path("tags/<int:tag_id>/edit", tags_views.tag_edit, name="tags.edit"),
path("tags/merge", tags_views.tag_merge, name="tags.merge"),
# Settings
path("settings", settings_views.general, name="settings.index"),
path("settings/general", settings_views.general, name="settings.general"),
path("settings/update", settings_views.update, name="settings.update"),
path(
"settings/integrations",
settings_views.integrations,
name="settings.integrations",
),
path(
"settings/integrations/create-api-token",
settings_views.create_api_token,
name="settings.integrations.create_api_token",
),
path(
"settings/integrations/delete-api-token",
settings_views.delete_api_token,
name="settings.integrations.delete_api_token",
),
path("settings/import", settings_views.bookmark_import, name="settings.import"),
path("settings/export", settings_views.bookmark_export, name="settings.export"),
# Toasts
path("toasts/acknowledge", toasts_views.acknowledge, name="toasts.acknowledge"),
# API
path("api/", include(api_routes.default_router.urls)),
path("api/bookmarks/", include(api_routes.bookmark_router.urls)),
path(
"api/bookmarks/<int:bookmark_id>/assets/",
include(api_routes.bookmark_asset_router.urls),
),
path("api/tags/", include(api_routes.tag_router.urls)),
path("api/bundles/", include(api_routes.bundle_router.urls)),
path("api/user/", include(api_routes.user_router.urls)),
# Feeds
path("feeds/<str:feed_key>/all", feeds.AllBookmarksFeed(), name="feeds.all"),
path(
"feeds/<str:feed_key>/unread", feeds.UnreadBookmarksFeed(), name="feeds.unread"
),
path(
"feeds/<str:feed_key>/shared", feeds.SharedBookmarksFeed(), name="feeds.shared"
),
path("feeds/shared", feeds.PublicSharedBookmarksFeed(), name="feeds.public_shared"),
# Health check
path("health", health_view, name="health"),
# Manifest
path("manifest.json", manifest_view, name="manifest"),
# Custom CSS
path("custom_css", custom_css_view, name="custom_css"),
# OpenSearch
path("opensearch.xml", opensearch_view, name="opensearch"),
]
# Live reload (debug only)
if settings.DEBUG:
from bookmarks.views import reload
urlpatterns.append(path("live_reload", reload.live_reload, name="live_reload"))
# Put all linkding URLs into a linkding namespace
urlpatterns = [path("", include((urlpatterns, "linkding")))]
# Auth
urlpatterns += [
path(
"login/",
linkding_auth_views.LinkdingLoginView.as_view(redirect_authenticated_user=True),
name="login",
),
path("logout/", django_auth_views.LogoutView.as_view(), name="logout"),
path(
"change-password/",
linkding_auth_views.LinkdingPasswordChangeView.as_view(),
name="change_password",
),
path(
"password-change-done/",
django_auth_views.PasswordChangeDoneView.as_view(),
name="password_change_done",
),
]
# Admin
urlpatterns.append(path("admin/", linkding_admin_site.urls))
# OIDC
if settings.LD_ENABLE_OIDC:
urlpatterns.append(path("oidc/", include("mozilla_django_oidc.urls")))
# Debug toolbar
# if settings.DEBUG:
# import debug_toolbar
# urlpatterns.append(path("__debug__/", include(debug_toolbar.urls)))
# Context path
if settings.LD_CONTEXT_PATH:
urlpatterns = [path(settings.LD_CONTEXT_PATH, include(urlpatterns))]