urls.py 3.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. from django.conf import settings
  2. from django.conf.urls import patterns, include, url
  3. from django.contrib.staticfiles.urls import staticfiles_urlpatterns
  4. from misago.admin import ADMIN_PATH, site
  5. # Include frontend patterns
  6. urlpatterns = patterns('misago.apps',
  7. url(r'^$', 'index.index', name="index"),
  8. url(r'^read-all/$', 'readall.read_all', name="read_all"),
  9. url(r'^register/$', 'register.views.form', name="register"),
  10. url(r'^attachment/(?P<attachment>[0-9a-zA-Z]{8})/$', 'attachments.server', name="attachments_server"),
  11. url(r'^attachment/thumb/(?P<attachment>[0-9a-zA-Z]{8})/$', 'attachments.server', name="attachments_thumbs_server", kwargs={'thumb': True}),
  12. url(r'^category/(?P<slug>(\w|-)+)-(?P<forum>\d+)/$', 'category.category', name="category"),
  13. url(r'^redirect/(?P<slug>(\w|-)+)-(?P<forum>\d+)/$', 'redirect.redirect', name="redirect"),
  14. url(r'^alerts/$', 'alerts.alerts', name="alerts"),
  15. url(r'^alerts/clear-recent/$', 'alerts.clear_recent', name="alerts_clear_recent"),
  16. url(r'^news/$', 'newsfeed.newsfeed', name="newsfeed"),
  17. url(r'^tos/$', 'tos.tos', name="tos"),
  18. url(r'^markdown/$', 'help.markdown', name="help_md"),
  19. url(r'^forum-map/$', 'forummap.forum_map', name="forum_map"),
  20. url(r'^popular/$', 'popularthreads.popular_threads', name="popular_threads"),
  21. url(r'^popular/(?P<page>[1-9]([0-9]+)?)/$', 'popularthreads.popular_threads', name="popular_threads"),
  22. url(r'^new/$', 'newthreads.new_threads', name="new_threads"),
  23. url(r'^new/(?P<page>[1-9]([0-9]+)?)/$', 'newthreads.new_threads', name="new_threads"),
  24. )
  25. urlpatterns += patterns('',
  26. (r'^', include('misago.apps.signin.urls')),
  27. (r'^users/', include('misago.apps.profiles.urls')),
  28. (r'^usercp/', include('misago.apps.usercp.urls')),
  29. (r'^activate/', include('misago.apps.activation.urls')),
  30. (r'^watched-threads/', include('misago.apps.watchedthreads.urls')),
  31. (r'^reset-password/', include('misago.apps.resetpswd.urls')),
  32. (r'^private-threads/', include('misago.apps.privatethreads.urls')),
  33. (r'^reports/', include('misago.apps.reports.urls')),
  34. (r'^search/', include('misago.apps.search.urls')),
  35. (r'^', include('misago.apps.threads.urls')),
  36. )
  37. # Include admin patterns
  38. if ADMIN_PATH:
  39. urlpatterns += patterns('',
  40. url(r'^' + ADMIN_PATH, include(site.discover())),
  41. )
  42. # Include static and media patterns in DEBUG
  43. if settings.DEBUG:
  44. urlpatterns += patterns('django.views.static',
  45. (r'media/(?P<path>.*)', 'serve', {'document_root': settings.MEDIA_ROOT}),
  46. )
  47. # Set error handlers
  48. handler403 = 'misago.apps.errors.error403'
  49. handler404 = 'misago.apps.errors.error404'
  50. # Make sure people are not keeping uploads and app under same domain
  51. import warnings
  52. from urlparse import urlparse
  53. if not settings.DEBUG and not urlparse(settings.MEDIA_URL).netloc:
  54. warnings.warn('Sharing same domain name between application and user uploaded media is a security risk. Create a subdomain pointing to your media directory (eg. "uploads.myforum.com") and change your MEDIA_URL.', RuntimeWarning)