summaryrefslogtreecommitdiff
path: root/app/syndication/syndicators.py
blob: de157af71457ce22c1c53818f4c159a821bb4df3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
from django.conf import settings

from bs4 import BeautifulSoup
from medium import Client


def absolute_urls_for_syndication(s):
    soup = BeautifulSoup(s, "lxml")
    for a in soup.find_all('a'):
        if a['href'][:1] == "/":
            a['href'] = "https://luxagraf.net%s" % a['href']
    print(soup)


def post_to_medium(item):
    client = Client(application_id=settings.MEDIUM_CLIENT_ID, application_secret=settings.MEDIUM_CLIENT_SECRET)
    client.access_token = settings.MEDIUM_INT_TOKEN
    user = client.get_current_user()
    head = '<p><i>This was originally posted <a href="https://luxagraf.net%s" rel="canonical">on my own site</a>.</i></p>' % item.get_absolute_url()
    body = "%s %s" % (head, absolute_urls_for_syndication(item.body_html))
    # Create a post.
    post = client.create_post(
        user_id=user["id"],
        title=item.title,
        content=body,
        content_format="html",
        publish_status="public",
        canonicalUrl="https://luxagraf.net%s" % item.get_absolute_url(),
        license="all-rights-reserved"
    )
    return post["url"]