ttttdiva commited on
Commit
f52b391
Β·
verified Β·
1 Parent(s): 0261398

Update main.py

Browse files
Files changed (1) hide show
  1. main.py +30 -18
main.py CHANGED
@@ -168,32 +168,44 @@ class CivitAICrawler:
168
 
169
  return enc_folder_name
170
 
171
- def process_model(self, model_id: str):
172
- # ダウンロード + ζš—ε·εŒ– + をップ
173
  try:
174
- minfo = self.get_model_info(model_id)
175
- if not minfo or "modelVersions" not in minfo:
176
- logger.error(f"[ERR] No modelVersions for {model_id}")
 
177
  return
178
 
179
- versions = minfo["modelVersions"]
180
- # local folder
181
- folder_name = re.sub(r'[\\/*?:"<>|]', '_', minfo.get("name", "UnknownModel"))
182
- folder_name += f"_{uuid.uuid4()[:8]}"
 
 
 
 
 
 
 
183
  os.makedirs(folder_name, exist_ok=True)
184
 
185
- # ダウンロード (ζœ€ζ–°/叀い) => まとめて folder_name
186
- # 画像 => folder_name/images
187
- # etc...
188
- self.download_versions(versions, folder_name)
189
  self.download_images(versions, folder_name)
190
- # ここでHTMLγ‚„ model_info.json δΏε­˜γ‚‚γ‚„γ‚‹γͺγ‚‰θΏ½εŠ :
191
- # ...
192
- enc_f = self.encrypt_and_upload_folder(folder_name)
193
- # => HF upload + cleanup
 
 
 
 
 
 
 
194
 
195
  except Exception as e:
196
- logger.error(f"[ERR] process_model({model_id}) => {e}")
197
 
198
  def download_versions(self, model_versions: list, folder: str):
199
  # すべて folder/ にまとめる or old_versions subfolder
 
168
 
169
  return enc_folder_name
170
 
171
+ def process_model(self, model_url: str):
 
172
  try:
173
+ model_id = model_url.rstrip("/").split("/")[-1]
174
+ model_info = self.get_model_info(model_id)
175
+ if not model_info or "modelVersions" not in model_info:
176
+ logger.error(f"No valid model info for ID {model_id}. Skipping.")
177
  return
178
 
179
+ versions = model_info["modelVersions"]
180
+ if not versions:
181
+ logger.warning(f"No modelVersions found for ID {model_id}.")
182
+ return
183
+
184
+ # 1) ε˜γ«γƒ’γƒ‡γƒ«εγ‚’γ‚΅γƒ‹γ‚Ώγ‚€γ‚Ίγ—γŸγƒ‡γ‚£γƒ¬γ‚―γƒˆγƒͺにまとめる
185
+ folder_name = re.sub(r'[\\/*?:"<>|]', '_', model_info.get("name", "UnknownModel"))
186
+
187
+ # γƒ•γ‚©γƒ«γƒ€γŒζ—’γ«γ‚γ‚Œγ°ε‰Šι™€γ—γ€ζ–°θ¦γ«δ½œγ‚Šη›΄γ™ (δΈŠζ›Έγ)
188
+ if os.path.exists(folder_name):
189
+ shutil.rmtree(folder_name)
190
  os.makedirs(folder_name, exist_ok=True)
191
 
192
+ # ダウンロード (ζœ€ζ–°/old_versions), 画像, HTML, model_info.json γͺど
193
+ self.download_and_process_versions(versions, folder_name)
 
 
194
  self.download_images(versions, folder_name)
195
+ self.save_html_content(f"{self.config.URLS['modelPage']}{model_id}", folder_name)
196
+ self.save_model_info_json(model_info, folder_name)
197
+
198
+ # ζš—ε·εŒ–γ‚’γƒƒγƒ—γƒ­γƒΌγƒ‰
199
+ enc_subfolder = self.encrypt_and_upload_folder(folder_name)
200
+ if enc_subfolder is None:
201
+ enc_subfolder = "[ENCRYPT_FAILED]"
202
+
203
+ hf_enc_url = f"https://huggingface.co/{self.repo_ids['current']}/tree/main/{enc_subfolder}"
204
+ with open(self.config.LIST_FILE, "a", encoding="utf-8") as f:
205
+ f.write(f"{model_info.get('name', 'UnnamedModel')} (ID:{model_id}): {hf_enc_url}\n")
206
 
207
  except Exception as e:
208
+ logger.error(f"Error in process_model({model_url}): {e}")
209
 
210
  def download_versions(self, model_versions: list, folder: str):
211
  # すべて folder/ にまとめる or old_versions subfolder