remotes/origin/hasaccess
Ivlev Denis 8 years ago
parent 09e8ed5611
commit 3ba9d395ca
  1. 36
      apps/content/tasks.py
  2. 12
      project/settings.py
  3. 24
      project/templates/lilcity/main.html
  4. 4
      requirements.txt

@ -1,19 +1,31 @@
import os
import json
from time import sleep
from project.celery import app
import requests
import shutil
from constance import config
from InstagramAPI import InstagramAPI
from instagram.client import InstagramAPI
from project.celery import app
from time import sleep
from django.conf import settings
@app.task
def retrieve_photos():
instagram = InstagramAPI(
config.INSTAGRAM_CLIENT_LOGIN,
config.INSTAGRAM_CLIENT_PASSWORD,
api = InstagramAPI(
access_token=config.INSTAGRAM_CLIENT_ACCESS_TOKEN,
client_secret=config.INSTAGRAM_CLIENT_SECRET,
)
instagram.login()
sleep(1)
if instagram.isLoggedIn and instagram.getHashtagFeed(config.INSTAGRAM_RESULTS_TAG):
with open('s.json', 'w') as f:
f.write(json.dumps(instagram.LastJson))
return instagram.LastJson
recent_media, next_ = api.user_recent_media(user_id='self', count=20)
path = os.path.join(settings.BASE_DIR, config.INSTAGRAM_RESULTS_PATH)
for idx, media in enumerate(recent_media):
try:
fname = os.path.join(path, f'{idx}.jpg')
r = requests.get(media.images['standard_resolution'].url, stream=True)
if r.status_code == 200:
with open(fname, 'wb') as f:
r.raw.decode_content = True
shutil.copyfileobj(r.raw, f)
except AttributeError:
pass

@ -12,6 +12,7 @@ https://docs.djangoproject.com/en/2.0/ref/settings/
import os
from collections import OrderedDict
from datetime import timedelta
# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
@ -215,13 +216,20 @@ CELERY_BROKER_URL = 'redis://redis:6379/0'
CELERY_RESULT_BACKEND = 'redis://redis:6379/1'
CELERY_TASK_SERIALIZER = 'json'
CELERY_BEAT_SCHEDULE = {
'retrieve_photos_from_instagram': {
'task': 'apps.content.tasks.retrieve_photos',
'schedule': timedelta(minutes=2),
'args': (),
},
}
# Dynamic settings
CONSTANCE_BACKEND = 'constance.backends.database.DatabaseBackend'
CONSTANCE_CONFIG = OrderedDict((
('INSTAGRAM_CLIENT_LOGIN', ('', '')),
('INSTAGRAM_CLIENT_PASSWORD', ('', '')),
('INSTAGRAM_CLIENT_ACCESS_TOKEN', ('7145314808.f6fa114.ce354a5d876041fc9d3db04b0045587d', '')),
('INSTAGRAM_CLIENT_SECRET', ('2334a921425140ccb180d145dcd35b25', '')),
('INSTAGRAM_RESULTS_TAG', ('#lil_акварель', 'Тэг результатов работ.')),
('INSTAGRAM_RESULTS_PATH', ('media/instagram/results/', 'Путь до результатов работ.')),
('SERVICE_COMMISSION', (10, 'Комиссия сервиса в процентах.'))

@ -192,42 +192,42 @@
<div class="gallery">
<div class="gallery__grid">
<div class="gallery__item gallery__item_lg">
<img class="gallery__pic" src="{% static 'img/box.jpg' %}">
<img class="gallery__pic" src="{% get_media_prefix %}instagram/results/0.jpg" onerror="this.style.display='none'">
</div>
<div class="gallery__item">
<img class="gallery__pic" src="{% static 'img/box.jpg' %}">
<img class="gallery__pic" src="{% get_media_prefix %}instagram/results/1.jpg" onerror="this.style.display='none'">
</div>
<div class="gallery__item">
<img class="gallery__pic" src="{% static 'img/box.jpg' %}">
<img class="gallery__pic" src="{% get_media_prefix %}instagram/results/2.jpg" onerror="this.style.display='none'">
</div>
<div class="gallery__item">
<img class="gallery__pic" src="{% static 'img/box.jpg' %}">
<img class="gallery__pic" src="{% get_media_prefix %}instagram/results/3.jpg" onerror="this.style.display='none'">
</div>
<div class="gallery__item">
<img class="gallery__pic" src="{% static 'img/box.jpg' %}">
<img class="gallery__pic" src="{% get_media_prefix %}instagram/results/4.jpg" onerror="this.style.display='none'">
</div>
<div class="gallery__item">
<img class="gallery__pic" src="{% static 'img/box.jpg' %}">
<img class="gallery__pic" src="{% get_media_prefix %}instagram/results/5.jpg" onerror="this.style.display='none'">
</div>
</div>
<div class="gallery__grid">
<div class="gallery__item">
<img class="gallery__pic" src="{% static 'img/box.jpg' %}">
<img class="gallery__pic" src="{% get_media_prefix %}instagram/results/6.jpg" onerror="this.style.display='none'">
</div>
<div class="gallery__item">
<img class="gallery__pic" src="{% static 'img/box.jpg' %}">
<img class="gallery__pic" src="{% get_media_prefix %}instagram/results/7.jpg" onerror="this.style.display='none'">
</div>
<div class="gallery__item">
<img class="gallery__pic" src="{% static 'img/box.jpg' %}">
<img class="gallery__pic" src="{% get_media_prefix %}instagram/results/8.jpg" onerror="this.style.display='none'">
</div>
<div class="gallery__item gallery__item_lg">
<img class="gallery__pic" src="{% static 'img/box.jpg' %}">
<img class="gallery__pic" src="{% get_media_prefix %}instagram/results/9.jpg" onerror="this.style.display='none'">
</div>
<div class="gallery__item">
<img class="gallery__pic" src="{% static 'img/box.jpg' %}">
<img class="gallery__pic" src="{% get_media_prefix %}instagram/results/10.jpg" onerror="this.style.display='none'">
</div>
<div class="gallery__item">
<img class="gallery__pic" src="{% static 'img/box.jpg' %}">
<img class="gallery__pic" src="{% get_media_prefix %}instagram/results/11.jpg" onerror="this.style.display='none'">
</div>
</div>
</div>

@ -1,4 +1,5 @@
# Python-3.6
requests==2.18.4
Django==2.0.2
django-anymail[mailgun]==1.2
# paymentwall-python==1.0.7
@ -18,4 +19,5 @@ drf-yasg[validation]==1.4.0
django-silk==2.0.0
django-cors-headers==2.1.0
django-constance[database]==2.1.0
InstagramAPI==1.0.2
# python-instagram==1.3.2
git+https://github.com/ivlevdenis/python-instagram.git

Loading…
Cancel
Save