diff options
Diffstat (limited to 'app/unused_apps/syndication/syndicators.py')
-rw-r--r-- | app/unused_apps/syndication/syndicators.py | 123 |
1 files changed, 0 insertions, 123 deletions
diff --git a/app/unused_apps/syndication/syndicators.py b/app/unused_apps/syndication/syndicators.py deleted file mode 100644 index 5f8762c..0000000 --- a/app/unused_apps/syndication/syndicators.py +++ /dev/null @@ -1,123 +0,0 @@ -import os -from django.conf import settings -from django.test.client import Client - -from twython import Twython -from bs4 import BeautifulSoup -from medium import Client as MediumClient -import flickrapi -import facebook - -from photos.models import LuxImage - - -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'] - return soup - - -def post_to_medium(item): - client = MediumClient(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", - canonical_url="https://luxagraf.net%s" % item.get_absolute_url(), - license="all-rights-reserved" - ) - return post["url"] - - -def build_facebook_feed(): - print("+++++++++++++building+++++++++++") - c = Client() - response = c.get('/iafeed.xml', HTTP_HOST='127.0.0.1') - f = open("%siafeed.xml" % settings.FLATFILES_ROOT, 'wb') - f.write(response.content) - f.close() - - -def post_to_twitter(obj, ctype): - print("content type is" + ctype) - t = Twython(settings.TWITTER_API_KEY, settings.TWITTER_API_SECRET, settings.TWITTER_ACCESS_TOKEN, settings.TWITTER_ACCESS_SECRET) - imgs = [] - if ctype == "lux image": - p = open(obj.get_largest_image(), 'rb') - if obj.caption: - status = obj.caption - else: - status = obj.title - response = t.upload_media(media=p) - imgs.append(response) - elif ctype == "lux note": - status = obj.body_markdown - # parse out images and send seperately - soup = BeautifulSoup(status, "lxml") - loop = 0 - for img in soup.find_all('img'): - src = img['src'].split("images/")[1] - i = LuxImage.objects.get(image__icontains=src) - p = open(i.get_largest_image(), 'rb') - response = t.upload_media(media=p) - imgs.append(response) - loop = loop+1 - if loop == 3: - break - for t in soup.find_all('img'): - t.replaceWith("") - # truncate message - if len(status) > 140: - try: - status = status.split("|")[0] + obj.get_absolute_url() - except: - status = status[:140] + obj.get_absolute_url() - print(status) - try: - geo = t.reverse_geocode(lat=obj.latitude, lon=obj.longitude, accuracy=1500, granularity="city") - geo_id = geo['result']['places'][0]['id'] - tweet = t.update_status(status=status, media_ids=[img['media_id'] for img in imgs], place_id=geo_id) - except: - try: - tweet = t.update_status(status=status, media_ids=[img['media_id'] for img in imgs]) - except: - tweet = t.update_status(status=status) - - -def post_photo_to_flickr(photo): - TOKEN_FILE = os.path.join(settings.PROJ_ROOT, "config/flickrToken") - token = open(TOKEN_FILE).read() - flickr = flickrapi.FlickrAPI(settings.FLICKR_API_KEY, settings.FLICKR_API_SECRET, token=token) - sent = flickr.upload(filename=photo.get_image_path_by_size("original"), title=photo.title, description=photo.caption) - photo_id = sent.find('photoid').text - photo.flickr_id = photo_id - try: - flickr.photos.geo.setLocation(photo_id=photo_id, lat=photo.latitude, lon=photo.longitude, accuracy=12) - except: - pass - - -def post_to_facebook(obj, ctype): - from syndication.models import FBOAuthToken - token = FBOAuthToken.objects.latest() - graph = facebook.GraphAPI(access_token=token.long_token, version='2.2') - if ctype == "lux image": - p = open(obj.get_largest_image(), 'rb') - if obj.caption: - message = obj.caption - else: - message = obj.title - try: - fb_response = graph.put_photo(p, message=message) - print(fb_response) - except facebook.GraphAPIError as e: - print('Something went wrong:', e.type, e.message) |