parent
3e5b1d1308
commit
fcfb2bb846
1 changed files with 70 additions and 0 deletions
@ -0,0 +1,70 @@ |
||||
import requests |
||||
import os |
||||
from datetime import date, datetime, timedelta |
||||
from time import sleep |
||||
|
||||
from arangodb import db |
||||
|
||||
|
||||
def download_image(url, user, id): |
||||
|
||||
# Kolla så användarmappen finns |
||||
if not os.path.isdir(f'../profile_pictures/{user}'): |
||||
os.mkdir(f'../profile_pictures/{user}') |
||||
|
||||
# Ladda ner bilden |
||||
r = requests.get(url) |
||||
if r.text == 'URL signature expired': |
||||
print('För gammal länk.') |
||||
exit() |
||||
elif r.status_code == 403: |
||||
exit() |
||||
img_data = r.content |
||||
with open(f'../profile_pictures/{user}/{id}.jpg', 'wb') as handler: |
||||
handler.write(img_data) |
||||
|
||||
|
||||
def get_pictures(day): |
||||
cursor = db.aql.execute( |
||||
""" |
||||
for doc in members |
||||
filter doc.fetched == @date |
||||
filter has(doc, "checked_pictures") |
||||
filter not has(doc, "pictures_downloaded") |
||||
return {'member': doc._key, 'pictures':doc.checked_pictures} |
||||
""", |
||||
bind_vars={'date': day} |
||||
) |
||||
|
||||
for doc in cursor: |
||||
pictures = [] |
||||
for picture in doc['pictures']: |
||||
pictures.append(picture[picture.find('fbid=')+5:]) |
||||
|
||||
|
||||
cursor = db.aql.execute( |
||||
""" |
||||
for doc in pictures |
||||
filter doc._key in @list |
||||
limit 10 |
||||
return {'_key': doc._key, 'user':doc.user, 'url': doc.src} |
||||
""", |
||||
bind_vars={"list": pictures}, |
||||
) |
||||
|
||||
for picture in cursor: |
||||
download_image(picture['url'], picture['user'], picture['_key']) |
||||
print(picture['_key']) |
||||
sleep(2) |
||||
|
||||
db.update_document({'_id': 'members/' + str(doc['member']), 'pictures_downloaded': True}, silent=True, check_rev=False) |
||||
|
||||
def old_pics(): |
||||
if not os.path.isdir(f'../profile_pictures'): |
||||
os.mkdir(f'../profile_pictures') |
||||
start = date.today() |
||||
for i in range(1,60): |
||||
d = start - timedelta(days=i) |
||||
get_pictures(d.strftime('%Y%m%d')) |
||||
|
||||
|
||||
Loading…
Reference in new issue