from django.conf.urls import url from django.urls import path from django.views.generic import TemplateView from django.views.i18n import JavaScriptCatalog from boards import views from boards.rss import AllThreadsFeed, TagThreadsFeed, ThreadPostsFeed from boards.views import api, tag_threads, all_threads, settings, feed, stickers, thread, banned from boards.views.authors import AuthorsView from boards.views.landing import LandingView from boards.views.notifications import NotificationView from boards.views.preview import PostPreviewView from boards.views.random import RandomImageView from boards.views.search import BoardSearchView from boards.views.static import StaticPageView from boards.views.sync import get_post_sync_data, response_get, response_list from boards.views.tag_gallery import TagGalleryView from boards.views.utils import UtilsView urlpatterns = [ # /boards/ path('all/', all_threads.AllThreadsView.as_view(), name='index'), # /boards/tag/tag_name/ url(r'^tag/(?P[\w\d\']+)/$', tag_threads.TagView.as_view(), name='tag'), url(r'^tag/(?P[\w\d\']+)/gallery/$', TagGalleryView.as_view(), name='tag_gallery'), # /boards/thread/ path('thread//', views.thread.NormalThreadView.as_view(), name='thread'), path('thread//mode/gallery/', views.thread.GalleryThreadView.as_view(), name='thread_gallery'), path('thread//mode/tree/', views.thread.TreeThreadView.as_view(), name='thread_tree'), # /feed/ path('feed/', views.feed.FeedView.as_view(), name='feed'), path('settings/', settings.SettingsView.as_view(), name='settings'), path('stickers/', stickers.AliasesView.as_view(), name='stickers'), path('stickers//', stickers.AliasesView.as_view(), name='stickers'), path('about/', AuthorsView.as_view(), name='about'), path('banned/', views.banned.BannedView.as_view(), name='banned'), path('staticpage//', StaticPageView.as_view(), name='staticpage'), path('random/', RandomImageView.as_view(), name='random'), path('search/', BoardSearchView.as_view(), name='search'), path('', LandingView.as_view(), name='landing'), path('utils', UtilsView.as_view(), name='utils'), # RSS feeds path('rss/', AllThreadsFeed()), path('all/rss/', AllThreadsFeed()), url(r'^tag/(?P\w+)/rss/$', TagThreadsFeed()), path('thread//rss/', ThreadPostsFeed()), # i18n path('jsi18n/', JavaScriptCatalog.as_view(packages=['boards']), name='js_info_dict'), # API url(r'^api/post/(?P\d+)/$', api.get_post, name="get_post"), url(r'^api/diff_thread/$', api.api_get_threaddiff, name="get_thread_diff"), url(r'^api/threads/(?P\w+)/$', api.api_get_threads, name='get_threads'), url(r'^api/tags/$', api.api_get_tags, name='get_tags'), url(r'^api/thread/(?P\w+)/$', api.api_get_thread_posts, name='get_thread'), url(r'^api/add_post/(?P\w+)/$', api.api_add_post, name='add_post'), url(r'^api/add_post/$', api.api_add_post, name='add_post'), url(r'^api/notifications/(?P\w+)/$', api.api_get_notifications, name='api_notifications'), url(r'^api/preview/$', api.api_get_preview, name='preview'), url(r'^api/new_posts/$', api.api_get_new_posts, name='new_posts'), url(r'^api/stickers/$', api.api_get_stickers, name='get_stickers'), # Sync protocol API url(r'^api/sync/list/$', response_list, name='api_sync_list'), url(r'^api/sync/get/$', response_get, name='api_sync_get'), # Notifications path('notifications//', NotificationView.as_view(), name='notifications'), path('notifications/', NotificationView.as_view(), name='notifications'), # Post preview path('preview/', PostPreviewView.as_view(), name='preview'), path('post_xml/', get_post_sync_data, name='post_sync_data'), # Robots path('robots.txt', TemplateView.as_view(template_name='boards/robots.txt', content_type='text/plain')) ]