コード例 #1
0
ファイル: Asset.py プロジェクト: onetera/sp
def makeAsset2Shot(idx, typecode=None, statcode=None ):
	""" 선택한 에셋들에 대한 부모 샷을 만들고 서브로 링크 """
	
	cnt = 0
	
	if (type(idx) == str) and "," in idx:
		idxList = idx.split(",")
	else:
		idxList = [idx,]
	
	for nIDX in idxList:
		assetData = Archive("Asset").getValues(idx, "Parent1,Name,Thumb,Preview,ScanEdgeCode,ScanDuration")
		
		shotSave = {
			"Parent1": assetData["Parent1"],
			"Name" : assetData["Name"],
			"Thumb": Files.getRootDir() + assetData["Thumb"],
			"Preview": assetData["Preview"],
			"Duration": assetData["ScanDuration"]		 
		}
		
		if statcode: shotSave["StatCode"] = statcode
		if typecode: shotSave["TypeCode"] = typecode
		
		shot_IDX = Archive("Shot").New(**shotSave)
		r = Archive("Shot").addLink(shot_IDX, "Asset", idx)
		if (r > 0):
			cnt += 1
	
	return cnt
コード例 #2
0
ファイル: Shot.py プロジェクト: onetera/sp
def ThumbInsert(arg, extra):
	
	idx = extra["idx"]
	modifyData	= { "IDX": idx, "_pass_":True, "useSpartaDir": True }
	
	# 샷 정보 가져오기
	shotData = get( idx, "Shot.Parent1,Shot.Parent2,Project.Code,Seq.TypeCode,Shot.TypeCode,Shot.Thumb")
	
	# 기존 썸네일이 있으면 삭제
	oldThumbPath = os.path.join(Files.getRootDir(), shotData["Thumb"][1:])
	if os.path.exists(oldThumbPath):
		os.unlink(oldThumbPath)
	
	pData = {
		"Project.Code": shotData["Project.Code"],
		"Seq.TypeCode": shotData["Seq.TypeCode"],
		"Shot.TypeCode": shotData["TypeCode"],
		"Shot.Code": Naming.ApplyWithQuery("Shot.Code", idx, **arg )
	}
	
	if "Thumb" in arg: modifyData["Thumb"] = arg["Thumb"]
	Files.CopyThumb2Naming( "Shot.Thumb", idx, inArg=modifyData, preData=pData )
	
	edit( idx, **modifyData )
	return arg
コード例 #3
0
ファイル: Message.py プロジェクト: onetera/sp
def sendMessage( receiver, subject, content, attachments=None, withSMS=None ):
	""" 쪽지함에 쪽지를 발송	
	"""
	#[TODO] To,CC,BCC에 대한 처리 필요 
	#[TODO] IF not logined !!
	
	smsList = []
	msgIDXs = []
	msgSave = { "Subject": subject, "Content": content, "Sender": Login.getID(), "SenderName": Login.getName() }
   
	if "<" in receiver:
		#ex) Address Parsing :: "정기영" <*****@*****.**>, "김태희" <*****@*****.**>  -> ["*****@*****.**",  "*****@*****.**"]
		addrsList = re.findall("\<([._,a-zA-Z0-9:\#\@]+)\>+", receiver)
	else:	 
		addrsList = [n.strip() for n in receiver.split(",")]
	
	for recID in addrsList:
		
		userData = Archive("User").getValues( "User.UserID == "+ recID, "Name,HandPhone" )
		if userData:
			msgSave["Receiver"] = recID
			
			result_IDX = Archive("MsgInBox").New(**msgSave)
			
			if result_IDX:
				msgIDXs.append( result_IDX )
				if userData["HandPhone"] and not userData["HandPhone"].replace("-","") in smsList:
					smsList.append( str(userData["HandPhone"].replace("-","")) )
				
				sentMsg = { "RelateIDX": result_IDX, "Subject": subject, "Content": content, "Receiver": recID, "ReceiverName": userData["Name"], "Sender": Login.getID() } 
				r = Archive("MsgSent").New( **sentMsg )
	
	if attachments:
		#[TODO] 임시 코드입니다. 멀티센딩에서 업된 파일에 대한 레퍼런스 카운트가 이상적이나 일단 그냥 복제형태로 갑니다.
		if type(attachments) == unicode:
			attachments = attachments.encode("utf8")
		
		uploadFile = Files.getRootDir() + attachments
		fileName = os.path.split(attachments)[1]
		
		if os.path.exists( uploadFile ):
			for ridx in msgIDXs:
				if str(ridx).isdigit():
					targetFile = "/data/message/%s.%s" % ( fileName, ridx )
					shutil.copy2( uploadFile, Files.getSpartaDir() + targetFile )
					msgMod = { "IDX" : ridx, "Attachments" : "%s" % fileName }
					r = Archive( "MsgInBox" ).New( **msgMod )
			os.remove(uploadFile)
	
	if withSMS and smsList:		   
		SMS.send( sendMsg=u"스팔타쪽지>"+msgSave["Subject"], recvList=smsList )
	
	return len(msgIDXs)
コード例 #4
0
ファイル: __init__.py プロジェクト: onetera/sp
def getRootDir():
	return Files.getRootDir()