统计插件_CG Teamwork统计提交量插件制作思路
????? ??每周大家需要統計自己的提交的鏡頭數以及通過數。有時候統計不及時,就會占用周末玩耍的時間。于是就嘗試去寫自動統計插件。
????????公司使用的管理軟件是CG Teamwork,翻閱CG Teamwork幫助發現有API,接下來就好辦了(如果沒有API,那么需要內存注入)。首先照常理思路:
????????①獲取拖拽時的文件信息,項目信息,用戶信息
????????②將獲取的信息保存在服務器上
????????③定時(每周一次)統計服務器上面的數據
????????????發現CG Teamwork中可能存在權限BUG,非管理員賬號可以執行管理員操作(分配任務等)
首先搭建環境,我使用的是 PyCharm?,需要添加方框里的路徑
然后進CG Teamwork幫助 API中獲取到文件框拖入插件
幫助上面有一張圖片,已經標注好需要的信息。可以復制這個模板,然后將這個模板文件保存到服務器中(每臺機器都可以訪問),然后使用管理員賬號添加此插件。
插件安裝完畢之后,下次拖拽提交文件就會啟用插件,圖為插件啟用成功?。
????????如果沒什么問題,接下來開始獲取相關信息,我推薦使用cgtw2.py 獲取相關信息。打開cgtw2.py,底下的注釋非常多且一目了然。
????????首先獲取整個項目的對應字段名。
#cgtw2.py t_tw?=?tw("192.168.1.100","user",?"password")??#第一項為服務器IP地址print?t_tw.info.modules("proj_XXX")???#查詢項目模塊?有幾個子項print?t_tw.info.fields("proj_XXX",?"shot")?#查詢?子項有多少目錄print?t_tw.info.fields_and_str("proj_XXX",?"shot")??#查詢子項對應的中文名for?i?in?t_tw.info.fields_and_str("proj_XXX",?"task"):????print?i['field_str']+'?'+i['sign']#中文名和字段對照表將對照表存成txt方便查看
將獲取到的信息保存到log文件中(實例代碼在底下)
然后單獨創建一個程序每周執行一次匯總,使用的是openpyxl將文件匯總成Excel表格。
篇幅有限,具體代碼我就不往上放了,歡迎大家下方留言討論!
class SaveFile: def __init__(self , **kwargs): """????????:param?kwargs:????prd?:?"efx"?or?"cmp"????????制作階段 user : user name 制作者 num : 提交次數 time : 2020-05-01 提交時間 db : XXX 項目?????????????????????????shot?:??XYJXXXXXXXX??????鏡頭號 appnum : 通過量 leavl : A 級別 filename 提交文件名 """????????self.rootDir?=?"//192.168.1.1/LOG" self.filePath = "" self.fileName = "" self.text = "" self.__initLogFile(kwargs["prd"], kwargs["user"]) self.__setText(kwargs["num"], kwargs["time"],kwargs["db"], kwargs["shot"],kwargs["appnum"], kwargs["leavl"],kwargs["filename"])????def?save(self):#?重寫save f = open(self.filePath,'a+') f.write(self.text)????????f.close()???????? def __initLogFile(self, prd , user ): # rootPath / efx / user / date-month / date-logfile.txt????????#?初始化文件命名規則 self.fileName = u"{user}-{date}.txt".format(user = user,date = datetime.date.today().strftime("%Y-%m-%d")) path = u'{root}/{prd}/{user}/{month}'.format(root = self.rootDir,prd = prd,user = user,month = datetime.date.today().strftime("%Y-%m")) if not os.path.isdir(path):????????????os.makedirs(path)#?根據時間Day為單位創建路徑 self.filePath = os.path.join(path,self.fileName) if not os.path.isfile(self.filePath): self.__setText(u"1、提交次數",u"2、提交時間",u"3、提交項目",u"4、提交鏡頭號",u"5、通過數量",u"6、級別",u"7、提交文件名") self.save() def __setText(self,sumbitNum,sumbitTime,sumbitDB,sumbitShot,approveNum,leavl,filename): self.text = "{} {} {} {} {} {} {}\n".format(sumbitNum, sumbitTime or "NULL", sumbitDB, sumbitShot, approveNum, leavl or "NULL",????????????????????????????????????????????????????????????filename)#-----------------------------------------------------------------------------------------#數據格式:#提交次數??提交時間???提交項目????提交鏡頭號??通過量?????級別???????????提交文件名#1????????2020-5-1????XXX??????XXXXXXXXXX?? 0????????A??????????XXXXXXXXXXXXXX.MOV#2總結
以上是生活随笔為你收集整理的统计插件_CG Teamwork统计提交量插件制作思路的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 新买的汽车如何磨合?怎样磨合新车?
- 下一篇: 分析改变悬架的刚度和阻尼对簧上质量m1的