MangAdventure package¶
A simple manga hosting CMS written in Django.
Submodules¶
MangAdventure.converters module¶
Path converters used in URL patterns.
MangAdventure.fields module¶
Custom database models & model fields.
-
class
MangAdventure.fields.
TwitterField
(*args, **kwargs)[source]¶ Bases:
django.db.models.CharField
A
CharField
for Twitter usernames.-
default_validators
= (<MangAdventure.validators.TwitterNameValidator object>,)¶
-
-
class
MangAdventure.fields.
DiscordNameField
(*args, **kwargs)[source]¶ Bases:
django.db.models.CharField
A
CharField
for Discord usernames.-
default_validators
= (<MangAdventure.validators.DiscordNameValidator object>,)¶
-
-
class
MangAdventure.fields.
DiscordURLField
(verbose_name=None, name=None, **kwargs)[source]¶ Bases:
django.db.models.URLField
A
CharField
for Discord server URLs.-
default_validators
= (<MangAdventure.validators.DiscordServerValidator object>,)¶
-
-
class
MangAdventure.fields.
RedditField
(*args, **kwargs)[source]¶ Bases:
django.db.models.CharField
A
CharField
for Reddit names.-
default_validators
= (<MangAdventure.validators.RedditNameValidator object>,)¶
-
MangAdventure.filters module¶
A collection of filters used in the admin interface.
-
MangAdventure.filters.
title_filter
(title, klass=<class 'django.contrib.admin.filters.FieldListFilter'>)[source]¶ A
FieldListFilter
with a custom title.
A
title_filter()
for related fields.- Returns
A class that inherits from
RelatedFieldListFilter
.
MangAdventure.forms module¶
Custom form fields.
-
class
MangAdventure.forms.
TwitterField
(*, max_length=None, min_length=None, strip=True, empty_value='', **kwargs)[source]¶ Bases:
django.forms.CharField
A
CharField
for Twitter usernames.-
default_validators
= (<MangAdventure.validators.TwitterNameValidator object>,)¶
-
-
class
MangAdventure.forms.
DiscordURLField
(**kwargs)[source]¶ Bases:
django.forms.URLField
A
URLField
for Discord server URLs.-
default_validators
= (<MangAdventure.validators.DiscordServerValidator object>,)¶
-
MangAdventure.jsonld module¶
Functions used to generate JSON-LD objects.
-
MangAdventure.jsonld.
schema
(at_type, items)[source]¶ Generate an arbitrary JSON-LD object.
The object’s
@context
links to https://schema.org.
Generate a BreadcrumbList JSON-LD object.
MangAdventure.middleware module¶
Custom middleware.
-
class
MangAdventure.middleware.
BaseMiddleware
(get_response=None)[source]¶ Bases:
django.middleware.common.CommonMiddleware
CommonMiddleware
with custom patches.-
__call__
(request)[source]¶ Patched to allow
blocked user agents
to view/robots.txt
.- Parameters
request (
HttpRequest
) – The original request.- Return type
- Returns
The response to the request.
-
-
class
MangAdventure.middleware.
PreloadMiddleware
(get_response)[source]¶ Bases:
object
Middleware that allows for preloading resources.
- Parameters
get_response (
Callable
[[HttpRequest
],HttpResponse
]) –
-
__call__
(request)[source]¶ Add a
Link
header with preloadable resources to the response.- Parameters
request (
HttpRequest
) – The original request.- Return type
- Returns
The response to the request.
MangAdventure.search module¶
Functions used for searching.
-
MangAdventure.search.
parse
(request)[source]¶ Parse a request and return a
namedtuple
of search parameters.- Parameters
request (
HttpRequest
) – The original request.- Return type
_SearchParams
- Returns
The parameters of the request.
-
MangAdventure.search.
qsfilter
(params)[source]¶ Create a queryset filter from the given search parameters.
- Parameters
params (
_SearchParams
) – Anamedtuple
of parameters.- Return type
- Returns
The created queryset filter.
-
MangAdventure.search.
query
(params)[source]¶ Get a queryset of
Series
from the given search parameters.- Parameters
params (
_SearchParams
) – Anamedtuple
of parameters.- Return type
- Returns
A queryset of series matching the given parameters.
-
MangAdventure.search.
get_response
(request)[source]¶ Get a queryset of
Series
from the given request.- Parameters
request (
HttpRequest
) – The original request.- Return type
- Returns
A queryset of series matching the parameters of the request.
MangAdventure.settings module¶
MangAdventure.storage module¶
Custom storages.
-
class
MangAdventure.storage.
CDNStorage
(*args, **kwargs)[source]¶ Bases:
django.core.files.storage.FileSystemStorage
Storage class that uses the statically image CDN unless
DEBUG
mode is on.-
url
(name)[source]¶ Return the URL where the contents of the file referenced by
name
can be accessed.
-
MangAdventure.urls module¶
The root URLconf.
-
MangAdventure.urls.
urlpatterns
= [<URLPattern '' [name='index']>, <URLResolver <module 'config.urls' from '/home/docs/checkouts/readthedocs.org/user_builds/mangadventure/checkouts/v0.7.4/config/urls.py'> (None:None) ''>, <URLPattern 'search/' [name='search']>, <URLResolver <URLPattern list> (admin:admin) 'admin-panel/'>, <URLResolver <module 'reader.urls' from '/home/docs/checkouts/readthedocs.org/user_builds/mangadventure/checkouts/v0.7.4/reader/urls.py'> (reader:reader) 'reader/'>, <URLResolver <module 'api.urls' from '/home/docs/checkouts/readthedocs.org/user_builds/mangadventure/checkouts/v0.7.4/api/urls.py'> (api:api) 'api/'>, <URLResolver <module 'groups.urls' from '/home/docs/checkouts/readthedocs.org/user_builds/mangadventure/checkouts/v0.7.4/groups/urls.py'> (groups:groups) 'groups/'>, <URLResolver <module 'users.urls' from '/home/docs/checkouts/readthedocs.org/user_builds/mangadventure/checkouts/v0.7.4/users/urls.py'> (None:None) 'user/'>, <URLPattern 'opensearch.xml' [name='opensearch']>, <URLPattern 'contribute.json' [name='contribute']>, <URLPattern 'robots.txt' [name='robots']>, <URLPattern 'releases.atom' [name='releases.atom']>, <URLPattern 'releases.rss' [name='releases.rss']>, <URLPattern 'library.atom' [name='library.atom']>, <URLPattern 'library.rss' [name='library.rss']>]¶ The main URL patterns.
-
MangAdventure.urls.
handler400
= 'MangAdventure.views.handler400'¶
-
MangAdventure.urls.
handler403
= 'MangAdventure.views.handler403'¶
-
MangAdventure.urls.
handler404
= 'MangAdventure.views.handler404'¶
-
MangAdventure.urls.
handler500
= 'MangAdventure.views.handler500'¶
MangAdventure.utils module¶
Various utility functions.
Bases:
django.http.HttpResponse
A response class for HTTP 401.
- Parameters
content (
bytes
) – The body of the response.realm (
str
) – The realm of the WWW-Authenticate header.auth_type (
str
) – The type of the WWW-Authenticate header.
-
MangAdventure.utils.
img_tag
(obj, alt, height=0, width=0)[source]¶ Create an HTML
<img>
from anImageField
.
MangAdventure.validators module¶
Custom validators.
-
class
MangAdventure.validators.
FileSizeValidator
(*args, **kwargs)[source]¶ Bases:
object
Validates that a file’s size is not greater than
max_mb
.- Parameters
max_mb (
int
) – The maximum size of the file in megabytes.
-
message
= 'File too large. Maximum file size allowed is %(max)d MBs.'¶ str
– The error message of the validator.
-
__call__
(file)[source]¶ Call the validator on the given file.
- Parameters
file (
File
) – The file to be validated.- Raises
ValidationError – If the file is too large.
-
deconstruct
()¶ Return a 3-tuple of class import path, positional arguments, and keyword arguments.
-
class
MangAdventure.validators.
DiscordServerValidator
(*args, **kwargs)[source]¶ Bases:
django.core.validators.RegexValidator
Validates a Discord server URL.
-
regex
= '^https://discord\\.(gg|me)/[A-Za-z0-9_%-]+$'¶
-
message
= 'Invalid Discord server URL.'¶
-
code
= 'invalid_discord_url'¶
-
-
MangAdventure.validators.
zipfile_validator
(file)[source]¶ Validate a zip file:
It must be a valid
ZipFile
.It must only contain image files.
It cannot contain more than 1 subfolder.
- Parameters
file (
File
) – The file to be validated.- Raises
ValidationError – If any of the validations failed.
-
class
MangAdventure.validators.
TwitterNameValidator
(*args, **kwargs)[source]¶ Bases:
django.core.validators.RegexValidator
Validates a Twitter name.
-
regex
= '^[A-Za-z0-9_-]{1,15}$'¶
-
message
= 'Invalid Twitter username.'¶
-
code
= 'invalid_twitter_name'¶
-
MangAdventure.views module¶
The main views and error handlers.
-
MangAdventure.views.
index
(request)[source]¶ View that serves the index page which shows the latest releases.
- Parameters
request (
HttpRequest
) – The original request.- Return type
- Returns
A response with the rendered
index.html
template.
-
MangAdventure.views.
search
(request)[source]¶ View that serves a page used for searching for series.
- Parameters
request (
HttpRequest
) – The original request.- Return type
- Returns
A response with the rendered
search.html
template.
-
MangAdventure.views.
opensearch
(request)[source]¶ View that serves the
opensearch.xml
file.- Parameters
request (
HttpRequest
) – The original request.- Return type
- Returns
A response with the rendered
opensearch.xml
template.
-
MangAdventure.views.
contribute
(request)[source]¶ View that serves the
contribute.json
file.- Parameters
request (
HttpRequest
) – The original request.- Return type
- Returns
A response with the
contribute.json
file.
-
MangAdventure.views.
robots
(request)[source]¶ View that serves the
robots.txt
file.- Parameters
request (
HttpRequest
) – The original request.- Return type
- Returns
A response with the generated
robots.txt
file.
-
MangAdventure.views.
handler400
(request, exception=None, template_name='error.html')[source]¶ Handler for 400 responses.
- Parameters
request (
HttpRequest
) – The original request.exception (
Optional
[Exception
]) – The exception that occurred.template_name (
str
) – The name of the error template.
- Return type
- Returns
A
JsonResponse
for API URLs, otherwise a response with the rendered error template.
-
MangAdventure.views.
handler403
(request, exception=None, template_name='error.html')[source]¶ Handler for 403 responses.
- Parameters
request (
HttpRequest
) – The original request.exception (
Optional
[Exception
]) – The exception that occurred.template_name (
str
) – The name of the error template.
- Return type
- Returns
A
JsonResponse
for API URLs, otherwise a response with the rendered error template.
-
MangAdventure.views.
handler404
(request, exception=None, template_name='error.html')[source]¶ Handler for 404 responses.
- Parameters
request (
HttpRequest
) – The original request.exception (
Optional
[Exception
]) – The exception that occurred.template_name (
str
) – The name of the error template.
- Return type
- Returns
A
JsonResponse
for API URLs, otherwise a response with the rendered error template.
-
MangAdventure.views.
handler500
(request, exception=None, template_name='error.html')[source]¶ Handler for 500 responses.
- Parameters
request (
HttpRequest
) – The original request.exception (
Optional
[Exception
]) – The exception that occurred.template_name (
str
) – The name of the error template.
- Return type
- Returns
A
JsonResponse
for API URLs, otherwise a response with the rendered error template.
MangAdventure.widgets module¶
Custom form widgets.
-
class
MangAdventure.widgets.
TinyMCE
(attrs={})[source]¶ Bases:
django.forms.Textarea
MangAdventure.wsgi module¶
WSGI definitions.
-
MangAdventure.wsgi.
application
= <django.core.handlers.wsgi.WSGIHandler object>¶ Django’s WSGI application instance.