#!/usr/bin/env python

# Script to generate SXT animations
# Import libraries

import numpy as np
from os import system, mkdir, symlink, listdir
from shutil import rmtree
import glob

ln_dir = '/home/jeckberg/sxt_links/'
jpg_dir = '/home/jeckberg/sxt_1996/'
mov_dir = '/home/jeckberg/sxt_mov/'
title_dir = '/home/jeckberg/sxt_title/'
mp3_dir = '/home/jeckberg/Bach/'

#clean up old link dir

frame_rate = np.int(30) # FPS
intro_time = np.int(10) # Seconds for intro page
intro_frames = frame_rate * intro_time
#music offset
offset = np.str(0)

year = '1996_05'

for n in [1]: #np.arange(1991, 2002):

    year = '{0}'.format(year)

    rmtree(ln_dir, ignore_errors=True)

    print('{}'.format(year))

    # create temporary link dir
    mkdir(ln_dir)

    system('ls {}'.format(ln_dir))

    #title page file
    title = '{0}title_{1}.jpg'.format(title_dir, year)

    # Setup your directory location for data storage
    frame_dir = jpg_dir

    print('frame dir - {}'.format(frame_dir))

    #system('ls {}'.format(frame_dir))

    # Grab a list of files
    files = glob.glob('{}*.jpg'.format(frame_dir))

    files.sort()

    # Loop through title frames
    for i in np.arange(intro_frames):

        fname = '{0}frame{1}.jpg'.format(ln_dir, np.str(i).zfill(6))

        symlink(title, fname)

    # Loop through each frame
    for n, frame in enumerate(files, start = intro_frames):

        fname = '{0}frame{1}.jpg'.format(ln_dir, np.str(n).zfill(6))

        symlink(frame, fname)

    # Create an animation from this series
    music = '{0}sxt{1}.mp3'.format(mp3_dir, year)

    infiles = '{}frame%06d.jpg'.format(ln_dir)

    outfile =  '{0}sxt{1}a.mov'.format(mov_dir, year)

    print('outfile - {}'.format(outfile))

    system('ffmpeg -r {2} -i {0} -itsoffset {4} -i {3} -vcodec libx264 -crf 0 -acodec copy -shortest -pix_fmt yuv420p -threads 0 {1}'.format(infiles, outfile, frame_rate, music, offset))

    #remove link directory
