#!/usr/bin/python3

import os
import urllib.request
import requests
import json
import datetime
print(datetime.datetime.now().strftime("%Y-%m-%d_%H-%M"))

firstDrink = '11000'
nextDrink = 'Arrow-Right.png'
drinkNumber = firstDrink


def substring_after(s, delim):
    return s.partition(delim)[2]


def substring_before(s, delim):
    return s.partition(delim)[0]


path = 'drink'  # folder for html
try:
    os.mkdir(path)
    print("Folder %s created!" % path)
except FileExistsError:
    print("Folder %s already exists..." % path)

path = 'json'  # folder for full details
try:
    os.mkdir(path)
    print("Folder %s created!" % path)
except FileExistsError:
    print("Folder %s already exists..." % path)

path = 'picture'  # folder for full details
try:
    os.mkdir(path)
    print("Folder %s created!" % path)
except FileExistsError:
    print("Folder %s already exists..." % path)

# Download the very first Cocktail
url = 'https://www.thecocktaildb.com/drink/' + drinkNumber
htmlFile = 'drink/' + drinkNumber + '.html'
print("Downloading", url, "and save as", htmlFile)
urllib.request.urlretrieve(url, htmlFile)
jsonUrl = 'https://www.thecocktaildb.com/api/json/v1/1/lookup.php?i=' + drinkNumber
jsonFile = 'json/' + drinkNumber + '.json'
print("Downloading", jsonUrl, "and save as", jsonFile)
urllib.request.urlretrieve(jsonUrl, jsonFile)
print("Working on ", jsonUrl, "to get link to picture")
f = r"" + jsonUrl
data = requests.get(f)
tt = json.loads(data.text)
for i in (tt["drinks"]):
    picture = i["strDrinkThumb"]
    name = i["strDrink"]
pictureFile = 'picture/' + drinkNumber + '.jpg'
print("Downloading", picture, "and save as", pictureFile, "(", name, ")")
urllib.request.urlretrieve(picture, pictureFile)

with open(jsonFile, 'r') as j:
    for line in j.readlines():
        line = line.rstrip(line[-1])
        line = line.rstrip(line[-1])
        print(line)
os.rename('cocktailDatabase.json','cocktailDatabase.json.bakup_' + datetime.datetime.now().strftime("%Y-%m-%d_%H-%M"))
with open('cocktailDatabase.json', 'a') as bigFile:
    bigFile.write(line)
bigFile.close()


# Work though the first cocktail, that has no "Arrow-Left.png"
with open(htmlFile, 'r') as f:
    for line in f.readlines():
        if nextDrink in line:
            idx1 = line.find('"')
            idx2 = line.find('"', idx1 + 1)
            stringWithLinkToNext = line[idx1 + 1:idx2 - 1]
            nextCocktailNumber = substring_after(stringWithLinkToNext, "drink/")
            # print(nextCocktailNumber)
            nextCocktailNumber = substring_before(nextCocktailNumber, "-")
            print("Next cocktail has ID:", nextCocktailNumber)






# Loop through the cocktails, by using the number behind the "Arrow-Right.png"
for loop in range(1000):  # limited to 10 for quick test (currently there are 636 drinks)
    url = 'https://www.thecocktaildb.com/drink/' + nextCocktailNumber
    htmlFile = 'drink/' + nextCocktailNumber + '.html'
    print("Downloading", url, "and save as", htmlFile)
    urllib.request.urlretrieve(url, htmlFile)
    jsonUrl = 'https://www.thecocktaildb.com/api/json/v1/1/lookup.php?i=' + nextCocktailNumber
    jsonFile = 'json/' + nextCocktailNumber + '.json'
    print("Downloading", jsonUrl, "and save as", jsonFile)
    urllib.request.urlretrieve(jsonUrl, jsonFile)
    print("Working on ", jsonUrl, "to get link to picture")
    f = r"" + jsonUrl
    data = requests.get(f)
    tt = json.loads(data.text)
    for i in (tt["drinks"]):
        picture = i["strDrinkThumb"]
        name = i["strDrink"]
    pictureFile = 'picture/' + nextCocktailNumber + '.jpg'
    print("Downloading", picture, "and save as", pictureFile, "(", name, ")")
    urllib.request.urlretrieve(picture, pictureFile)
    with open(jsonFile, 'r') as j:
        for line in j.readlines():
            line = line.rstrip(line[-1])
            line = line.rstrip(line[-1])
            line = substring_after(line, "[")
            line = "," + line
    with open('cocktailDatabase.json', 'a') as bigFile:
        bigFile.write(line)
        print(line)
    bigFile.close()
    with open(htmlFile, 'r') as f:
        for line in f.readlines():
            if nextDrink in line:
                idx1 = line.find('"')
                idx2 = line.find('"', idx1 + 1)
                stringWithLinkToNext = line[idx1 + 1:idx2 - 1]
                # print(stringWithLinkToNext)
                nextCocktailNumber = substring_after(stringWithLinkToNext, "Arrow-Left.png")
                nextCocktailNumber = substring_after(nextCocktailNumber, "href='/drink/")
                # print(nextCocktailNumber)
                nextCocktailNumber = substring_before(nextCocktailNumber, "-")
                print("Next cocktail has ID:", nextCocktailNumber, "(", loop + 3, ")")


with open('cocktailDatabase.json', 'a') as bigFile:
    bigFile.write("]}")
bigFile.close()
