#!/bin/python

from functools import cache
import os
import random
#import ueberzug.lib.v0 as ueberzug
import subprocess
import time
import fnmatch
from curses.textpad import Textbox, rectangle

modpath     = os.path.dirname(__file__)
cachefile   = "/tmp/waifu.cache"
resolution  = 256
center      = True
lolcat      = False
unameArg    = "-sr"
uptimeArg   = "--pretty"
terminal    = os.get_terminal_size()
minTermW    = 200
#unameColor  = "\033[1;38;5;93m"
#uptimeColor = "\033[1;38;5;99m"

#print len([name for name in os.listdir(f'{modpath}/waifus') if os.path.isfile(name)])
DIR=modpath + '/waifus'
#print(len([name for name in os.listdir(DIR) if os.path.isfile(os.path.join(DIR, name))]))

#filter waifus
waifulist = os.listdir(DIR)
waifus_raw = fnmatch.filter(waifulist, '*.256.png')
waifus = list(waifus_raw)
waifuindex = random.randint(1, len(waifus))





#print(modpath)

#######################

#If term Kitty
print(len(waifus))

if random.randint(0,1) == 0:
    if os.path.getsize(cachefile) != 0:
        f = open(cachefile, 'r')
        waifuindex = f.read()
        print(int(waifuindex))
        #print(len(waifus))
    #Else Add File
    ###############  
    if int(waifuindex) < len(waifus):
        waifu = waifus[int(waifuindex)]
        waifuindex = int(waifuindex) + 1
        f = open(cachefile, 'w')
        f.write(str(waifuindex))
    else:
        waifuindex = random.randint(1, len(waifus))
        f = open(cachefile, 'w')
        f.write(str(waifuindex))
        waifu = waifus[int(waifuindex)] 
else:
    waifu = waifus[int(waifuindex)]
#######################

#Declare static methods
@staticmethod
def showImage():
    subprocess.run(["/usr/bin/kitty", "icat", DIR+"/"+waifu])

def showUname(unameArg):
    os.system("/usr/bin/uname " + unameArg)



def showUptime(uptimeArg):
    os.system("/usr/bin/uptime " + uptimeArg)

#def doLolcat():
#	if __name__ == '__main__':
#		showUname(unameArg)
#		showUptime(uptimeArg)

showImage()
