kone
소미소프트

소미소프트

요즘 애용하고있는 랜덤 파일 선택기

07/07/2025, 06:15:32
유틸
4312 views · 13 likes

이전 거처 멸망 전에 만든 방주가 감당이 안되서 gpt로 프로그램 짜봤는데 생각보다 유용한것 같아서 평소에 받은 은혜를 갚아보기 위해서 올려봄.

세줄요약 있음

1

실행하면 이런 화면이고, 여기서 방주 주소 추가랑 제거 가능함.


코드

import os
import random
import tkinter as tk
from tkinter import filedialog, messagebox, Listbox, Scrollbar, END, SINGLE
import subprocess
import json
import webbrowser
import re

CONFIG_FILE = "folder_config.json"
ARCHIVE_EXTENSIONS = ('.zip', '.7z', '.rar', '.egg')

class ArchiveFileSelectorApp:
    def __init__(self, root):
        self.root = root
        self.root.title("랜덤 압축 파일 선택기")
        self.folder_list = []

        # Load saved folders
        self.load_folder_list()

        # Frame for folder list and scrollbar
        list_frame = tk.Frame(root)
        list_frame.pack(padx=10, pady=10)

        self.folder_listbox = Listbox(list_frame, selectmode=SINGLE, width=60)
        self.folder_listbox.pack(side=tk.LEFT, fill=tk.BOTH, expand=True)

        scrollbar = Scrollbar(list_frame, orient="vertical")
        scrollbar.config(command=self.folder_listbox.yview)
        scrollbar.pack(side=tk.RIGHT, fill=tk.Y)
        self.folder_listbox.config(yscrollcommand=scrollbar.set)

        # Populate listbox
        for folder in self.folder_list:
            self.folder_listbox.insert(END, folder)

        # Frame for buttons
        button_frame = tk.Frame(root)
        button_frame.pack(padx=10, pady=10)

        self.add_button = tk.Button(button_frame, text="폴더 추가", command=self.add_folder)
        self.add_button.grid(row=0, column=0, padx=5)

        self.remove_button = tk.Button(button_frame, text="선택한 폴더 제거", command=self.remove_selected_folder)
        self.remove_button.grid(row=0, column=1, padx=5)

        self.open_button = tk.Button(button_frame, text="랜덤 압축 파일 열기", command=self.open_random_archive)
        self.open_button.grid(row=0, column=2, padx=5)

        # Save folders on close
        self.root.protocol("WM_DELETE_WINDOW", self.on_close)

    def add_folder(self):
        folder = filedialog.askdirectory(title="추가할 폴더 선택")
        if folder and folder not in self.folder_list:
            self.folder_list.append(folder)
            self.folder_listbox.insert(END, folder)

    def remove_selected_folder(self):
        selected = self.folder_listbox.curselection()
        if selected:
            index = selected[0]
            self.folder_listbox.delete(index)
            del self.folder_list[index]

    def open_random_archive(self):
        archive_files = []
        for folder in self.folder_list:
            for dirpath, _, filenames in os.walk(folder):
                for filename in filenames:
                    if filename.lower().endswith(ARCHIVE_EXTENSIONS):
                        full_path = os.path.abspath(os.path.join(dirpath, filename))
                        archive_files.append(full_path)

        if archive_files:
            selected_file = random.choice(archive_files)
            subprocess.run(f'explorer /select,"{selected_file}"', shell=True)

            # Check for RJ or VJ code in filename
            filename = os.path.basename(selected_file)
            match = re.search(r'(RJ|VJ)(\d+)', filename, re.IGNORECASE)
            if match:
                code = match.group(0).upper()
                prefix = code[:2]
                if prefix == 'RJ':
                    url = f'https://www.dlsite.com/maniax/work/=/product_id/{code}.html'
                elif prefix == 'VJ':
                    url = f'https://www.dlsite.com/pro/work/=/product_id/{code}.html'
                webbrowser.open(url)
        else:
            messagebox.showinfo("알림", "선택된 폴더들에서 압축 파일(.zip, .7z, .rar, .egg)을 찾을 수 없습니다.")

    def load_folder_list(self):
        if os.path.exists(CONFIG_FILE):
            try:
                with open(CONFIG_FILE, 'r', encoding='utf-8') as f:
                    self.folder_list = json.load(f)
            except Exception as e:
                print(f"폴더 목록 로드 실패: {e}")
                self.folder_list = []

    def save_folder_list(self):
        try:
            with open(CONFIG_FILE, 'w', encoding='utf-8') as f:
                json.dump(self.folder_list, f, ensure_ascii=False, indent=2)
        except Exception as e:
            print(f"폴더 목록 저장 실패: {e}")

    def on_close(self):
        self.save_folder_list()
        self.root.destroy()

# Run the app
if __name__ == "__main__":
    root = tk.Tk()
    app = ArchiveFileSelectorApp(root)
    root.mainloop()


기능

다중 폴더 선택 가능

지정 폴더 내의 하위 폴더에서도 압축파일 검색 가능

지금 .zip .7z .rar .egg 파일 검색 됨

파일명에 RJ나 VJ 있으면 컴터 기본 브라우저로 DL링크 열어줌


*코드 수정해서 쓸사람은 알아서 수정해 gpt 코딩 잘하더라


젤다

https://kio.ac/c/cwMCZA5AmJQ_b36cgd45Cb


세줄요약

  1. 방주 양이 감당이 안되서 랜덤 선택기 만듦

  2. 쓸사람 써라

  3. 복구 항상 고맙다

13
1 comment
Sign in to comment
07/07/25
이것도 링크 암호화해야 하는지 모르겠네
Sign in to comment
당근 새끼 제작근황 ㅋㅋㅋㅋㅋㅋㅋ
정보
여동생킬러
05/01 14899 31
[미번, 복구]アナル触手ゲーム 捕らえた魔法使いのケツ穴で卵を育てろ!!
미번
ruel-x
05/01 16896 38
【유부녀 음란 보지 네토리】 연애 풍속 diary 유부녀 바니걸 소프 아가씨 미츠하의 덥수룩한 음모 보지
소리
shiroi
05/01 14168 100
[기번] RJ01310014 Caught a Cat Miko! ~Live2D Tentacle Game
번역
FGFFG0829
05/01 47286 144
[후타] 프리렌 & 아우라
영상
브레머튼
05/01 29977 129
[충간] 벨 & 니콜 & 비비안 - 비치 파티
영상
브레머튼
05/01 16635 61
[미번/구매보급] 사랑하는 선생님에게 젖꼭지 고문당하는 소녀 (愛しの先生に乳首責めされちゃう女の子)
미번
nxsolo
05/01 15609 42
염월선행록 한패 나올 때 까지 숨 참는다
일반
nxsolo
05/01 7887 34
[AI번역/이미지번역] 마도사 카나데의 후타나리 던전 Quest V1.2 KOR
번역
jpjp112
05/01 49026 233
(AI번역,미검수)(후타나리, 펨보이, 후타나리 NTR) Futa Familly 0.245
번역
Onko
05/01 44707 116
[구매보급][한국어 자막판][지뢰계×러브러브×신음]병들고 연약한 아리아짱에게 무너지다. 언제 어디서든지 러브러브한 섹스
소리
민초드래곤
05/01 8932 86
염월선행록 하는 법
정보
mdabedlehm
05/01 12573 21
[Sevengar] 갈색 쿨계 코스녀, 감사제 후 반성 벌칙 섹스
동인
ll사사라ll
05/01 26968 92
[미번/번역요청] 야리나리 ヤリたければ、ナリあがれ! RJ01249935
미번
rlans
05/01 9813 52
mmd 자작 영상
영상
pst0025
05/01 14864 59
사이클론 신작 게임 정보 간단요약
정보
ㅇㅇ
05/01 9938 31
[ai번역]ムチ肉ヘブンでパンパンパン + イラストカード
동인
doumaro
05/01 23108 65
야앵기담 근황
정보
sorbe123
05/01 5627 17
[ai번역]あなた…ごめんね。私…ホントの幸せ見つけちゃった。
동인
doumaro
05/01 20557 48
[ai번역]KNUCKLE HEAD寝取られ人妻総集編
동인
doumaro
05/01 17145 66
(미번, AI, NTR) [Shirokurosuki] 포니테일쨩은 애널에 지지않아! 1, 2
동인
츠바키미유
05/01 18354 35
minus8) 효과음 추가
영상
rlans
05/01 22201 89
[SG9seUNjQ2M=] Your Secret Memory 01~12
영상
류제로
05/01 24049 87
90일, 2.24 GB, 본문 참조, 추가 복구 없음) FZ d_728516
복구
ㅇㅇ
04/30 26953 60
[ai번역]クール系年上バリキャリ彼女 尊厳破壊和姦 1-2
동인
doumaro
04/30 15758 51
[ai번역]Ibitsu Seiso na Yowa Ki Kanojo Gouin Motokare ni Netorareru_. _ Una ragazza pura ma infedele
동인
doumaro
04/30 21685 56
[ai번역]Boku no Suki na Kyonyuu Osananajimi ga Charao Senpai no Kanojo ni Natta Hi 2(ai翻译)
동인
doumaro
04/30 9431 25
[ai번역]Boku no Suki na Kyonyuu Osananajimi ga Charao Senpai no Kanojo ni Natta Hi
동인
doumaro
04/30 15927 24
[ai번역]Yokyuu Fuman na Hitozuma ga Gym de Shiriatta Wakai Otoko ni Netorareru Hanashi _ 欲求不滿的人妻被健身房認識的年輕男人強睡奪走的故事
동인
doumaro
04/30 15396 36
[ai번역]ojousama senshi nooburu ~icharabu sais○ nante ariemasen wa~
동인
doumaro
04/30 27705 86