From 1fb4899d7e88256551d0146388a9b7c97a3e5551 Mon Sep 17 00:00:00 2001 From: suti7yk5032 Date: Sun, 12 May 2024 21:44:07 +0900 Subject: [PATCH] 1st --- .gitignore | 2 + ic/128.png | Bin 0 -> 7304 bytes ic/32.png | Bin 0 -> 1699 bytes ic/48.png | Bin 0 -> 2291 bytes ic/64.png | Bin 0 -> 3124 bytes jp_win.py | 384 ++++++++++++++++++++++++++++++++++++ jp_win_new.py | 477 +++++++++++++++++++++++++++++++++++++++++++++ lib/config.json | 6 + lib/error64.png | Bin 0 -> 4476 bytes lib/info32.png | Bin 0 -> 1379 bytes lib/info64.png | Bin 0 -> 3942 bytes lib/logo.ico | Bin 0 -> 1286 bytes lib/logo.png | Bin 0 -> 5127 bytes lib/logo16.png | Bin 0 -> 507 bytes lib/logo32.png | Bin 0 -> 1021 bytes lib/setting_32.png | Bin 0 -> 1035 bytes lib/thm.png | Bin 0 -> 73083 bytes lib/wod_icon.ico | Bin 0 -> 106310 bytes requirements.txt | 6 + rminv.ini | 16 ++ rminv.py | 15 ++ 21 files changed, 906 insertions(+) create mode 100644 .gitignore create mode 100644 ic/128.png create mode 100644 ic/32.png create mode 100644 ic/48.png create mode 100644 ic/64.png create mode 100644 jp_win.py create mode 100644 jp_win_new.py create mode 100644 lib/config.json create mode 100644 lib/error64.png create mode 100644 lib/info32.png create mode 100644 lib/info64.png create mode 100644 lib/logo.ico create mode 100644 lib/logo.png create mode 100644 lib/logo16.png create mode 100644 lib/logo32.png create mode 100644 lib/setting_32.png create mode 100644 lib/thm.png create mode 100644 lib/wod_icon.ico create mode 100644 requirements.txt create mode 100644 rminv.ini create mode 100644 rminv.py diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..42b415e --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +/venv/ +/*.lnk \ No newline at end of file diff --git a/ic/128.png b/ic/128.png new file mode 100644 index 0000000000000000000000000000000000000000..bfa41dc0aa6d68742069b9c5f0b78a79ead2d227 GIT binary patch literal 7304 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⩔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 literal 0 HcmV?d00001 diff --git a/ic/48.png b/ic/48.png new file mode 100644 index 0000000000000000000000000000000000000000..1843ee5043bf43098d2bdfaf2bdea1d6182bc722 GIT binary patch literal 2291 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 O0000|]+', "", self.title) + return {"video_title": self.title, "video_title_re": self.title_re, "video_creator": self.creator, "thm_path": self.thm} + except: + messagebox.showerror("ダウンロードエラー", "入力されたURLにはアクセスできませんでした。\nURLが有効なものであるか確認の上、再度お試しください。") + return "url_error" + + + def video(self, url, dir_path, video_title, video_title_re, quality): + dl_option = { + "outtmpl": dir_path + "\\" + video_title_re + ".mp4", + "format": "bestvideo[ext=mp4]+bestaudio[ext=m4a]/mp4", + } + dlp = YoutubeDL(dl_option) + print("動画をダウンロードしています") + Notify().downloading(video_title, "video") + try: + dlp.download([url]) + print("成功") + return {"file_name": video_title_re + ".mp4", "file_path": dir_path + "\\" + video_title_re + ".mp4", "dir_path": dir_path, "video_title": video_title, "video_title_re": video_title_re} + except: + print("失敗") + return "download_error" + + def audio(self, url, dir_path, video_title, video_title_re): + dl_option = { + 'outtmpl': dir_path + "\\" + video_title_re + ".m4a", + 'format': 'bestaudio[ext=m4a]' + } + dlp = YoutubeDL(dl_option) + print("音声をダウンロードしています") + Notify().downloading(video_title, "audio") + try: + dlp.download([url]) + print("成功") + return {"file_name": url + ".m4a", "file_path": dir_path + "\\" + video_title_re + ".m4a", "dir_path": dir_path, "video_title": video_title, "video_title_re": video_title_re} + except: + print("失敗") + return "download_error" + +class Convert(): + def h264(self, file_path, dir_path, video_title, encoder, bitrate_add): + dl_video_info = ffmpeg.probe(file_path) + bitrate = float(dl_video_info["streams"][0]["bit_rate"]) + vcodec = dl_video_info["streams"][0]["codec_name"] + if vcodec == "vp9": + dl_video_converted_path = dir_path + "\\" + video_title + "_h264.mp4" + try: + stream = ffmpeg.input(file_path) + stream_convert = ffmpeg.output(stream, dl_video_converted_path, vcodec=encoder, video_bitrate=int(bitrate + bitrate * (bitrate_add - 1)), audio_bitrate="320k") + stream_convert.run() + return {"file_path": dl_video_converted_path} + except: + return "convert_error" + else: + return {"file_path": file_path} + + + +class Notify(): + def downloading(self, video_title, mode): + if mode == "video": + self.dl_notify = Notification( + app_id=appname, + title="動画をダウンロード中...", + msg=video_title, + icon=lib_path + r"\thm.png" + ) + elif mode == "audio": + self.dl_notify = Notification( + app_id=appname, + title="音声をダウンロード中...", + msg=video_title, + icon=lib_path + r"\thm.png" + ) + + self.dl_notify.set_audio(audio.Default, loop=False) + self.dl_notify.show() + + def download_success(self, video_title, file_path, dir_path): + self.dl_success_notify = Notification( + app_id=appname, + title="ダウンロードが完了しました", + msg=video_title, + icon=lib_path + r"\thm.png" + ) + self.dl_success_notify.add_actions( + label="ファイルを開く", + launch=file_path + ) + self.dl_success_notify.add_actions( + label="保存先を開く", + launch=dir_path + ) + + self.dl_success_notify.set_audio(audio.Reminder, loop=False) + self.dl_success_notify.show() + + def info(self): + self.info_notification = Notification( + app_id=appname, + title="バージョン情報", + msg=f"{appname} バージョン {version}", + icon=lib_path + r"\logo.png" + ) + self.info_notification.show() + + + + +class App(customtkinter.CTk): + def __init__(self): + super().__init__() + + self.config_file = lib_path + "\\config.json" + if not os.path.isfile(self.config_file): + dummylist = { + "dl_path": "", + "convert": "1", + "encoder": "h264", + "bitrate_add": "1.0" + } + + with open(self.config_file, "w") as list_write: + json.dump(dummylist, list_write, indent=4) + + with open(self.config_file, "r") as list_read: + self.config = json.load(list_read) + + self.title(appname) + self.iconbitmap(r".\lib\logo.ico") + self.geometry("640x360") + self.resizable(height=False, width=False) + self.grid_rowconfigure(0, weight=1) + self.grid_columnconfigure(1, weight=1) + + self.logo_icon = customtkinter.CTkImage(Image.open( + os.path.join(lib_path, "logo32.png")), size=(32, 32)) + self.info_icon = customtkinter.CTkImage(Image.open( + os.path.join(lib_path, "info32.png")), size=(32, 32)) + self.setting_icon = customtkinter.CTkImage(Image.open( + os.path.join(lib_path, "setting_32.png")), size=(32, 32)) + + if thm_conf: + pass + else: + thm_dummy = Image.new("L", (640, 360)) + thm_dummy.save(lib_path + "\\thm.png") + + self.thm_preview = customtkinter.CTkImage(Image.open( + os.path.join(lib_path, "thm.png")), size=(160, 90)) + + self.title_font = customtkinter.CTkFont( + family="meiryo", size=16, weight="bold") + self.info_font = customtkinter.CTkFont(family="meiryo", size=14) + self.ui_font = customtkinter.CTkFont(family="meiryo", size=12) + self.button_font = customtkinter.CTkFont( + family="meiryo", size=14, weight="bold") + + self.frame = customtkinter.CTkFrame(self, corner_radius=0) + self.frame.grid(row=0, column=0, sticky="nsew") + self.frame.grid_rowconfigure(4, weight=1) + + self.dl_frame_button = customtkinter.CTkButton(self.frame, width=32, height=36, border_spacing=4, image=self.logo_icon, + text="", fg_color="transparent", hover_color=("gray70", "gray30"), command=self.frame_select_dl) + self.dl_frame_button.grid(row=0, column=0, sticky="ew") + + self.info_button = customtkinter.CTkButton(self.frame, width=32, height=36, border_spacing=4, image=self.info_icon, + text="", fg_color="transparent", hover_color=("gray70", "gray30"), command=self.app_info) + self.info_button.grid(row=2, column=0, sticky="ew") + + self.setting_frame_button = customtkinter.CTkButton(self.frame, width=32, height=36, border_spacing=4, image=self.setting_icon, text="", fg_color="transparent", hover_color=("gray70", "gray30"), command=self.frame_select_setting) + self.setting_frame_button.grid(row=1, column=0, sticky="ew") + + # dl_frame + self.dl_frame = customtkinter.CTkFrame(self, fg_color="transparent") + self.dl_frame.grid(row=0, column=1) + self.dl_frame.grid_rowconfigure(0, weight=1) + self.dl_frame.grid_columnconfigure(0, weight=1) + + self.dl_info_frame = customtkinter.CTkFrame( + self.dl_frame, fg_color="transparent") + self.dl_info_frame.grid(row=0, column=0, padx=2, pady=2) + self.dl_info_frame.grid_columnconfigure(0, weight=2) + self.dl_info_frame.grid_columnconfigure(1, weight=1) + + self.dl_info_label_frame = customtkinter.CTkFrame( + self.dl_info_frame, fg_color="transparent") + self.dl_info_label_frame.grid(row=0, column=0, padx=8, pady=0) + + self.dl_video_title = customtkinter.CTkLabel( + self.dl_info_label_frame, text="URLを入力してください...", width=360, font=self.title_font, wraplength=360, anchor=tk.W) + self.dl_video_title.grid(row=0, column=0, padx=2, pady=4) + + self.dl_creator_title = customtkinter.CTkLabel( + self.dl_info_label_frame, text="クリップボードの内容が自動的にコピーされています。", width=360, font=self.info_font, wraplength=360, anchor=tk.W) + self.dl_creator_title.grid(row=1, column=0, padx=2, pady=4) + + self.dl_video_thm = customtkinter.CTkLabel( + self.dl_info_frame, image=self.thm_preview, text="", anchor=tk.NE) + self.dl_video_thm.grid(row=0, column=1, padx=8, pady=0) + + self.dl_input_frame = customtkinter.CTkFrame( + self.dl_frame, fg_color="transparent") + self.dl_input_frame.grid(row=1, column=0, padx=16, pady=2) + self.dl_input_frame.grid_rowconfigure(0, weight=1) + self.dl_input_frame.grid_columnconfigure(0, weight=1) + + self.dl_url_textbox = customtkinter.CTkEntry( + self.dl_input_frame, placeholder_text="URLを入力", width=428, font=self.ui_font) + self.dl_url_textbox.grid(row=0, column=0, padx=8, pady=8) + self.dl_url_textbox.insert(0, cpurl) + + self.dl_path_textbox = customtkinter.CTkEntry( + self.dl_input_frame, placeholder_text="保存先を入力...", width=428, font=self.ui_font) + self.dl_path_textbox.grid(row=1, column=0, padx=8, pady=8) + + self.dl_path_paste_button = customtkinter.CTkButton( + self.dl_input_frame, text="URLを貼り付け", command=self.dl_path_paste, font=self.button_font) + self.dl_path_paste_button.grid(row=0, column=1, padx=8, pady=8) + + self.dl_path_button = customtkinter.CTkButton( + self.dl_input_frame, text="保存先を選択", command=self.dl_path_select, font=self.button_font) + self.dl_path_button.grid(row=1, column=1, padx=8, pady=8) + + self.dl_path_textbox.insert(0, self.config["dl_path"].rstrip('\n')) + + self.dl_control_frame = customtkinter.CTkFrame( + self.dl_frame, fg_color="transparent") + self.dl_control_frame.grid(row=2, column=0, padx=16, pady=6) + self.dl_control_frame.grid_rowconfigure(0, weight=1) + self.dl_control_frame.grid_columnconfigure(0, weight=1) + + self.dl_audio_switch = customtkinter.CTkSwitch( + self.dl_control_frame, text="音声を出力", width=120, font=self.ui_font) + self.dl_audio_switch.grid(row=1, column=1, padx=4, pady=6) + + self.dl_video_switch = customtkinter.CTkSwitch( + self.dl_control_frame, text="動画を出力", width=120, font=self.ui_font) + self.dl_video_switch.grid(row=1, column=0, padx=4, pady=6) + self.dl_video_switch.select() + + self.dl_special_dir_switch = customtkinter.CTkSwitch( + self.dl_control_frame, text="SpeDir", width=120, font=self.ui_font) + self.dl_special_dir_switch.grid(row=2, column=0, padx=4, pady=6) + + self.dl_acodec_select = customtkinter.CTkComboBox(self.dl_control_frame, width=140, values=[ + "bestaudio", "opus", "vorbis", "aac", "mp3"], font=self.ui_font, dropdown_font=self.ui_font) + self.dl_acodec_select.grid(row=1, column=2, padx=4, pady=6) + + self.dl_start_button = customtkinter.CTkButton( + self.dl_control_frame, text="ダウンロード", command=self.dl_start_thread, font=self.button_font) + self.dl_start_button.grid(row=2, column=3, padx=4, pady=6) + + + + # setting_frame + self.setting_frame = customtkinter.CTkFrame(self, fg_color="transparent") + self.setting_frame.grid_rowconfigure(0, weight=1) + self.setting_frame.grid_columnconfigure(0, weight=1) + + self.setting_video_frame = customtkinter.CTkFrame(self.setting_frame, fg_color="transparent") + self.setting_video_frame.grid(row=0, column=0) + self.setting_video_title = customtkinter.CTkLabel(self.setting_video_frame, text="動画", width=400, font=self.title_font, wraplength=400, anchor=tk.W) + self.setting_video_title.grid(row=0, column=0) + self.setting_video_convert_title = customtkinter.CTkLabel(self.setting_video_frame, text="H264に変換する", width=400, font=self.info_font, wraplength=400, anchor=tk.W) + self.setting_video_convert_title.grid(row=1, column=0) + self.setting_video_convert_detail = customtkinter.CTkLabel(self.setting_video_frame, text="動画のコーデックがH264以外の場合、自動的に変換します。", width=400, font=self.ui_font, wraplength=400, anchor=tk.W) + self.setting_video_convert_detail.grid(row=2, column=0) + self.setting_video_convert_switch = customtkinter.CTkSwitch(self.setting_video_frame, text="", width=120, font=self.ui_font) + self.setting_video_convert_switch.grid(row=1, column=1) + self.setting_video_encoder_title = customtkinter.CTkLabel(self.setting_video_frame, text="エンコーダーの選択", width=400, font=self.info_font, wraplength=400, anchor=tk.W) + self.setting_video_encoder_title.grid(row=3, column=0) + self.setting_video_encoder_detail = customtkinter.CTkLabel(self.setting_video_frame, text="変換時に使用するエンコーダーを選択します。", width=400, font=self.ui_font, wraplength=400, anchor=tk.W) + self.setting_video_encoder_detail.grid(row=4, column=0) + self.setting_video_encoder_combobox = customtkinter.CTkComboBox(self.setting_video_frame, width=140, values=["h264", "h264_qsv", "h264_nvenc", "libx264"], font=self.ui_font, dropdown_font=self.ui_font) + self.setting_video_encoder_combobox.grid(row=3, column=1) + self.setting_video_bitrate_title = customtkinter.CTkLabel(self.setting_video_frame, text="ビットレートの上乗せ", width=400, font=self.info_font, wraplength=400, anchor=tk.W) + self.setting_video_bitrate_title.grid(row=5, column=0) + self.setting_video_bitrate_detail = customtkinter.CTkLabel(self.setting_video_frame, text="H264に変換後、元動画の画質を維持するためにビットレートを上げます。", width=400, font=self.ui_font, wraplength=400, anchor=tk.W) + self.setting_video_bitrate_detail.grid(row=6, column=0) + self.setting_video_bitrate_combobox = customtkinter.CTkComboBox(self.setting_video_frame, width=140, values=["1", "1.25", "1.5", "2"], font=self.ui_font, dropdown_font=self.ui_font) + self.setting_video_bitrate_combobox.grid(row=5, column=1) + + + if self.config["convert"] == "1": + self.setting_video_convert_switch.select() + else: + self.setting_video_convert_switch.deselect() + + self.setting_video_encoder_combobox.set(self.config["encoder"]) + self.setting_video_bitrate_combobox.set(self.config["bitrate_add"]) + + self.select_frame_name("dl_frame") + + + def select_frame_name(self, name): + self.dl_frame_button.configure( + fg_color=("gray75", "gray25") if name == "dl_frame" else "transparent") + self.setting_frame_button.configure( + fg_color=("gray75", "gray25") if name == "setting_frame" else "transparent") + + if name == "dl_frame": + self.dl_frame.grid(row=0, column=1, sticky="nsew") + else: + self.dl_frame.grid_forget() + + if name == "setting_frame": + self.setting_frame.grid(row=0, column=1, sticky="nsew") + else: + self.setting_frame.grid_forget() + + def frame_select_dl(self): + self.select_frame_name("dl_frame") + + def frame_select_setting(self): + self.select_frame_name("setting_frame") + + def dl_path_select(self): + dl_path = tk.filedialog.askdirectory( + title="保存場所を選択...", initialdir="%HOMEPATH%/Videos") + dl_path_win = dl_path.replace("/", "\\") + self.dl_path_textbox.delete(0, tk.END) + self.dl_path_textbox.insert(0, dl_path_win) + self.config["dl_path"] = dl_path_win + + def dl_path_paste(self): + cpurl = pyperclip.paste() + self.dl_url_textbox.delete(0, tk.END) + self.dl_url_textbox.insert(0, cpurl) + + + + # ダウンロード + + def dl_start_thread(self): + if self.dl_video_switch.get() == 0 and self.dl_audio_switch.get() == 0: + messagebox.showerror("ダウンロードエラー", "動画、音声のどちらをダウンロードするかを選択してください。") + sys.exit() + + if self.dl_url_textbox.get() == "": + messagebox.showerror( + "ダウンロードエラー", "URLが入力されていません。\n有効なURLを入力してから、もう一度お試しください。") + sys.exit() + dl_thread = threading.Thread(target=self.dl_start) + dl_thread.start() + + def dl_start(self): + error = 0 + self.dl_start_button.configure( + text="ダウンロード中...", state="disabled", fg_color="gray") + + if self.dl_special_dir_switch.get() == 1: + video_path = self.dl_path_textbox.get() + "\\" + "video" + "\\" + "source" + audio_path = self.dl_path_textbox.get() + "\\" + "audio" + "\\" + "source" + else: + video_path = self.dl_path_textbox.get() + audio_path = self.dl_path_textbox.get() + + self.ytdl = Download().info(self.dl_url_textbox.get()) + if self.ytdl == "url_error": + error = 1 + else: + self.thm_preview = customtkinter.CTkImage(Image.open(os.path.join(lib_path, "thm.png")), size=(160, 90)) + self.dl_video_thm.configure(image=self.thm_preview) + self.dl_video_title.configure(text=self.ytdl["video_title"]) + self.dl_creator_title.configure(text=self.ytdl["video_creator"]) + + if self.dl_video_switch.get() == 1: + print(self.ytdl["video_title_re"]) + if os.path.isfile(video_path + "\\" + self.ytdl["video_title_re"] + ".mp4") or os.path.isfile(video_path + "\\" + self.ytdl["video_title_re"] + "_h264.mp4"): + video_file_num_check = 0 + video_file_num = 1 + while video_file_num_check == 0: + if os.path.isfile(video_path + "\\" + self.ytdl["video_title_re"] + "_" + str(video_file_num) + ".mp4") or os.path.isfile(video_path + "\\" + self.ytdl["video_title_re"] + "_" + str(video_file_num) + "_h264.mp4"): + video_file_num = video_file_num + 1 + else: + video_file_num_check = 1 + self.video_dl = Download().video(self.dl_url_textbox.get(), video_path, self.ytdl["video_title"], self.ytdl["video_title_re"] + "_" + str(video_file_num), "kayoko") + else: + self.video_dl = Download().video(self.dl_url_textbox.get(), video_path, self.ytdl["video_title"], self.ytdl["video_title_re"], "kayoko") + + if self.video_dl == "download_error": + messagebox.showerror("ダウンロードエラー", "ダウンロードの段階でエラーが発生しました。動画はダウンロードされません。") + error = 1 + else: + if self.setting_video_convert_switch.get() == 1: + self.video_convert = Convert().h264(self.video_dl["file_path"], self.video_dl["dir_path"], self.video_dl["video_title_re"], self.setting_video_encoder_combobox.get(), float(self.setting_video_bitrate_combobox.get())) + if self.video_convert == "convert_error": + messagebox.showerror("ダウンロードエラー", "コーデックの変換の段階でエラーが発生しました。動画は変換されずにダウンロードされます。") + error = 1 + else: + self.file_path = self.video_convert["file_path"] + else: + self.file_path = self.video_dl["file_path"] + + if self.dl_audio_switch.get() == 1: + self.ytdl = Download().info(self.dl_url_textbox.get()) + if self.ytdl == "url_error": + error = 1 + else: + if os.path.isfile(audio_path + "\\" + self.ytdl["video_title_re"] + ".m4a"): + audio_file_num_check = 0 + audio_file_num = 1 + while audio_file_num_check == 0: + if os.path.isfile(audio_path + "\\" + self.ytdl["video_title_re"] + "_" + str(audio_file_num) + ".m4a"): + audio_file_num = audio_file_num + 1 + else: + audio_file_num_check = 1 + self.audio_dl = Download().audio(self.dl_url_textbox.get(), audio_path, self.ytdl["video_title"], self.ytdl["video_title_re"] + "_" + str(audio_file_num)) + else: + self.audio_dl = Download().audio(self.dl_url_textbox.get(), audio_path, self.ytdl["video_title"], self.ytdl["video_title_re"]) + if self.audio_dl == "download_error": + messagebox.showerror("ダウンロードエラー", "ダウンロードの段階でエラーが発生しました。音声はダウンロードされません。") + else: + if self.dl_video_switch.get() == 0: + self.file_path = self.audio_dl["file_path"] + + if error == 0: + Notify().download_success(self.ytdl["video_title"], self.file_path, self.dl_path_textbox.get()) + + self.dl_start_button.configure( + text="ダウンロード", state="normal", fg_color="#3b8ed0") + + def app_info(self): + Notify().info() + + def handler_close(self): + self.config["dl_path"] = self.dl_path_textbox.get() + self.config["convert"] = str(self.setting_video_convert_switch.get()) + self.config["encoder"] = self.setting_video_encoder_combobox.get() + self.config["bitrate_add"] = self.setting_video_bitrate_combobox.get() + with open(self.config_file, "w") as list_write: + json.dump(self.config, list_write, indent=4) + self.destroy() + + +if __name__ == "__main__": + app = App() + app.protocol("WM_DELETE_WINDOW", app.handler_close) + app.mainloop() diff --git a/lib/config.json b/lib/config.json new file mode 100644 index 0000000..b96a28a --- /dev/null +++ b/lib/config.json @@ -0,0 +1,6 @@ +{ + "dl_path": "E:\\YTPMV\\source\\bgm", + "convert": "1", + "encoder": "h264_nvenc", + "bitrate_add": "1.5" +} \ No newline at end of file diff --git a/lib/error64.png b/lib/error64.png new file mode 100644 index 0000000000000000000000000000000000000000..416b073b590c77cf895f7fffa4acf02627719b7b GIT binary patch literal 4476 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 AWB>pF literal 0 HcmV?d00001 diff --git a/lib/logo.ico b/lib/logo.ico new file mode 100644 index 0000000000000000000000000000000000000000..03bd701d06736fe80e183339287460bcc59fb033 GIT binary patch literal 1286 zcmcgqO=uHA6rN4Am6&SU+BU5QwP}sTOLOoCawwuGR8SApGTokFnXao zt?y{nr~b|FM_f(QjM}OHM)buSQXRx0OR#EFuR`B!#q7}B2+%BTHbY_<3w|3`jybtJ zev)5^%%WrYEgZRdbg7f@W(VMVwFf;nCg2Rb=2G)_E_lLfemk-O7am<5#@YCNw0>UH z`Oo22ub@Bc#erlm+}EbzJhA|3>kkN?u$te-KMb|w-t;+~o_ow&)Fo`s#d)_ns`EX( zZ+-w>Q!{W3E<&>Z{D)8VXHK{=d;KDgzmU0O^&MK)6!fT<;QQDO@7y3dC+@&;=o2Ix zughOJ<-x6+BRuf(DVo=oup{?`?^e%q-*N|f<43XU@?C7}{{l(kb^5pQH)p( literal 0 HcmV?d00001 diff --git a/lib/logo.png b/lib/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..208926a1067f3a98f8985dd1fbb8a7256dfa9c2a GIT binary patch literal 5127 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 FV1j6$(}(~7 literal 0 HcmV?d00001 diff --git a/lib/thm.png b/lib/thm.png new file mode 100644 index 0000000000000000000000000000000000000000..138c8bf2da37c9ea133922411f6c1ed5743fbe3e GIT binary patch literal 73083 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 PJoxKA@&76D|5^MWkZu@T literal 0 HcmV?d00001 diff --git a/lib/wod_icon.ico b/lib/wod_icon.ico new file mode 100644 index 0000000000000000000000000000000000000000..52a974b37a6b2661b3e4141aa8e52b799a36e61b GIT binary patch literal 106310 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'])) + + # 無効な文字を空白に置換 + cleaned_text = re.sub(r'[' + invalid_chars + ']', '', text) + + return cleaned_text + +# 使用例 +file_name = "My.File$Name%^.txt" +cleaned_file_name = remove_invalid_chars(file_name) +print(cleaned_file_name) # 出力: "My.FileName.txt" \ No newline at end of file diff --git a/rminv.py b/rminv.py new file mode 100644 index 0000000..c8fc139 --- /dev/null +++ b/rminv.py @@ -0,0 +1,15 @@ +import re + +def remove_invalid_characters(input_string): + # 置換対象の無効な文字を正規表現で指定 + pattern = r'[\\/:*?"<>|]+' + # 置換文字列は空文字列に設定 + replacement = '' + # 無効な文字を削除 + cleaned_string = re.sub(pattern, replacement, input_string) + return cleaned_string + +# 例: 無効な文字を含む文字列 +original_string = '\\gbahsd:njs?<>|"asd/as*' +cleaned_result = remove_invalid_characters(original_string) +print(cleaned_result) # 出力: 'gbahsdnjsasdas'