forked from 00dani/lemoncurry
Run Black over the whole codebase
This commit is contained in:
parent
cd990e4e2f
commit
2e7d12b3e6
109 changed files with 1539 additions and 1209 deletions
|
@ -2,4 +2,4 @@ from django.apps import AppConfig
|
|||
|
||||
|
||||
class WebmentionConfig(AppConfig):
|
||||
name = 'webmention'
|
||||
name = "webmention"
|
||||
|
|
|
@ -9,31 +9,71 @@ import model_utils.fields
|
|||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
initial = True
|
||||
|
||||
dependencies = [
|
||||
('entries', '0011_auto_20171120_1108'),
|
||||
("entries", "0011_auto_20171120_1108"),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name='Webmention',
|
||||
name="Webmention",
|
||||
fields=[
|
||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('created', model_utils.fields.AutoCreatedField(default=django.utils.timezone.now, editable=False, verbose_name='created')),
|
||||
('modified', model_utils.fields.AutoLastModifiedField(default=django.utils.timezone.now, editable=False, verbose_name='modified')),
|
||||
('source', models.CharField(max_length=255)),
|
||||
('target', models.CharField(max_length=255)),
|
||||
('state', models.CharField(choices=[('p', 'pending'), ('v', 'valid'), ('i', 'invalid'), ('d', 'deleted')], default='p', max_length=1)),
|
||||
('entry', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='mentions', to='entries.Entry')),
|
||||
(
|
||||
"id",
|
||||
models.AutoField(
|
||||
auto_created=True,
|
||||
primary_key=True,
|
||||
serialize=False,
|
||||
verbose_name="ID",
|
||||
),
|
||||
),
|
||||
(
|
||||
"created",
|
||||
model_utils.fields.AutoCreatedField(
|
||||
default=django.utils.timezone.now,
|
||||
editable=False,
|
||||
verbose_name="created",
|
||||
),
|
||||
),
|
||||
(
|
||||
"modified",
|
||||
model_utils.fields.AutoLastModifiedField(
|
||||
default=django.utils.timezone.now,
|
||||
editable=False,
|
||||
verbose_name="modified",
|
||||
),
|
||||
),
|
||||
("source", models.CharField(max_length=255)),
|
||||
("target", models.CharField(max_length=255)),
|
||||
(
|
||||
"state",
|
||||
models.CharField(
|
||||
choices=[
|
||||
("p", "pending"),
|
||||
("v", "valid"),
|
||||
("i", "invalid"),
|
||||
("d", "deleted"),
|
||||
],
|
||||
default="p",
|
||||
max_length=1,
|
||||
),
|
||||
),
|
||||
(
|
||||
"entry",
|
||||
models.ForeignKey(
|
||||
on_delete=django.db.models.deletion.CASCADE,
|
||||
related_name="mentions",
|
||||
to="entries.Entry",
|
||||
),
|
||||
),
|
||||
],
|
||||
options={
|
||||
'default_related_name': 'mentions',
|
||||
"default_related_name": "mentions",
|
||||
},
|
||||
),
|
||||
migrations.AlterUniqueTogether(
|
||||
name='webmention',
|
||||
unique_together=set([('source', 'target')]),
|
||||
name="webmention",
|
||||
unique_together=set([("source", "target")]),
|
||||
),
|
||||
]
|
||||
|
|
|
@ -4,15 +4,15 @@ from model_utils.models import TimeStampedModel
|
|||
|
||||
|
||||
class State:
|
||||
PENDING = 'p'
|
||||
VALID = 'v'
|
||||
INVALID = 'i'
|
||||
DELETED = 'd'
|
||||
PENDING = "p"
|
||||
VALID = "v"
|
||||
INVALID = "i"
|
||||
DELETED = "d"
|
||||
CHOICES = (
|
||||
(PENDING, 'pending'),
|
||||
(VALID, 'valid'),
|
||||
(INVALID, 'invalid'),
|
||||
(DELETED, 'deleted'),
|
||||
(PENDING, "pending"),
|
||||
(VALID, "valid"),
|
||||
(INVALID, "invalid"),
|
||||
(DELETED, "deleted"),
|
||||
)
|
||||
|
||||
|
||||
|
@ -20,12 +20,8 @@ class Webmention(TimeStampedModel):
|
|||
entry = models.ForeignKey(Entry, on_delete=models.CASCADE)
|
||||
source = models.CharField(max_length=255)
|
||||
target = models.CharField(max_length=255)
|
||||
state = models.CharField(
|
||||
choices=State.CHOICES,
|
||||
default=State.PENDING,
|
||||
max_length=1
|
||||
)
|
||||
state = models.CharField(choices=State.CHOICES, default=State.PENDING, max_length=1)
|
||||
|
||||
class Meta:
|
||||
default_related_name = 'mentions'
|
||||
unique_together = ('source', 'target')
|
||||
default_related_name = "mentions"
|
||||
unique_together = ("source", "target")
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
from django.urls import path
|
||||
from . import views
|
||||
|
||||
app_name = 'webmention'
|
||||
app_name = "webmention"
|
||||
urlpatterns = (
|
||||
path('s', views.accept, name='accept'),
|
||||
path('s/<int:mention_id>', views.status, name='status')
|
||||
path("s", views.accept, name="accept"),
|
||||
path("s/<int:mention_id>", views.status, name="status"),
|
||||
)
|
||||
|
|
|
@ -13,36 +13,36 @@ from .models import State, Webmention
|
|||
@csrf_exempt
|
||||
@require_POST
|
||||
def accept(request):
|
||||
if 'source' not in request.POST:
|
||||
return bad_req('missing source url')
|
||||
source_url = request.POST['source']
|
||||
if "source" not in request.POST:
|
||||
return bad_req("missing source url")
|
||||
source_url = request.POST["source"]
|
||||
|
||||
if 'target' not in request.POST:
|
||||
return bad_req('missing target url')
|
||||
target_url = request.POST['target']
|
||||
if "target" not in request.POST:
|
||||
return bad_req("missing target url")
|
||||
target_url = request.POST["target"]
|
||||
|
||||
source = urlparse(source_url)
|
||||
target = urlparse(target_url)
|
||||
if source.scheme not in ('http', 'https'):
|
||||
return bad_req('unsupported source scheme')
|
||||
if target.scheme not in ('http', 'https'):
|
||||
return bad_req('unsupported target scheme')
|
||||
if source.scheme not in ("http", "https"):
|
||||
return bad_req("unsupported source scheme")
|
||||
if target.scheme not in ("http", "https"):
|
||||
return bad_req("unsupported target scheme")
|
||||
if target.netloc != request.site.domain:
|
||||
return bad_req('target not on this site')
|
||||
origin = 'https://' + target.netloc
|
||||
return bad_req("target not on this site")
|
||||
origin = "https://" + target.netloc
|
||||
|
||||
try:
|
||||
match = resolve(target.path)
|
||||
except Resolver404:
|
||||
return bad_req('target not found')
|
||||
return bad_req("target not found")
|
||||
|
||||
if match.view_name != 'entries:entry':
|
||||
return bad_req('target does not accept webmentions')
|
||||
if match.view_name != "entries:entry":
|
||||
return bad_req("target does not accept webmentions")
|
||||
|
||||
try:
|
||||
entry = Entry.objects.get(pk=match.kwargs['id'])
|
||||
entry = Entry.objects.get(pk=match.kwargs["id"])
|
||||
except Entry.DoesNotExist:
|
||||
return bad_req('target not found')
|
||||
return bad_req("target not found")
|
||||
|
||||
try:
|
||||
mention = Webmention.objects.get(source=source_url, target=target_url)
|
||||
|
@ -54,10 +54,10 @@ def accept(request):
|
|||
mention.entry = entry
|
||||
mention.state = State.PENDING
|
||||
mention.save()
|
||||
status_url = reverse('webmention:status', kwargs={'id': mention.id})
|
||||
status_url = reverse("webmention:status", kwargs={"id": mention.id})
|
||||
|
||||
res = HttpResponse(status=201)
|
||||
res['Location'] = urljoin(origin, status_url)
|
||||
res["Location"] = urljoin(origin, status_url)
|
||||
return res
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue