urls.py 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  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. url(r'^warn-user/(?P<slug>\w+)-(?P<user>\d+)/', 'warnuser.warn_user', name="warn_user"),
  25. )
  26. urlpatterns += patterns('',
  27. (r'^', include('misago.apps.signin.urls')),
  28. (r'^users/', include('misago.apps.profiles.urls')),
  29. url(r'^users/(?P<username>\w+)-(?P<user>\d+)/destroy/', 'misago.apps.destroyuser.destroy_user', name="destroy_user"),
  30. (r'^usercp/', include('misago.apps.usercp.urls')),
  31. (r'^activate/', include('misago.apps.activation.urls')),
  32. (r'^watched-threads/', include('misago.apps.watchedthreads.urls')),
  33. (r'^reset-password/', include('misago.apps.resetpswd.urls')),
  34. (r'^private-threads/', include('misago.apps.privatethreads.urls')),
  35. (r'^reports/', include('misago.apps.reports.urls')),
  36. (r'^search/', include('misago.apps.search.urls')),
  37. (r'^', include('misago.apps.threads.urls')),
  38. )
  39. # Include admin patterns
  40. if ADMIN_PATH:
  41. urlpatterns += patterns('',
  42. url(r'^' + ADMIN_PATH, include(site.discover())),
  43. )
  44. # Include static and media patterns in DEBUG
  45. if settings.DEBUG:
  46. urlpatterns += patterns('django.views.static',
  47. (r'media/(?P<path>.*)', 'serve', {'document_root': settings.MEDIA_ROOT}),
  48. )
  49. # Set error handlers
  50. handler403 = 'misago.apps.errors.error403'
  51. handler404 = 'misago.apps.errors.error404'
  52. # Make sure people are not keeping uploads and app under same domain
  53. import warnings
  54. from urlparse import urlparse
  55. if not settings.DEBUG and not urlparse(settings.MEDIA_URL).netloc:
  56. 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)