瀏覽代碼

Add files via upload

MoeClub 3 月之前
父節點
當前提交
c5f6c1eaf6
共有 1 個文件被更改,包括 84 次插入0 次删除
  1. 84 0
      ddddorc/tag.py

+ 84 - 0
ddddorc/tag.py

@@ -0,0 +1,84 @@
+import os
+import tkinter
+from PIL import Image, ImageTk
+
+class Tk:
+    def __init__(self, imagePath=None, imageOk="OK"):
+        if imagePath is None or imagePath == "":
+            imagePath = os.path.join(os.path.dirname(os.path.abspath(__file__)), "jpg")
+        self.jpgs = [os.path.join(imagePath, x) for x in os.listdir(imagePath) if str(x).endswith(".jpg") and "-" not in x and "_" in x]
+        self.index = 0
+        self.OK = imageOk
+
+        self.jpg = None
+        self.imgTk = None
+
+        self.tk = tkinter.Tk()
+        self.tk.title("TAG FILE")
+        self.tk.geometry("300x200")
+        self.tk.columnconfigure(0, weight=1)
+        self.tk.columnconfigure(1, weight=1)
+        self.tk.rowconfigure(0, weight=1, minsize=80)
+        self.tk.rowconfigure(1, weight=1, minsize=20)
+        self.tk.rowconfigure(2, weight=1, minsize=20)
+
+        self.image = tkinter.Label(self.tk)
+        self.image.grid(row=0, column=0, rowspan=2, columnspan=2)
+
+        self.entry = tkinter.Entry(self.tk, width=10)
+        self.entry.grid(row=1, column=0, sticky="se")
+
+        self.buttonOK = tkinter.Button(self.tk, text="OK", command=self.tagOK)
+        self.buttonOK.grid(row=1, column=1, sticky="sw")
+        self.buttonNext = tkinter.Button(self.tk, width=15, text="NEXT", command=self.tagNext)
+        self.buttonNext.grid(row=2, column=0, columnspan=2)
+
+        self.tk.bind('<Return>', self.pressKey)
+        self.tk.bind('<Down>', self.pressKey)
+
+        self.tagNext()
+        self.tk.mainloop()
+
+    def pressKey(self, key):
+        if key.keysym in ["Down"]:
+            self.tagNext()
+        elif key.keysym in ["Return"]:
+            self.tagOK()
+
+    def tagOK(self):
+        text = self.entry.get().strip()
+        if len(text) == 0:
+            return
+        _name = str("{}_{}").format(text, os.path.basename(self.jpg).split("_", 1)[-1])
+        if self.OK:
+            if not os.path.exists(os.path.join(os.path.dirname(os.path.abspath(self.jpg)), self.OK)):
+                os.makedirs(os.path.join(os.path.dirname(os.path.abspath(self.jpg)), self.OK))
+            okPath = os.path.join(os.path.dirname(os.path.abspath(self.jpg)), self.OK, _name)
+        else:
+            okPath = os.path.join(os.path.dirname(os.path.abspath(self.jpg)), _name)
+        if os.path.exists(self.jpg):
+            os.rename(self.jpg, okPath)
+        self.tagNext()
+
+    def tagNext(self):
+        if self.index >= len(self.jpgs):
+            return
+
+        self.jpg = self.jpgs[self.index]
+        _name = os.path.basename(self.jpg)
+        self.tk.title(_name)
+        preCode = _name.split("_", 1)[0]
+
+        self.imgTk = ImageTk.PhotoImage(Image.open(self.jpg))
+        self.image.config(image=self.imgTk)
+
+        self.entry.delete(0, tkinter.END)
+        self.entry.insert(0, preCode)
+
+        self.index += 1
+        if self.index >= len(self.jpgs):
+            self.buttonNext.config(state="disabled")
+
+
+if __name__ == "__main__":
+    tk = Tk()