from urllib.request import urlopen
from platform import system as platform
from os import mkdir, path

url="http://minnanihongo.toile-libre.org/MinnaNihongo/"

def internetOn():
    try:
        response=urlopen('http://minnanihongo.toile-libre.org/',timeout=1)
        return True
    except:
        pass
    return False

def parsehref(path):
    parse=list()
    string=str(urlopen(url+path).read())
    test=True
    k=0
    i=0
    j=0
    while test:
        if i<len(string):
            i=string.find('href="', i, len(string))+6
            if i>j:
                parse.append("")
                while string[i]!='"':
                    parse[k]=parse[k]+string[i]
                    i+=1
                k+=1
            else:
                test=False
            j=i
            i+=1 
    return(parse)

def download(install, path):
    print("Telechargement de",path,"...")
    fichier=open(install+path, 'wb')
    fichier.write(urlopen(url+path).read())
    fichier.close()

def parsing(install, chemin):
    liens=parsehref(chemin)
    for path in liens:
        if path[0]!= "/":
            if path[len(path)-1]=="/":
                try:
                    mkdir(install+chemin+path)
                    parsing(install, chemin+path)
                except:
                    parsing(install, chemin+path)
            else:
                print(install+chemin+path)
                download(install, chemin+path)
                print("100%")

def yesno():
    choix=input()
    while choix!='O' and choix!='N':
        print("Veuillez entrer une entree correcte (O/N)")
        choix=input()
    if choix=='O':
        return(True)
    else:
        return(False)

def choixInstall():
    print("Dans quel dossier voulez-vous installer le programme ?")
    install=input()
    while not path.isdir(install):
        print("Veuillez entrer un nom de dossier valide et preexistant")
        install=input()
    if install[-1]!='/' and install[-1]!="/":
        install=install+'/'
    return(install)

print("Bienvenue dans le programme d'installation de MinnaNihongo, developpe par M. Aurelien POMMEL !")
print()
print("Ce logiciel est mis a disposition sous licence Creative Commons")
print("Attribution - Pas d'Utilisation Commerciale - Partage dans les Memes Conditions 3.0 France.")
print("Pour voir une copie de cette licence, visitez http://creativecommons.org/licenses/by-nc-sa/3.0/fr/ ou ecrivez a Creative Commons, PO Box 1866, Mountain View, CA 94042, USA.")
print("Avez-vous lu et acceptez-vous les termes de cette licence ? (O/N)")
if yesno():
    install=str()
    OS=platform()
    if OS=="Windows":
        install="C:/"
    elif OS=="Linux":
        install="/usr/local/"
    elif OS=="MacOS":
        install=""
    if path.isdir(install):
        print("Le programme va être installé dans", install)
        print("Voulez-vous modifier le dossier d'installation ? (O/N)")
        if yesno():
            install=choixInstall()
    else:
        install=choixInstall()
    install=install+"MinnaNihongo/"
    try:
        mkdir(install)
    except:
        pass
    if internetOn():
        print("Installation...")
        parsing(install, '')
        print("Telechargement de l'updater...")
        print(install+"updater.py")
        fichier=open(install+"updater.py", 'wb')
        fichier.write(urlopen("http://minnanihongo.toile-libre.org/updater.py").read())
        fichier.close()
        print("100%")
        print("Installation terminee")
        print("Pour lancer le programme, lancer main.pyw dans "+install)
              
    else:
        print("Pas d'acces a internet, installation impossible")

input("Appuyez sur une touche pour quitter...")

        
    
    
            
        
    
