Upload files to 'studio'

This commit is contained in:
Jeison Yehuda Amihud (Blender Dumbass) 2020-11-28 09:54:50 +00:00
parent b4d3524b07
commit 928576702f
2 changed files with 135 additions and 22 deletions

View file

@ -4,8 +4,10 @@
import os
import datetime
#from studio import checklist
import checklist
from studio import checklist
from studio import story
#import checklist
#import story
def get_legacy(project_location):
@ -219,7 +221,7 @@ def get_legacy(project_location):
# For the next step I need to have the story parsed and read. But it's going
# to be so hard. That I will need to write a separate function for it.
data["rnd"] = 0.0
data["rnd"] = story.get_legacy(project_location)["fraction"]
# After all of it we need to get the final project percentage.
multiply = data["rnd_factor"]
@ -239,6 +241,3 @@ def get_legacy(project_location):
return data
this = get_legacy("/home/vcs/Projects/Films/Shorts/MoriasRace")
for i in this:
print(i, " : " ,this[i])

View file

@ -4,8 +4,8 @@
import os
import datetime
#from studio import checklist
import checklist
from studio import checklist
#import checklist
def get_legacy(project_location):
@ -29,7 +29,7 @@ def get_legacy(project_location):
"camera" : [0,0], # The position of where the user left
"scenes" : {}, # List of scenes.
"arrows" : [], # List of connections. (A LIST. NOT DICT.)
"files" : {}, # List of links to files.
"links" : [], # List of links to files or assets.
"markers": {}, # List of markers.
"events" : {} # List of frame like containers. (It will have similar)
} # function as events. But will have no text data with in
@ -142,6 +142,7 @@ def get_legacy(project_location):
for scene in eventtext.split("</scene>")[:-1]:
scenename = scene[scene.find('"')+1:scene.replace('"'," ",1).find('"')]
scenename = scenename.replace(" ", "_")
scenetext = scene[scene.replace('"', " ", 1).find('"')+1:-1]
data["scenes"][scenename] = {
@ -442,18 +443,131 @@ def get_legacy(project_location):
# easy rest of it. Untill we will get to calculating the project. Because
# we need to filter out all scenes that are not in the main chain.
# Let's start with hard thing first. So to feel good when having to do the
# easy stuff in the end. ARROWS. (connections between scenes)
# To make it work. We need to fisrt of all earase all the stuff before
# the first arrow. Because <arrow> could be mentioned in the script it
# self. Similarly <image> is too. So it's good to complitelly clear bos
# out of anything that came before.
bos = bos[bos.rfind("</event>"):]
# From here everything is PER LINE BASED... YEAH!!!!
bos = bos.split("\n")
for line in bos:
# This is arrows...
if line.startswith("<arrow>"):
arrow = line[line.find("<")+7:line.rfind("</")].split(" --> ")
newarrow = []
for i in arrow:
i = i.split(",")
if i[0] != "-1":
newarrow.append([
"scene", i[1][1:-1]
])
else:
newarrow.append(
i[1][1:-1]
)
data["arrows"].append(newarrow)
# And this is links. Formerly known as Images. Initially the idea was to
# just store images. But later. I started adding assets like this as well.
elif line.startswith("<image>"):
stuff = line.split(",")
link = stuff[3][1:-1]
coordinates = []
try:
coordinates.append(float(stuff[0].replace("<image>", "")))
except:
coordinates.append(0.0)
try:
coordinates.append(float(stuff[1]))
except:
coordinates.append(0.0)
# Lately the primary reason to use <image> was linking assets directly
# into story editor's space. But it was a hack. Basically I was
# linking a preview image. Preview.png or Preview.jpg from the
# renders of the asset. And the drawer of the images in the story-
# editor already knew to redirect the clicks to a different function.
# But for VCStudio I want to link to asset or a file.
linktype = "file"
if "/renders/Preview." in link:
linktype = "asset"
link = link[:link.rfind("/renders/Preview.")].replace("/dev", "")
data["links"].append([
linktype, link, coordinates
])
# Markers. I nearly forgot about the markers. In the Story-Editor of
# Blender-Orgaznier they were something like markers in VSE in Blender.
# Vertical lines visible on every altitude.
elif line.startswith("<marker>"):
marker = line.replace("<marker>", "").replace("</marker>", "").split(",")
try:
markloc = float(marker[0])
except:
markloc = 0.0
markstring = marker[1].replace('"', "")
# I do want to do something quite interesting with markers in the
# VCStudio tho. I want them to be like little nodes with text while
# in the frame. And be like directional guides. Sticking to the
# edges of the screen when outside the screen. Something like items
# that are outside of the map in the videogames. So you can see
# which direction are they. For this markers will need to have
# both X and Y coordinates.
data["markers"][markstring] = [markloc, 0.0]
# For now the Y is 0. Because we are reading from the old version.
# Okay we've got the Arrows data. Pretty much all the data. Now we just
# need to calculate the scenes fraction. For that we need to recreate the
# train of scenes. From START till END.
fractions = []
lastarrow = 'start'
for i in data["arrows"]:
if lastarrow == "end":
break
for arrow in data["arrows"]:
if arrow[0] == lastarrow:
lastarrow = arrow[1]
if arrow[1] != "end":
fractions.append(
data["scenes"][arrow[1][1]]["fraction"]
)
else:
break
# FINAL STUFF...
try:
data["fraction"] = sum(fractions) / len(fractions)
except:
data["fraction"] = 0.0
return data
this = get_legacy("/home/vcs/Projects/Films/Shorts/MoriasRace")
for i in this:
if i == "scenes":
print("scenes {")
for b in this[i]:
print(" ", b, " { ")
for c in this[i][b]:
print(" ", c ," : ", this[i][b][c])
print("}")
else:
print(i, " : " ,this[i])