kone
소미소프트

소미소프트

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

07/07/2025, 06:15:32
유틸
4428 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
이것도 링크 암호화해야 하는지 모르겠네
타락신관 용암지대 보스
질문
kamja0513
05/22 3310 0
뭐임 언홀메 음모 있네??
질문
rlawnsdudrod
05/22 3435 1
[복구요청] RJ01518150 - M남 이지메 스쿨라이프 (M男いじめスクールライフ)
요청
ggggg4
05/22 3918 0
👅
일반
쩝냡
05/22 3594 5
[구매보급][1+2+3편][전편 시오후키]소노자키 양은 절대 청초! 【오호고에 조O】
소리
이름뭐하지
05/22 13626 74
확실히 첫 야겜이 그대로 취향으로 굳는 것 같음
일반
horuragi
05/22 5124 1
언홀메 미모만 ㅈㄴ 올리니까 진행이 안되네...
질문
rlawnsdudrod
05/22 5284 1
[복구요청] 현1자전1도사 모음
요청
point-nimo
05/22 3099 0
[식질요청] RJ121099 임신 연습 수업 Love's Right 섹스하지 않으면 즉사형
미번
ilillilllilil
05/22 15221 48
[복구요청] ANIM 벽너머 아내의 교성2
요청
elitiny
05/22 3346 0
아니 부유도시 레아 이거 뭐임
일반
chingchang
05/22 2523 0
마나카를 넘는 노출겜은 없는 건가요
질문
너울
05/22 6121 2
왜 어느 커뮤를 가나
일반
익돌이
05/22 3419 0
[미번, 번역요청] DeviDevi Survivor(デビデビサバイバー)
미번
judah
05/22 10734 32
행복한 니트 키우기 화장실 루트갈려는데 방법 아신는 분 계신가요?
질문
mochi12
05/22 3057 0
미번,도지로) 처녀가 동정과의 첫 체험에서 눈을 뜨는 이야기 4
동인
kjalar
05/22 14104 29
ai) ----임신---- 귀칼 발정기 카나오
야짤
Ghost
05/22 7499 18
근데 확실히 게임으로 치는게 만족감이 큰게
일반
하이바라
05/22 3292 0
[미번][ORC SOFT] 사모님은 전직 야리만 2022
미번
돔마
05/22 8303 18
[복구요청] 무능 마법 교사 차무즈 -인생 역전, 복수의 폭유 H- 복구 요청
요청
commonly
05/22 2573 1
[복구요청] RJ01035604 로리바바 양어머니와의 생활
요청
hyeonjea
05/22 3622 0
비월선행록 동부 퀘스트 사라짐
질문
horol
05/22 4449 0
근데 야겜은 너무 재밌으면 안됨 딸치는것도 까먹고 자꾸 게임함
일반
sweetroll
05/22 3425 4
RJ01372992 교착의관 8번 엔딩
질문
흰고래
05/22 4654 0
야겜 요즘 가뭄임?
일반
ㅇㅇ
05/22 2365 0
AI) renbocloud 5월
야짤
RMillet
05/22 7322 25
[복구요청][3D/여주/노출][버전업/한글지원/노모] 비밀 노출 -배덕의 달콤함에 물든 마나카- v1.13
요청
dosirack1
05/22 6325 0
[복구요청]Virtual Succubus
요청
cocok2222
05/22 3386 0
다시 돌아온 ntl 신사의 ntl 게임들 리뷰
후기 및 공략
헤비레인
05/22 10790 41
요즘 슬더스만 존나 했네
일반
마사지
05/22 3247 3