kone
소미소프트

소미소프트

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

07/07/2025, 06:15:32
유틸
4297 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/25 2024 2
(후타) 딸치다 걸린 미쿠
야짤
duckuu12
05/25 9710 26
[복구요청] 당신과 그녀와 그녀의 사랑 (토토노) 복구 부탁드립니다!
요청
power3126
05/25 2833 0
노모 동인지나 상업지 구하는곳
정보
mybest
05/25 8738 40
[복구요청] ViciNeko 영상 모음
요청
키캣키링
05/25 2133 1
내 비참한 인생 후기
후기 및 공략
15238603208
05/25 7143 34
척영늑대←이거 왜 아직도 체험판임??
일반
ㅇㅇ
05/25 1560 1
AI번역 손식질) 직장근처에서 만난 알바(41)와 여행을 갔더니 애정어린 연인같은 섹스에서 성욕이 드러난 본능을 마음껏 이틀동안 폭풍섹스했던 이야기
동인
1Q2W3E4R
05/25 15385 95
의술사 ㄹㅇ 올해의 야'겜'이다
일반
소하
05/25 1980 1
(스포)의술사 설득할 때 질문
질문
paddackmon
05/25 2879 0
컴이 망가져서 야겜 다 날려먹었다
일반
가로쉬
05/25 3062 2
transfer.it 다운로드 질문
질문
zatsidjc
05/25 2297 1
사미다레떴다잇
일반
mmmp
05/25 2405 2
의술사 엔딩 다 봤다
후기 및 공략
니아GG
05/25 4446 6
동인지나 이런곳에 쓸만한 시오후키 png 어디서 구해야하나
질문
순백의 칸도레
05/25 1561 -1
현재 작업중인 작품 노모로 시리즈 작업중임
작업현황
mybest
05/25 3147 12
[후타][퍼리][귀박주의] ear fuck 영상 모음
영상
roomonfire
05/25 20855 78
여주물 게임 좀 찾아주세요
질문
satam1212
05/25 2368 0
[요청복구] 렌파이 NewHorizon-0.4-pc
복구
65410
05/25 11414 47
폭섹팜 신박하네
후기 및 공략
Nate Higgerson
05/25 3217 6
개껄리는 asmr 찾아서 번역하려는데
일반
alun1001
05/25 1166 0
그래도 6월에 게임들 좀 나오니까.....
일반
chrispypie
05/25 1550 0
나같은빡대갈은 언홀메넘모어렵고
일반
Kikio
05/25 1697 0
횡스 액션 갓겜 또 뭐있더라
질문
futajomusa
05/25 1642 1
아 요즘 할게임 너무없어서 못참고 이터넘0.9 달렸다
일반
아니그러니까왜이러시는데요
05/25 1145 0
NTR, 스포주의) 파멸로의 카운트다운 리뷰
후기 및 공략
drogba
05/25 5500 14
최근에 뭐 버진로드 통합판 나왔던데 이거 새로 추가된건 없는건가?
질문
uwu-o
05/25 1359 0
ntr 만화 질문
질문
akarammone123
05/25 1732 -1
의술사 추락지점
질문
lunee
05/25 2590 0
[복구요청] RJ01332822 평범한 현실 남매 IN 섹스하지 않으면 나올 수 없는 방에 갇힌다.
요청
kolos
05/25 3224 0