let firebaseUtils={loaded:0},
frames=[],frame=0,timeline="spline"
preload=_=>{firebaseUtils.firebaseRaw=loadStrings("https://www.openprocessing.org/sketch/757976/files/FirebaseApp.txt")}
firebaseUtils.firebaseRaw=firebaseUtils.firebaseRaw.join("\n")
eval(firebaseUtils.firebaseRaw)
apiKey:"AIzaSyCK--50qc3WnpTjThEBLubdOHRm701tL3M",
authDomain:"iframedb.firebaseapp.com",
databaseURL:"https://iframedb-default-rtdb.firebaseio.com",
storageBucket:"iframedb.appspot.com",
messagingSenderId:"523839839536",
appId:"1:523839839536:web:0d07ba0746e4f2a9313cf5"
firebase.initializeApp(firebaseConfig)
firebase.database().ref(timeline).on("value",snapshot=>{
firebaseUtils.database=snapshot.val()
if(firebaseUtils.database&&firebaseUtils.database.frames){
frames=JSON.parse(firebaseUtils.database.frames)
for(let i=0;i<frames.length;i++){
frames[i]=loadImage(frames[i])
if(!firebaseUtils.database||!firebaseUtils.database.frames)firebase.database().ref(timeline+"/frames").set("[]")
if(0&&firebaseUtils.database)console.log(firebaseUtils.database)
if(frameCount%15==0&&keyIsDown(32))frame+=1
if(frames.length&&frame>frames.length-1)frame=frames.length-1
fill(0);stroke(0);rect(width/2-100,height/2-10,200,20);rect(width/2-10,height/2-100,20,200)
image(frames[frame],75,100,width-150,height-100)
for(let i=0;i<frames.length;i++){
rect(width/2-80+190*(i-frame),5,160,90)
image(frames[i],width/2-80+190*(i-frame),5,160,90)
if(Math.abs(mouseX-(width/2-80+190*(i-frame)+175))<10&&Math.abs(mouseY-50)<45){
line(width/2-80+190*(i-frame)+175,45,width/2-80+190*(i-frame)+175,55)
line(width/2-80+190*(i-frame)+170,50,width/2-80+190*(i-frame)+180,50)
if(i==0&&Math.abs(mouseX-(width/2-80+190*(i-frame)-15))<10&&Math.abs(mouseY-50)<45){
line(width/2-80+190*(i-frame)-15,45,width/2-80+190*(i-frame)-15,55)
line(width/2-80+190*(i-frame)-20,50,width/2-80+190*(i-frame)-10,50)
if(Math.abs(mouseX-(width/2-40+190*(i-frame)))<40&&Math.abs(mouseY-100)<10){
line(width/2-45+190*(i-frame),100,width/2-35+190*(i-frame),100)
if(Math.abs(mouseX-(width/2+40+190*(i-frame)))<40&&Math.abs(mouseY-100)<10){
line(width/2+45+190*(i-frame),100,width/2+35+190*(i-frame),100)
line(width/2+45+190*(i-frame),97,width/2+45+190*(i-frame),103)
line(width/2+35+190*(i-frame),103,width/2+35+190*(i-frame),97)
fill(0);noStroke();textAlign(LEFT,TOP)
text('Timeline: '+(timeline=='spline'?'main':timeline.slice(7)),10,10)
text('Frame '+(frame+1).toString(),10,30)
if(keyIsDown(49)&&frames[frame]){
image(frames[frame],0,0,width,height)
if(keyCode==RIGHT_ARROW){
let a=JSON.parse(firebaseUtils.database.frames)
if(a[frame])copyString(a[frame],1)
frame=parseInt(prompt('Frame number'))
let a=prompt('Timeline name')
initTimeline('spline/'+a)
resizeCanvas(960*frames.length,540)
for(let i=0;i<frames.length;i++){
image(frames[i],960*i,0,960,540)
addFrame(prompt('Paste file'),0)
for(let i=0;i<frames.length;i++){
if(Math.abs(mouseX-(width/2-80+190*(i-frame)+80))<80&&Math.abs(mouseY-50)<45){
if(Math.abs(mouseX-(width/2-80+190*(i-frame)+175))<10&&Math.abs(mouseY-50)<45){
addFrame(prompt('Paste file'),i+1)
if(i==0&&Math.abs(mouseX-(width/2-80+190*(i-frame)-15))<10&&Math.abs(mouseY-50)<45){
addFrame(prompt('Paste file'),0)
if(Math.abs(mouseX-(width/2-40+190*(i-frame)))<40&&Math.abs(mouseY-100)<10){
if(Math.abs(mouseX-(width/2+40+190*(i-frame)))<40&&Math.abs(mouseY-100)<10){
replaceFrame(prompt('Paste file'),i)
let a=JSON.parse(firebaseUtils.database.frames)
a=[...a.slice(0,ix),x,...a.slice(ix)]
firebase.database().ref(timeline+"/frames").set(JSON.stringify(a))
let a=JSON.parse(firebaseUtils.database.frames)
a=[...a.slice(0,ix),...a.slice(ix+1)]
firebase.database().ref(timeline+"/frames").set(JSON.stringify(a))
let a=JSON.parse(firebaseUtils.database.frames)
a=[...a.slice(0,ix),x,...a.slice(ix+1)]
firebase.database().ref(timeline+"/frames").set(JSON.stringify(a))
let q=document.createElement("textarea")
document.body.appendChild(q)
document.execCommand("copy")
document.body.removeChild(q)
firebase.database().ref(timeline).off("value")
firebase.database().ref(timeline).on("value",snapshot=>{
firebaseUtils.database=snapshot.val()
if(firebaseUtils.database&&firebaseUtils.database.frames){
frames=JSON.parse(firebaseUtils.database.frames)
for(let i=0;i<frames.length;i++){
frames[i]=loadImage(frames[i])
if(!firebaseUtils.database||!firebaseUtils.database.frames)firebase.database().ref(timeline+"/frames").set("[]")
if(0&&firebaseUtils.database)console.log(firebaseUtils.database)
firebase.database().ref("spline/backup/frames").set(firebaseUtils.database.frames)