import gradio as gr
import sys,os,io,contextlib
sys.path.append(os.getcwd())
from hpgs import homepg, jsinj
from ogtxt import txt
from ogtxtJ2 import txt as j2
from desptxt import desp, nalz
imgurl='https://raw.githubusercontent.com/picklejar76/kujata-data/master/metadata/makou-reactor/backgrounds/'
imgext='.png'
def gengali(ymgl):
ret=[]
ll=len(ymgl)
for k in range(ll):
y=ymgl[k]
if y.startswith('-'):
y=y[1:]
ymgl[k]=y
yurl=y
else:
yurl=imgurl+y
ret.append((yurl+imgext,y))
return ret
def dtkl(dta):
if len(dta) < 3:
return '[x]'
return dta[1:].replace('\n','
')
def psxjp(dta):
ret=['
PSX_JP
']
ll=len(dta)
for k in range(ll):
ret.append('| z'+str(k)+' | ')
ret.append(dtkl(dta[k]))
ret.append(' |
')
ret.append('
')
return ret
def tblmaker(ky):
dta=txt[ky]
ddsp=desp[ky]
ll=len(dta)>>1
ret=['',ddsp,'
']
for k in range(ll):
ret.append('| t'+str(k)+' | ')
ret.append(dtkl(dta[2*k]))
ret.append(' | ')
ret.append(dtkl(dta[2*k+1]))
ret.append(' |
')
ret.append('
')
if ky in j2:
ret+=psxjp(j2[ky])
return ''.join(ret)
def on_select(data: gr.SelectData):
return tblmaker(data.value['caption'])
def execute_code(code):
try:
exec_globals = {}
output = io.StringIO()
with contextlib.redirect_stdout(output):
exec(code, exec_globals)
return output.getvalue()
except Exception as e:
return str(e)
statement = gr.HTML(homepg[0])
with gr.Blocks(head=jsinj[0], js=jsinj[1]) as demo:
with gr.Row():
statement.render()
for na in nalz:
ymg=na[0]
with gr.Tab(na[1]):
gallery = gr.Gallery(gengali(ymg),columns=4,allow_preview=False)
gallery.select(on_select, None, statement)
katoshit = gr.HTML(homepg[1])
demo.launch(allowed_paths=['.'])