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 import json
from time import sleep import requests
from project.celery import app import shutil
from constance import config 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 @app.task
def retrieve_photos(): def retrieve_photos():
instagram = InstagramAPI( api = InstagramAPI(
config.INSTAGRAM_CLIENT_LOGIN, access_token=config.INSTAGRAM_CLIENT_ACCESS_TOKEN,
config.INSTAGRAM_CLIENT_PASSWORD, client_secret=config.INSTAGRAM_CLIENT_SECRET,
) )
instagram.login() recent_media, next_ = api.user_recent_media(user_id='self', count=20)
sleep(1) path = os.path.join(settings.BASE_DIR, config.INSTAGRAM_RESULTS_PATH)
if instagram.isLoggedIn and instagram.getHashtagFeed(config.INSTAGRAM_RESULTS_TAG): for idx, media in enumerate(recent_media):
with open('s.json', 'w') as f: try:
f.write(json.dumps(instagram.LastJson)) fname = os.path.join(path, f'{idx}.jpg')
return instagram.LastJson 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 import os
from collections import OrderedDict from collections import OrderedDict
from datetime import timedelta
# Build paths inside the project like this: os.path.join(BASE_DIR, ...) # Build paths inside the project like this: os.path.join(BASE_DIR, ...)
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) 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_RESULT_BACKEND = 'redis://redis:6379/1'
CELERY_TASK_SERIALIZER = 'json' CELERY_TASK_SERIALIZER = 'json'
CELERY_BEAT_SCHEDULE = {
'retrieve_photos_from_instagram': {
'task': 'apps.content.tasks.retrieve_photos',
'schedule': timedelta(minutes=2),
'args': (),
},
}
# Dynamic settings # Dynamic settings
CONSTANCE_BACKEND = 'constance.backends.database.DatabaseBackend' CONSTANCE_BACKEND = 'constance.backends.database.DatabaseBackend'
CONSTANCE_CONFIG = OrderedDict(( CONSTANCE_CONFIG = OrderedDict((
('INSTAGRAM_CLIENT_LOGIN', ('', '')), ('INSTAGRAM_CLIENT_ACCESS_TOKEN', ('7145314808.f6fa114.ce354a5d876041fc9d3db04b0045587d', '')),
('INSTAGRAM_CLIENT_PASSWORD', ('', '')), ('INSTAGRAM_CLIENT_SECRET', ('2334a921425140ccb180d145dcd35b25', '')),
('INSTAGRAM_RESULTS_TAG', ('#lil_акварель', 'Тэг результатов работ.')), ('INSTAGRAM_RESULTS_TAG', ('#lil_акварель', 'Тэг результатов работ.')),
('INSTAGRAM_RESULTS_PATH', ('media/instagram/results/', 'Путь до результатов работ.')), ('INSTAGRAM_RESULTS_PATH', ('media/instagram/results/', 'Путь до результатов работ.')),
('SERVICE_COMMISSION', (10, 'Комиссия сервиса в процентах.')) ('SERVICE_COMMISSION', (10, 'Комиссия сервиса в процентах.'))

@ -192,42 +192,42 @@
<div class="gallery"> <div class="gallery">
<div class="gallery__grid"> <div class="gallery__grid">
<div class="gallery__item gallery__item_lg"> <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>
<div class="gallery__item"> <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>
<div class="gallery__item"> <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>
<div class="gallery__item"> <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>
<div class="gallery__item"> <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>
<div class="gallery__item"> <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> </div>
<div class="gallery__grid"> <div class="gallery__grid">
<div class="gallery__item"> <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>
<div class="gallery__item"> <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>
<div class="gallery__item"> <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>
<div class="gallery__item gallery__item_lg"> <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>
<div class="gallery__item"> <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>
<div class="gallery__item"> <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> </div>
</div> </div>

@ -1,4 +1,5 @@
# Python-3.6 # Python-3.6
requests==2.18.4
Django==2.0.2 Django==2.0.2
django-anymail[mailgun]==1.2 django-anymail[mailgun]==1.2
# paymentwall-python==1.0.7 # paymentwall-python==1.0.7
@ -18,4 +19,5 @@ drf-yasg[validation]==1.4.0
django-silk==2.0.0 django-silk==2.0.0
django-cors-headers==2.1.0 django-cors-headers==2.1.0
django-constance[database]==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