Package: wh2api
Wormhole API for python업데이트 내용1.0.1 (wormhole_version : 1.4.0)하위 python 2.7에서 대응이 가능하도록 모듈의 import방식변경기존에 모듈 import끼리 충돌 현상 발생으로 변경Wh클래스 이름 login으로 변경wh2api.wh.Login(url,id,pw)형태로 변경project.read에서 조회 버그 수정1.0.2 (wormhole_version : 1.5.0)관리를 위한 로직을 변경했습니다. (일반사용자는 변경 되는 부분 없음)api_list 추가requests 모듈 한군데에서 작동되도록 변경Task idx만으로 Task의 상세 데이터 조회가 가능해졌습니다.wh2api.shot_task.read(task_idx)wh2api.asset_task.read(task_idx)version업로드 시 등록 할 수 있는 옵션이 추가되었습니다.Description 추가cc옵션 추가metadata 옵션 추가1개의 버전에 여러개의 파일을 업로드 할 수 있습니다.version_path에 list[]형태로 입력해 줍니다.version_path의 첫번째 version은 화면에 가장 처음 표시됩니다.thumbnail_up이름을 thumbnail_update로 변경shot / Asset의 썸네일 업데이트시 함수명이 변경되었습니다.publish APi 추가publish_path의 유효성 검사를 진행 합니다.필수 입력은 (Task_idx,which,version_idx,Task_Status_idx,Version_status_idx,Publish_path_list)1.0.3 (wormhole_version : 1.7.0)로직 변경Requests 모듈 뿐 아니라 기본 모듈인 urllib2,urllib3도 지원 합니다.로그인 방식 변경토큰만으로도 로그인 가능모듈SHot / Asset list 조회 파라메터 변경Shot / Asset bulk_creat 추가(9,10)Task bulk_create 추가json 출력 포맷 변경예) shot_name='s0010', shot_idx='1'  >>> shots: {name='s0010',idx='1'}변경 전{"shots":[{"shot_idx":"1","name":"s0010_c0010","shot_order":"1"},{"shot_idx":"2","name":"s0010_c0020","shot_order":"2"},{"shot_idx":"3","name":"s0010_c0030","shot_order":"3"},{"shot_idx":"4","name":"s0010_c0040","shot_order":"4"},{"shot_idx":"5","name":"s0010_c0050","shot_order":"5"},{"shot_idx":"6","name":"s0010_c0060","shot_order":"6"},{"shot_idx":"7","name":"s0010_c0070","shot_order":"7"},{"shot_idx":"8","name":"s0010_c0080","shot_order":"8"},{"shot_idx":"9","name":"s0010_c0090","shot_order":"9"},{"shot_idx":"10","name":"s0010_c0100","shot_order":"10"}변경 후{"shots":[{"idx":"1","name":"s0010_c0010","order":"1"},{"idx":"2","name":"s0010_c0020","order":"2"},{"idx":"3","name":"s0010_c0030","order":"3"},{"idx":"4","name":"s0010_c0040","order":"4"},{"idx":"5","name":"s0010_c0050","order":"5"},{"idx":"6","name":"s0010_c0060","order":"6"},{"idx":"7","name":"s0010_c0070","order":"7"},{"idx":"8","name":"s0010_c0080","order":"8"},{"idx":"9","name":"s0010_c0090","order":"9"},{"idx":"10","name":"s0010_c0100","order":"10"}]}1.0.5 (wormhole_version : 1.15.8)Shot/Asset Read 모듈 변경 및 추가Shot/Asset 의 index만 가지고 있으면 해당 Shot/Asset의 정보를 불러올 수 있습니다.Custom Colume의 정보를 가져올 수 있게 변경 되었습니다.1.0.6 (wormhole_version : 1.15.8) - 빌드 문제로 설치금지Python 3의 urllib3모듈관련 버그 수정Get Request에서 필드 데이터 처리 방식이 변경 되었습니다.삭제 getdata = urllib3.request.urlencode(data)

수정 전 result = http.request('Get', url=wh.Login.url + api + '?'+ gestdata, headers={"cookie":wh_token})
수정 후 result = http.request('Get', url=wh.Login.url + api + '?',fields=data, headers={"cookie":wh_token})1.0.7 (wormhole_version : 1.15.8)재 빌드 1.0.6 변경 사항 유지사용방법1. install웜홀 api는 python3이상에서 원활하게 작동 됩니다.
pip의 최신버전으로 업데이트 후 설치 하시기 바랍니다.pip install --upgrade pippip패키지 install(필수)pip install wh2api #웜홀 API
pip install requests
pip install json3. 패키지 importfromwh2apiimportwhimportwh2api4. 모듈 첫사용시wh.Login('http://host','id','pw')#로그인 성공시 whtoken을 "Login.whtoken"라는 클래스 변수로 가지고 있음4-1. 토큰 로그인wh.Login('http://host','id',wh_token="login_token")#로그인 성공시 받은 wh_token을 넣으면 로그인이됨#사용방법wh=wh.Login('http://host','id','pw')wh_token=wh.whtoken['whtoken']#토큰을 아는경우wh=wh.Login('http://host','id',wh_token=wh_token)5. projectproject.listwh2api.project.list(finished="")# finished = '1' 끝난 프로젝트도 조회# 웜홀에 있는 모든 프로젝트를 조회project.readwh2api.project.read(project_idx)#Porject의 상세 내용 조회#버전업 및 퍼블리시 저장 경로 조회#진행 상황 조회6. episodeepisode.listwh2api.episode.list(project_idx)#프로젝트 내부 에피소드 리스트 조회episode.createwh2api.episode.create(project_idx,episode_name,description="")#에피소드 생성7. sequencelistwh2api.sequence.list(project_idx,episode_idx)#에피소드 내부 시퀀스 리스트 조회create
wh.sequence.create(project_idx,episode_idx,sequence_name,description="")
#시퀀스 생성8. shotlistwh2api.shot.list(project_idx,episode_idx,sequence_idx)#시퀀스 내부 샷 리스트 조회readwh2api.shot.read(shot_idx)#특정 샷의 세부내용 조회createwh2api.shot.create(project_idx,episode_idx,sequence_idx,shot_name,description="",status_idx="1")#샷 생성#status_idx 비어있을때 기본값 1번thumbnail_updatewh2api.shot.thumbnail_update(project_idx,shot_idx,thumbnail_path)#특정샷의 썸네일 업로드#Thubmnail_path 입력시 윈도우는 'r'을 붙혀서 업로드 해야 오류 없음#ex) r'H:\c2mosnter\test.jpg'#지원 포맷 *.jpg, *.pngoverviewwh2api.shot.overview(project_idx,episode_idx="")#overview페이지 조회#episode가 비어있는경우 프로젝트 전체조회relationwh2api.shot.relation(project_idx,episode_idx)#샷에 연관된 에셋의 목록 조회#웜홀의 Relation페이지 연동9. shot_Tasklistwh2api.shot_task.list(project_idx,shot_idx)#샷 내부의 Task조회createwh2api.shot_task.create(project_idx,shot_idx,tasktype_name)#샷내부에 Task 생성#중복 될경우 에러 발생bulk_createwh2api.shot_task.bulk_create(project_idx,shot_idx=[],tasktype_name=[])#shot_idx와 tasktype_name을 똑같은 수를 배열로 보내야함#ex)shot_idx=[1,1,1,1,2,2,2,2]tasktype=['comp','animation','fx','final','comp','animation','fx','final']#인덱스가 1,2번인 샷에 'comp','animation','fx','final' 4개의 테스크를 각각 등록status_changewh2api.shot_task.status_change(project_idx,task_idx,status_idx)#특정 Task의 Task Staus를 변경startwh2api.shot_task.start(project_idx,task_idx)#Task Start(MyTask>Todo)stopwh2api.shot_task.stop(project_idx,task_idx)#Task Stop(MyTask>Todo)10. categorylistwh2api.category.list(project_idx)#프로젝트 내부에 Asset의 Category조회createwh2api.category.create(project_idx,category_name,description="")#Category생성11. Assetlistwh2api.asset.list(project_idx,category_idx)#특정 Category의 Asset 조회readwh2api.asset.read(asset_idx)#특정 에셋의 세부내용 조회createwh2api.asset.create(project_idx,category_idx,asset_name,description="",status_idx="1")#Asset생성thumbnail_updatewh2api.asset.thumbnail_update(project_idx,asset_idx,thumbnail_path)#특정 Asset의 썸네일 업로드#Thubmnail_path 입력시 윈도우는 'r'을 붙혀서 업로드 해야 오류 없음#ex) r'H:\c2mosnter\test.jpg'#지원 포맷 *.jpg, *.pngoverviewwh2api.asset.overview(project_idx,category_idx="")#Asset Overview조회12. asset_Tasklistwh2api.asset_task.list(project_idx,asset_idx)#에셋 내부의 Task조회createwh2api.asset_task.create(project_idx,asset_idx,tasktype_name)#에셋내부에 Task 생성#중복 될경우 에러 발생bulk_createwh2api.asset_task.bulk_create(project_idx,asset_idx=[],tasktype_name=[])#asset_idx와 tasktype_name을 똑같은 수를 배열로 보내야함#ex)tasktype=['concept','modeling','texture','lodev','concept','modeling','texture','lodev']#인덱스가 1,2번인 에셋에  'concept','modeling','texture','lodev' 4개의 테스크를 각각 등록status_changewh2api.asset_task.status_change(project_idx,task_idx,status_idx)#특정 Task의 Task Staus를 변경startwh2api.asset_task.start(project_idx,task_idx)#Task Start(MyTask>Todo)stopwh2api.asset_task.stop(project_idx,task_idx)#Task Stop(MyTask>Todo)13. versionkeywh2api.version.key(task_idx,which='shot or asset')#특정 Task의 Key를 얻어내는 함수#Version_key생성key_readwh2api.version.key_read(version_key)#Version_key 정보 조회createwh2api.version.create(task_idx='',which='shot or asset',version_name='',task_status_idx='',version_status_idx='',reviewer_user_idx='',hour_spent='',version_path=[],metadata=[],description="",cc_user_idx='',thumbnail_path=""):# 윈도우의경우 version Path입력시 'r'을 입력#ex) version_path = r'c:\\c2monster\test.mov'# 지원 *.mp4# 서버에서 컨버팅 하는 과정이 없기때문에 업로드하는 버전의 용량이 클 경우 플레이가 안될 수 있음#참조 인원 cc_user_idx=[1,2,3]# #version_path와 metadata의 리스트의 개수와 순서는 같아야 합니다.# version_path = ['a','b','c']# metadata = ['a_meta','b_meta','c_meta']14. userlistwh2api.user.list()#웜홀에 가입되있는 유저 조회15. teamlistwh2api.team.list()#Team의 목록 조회user_listwh2api.team.user_list(team_idx)#선택한 Team안에 있는 User조회16. mytasktodowh2api.mytask.todo(observed_user_idx="")#observed_user_idx가 공백인경우 본인#observed_user_idx에 User_idx를 추가할 경우 해당 인원의 MyTask조회inprogresswh2api.mytask.inprogress(last="")#last입력시 마지막 버전만 조회donewh2api.mytask.done()#끝난Task조회ccwh2api.mytask.cc(last="")#last입력시 마지막 버전만 조회17. orgreadwh2api.org.read(org_id='std')#std가 기본값임#System information 정보 조회 가능18. publishkeywh2api.publish.key(task_idx,which='shot or asset')#which는 'shot' 또는 'asset'이라고 입력 합니다.key_readwh2api.publish.key_read(publish_key)#퍼블리시키의 상세정보 조회#퍼블리시 생성시 사용createwh2api.publish.create(task_idx='',which='shot or asset',version_idx='',publish_name='',task_status_idx='',version_status_idx='',publish_path=[],description='',tag=''):#필수 입력값 : Task_idx,which,version_idx,Task_Status_idx,Version_status_idx,Publish_path#publish_Path는 유효성 겁사를 진행, 해당경로에 파일이나 폴더가 없다면 리스트에서 제외한 후 진행합니다.# publish_path의 유효성 검사 중, 한개의 파일 또는 폴더가 없다면 프로세스는 종료 됩니다.c2monsterc2monster는 영화 드라마 제작을 위한 소프트웨어를 개발하는 회사 입니다.wormholehttp://wormholepipeline.comE-mail :wfjo852@c2monster.com,contact@c2monster.com