2010-09-15 16:25:54 +00:00
|
|
|
# -*- coding: utf-8 -*-
|
|
|
|
import os
|
2021-08-01 16:39:01 +00:00
|
|
|
import importlib
|
2010-09-15 16:25:54 +00:00
|
|
|
|
2020-05-28 22:20:18 +00:00
|
|
|
from django.urls import path, re_path
|
2016-02-20 09:06:41 +00:00
|
|
|
from oxdjango.http import HttpFileResponse
|
2009-06-08 16:08:59 +00:00
|
|
|
|
2009-08-16 12:23:29 +00:00
|
|
|
from django.conf import settings
|
2016-02-19 16:59:21 +00:00
|
|
|
import django.views
|
2009-08-16 12:23:29 +00:00
|
|
|
|
2009-06-08 16:08:59 +00:00
|
|
|
# Uncomment the next two lines to enable the admin:
|
2009-08-16 12:23:29 +00:00
|
|
|
from django.contrib import admin
|
|
|
|
admin.autodiscover()
|
|
|
|
|
2013-05-18 21:43:52 +00:00
|
|
|
import app.monkey_patch
|
2011-11-04 18:10:48 +00:00
|
|
|
|
2020-05-28 22:20:18 +00:00
|
|
|
import oxdjango.api.site
|
2010-11-25 15:21:23 +00:00
|
|
|
|
2016-02-19 16:59:21 +00:00
|
|
|
import app.views
|
|
|
|
import archive.views
|
|
|
|
import document.views
|
2016-10-04 22:00:03 +00:00
|
|
|
import documentcollection.views
|
2016-02-19 16:59:21 +00:00
|
|
|
import text.views
|
|
|
|
import user.views
|
|
|
|
import edit.views
|
|
|
|
import itemlist.views
|
|
|
|
import item.views
|
2020-05-28 22:20:18 +00:00
|
|
|
import item.site
|
2023-07-15 06:34:04 +00:00
|
|
|
import mobile.views
|
2018-08-08 09:23:05 +00:00
|
|
|
import translation.views
|
2016-02-19 16:59:21 +00:00
|
|
|
import urlalias.views
|
|
|
|
|
2010-09-15 16:25:54 +00:00
|
|
|
def serve_static_file(path, location, content_type):
|
|
|
|
return HttpFileResponse(location, content_type=content_type)
|
2009-06-08 16:08:59 +00:00
|
|
|
|
2016-02-19 16:59:21 +00:00
|
|
|
urlpatterns = [
|
2020-05-28 22:20:18 +00:00
|
|
|
#path('admin/', admin.site.urls),
|
|
|
|
|
|
|
|
re_path(r'^api/locale.(?P<lang>.*).json$', translation.views.locale_json),
|
|
|
|
re_path(r'^api/upload/text/?$', text.views.upload),
|
|
|
|
re_path(r'^api/upload/document/?$', document.views.upload),
|
|
|
|
re_path(r'^api/upload/direct/?$', archive.views.direct_upload),
|
|
|
|
re_path(r'^api/upload/?$', archive.views.firefogg_upload),
|
|
|
|
re_path(r'^url=(?P<url>.*)$', app.views.redirect_url),
|
|
|
|
re_path(r'^file/(?P<oshash>.*)$', archive.views.lookup_file),
|
|
|
|
re_path(r'^api/?', oxdjango.api.site.urls),
|
|
|
|
re_path(r'^resetUI$', user.views.reset_ui),
|
|
|
|
re_path(r'^collection/(?P<id>.*?)/icon(?P<size>\d*).jpg$', documentcollection.views.icon),
|
|
|
|
re_path(r'^documents/(?P<id>[A-Z0-9]+)/(?P<size>\d*)p(?P<page>[\d,]*).jpg$', document.views.thumbnail),
|
|
|
|
re_path(r'^documents/(?P<id>[A-Z0-9]+)/(?P<name>.*?\.[^\d]{3})$', document.views.file),
|
2023-07-15 06:34:04 +00:00
|
|
|
re_path(r'^documents/(?P<fragment>.*?)$', document.views.document),
|
2020-05-28 22:20:18 +00:00
|
|
|
re_path(r'^edit/(?P<id>.*?)/icon(?P<size>\d*).jpg$', edit.views.icon),
|
|
|
|
re_path(r'^list/(?P<id>.*?)/icon(?P<size>\d*).jpg$', itemlist.views.icon),
|
|
|
|
re_path(r'^text/(?P<id>.*?)/icon(?P<size>\d*).jpg$', text.views.icon),
|
|
|
|
re_path(r'^texts/(?P<id>.*?)/text.pdf$', text.views.pdf),
|
|
|
|
re_path(r'^texts/(?P<id>.*?)/text.pdf.html$', text.views.pdf_viewer),
|
|
|
|
re_path(r'^texts/$', text.views.text),
|
|
|
|
re_path(r'^texts/(?P<id>.*?)/\d+$', text.views.text),
|
|
|
|
re_path(r'^texts/(?P<id>.*?)$', text.views.text),
|
|
|
|
re_path(r'^favicon.ico$', serve_static_file, {
|
2016-02-19 16:59:21 +00:00
|
|
|
'location': os.path.join(settings.STATIC_ROOT, 'png/icon.16.png'),
|
|
|
|
'content_type': 'image/x-icon'
|
|
|
|
}),
|
2020-05-28 22:20:18 +00:00
|
|
|
re_path(r'^opensearch.xml$', app.views.opensearch_xml),
|
|
|
|
re_path(r'^oembed$', item.views.oembed),
|
|
|
|
re_path(r'^atom.xml$', item.views.atom_xml),
|
|
|
|
re_path(r'^robots.txt$', app.views.robots_txt),
|
|
|
|
re_path(r'^sitemap.xml$', item.views.sitemap_xml),
|
|
|
|
re_path(r'^sitemap(?P<part>\d+).xml$', item.views.sitemap_part_xml),
|
2023-07-15 06:34:04 +00:00
|
|
|
re_path(r'm/(?P<fragment>.*?)$', mobile.views.index),
|
2020-05-28 22:20:18 +00:00
|
|
|
path(r'', item.site.urls),
|
2016-02-19 16:59:21 +00:00
|
|
|
]
|
2011-11-03 12:02:12 +00:00
|
|
|
#sould this not be enabled by default? nginx should handle those
|
2017-11-14 15:53:50 +00:00
|
|
|
if settings.DEBUG:
|
|
|
|
urlpatterns += [
|
2020-05-28 22:20:18 +00:00
|
|
|
re_path(r'^data/(?P<path>.*)$', django.views.static.serve,
|
2017-11-14 15:53:50 +00:00
|
|
|
{'document_root': settings.MEDIA_ROOT}),
|
2020-05-28 22:20:18 +00:00
|
|
|
re_path(r'^static/(?P<path>.*)$', django.views.static.serve,
|
2017-11-14 15:53:50 +00:00
|
|
|
{'document_root': settings.STATIC_ROOT}),
|
|
|
|
]
|
2011-01-04 06:03:00 +00:00
|
|
|
|
2016-02-19 16:59:21 +00:00
|
|
|
urlpatterns += [
|
2020-05-28 22:20:18 +00:00
|
|
|
re_path(r'^(V[a-z0-9]+)$', urlalias.views.padma_video),
|
|
|
|
re_path(r'^(V[a-z0-9]+/.*)$', urlalias.views.padma_video),
|
|
|
|
re_path(r'^find$', urlalias.views.padma_find),
|
2016-02-19 16:59:21 +00:00
|
|
|
]
|
|
|
|
urlpatterns += [
|
2020-05-28 22:20:18 +00:00
|
|
|
re_path(r'^(?P<id>[A-Z0-9x]+)/embed', app.views.embed),
|
|
|
|
re_path(r'^(?P<id>[A-Z0-9x]+).*', item.views.item),
|
|
|
|
re_path(r'^[a-z0-9].+$', app.views.index),
|
|
|
|
re_path(r'^.*$', app.views.index),
|
|
|
|
path(r'', app.views.index),
|
2016-02-19 16:59:21 +00:00
|
|
|
]
|
2009-08-16 12:23:29 +00:00
|
|
|
|
2021-08-01 16:39:01 +00:00
|
|
|
if settings.LOCAL_URLPATTERNS:
|
|
|
|
patterns = []
|
|
|
|
for pattern, fn in settings.LOCAL_URLPATTERNS:
|
2021-08-03 12:38:28 +00:00
|
|
|
if isinstance(fn, str):
|
2021-08-01 16:39:01 +00:00
|
|
|
m, f = fn.rsplit('.', 1)
|
|
|
|
try:
|
|
|
|
m = importlib.import_module(m)
|
|
|
|
except ImportError:
|
|
|
|
logger.error('failed to import urllib module: %s', fn, exc_info=True)
|
|
|
|
continue
|
|
|
|
fn = getattr(m, f)
|
|
|
|
patterns.append(re_path(pattern, fn))
|
|
|
|
urlpatterns = patterns + urlpatterns
|
|
|
|
|