MangAdventure package¶
A simple manga hosting CMS written in Django.
Submodules¶
MangAdventure.converters module¶
Path converters used in URL patterns.
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.
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.
MangAdventure.models module¶
Custom database models & model fields.
-
class
MangAdventure.models.
TwitterField
(*args, **kwargs)[source]¶ Bases:
django.db.models.fields.CharField
A
CharField
for Twitter usernames.-
default_validators
= (<function twitter_name_validator>,)¶
-
-
class
MangAdventure.models.
DiscordNameField
(*args, **kwargs)[source]¶ Bases:
django.db.models.fields.CharField
A
CharField
for Discord usernames.-
default_validators
= (<function discord_name_validator>,)¶
-
-
class
MangAdventure.models.
DiscordURLField
(verbose_name=None, name=None, **kwargs)[source]¶ Bases:
django.db.models.fields.URLField
A
CharField
for Discord server URLs.-
default_validators
= (<function discord_server_validator>,)¶
-
-
class
MangAdventure.models.
RedditField
(*args, **kwargs)[source]¶ Bases:
django.db.models.fields.CharField
A
CharField
for Reddit names.-
default_validators
= (<function reddit_name_validator>,)¶
-
-
class
MangAdventure.models.
AliasField
(*args, **kwargs)[source]¶ Bases:
django.db.models.fields.CharField
A
CharField
for aliases.
-
class
MangAdventure.models.
AliasKeyField
(*args, **kwargs)[source]¶ Bases:
django.db.models.fields.related.ForeignKey
A
ForeignKey
for aliases.
-
class
MangAdventure.models.
Alias
(*args, **kwargs)[source]¶ Bases:
django.db.models.base.Model
An abstract
Model
for aliases.-
alias
: AliasField¶
-
objects
= <MangAdventure.models.AliasManager object>¶
-
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
Q
- Returns
The created queryset filter.
MangAdventure.settings module¶
MangAdventure.storage module¶
Custom storages.
-
class
MangAdventure.storage.
CDNStorage
(fit=None)[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/envs/v0.6.6/lib/python3.7/site-packages/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/envs/v0.6.6/lib/python3.7/site-packages/reader/urls.py'> (reader:reader) 'reader/'>, <URLResolver <module 'api.urls' from '/home/docs/checkouts/readthedocs.org/user_builds/mangadventure/envs/v0.6.6/lib/python3.7/site-packages/api/urls.py'> (api:api) 'api/'>, <URLResolver <module 'groups.urls' from '/home/docs/checkouts/readthedocs.org/user_builds/mangadventure/envs/v0.6.6/lib/python3.7/site-packages/groups/urls.py'> (groups:groups) 'groups/'>, <URLResolver <module 'users.urls' from '/home/docs/checkouts/readthedocs.org/user_builds/mangadventure/envs/v0.6.6/lib/python3.7/site-packages/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.
-
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
(max_mb=10)[source]¶ Bases:
django.core.validators.BaseValidator
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.'¶
-
code
= 'file_too_large'¶
-
MangAdventure.validators.
discord_server_validator
(url)[source]¶ Call
RegexValidator
to validate a Discord server URL.- Parameters
url (
str
) – The Discord server URL to be validated.- Raises
ValidationError – If the URL is invalid.
-
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.
-
MangAdventure.validators.
twitter_name_validator
(name)[source]¶ Call
RegexValidator
to validate a Twitter name.- Parameters
file – The Twitter name to be validated.
name (
str
) –
- Raises
ValidationError – If the name is invalid.
-
MangAdventure.validators.
discord_name_validator
(name)[source]¶ Call
RegexValidator
to validate a Discord name.- Parameters
file – The Discord name to be validated.
name (
str
) –
- Raises
ValidationError – If the name is invalid.
-
MangAdventure.validators.
reddit_name_validator
(name)[source]¶ Call
RegexValidator
to validate a Reddit name.- Parameters
file – The Reddit name to be validated.
name (
str
) –
- Raises
ValidationError – If the name is invalid.
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
HttpResponse
- 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
HttpResponse
- 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
HttpResponse
- 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
HttpResponse
- 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
HttpResponse
- Returns
A response with the generated
robots.txt
file.
-
MangAdventure.views.
handler400
(request, exception=None, template_name='error.html')[source]¶ Handler for 400 responses.
-
MangAdventure.views.
handler403
(request, exception=None, template_name='error.html')[source]¶ Handler for 403 responses.
-
MangAdventure.views.
handler404
(request, exception=None, template_name='error.html')[source]¶ Handler for 404 responses.