#!/usr/bin/env python3
# -*- coding: utf-8 -*-
## run
## > python flickr_GetUrl.py tag number_of_images_to_attempt_to_download
from flickrapi import FlickrAPI
# import pandas as pd
import sys
from pathlib import Path
import logging
import os
logging.basicConfig(level=os.environ.get("LOGLEVEL", "INFO"))

sys.path.insert(1, str(Path.home()/"my"))
from flickr_api_key import key, secret

def get_urls(flickr, query, MAX_COUNT):
#    photos = flickr.walk(text=query, tag_mode='all', extras='url_o', per_page=50, sort='relevance', safe_search=3)
    photos = flickr.walk(text=query, tag_mode='all', extras='url_o', per_page=50, sort='interestingness-desc', safe_search=3)
    # tags=query, 
    count=0
    urls=[]
    for photo in photos:
        if count< MAX_COUNT:
            count=count+1
#            print("Fetching url for image number {}".format(count))
            url = None
            try:
                url=photo.get('url_o')
#                urls.append(url)
            except:
                print("Url for image number {} could not be fetched".format(count))
            if url:
                print(url)
        else:
#            print("Done fetching urls, fetched {} urls out of {}".format(len(urls),MAX_COUNT))
            break
#    urls=pd.Series(urls)
#    print("Writing out the urls in the current directory")
#    urls.to_csv(query+"_urls.csv")
def main():
    query = sys.argv[1]
    MAX_COUNT=int(sys.argv[2])
    flickr = FlickrAPI(key, secret)
    flickr.authenticate_via_browser()
    get_urls(flickr, query, MAX_COUNT)
if __name__=='__main__':
    main()
