storeXLS updated
This commit is contained in:
171
StoreXLS.py
171
StoreXLS.py
@@ -16,6 +16,8 @@ class DBXLStorage:
|
|||||||
strMngSht = "MngInfo"
|
strMngSht = "MngInfo"
|
||||||
strArtSht = "ArtInfo"
|
strArtSht = "ArtInfo"
|
||||||
strTagSht = "TagInfo"
|
strTagSht = "TagInfo"
|
||||||
|
strSeriesSht = "SeriesInfo"
|
||||||
|
strTypeSht = "TypeInfo"
|
||||||
|
|
||||||
m_openedXLS = ""
|
m_openedXLS = ""
|
||||||
|
|
||||||
@@ -46,6 +48,8 @@ class DBXLStorage:
|
|||||||
self.m_wb.create_sheet(self.strMngSht)
|
self.m_wb.create_sheet(self.strMngSht)
|
||||||
self.m_wb.create_sheet(self.strArtSht)
|
self.m_wb.create_sheet(self.strArtSht)
|
||||||
self.m_wb.create_sheet(self.strTagSht)
|
self.m_wb.create_sheet(self.strTagSht)
|
||||||
|
self.m_wb.create_sheet(self.strSeriesSht)
|
||||||
|
self.m_wb.create_sheet(self.strTypeSht)
|
||||||
|
|
||||||
self.m_wb.save(xls_path)
|
self.m_wb.save(xls_path)
|
||||||
util.DbgOut(f"{xls_path} Created", True)
|
util.DbgOut(f"{xls_path} Created", True)
|
||||||
@@ -81,23 +85,88 @@ class DBXLStorage:
|
|||||||
#for item in listInfos:
|
#for item in listInfos:
|
||||||
# 클래스 타잎을 확인해야 하지만만.. 생략.
|
# 클래스 타잎을 확인해야 하지만만.. 생략.
|
||||||
# ttist, group, series(parady), type, tags, hitomi ID, hitomi file, eh ID, eh tor
|
# ttist, group, series(parady), type, tags, hitomi ID, hitomi file, eh ID, eh tor
|
||||||
|
|
||||||
|
|
||||||
# TAG 정보를 TAG 시트에 추가한다.
|
# TAG 정보를 TAG 시트에 추가한다.
|
||||||
# 1 , 2 , 3
|
|
||||||
# Index, Tag URL, Tag
|
|
||||||
# 태그는 분류:단어, 이런 식이다.
|
# 태그는 분류:단어, 이런 식이다.
|
||||||
# 분류에는 artist, tag, male, female, other 등이 있다.
|
# 분류에는 artist, tag, male, female, other 등이 있다.
|
||||||
def AddTagInfo(self, strTag, strUrl):
|
def AddTagInfo(self, strTag, strUrl):
|
||||||
sheetTag = self.getSheet(self.strTagSht)
|
nID = self.AddInfotoSheet(self.strTagSht, strTag, strUrl)
|
||||||
if sheetTag is None:
|
util.DbgOut(f"AddTagInfo : {self.strTagSht}:{nID},{strTag}")
|
||||||
util.DbgOut(f"AddTag : {self.strTagSht} Get Failed...", True)
|
return nID
|
||||||
|
|
||||||
|
def AddArtistInfo(self, ArtName, strUrl):
|
||||||
|
shtArt = self.getSheet(self.strArtSht)
|
||||||
|
if shtArt is None:
|
||||||
|
util.DbgOut(f"AddArtist : {self.strArtSht} Get Failed...", True)
|
||||||
return
|
return
|
||||||
|
|
||||||
nSearchID = self.SearchIDFromName(sheetTag, strTag)
|
# ArtName 이 리스트인 경우, String 인 경우로 구분한다. 그 외는 몰라.
|
||||||
if 0 > nSearchID:
|
# String 인 경우
|
||||||
util.DbgOut(f"AddTag : {self.strTagSht} Get Failed...", True)
|
if isinstance(ArtName, str):
|
||||||
elif 0 < nSearchID:
|
nID = self.SearchIDFromName(shtArt, ArtName)
|
||||||
util.DbgOut(f"AddTag : {self.strTagSht}:{nSearchID},{strTag} is exist.")
|
if 0 > nID:
|
||||||
|
util.DbgOut(f"AddArtist : {self.sheetArtist} Get Failed...", True)
|
||||||
|
elif 0 < nID:
|
||||||
|
util.DbgOut(f"AddArtist : {self.sheetArtist}:{nID},{ArtName} is exist.")
|
||||||
|
else:
|
||||||
|
last_row = shtArt.max_row
|
||||||
|
if shtArt.cell(row=last_row, column=1).value :
|
||||||
|
last_row += 1
|
||||||
|
|
||||||
|
shtArt.cell(row=last_row, column=1, value=last_row)
|
||||||
|
shtArt.cell(row=last_row, column=2, value=strUrl)
|
||||||
|
shtArt.cell(row=last_row, column=3, value=strArt)
|
||||||
|
# list 인 경우
|
||||||
|
elif isinstance(ArtName, list):
|
||||||
|
nID = self.SearchIDFromName(shtArt, ArtName)
|
||||||
|
if 0 > nID:
|
||||||
|
util.DbgOut(f"AddArtist : {self.sheetArtist} Get Failed...", True)
|
||||||
|
elif 0 < nID:
|
||||||
|
util.DbgOut(f"AddArtist : {self.sheetArtist}:{nID},{ArtName[0]} is exist.")
|
||||||
|
else:
|
||||||
|
last_row = shtArt.max_row
|
||||||
|
if shtArt.cell(row=last_row, column=1).value :
|
||||||
|
last_row += 1
|
||||||
|
|
||||||
|
shtArt.cell(row=last_row, column=1, value=last_row)
|
||||||
|
shtArt.cell(row=last_row, column=2, value=strUrl)
|
||||||
|
|
||||||
|
nCol = 3
|
||||||
|
for strArt in ArtName:
|
||||||
|
shtArt.cell(row=last_row, column=nCol, value=strArt)
|
||||||
|
nCol += 1
|
||||||
|
|
||||||
|
nID = last_row
|
||||||
|
|
||||||
|
return nID
|
||||||
|
|
||||||
|
|
||||||
|
def AddSeriesInfo(self, strSerires, strUrl):
|
||||||
|
nID = self.AddInfotoSheet(self.strSeriesSht, strSerires, strUrl)
|
||||||
|
util.DbgOut(f"AddSeriesInfo : {self.strSeriesSht}:{nID},{strSerires}")
|
||||||
|
return nID
|
||||||
|
|
||||||
|
|
||||||
|
def AddTypeInfo(self, strType, strUrl):
|
||||||
|
nID = self.AddInfotoSheet(self.strTypeSht, strType, strUrl)
|
||||||
|
util.DbgOut(f"AddTypeInfo : {self.strTypeSht}:{nID},{strType}")
|
||||||
|
return nID
|
||||||
|
|
||||||
|
|
||||||
|
# 1 , 2 , 3
|
||||||
|
# Index, URL , Value
|
||||||
|
def AddInfotoSheet(self, strSheet, strValue, strUrl):
|
||||||
|
sheetTag = self.getSheet(strSheet)
|
||||||
|
if sheetTag is None:
|
||||||
|
util.DbgOut(f"AddTag : {strSheet} Get Failed...", True)
|
||||||
|
return -1
|
||||||
|
|
||||||
|
nIndexID = self.SearchIDFromName(sheetTag, strValue)
|
||||||
|
if 0 > nIndexID:
|
||||||
|
util.DbgOut(f"AddTag : {strSheet} Get Failed...", True)
|
||||||
|
elif 0 < nIndexID:
|
||||||
|
util.DbgOut(f"AddTag : {strSheet}:{nIndexID},{strValue} is exist.")
|
||||||
else:
|
else:
|
||||||
last_row = sheetTag.max_row
|
last_row = sheetTag.max_row
|
||||||
if sheetTag.cell(row=last_row, column=1).value :
|
if sheetTag.cell(row=last_row, column=1).value :
|
||||||
@@ -105,10 +174,15 @@ class DBXLStorage:
|
|||||||
|
|
||||||
sheetTag.cell(row=last_row, column=1, value=last_row)
|
sheetTag.cell(row=last_row, column=1, value=last_row)
|
||||||
sheetTag.cell(row=last_row, column=2, value=strUrl)
|
sheetTag.cell(row=last_row, column=2, value=strUrl)
|
||||||
sheetTag.cell(row=last_row, column=3, value=strTag)
|
sheetTag.cell(row=last_row, column=3, value=strValue)
|
||||||
util.DbgOut(f"AddTag : {self.strTagSht}:{nSearchID},{strTag} added.")
|
util.DbgOut(f"AddTag : {strSheet}:{nIndexID},{strValue} added.")
|
||||||
|
nIndexID = last_row
|
||||||
|
|
||||||
|
return nIndexID
|
||||||
|
|
||||||
|
# return Value :
|
||||||
|
# -1 : 시트가 뭔가 잘못되었다.
|
||||||
|
# 0 : 추가할 값이 이미 들어있다.
|
||||||
def SearchIDFromName(self, sheet, strValue, nTrgCol=3):
|
def SearchIDFromName(self, sheet, strValue, nTrgCol=3):
|
||||||
if sheet is None :
|
if sheet is None :
|
||||||
return -1
|
return -1
|
||||||
@@ -124,8 +198,8 @@ class DBXLStorage:
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
return nRetID
|
return nRetID
|
||||||
|
|
||||||
# 같은 값을 가지고 있는 ROW, 혹은 index 를 반
|
|
||||||
def SearchIDFromList(self, sheet, listValue, nStartCol=3):
|
def SearchIDFromList(self, sheet, listValue, nStartCol=3):
|
||||||
if sheet is None :
|
if sheet is None :
|
||||||
return -1
|
return -1
|
||||||
@@ -143,69 +217,7 @@ class DBXLStorage:
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
return nRetID
|
return nRetID
|
||||||
|
|
||||||
|
|
||||||
def AddArtistInfo(self, ArtName, strUrl):
|
|
||||||
shtArt = self.getSheet(self.strArtSht)
|
|
||||||
if shtArt is None:
|
|
||||||
util.DbgOut(f"AddArtist : {self.strArtSht} Get Failed...", True)
|
|
||||||
return
|
|
||||||
|
|
||||||
# ArtName 이 리스트인 경우, String 인 경우로 구분한다. 그 외는 몰라.
|
|
||||||
if isinstance(ArtName, str):
|
|
||||||
nSearchID = self.SearchIDFromName(shtArt, ArtName)
|
|
||||||
if 0 > nSearchID:
|
|
||||||
util.DbgOut(f"AddArtist : {self.sheetArtist} Get Failed...", True)
|
|
||||||
elif 0 < nSearchID:
|
|
||||||
util.DbgOut(f"AddArtist : {self.sheetArtist}:{nSearchID},{strTag} is exist.")
|
|
||||||
else:
|
|
||||||
last_row = sheetTag.max_row
|
|
||||||
if sheetArtist.cell(row=last_row, column=1).value :
|
|
||||||
last_row += 1
|
|
||||||
|
|
||||||
sheetArtist.cell(row=last_row, column=1, value=last_row)
|
|
||||||
sheetArtist.cell(row=last_row, column=2, value=strUrl)
|
|
||||||
sheetArtist.cell(row=last_row, column=3, value=strArt)
|
|
||||||
|
|
||||||
elif isinstance(ArtName, list):
|
|
||||||
nSearchID = self.SearchIDFromName(shtArt, ArtName)
|
|
||||||
if 0 > nSearchID:
|
|
||||||
util.DbgOut(f"AddArtist : {self.sheetArtist} Get Failed...", True)
|
|
||||||
elif 0 < nSearchID:
|
|
||||||
util.DbgOut(f"AddArtist : {self.sheetArtist}:{nSearchID},{strTag} is exist.")
|
|
||||||
else:
|
|
||||||
last_row = sheetTag.max_row
|
|
||||||
if sheetArtist.cell(row=last_row, column=1).value :
|
|
||||||
last_row += 1
|
|
||||||
|
|
||||||
sheetArtist.cell(row=last_row, column=1, value=last_row)
|
|
||||||
sheetArtist.cell(row=last_row, column=2, value=strUrl)
|
|
||||||
|
|
||||||
strDebugParam = ""
|
|
||||||
nCol = 3
|
|
||||||
if isinstance(ArtName, str):
|
|
||||||
sheetArtist.cell(row=last_row, column=nCol, value=strArt)
|
|
||||||
strDebugParam = ArtName
|
|
||||||
|
|
||||||
elif isinstance(ArtName, list):
|
|
||||||
for strArt in listArtist:
|
|
||||||
sheetArtist.cell(row=last_row, column=nCol, value=strArt)
|
|
||||||
nCol += 1
|
|
||||||
|
|
||||||
util.DbgOut(f"AddArtist : {self.sheetArtist}:{last_row},{strDebugParam} added.")
|
|
||||||
|
|
||||||
def AddSeriesInfo(self, SeriesInfo):
|
|
||||||
pass
|
|
||||||
|
|
||||||
|
|
||||||
def AddSeriesInfo(self, strSerires, strUrl):
|
|
||||||
pass
|
|
||||||
|
|
||||||
def AddTypeInfo(self, typeInfo):
|
|
||||||
pass
|
|
||||||
|
|
||||||
def AddTypeInfo(self, strType, strUrl):
|
|
||||||
pass
|
|
||||||
|
|
||||||
# 시트를 가져온다. 엑셀 파일이 안 열려 있으면 None, 있으면 반환하고, 없으면 만들어서.
|
# 시트를 가져온다. 엑셀 파일이 안 열려 있으면 None, 있으면 반환하고, 없으면 만들어서.
|
||||||
def getSheet(self, sheetName):
|
def getSheet(self, sheetName):
|
||||||
@@ -223,6 +235,7 @@ class DBXLStorage:
|
|||||||
|
|
||||||
return retSheet
|
return retSheet
|
||||||
|
|
||||||
|
|
||||||
# 데이터베이스용 엑셀 파일의 전체 경로를 얻어온다.
|
# 데이터베이스용 엑셀 파일의 전체 경로를 얻어온다.
|
||||||
def GetXLSPath(self, path):
|
def GetXLSPath(self, path):
|
||||||
retPath = os.path.abspath(path)
|
retPath = os.path.abspath(path)
|
||||||
|
|||||||
2
main.py
2
main.py
@@ -17,6 +17,8 @@ def main():
|
|||||||
|
|
||||||
tempxls = xls.DBXLStorage("./temp.xls")
|
tempxls = xls.DBXLStorage("./temp.xls")
|
||||||
tempxls.DBXLSOpen()
|
tempxls.DBXLSOpen()
|
||||||
|
tempxls.AddArtistInfo("Kuno Inu", "/artist/kunoinu/")
|
||||||
|
tempxls.AddSeriesInfo("Original", "/serires/original/")
|
||||||
tempxls.AddTagInfo("female:bondage", "/tag/bondage/")
|
tempxls.AddTagInfo("female:bondage", "/tag/bondage/")
|
||||||
tempxls.AddTagInfo("female:slave", "/tag/slave/")
|
tempxls.AddTagInfo("female:slave", "/tag/slave/")
|
||||||
tempxls.DBXLSClose()
|
tempxls.DBXLSClose()
|
||||||
|
|||||||
Reference in New Issue
Block a user