25 lines
788 B
Python
25 lines
788 B
Python
from django.conf import settings
|
|
from wagtail import hooks
|
|
from wagtail.models import Page
|
|
from urllib.parse import urlparse
|
|
from base.indexnow import get_key
|
|
import requests
|
|
|
|
|
|
@hooks.register('after_publish_page')
|
|
def after_publish_page(request, page):
|
|
page_url = page.full_url
|
|
# avoid if the host is localhost (development)
|
|
print("preparing to notify")
|
|
if urlparse(page_url).hostname == "localhost":
|
|
print("not notifying indexnow for localhost" + get_key() + ", page url: " + page_url)
|
|
return
|
|
session = requests.Session()
|
|
session.post(
|
|
"https://api.indexnow.org/indexnow",
|
|
json={
|
|
"host": urlparse(page_url).hostname,
|
|
"urlList": [page_url],
|
|
"key": get_key(),
|
|
},
|
|
).raise_for_status()
|