kone
소미소프트

소미소프트

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

07/07/2025, 06:15:32
유틸
4371 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
07/07/25
이것도 링크 암호화해야 하는지 모르겠네
90일, 1.06 GB) 1-1. RJ112559 ROBF v4.1. 개선 26.05.11.7z
복구
ㅇㅇ
05/09 17637 44
[がまれんじ] 아~~ 울지 마
야짤
edo
05/09 16719 50
[복구/미번]淫らに滅殺! 桃色くノ一忍法帖♪ ~陵姦将軍の淫棒!?~
미번
k704614
05/09 10605 20
폭유파티 리에타 서브 260429 짤&영상 그리고 낙서장
영상
riden
05/09 32062 60
(코이카츠) 씬 카드 공유
유틸
pst0025
05/09 9179 44
[복구/청아/자막포함] mⓐloⓧx 모음
영상
imakotou
05/09 37946 163
[AI기번] RJ01118993 せんせーしっかく!w 무검수 젬마 4 26b번역 번역파일만
번역
kleeep
05/09 36141 74
[복구/청아/자막] xinhai999 모음
영상
imakotou
05/09 18205 81
서큐버스 테일 0.77
복구
킬러튠큐
05/09 13760 24
번역 안나와서 아쉬운 작 하나
야짤
qew123
05/09 9058 50
[버전업 알림] Sex Beats 5월 업데이트
번역
argoklarke
05/09 40424 95
현재까지 올린 AI 번역 모음집
동인
mybest
05/09 16133 43
[ろきた][번역] 은랑 사용하기
동인
doyoulikekim
05/09 23424 69
[짧후기, 약스포]풍기위원은 여음마의 꿈을 꾸는가?
후기 및 공략
peachborn
05/09 5299 21
[구매보급] 정떨어져하며 봉사해 주는 압박에 약한 에치한 여자친구
소리
돈이조아
05/09 11114 77
ai, 붕스) 사랑하는 반디와 밤새 잔뜩 질내사정 섹스 했다
야짤
kjh9304
05/09 17528 103
[복구/청아/자막포함] 푸른 여우 3D 애니메이션
영상
imakotou
05/09 12606 59
[요청복구] RJ273000 Milking Farm 밀킹팜
복구
끼르하나
05/09 42743 73
[야애니/알림] 음오옥 똰지 5화 업 알림
영상
공승아
05/09 13395 53
[AI 채색] [RAMA] 유우키는 나의것
야짤
fhfhfghdr453
05/09 11110 21
Ai번역 손식질) 간판소녀 재정사정5 (과거편 2)
동인
1Q2W3E4R
05/09 22435 97
[RJ1200621] ReturnAtis 번역 아무도 안하는거 같아서 내가 해보기
작업현황
098gs
05/09 7916 16
mmd - 코미양 모녀 NTR 야스댄스 (ELEVEN)
영상
madrush
05/09 26476 187
[ver2 업데이트] [v1.286] 비월선행록 번역파일만 [AI 직접 번역]
번역
handlejk
05/09 76790 220
[5/9] 결박당한 여우 무녀 (+ 누드 버전 추가)
영상
브레머튼
05/09 38078 209
B@senokim 하이그레원피스 한글
동인
다크오니즈카
05/09 20746 25
[복구/미번] 아야 서클 게임 5종 최신 버전 총 집합
미번
압도적감사
05/09 10712 39
[구매보급][한국어자막] オトヨメ 서클 작품 3개
소리
eorini
05/09 21794 102
후원보급,Br@n)브란짱 + 통합편집
영상
비밀봉투
05/08 14802 81
[구매보급] RJ01549336 알미오시온의 의술사 ver 1.044
미번
djeh7
05/08 26602 173