You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
61 lines
1.7 KiB
61 lines
1.7 KiB
from django.core.management.base import BaseCommand, CommandError
|
|
from place_exposition.models import PlaceExposition
|
|
from django.contrib.sites.models import Site
|
|
from photologue.models import Gallery, Photo
|
|
from file.models import FileModel
|
|
from django.core.files import File
|
|
from django.core.files.temp import NamedTemporaryFile
|
|
import urllib2
|
|
from django.conf import settings
|
|
|
|
|
|
#img_temp = NamedTemporaryFile(delete=True)
|
|
#img_temp.write(urllib2.urlopen(url).read())
|
|
#img_temp.flush()
|
|
|
|
#im.file.save(img_filename, File(img_temp))
|
|
|
|
|
|
def convert_photo(photo):
|
|
domain = 'http://hit.expomap.ru'
|
|
url = domain+photo.file_path.url
|
|
file_name = url.split('/')[-1]
|
|
download_to = settings.MEDIA_ROOT+'photologue/'+file_name
|
|
try:
|
|
response = urllib2.urlopen(url, timeout=5)
|
|
except:
|
|
print('download error')
|
|
return None
|
|
|
|
with open(download_to,'wb') as f:
|
|
f.write(response.read())
|
|
f.close()
|
|
file_name = 'photologue/'+file_name
|
|
new_photo = Photo(image=file_name)
|
|
new_photo.translate('en')
|
|
new_photo.title = file_name.replace('photologue/', '')
|
|
new_photo.save()
|
|
return new_photo
|
|
|
|
def handle_place(place):
|
|
|
|
domain = 'http://hit.expomap.ru'
|
|
for photo in list(place.photos.all()):
|
|
new_photo = convert_photo(photo)
|
|
place.upload_photo(new_photo)
|
|
print(place)
|
|
|
|
|
|
|
|
class Command(BaseCommand):
|
|
def handle(self, *args, **options):
|
|
for place in PlaceExposition.objects.all('en'):
|
|
if place.photos.all().exists():
|
|
handle_place(place)
|
|
|
|
"""
|
|
url = 'adnec-abu-dhabi-national-exhibitions-center'
|
|
p = PlaceExposition.objects.get(url=url)
|
|
handle_place(p)
|
|
"""
|
|
|
|
|