Update main.py
Browse files
main.py
CHANGED
@@ -205,53 +205,53 @@ class CivitAICrawler:
|
|
205 |
fname = f_info["name"]
|
206 |
self.download_file(url, ov_folder, fname)
|
207 |
|
208 |
-
def
|
209 |
-
"""
|
210 |
-
info_path = os.path.join(folder, "model_info.json")
|
211 |
try:
|
212 |
-
|
213 |
-
|
214 |
-
|
|
|
215 |
except Exception as e:
|
216 |
-
logger.error(f"[ERR]
|
|
|
217 |
|
218 |
def process_model(self, model_id: str):
|
219 |
-
|
220 |
-
|
221 |
-
|
222 |
-
|
223 |
-
|
224 |
-
|
225 |
-
|
226 |
-
|
227 |
-
|
228 |
-
|
229 |
-
|
230 |
-
|
231 |
-
|
232 |
-
|
233 |
-
|
234 |
-
|
235 |
-
|
236 |
-
|
237 |
-
|
238 |
-
|
239 |
-
|
240 |
-
|
241 |
-
|
242 |
-
|
243 |
-
|
244 |
-
|
245 |
-
|
246 |
-
|
247 |
-
|
248 |
-
|
249 |
-
|
250 |
-
|
251 |
-
|
252 |
-
|
253 |
-
|
254 |
-
logger.error(f"Error in process_model({model_id}): {e}")
|
255 |
|
256 |
async def crawl(self):
|
257 |
while True:
|
|
|
205 |
fname = f_info["name"]
|
206 |
self.download_file(url, ov_folder, fname)
|
207 |
|
208 |
+
def get_model_info(self, model_id: str) -> dict:
|
209 |
+
"""モデルIDからCivitAIの情報を取得"""
|
|
|
210 |
try:
|
211 |
+
url = f"{self.config.URLS['modelId']}{model_id}"
|
212 |
+
resp = requests.get(url, headers=self.config.HEADERS)
|
213 |
+
resp.raise_for_status()
|
214 |
+
return resp.json()
|
215 |
except Exception as e:
|
216 |
+
logger.error(f"[ERR] get_model_info({model_id}): {e}")
|
217 |
+
return {}
|
218 |
|
219 |
def process_model(self, model_id: str):
|
220 |
+
info = self.get_model_info(model_id)
|
221 |
+
if not info or "modelVersions" not in info:
|
222 |
+
logger.error(f"[ERR] No modelVersions for {model_id}")
|
223 |
+
return
|
224 |
+
|
225 |
+
versions = info["modelVersions"]
|
226 |
+
|
227 |
+
# ★ ここで固定フォルダ "local_models" を作る
|
228 |
+
base_dir = "local_models"
|
229 |
+
os.makedirs(base_dir, exist_ok=True)
|
230 |
+
|
231 |
+
# サブフォルダ名 (model_id を使う or model名を使う)
|
232 |
+
folder_name = str(model_id)
|
233 |
+
folder_path = os.path.join(base_dir, folder_name)
|
234 |
+
|
235 |
+
# 古いものがあれば消す
|
236 |
+
if os.path.exists(folder_path):
|
237 |
+
shutil.rmtree(folder_path)
|
238 |
+
os.makedirs(folder_path, exist_ok=True)
|
239 |
+
|
240 |
+
logger.info(f"[OK] created local folder => {folder_path}")
|
241 |
+
|
242 |
+
# ここでダウンロード (最新&古いバージョン)
|
243 |
+
# 例: すべて folder_path に保存
|
244 |
+
for v in versions:
|
245 |
+
for f_info in v.get("files", []):
|
246 |
+
dl_url = f_info["downloadUrl"]
|
247 |
+
fname = f_info["name"]
|
248 |
+
self.download_file(dl_url, folder_path, fname)
|
249 |
+
|
250 |
+
# 画像もダウンロード (folder_path/images に)
|
251 |
+
self.download_images(versions, folder_path)
|
252 |
+
|
253 |
+
# ここで暗号化→アップロードするなら
|
254 |
+
self.encrypt_and_upload_folder(folder_path)
|
|
|
255 |
|
256 |
async def crawl(self):
|
257 |
while True:
|