Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # -*- coding: utf-8 -*-
- """
- Created on Tue Mar 12 12:45:51 2024
- @author: HP
- """
- import requests
- import json
- def login_to_api(server_url, email, password):
- login_url = f"{server_url}/api/auth/login"
- login_payload = json.dumps({
- "email": email,
- "password": password
- })
- login_headers = {'Content-Type': 'application/json', 'Accept': 'application/json'}
- response = requests.request("POST", login_url, headers=login_headers, data=login_payload)
- print(f"Login response: {response.status_code}, Body: {response.text}")
- return response.json()['accessToken']
- def get_assets(server_url, token, count, user_id):
- photo_url = f"{server_url}/api/person/{user_id}/assets"
- photo_headers = {'Authorization': f'Bearer {token}', 'Accept': 'application/json'}
- photo_response = requests.get(photo_url, headers=photo_headers)
- assets = photo_response.json()
- return assets
- def add_assets_to_album(server_url, token, album_id, asset_ids, key=None):
- url = f"{server_url}/api/album/{album_id}/assets"
- headers = {
- 'Authorization': f'Bearer {token}',
- 'Content-Type': 'application/json',
- 'Accept': 'application/json'
- }
- payload = json.dumps({"ids": asset_ids})
- params = {'key': key} if key else {}
- print(f"Sending request to {url} with payload: {payload} and params: {params}")
- response = requests.put(url, headers=headers, data=payload, params=params)
- print(f"Add assets response: {response.status_code}, Body: {response.text}")
- if response.status_code == 200:
- print("Assets successfully added to the album.")
- return True
- else:
- try:
- error_response = response.json()
- print(f"Error adding assets to album: {error_response.get('error', 'Unknown error')}")
- except json.JSONDecodeError:
- print(f"Failed to decode JSON response. Status code: {response.status_code}, Response text: {response.text}")
- return False
- def main():
- server_url = (https://localhost:port)
- email = (immich login)
- password = (immich pass)
- user_id = (https://localhost:port/people/**this number***)
- album_id = (https://localhost:port/albums/**this number***)
- token = login_to_api(server_url, email, password)
- assets = get_assets(server_url, token, 1000, user_id) # Fetching the latest 100 assets
- photo_asset_ids = [asset['id'] for asset in assets if asset['type'] == 'IMAGE'] # Extracting the IDs
- video_asset_ids = [asset['id'] for asset in assets if asset['type'] == 'VIDEO'] # Extracting the IDs
- all_asset_ids = photo_asset_ids + video_asset_ids # Combine photo and video IDs
- add_assets_to_album(server_url, token, album_id, all_asset_ids) # Use the
- if __name__ == "__main__":
- main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement