You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

41 lines
1.4 KiB
Python

from storysave_api import get_hd_profile_picture
3 months ago
import config, funcs, os, time
3 months ago
known_phashes = {'e7c51a904b69d366': 'default empty profile picture',
'cb3ce46194c335dc': 'default empty profile picture',
}
known_hashes = {
'09c3cf34d4f117d99fa6285f4bfd3a0d888d7ab2cbca665b16097f6b93ca0de6' : 'default empty profile picture',
'2b9c0914d8f3f0aa6cf86705df70b7b21e9ca2f9013a346463788e7cebd0158f' : 'default empty profile picture',
}
db, cursor = config.gen_connection()
3 months ago
cursor.execute("SELECT DISTINCT username, user_id, favorite FROM following WHERE user_id IS NOT NULL AND platform = 'instagram' ORDER BY favorite DESC;")
usernames = cursor.fetchall()
3 months ago
for username, user_id, favorite in usernames:
profilepicurl = get_hd_profile_picture(user_id=user_id)
if not profilepicurl:
3 months ago
print(f'Failed for {username}')
continue
filename = os.path.basename(profilepicurl).split('?')[0]
user_dir = os.path.join('media', 'instagram', 'profile', username)
filepath = os.path.join(user_dir, filename)
3 months ago
filepath = funcs.download_file(profilepicurl, filepath)
if not filepath:
continue
phash = funcs.generate_phash(filepath)
if phash in known_phashes:
print(f"Profile picture for {username} is the default empty profile picture.")
os.remove(filepath)
continue
print(f"Downloaded profile picture for {username}.")
time.sleep(1)