from django.conf import settings as djsettings from django.contrib import admin as djadmin from django.urls import path, re_path from django.views.static import serve from activities.views import posts, search, timelines from core import views as core from users.views import activitypub, admin, auth, follows, identity, settings urlpatterns = [ path("", core.homepage), path("manifest.json", core.AppManifest.as_view()), # Activity views path("notifications/", timelines.Notifications.as_view(), name="notifications"), path("local/", timelines.Local.as_view(), name="local"), path("federated/", timelines.Federated.as_view(), name="federated"), path("search/", search.Search.as_view(), name="search"), path( "settings/", settings.SettingsRoot.as_view(), name="settings", ), path( "settings/security/", settings.SecurityPage.as_view(), name="settings_security", ), path( "settings/profile/", settings.ProfilePage.as_view(), name="settings_profile", ), path( "settings/follows/", follows.FollowsPage.as_view(), name="settings_follows", ), path( "settings/interface/", settings.InterfacePage.as_view(), name="settings_interface", ), path( "admin/", admin.AdminRoot.as_view(), name="admin", ), path( "admin/basic/", admin.BasicSettings.as_view(), name="admin_basic", ), path( "admin/domains/", admin.Domains.as_view(), name="admin_domains", ), path( "admin/domains/create/", admin.DomainCreate.as_view(), name="admin_domains_create", ), path( "admin/domains//", admin.DomainEdit.as_view(), ), path( "admin/domains//delete/", admin.DomainDelete.as_view(), ), path( "admin/users/", admin.Users.as_view(), name="admin_users", ), path( "admin/identities/", admin.Identities.as_view(), name="admin_identities", ), path( "admin/invites/", admin.Invites.as_view(), name="admin_invites", ), # Identity views path("@/", identity.ViewIdentity.as_view()), path("@/inbox/", activitypub.Inbox.as_view()), path("@/action/", identity.ActionIdentity.as_view()), # Posts path("compose/", posts.Compose.as_view(), name="compose"), path("@/posts//", posts.Individual.as_view()), path("@/posts//like/", posts.Like.as_view()), path("@/posts//unlike/", posts.Like.as_view(undo=True)), path("@/posts//boost/", posts.Boost.as_view()), path("@/posts//unboost/", posts.Boost.as_view(undo=True)), # Authentication path("auth/login/", auth.Login.as_view(), name="login"), path("auth/logout/", auth.Logout.as_view(), name="logout"), path("auth/signup/", auth.Signup.as_view(), name="signup"), path("auth/reset/", auth.TriggerReset.as_view(), name="trigger_reset"), path("auth/reset//", auth.PerformReset.as_view(), name="password_reset"), # Identity selection path("@/activate/", identity.ActivateIdentity.as_view()), path("identity/select/", identity.SelectIdentity.as_view()), path("identity/create/", identity.CreateIdentity.as_view()), # Well-known endpoints and system actor path(".well-known/webfinger", activitypub.Webfinger.as_view()), path(".well-known/host-meta", activitypub.HostMeta.as_view()), path(".well-known/nodeinfo", activitypub.NodeInfo.as_view()), path("nodeinfo/2.0/", activitypub.NodeInfo2.as_view()), path("actor/", activitypub.SystemActorView.as_view()), # Django admin path("djadmin/", djadmin.site.urls), # Media files re_path( r"^media/(?P.*)$", serve, kwargs={"document_root": djsettings.MEDIA_ROOT}, ), ]