Clipboardbuffers.py: Difference between revisions

From Lucca's Wiki
Jump to navigationJump to search
No edit summary
No edit summary
 
(3 intermediate revisions by the same user not shown)
Line 1: Line 1:
import sys
import sys
import os
import time
import time
import pyperclip
import pyperclip
import pyautogui
import pyautogui as pg
from PyHotKey import Key, keyboard
import pickle
import pickle
from tkinter import *
import tkinter as tk
 
#pg.prompt(text="deez nuts?", title="deez nutz!", default="deez nars")


def dumpClipboardBufferToFile():
def dumpClipboardBufferToFile():
Line 19: Line 23:
clipboardBuffer = []
clipboardBuffer = []
clipboardBuffer = ["No value in this clipboard buffer" for i in range(10)]
clipboardBuffer = ["No value in this clipboard buffer" for i in range(10)]
getClipboardBufferFromFile()


#check if pickle file exists, if not, then create one
if os.path.isfile("clipboardBufferData.pk"):
    getClipboardBufferFromFile()
else:
    dumpClipboardBufferToFile()


def inputbox(inputBuffer):
def inputbox(inputBuffer):
     inputText = "No Input Given Yet"
     inputText = "No Input Given Yet"
     master = Tk()
     window = tk.Tk()
     textbox = Entry(master)
    window.title('clipboardbuffers')
     textbox = tk.Entry(window, width=400)
     textbox.pack()
     textbox.pack()
     textbox.insert(0, clipboardBuffer[inputBuffer])
     textbox.insert(0, clipboardBuffer[inputBuffer])
     textbox.focus_set()
     textbox.focus_set()
    def entry_select_all(event):
        event.widget.select_range(0, 'end')
        event.widget.icursor('end')
        return 'break'
    def entry_ctrl_backspace(event):
        end_idx = textbox.index(tk.INSERT)
        start_idx = textbox.get().rfind(" ", None, end_idx)
        textbox.selection_range(start_idx, end_idx)
     def onclick(pos):
     def onclick(pos):
         nonlocal inputText
         nonlocal inputText
Line 36: Line 52:
         clipboardBuffer[inputBuffer] = inputText
         clipboardBuffer[inputBuffer] = inputText
         print(f"Clipboard buffer {inputBuffer} was set to: {inputText}")
         print(f"Clipboard buffer {inputBuffer} was set to: {inputText}")
         master.destroy()
         window.destroy()
     b = Button(master, text="OK", width=10, command=onclick)
     b = tk.Button(window, text="OK", width=10, command=onclick)
     b.pack()
     b.pack()
     textbox.bind('<Return>', onclick)
     textbox.bind('<Return>', onclick)
     mainloop()
     textbox.bind('<KP_Enter>', onclick)
    textbox.bind('<Control-BackSpace>', entry_ctrl_backspace)
    textbox.bind('<Control-Key-a>', entry_select_all)
    window.mainloop()
     print(clipboardBuffer)
     print(clipboardBuffer)
     dumpClipboardBufferToFile()
     dumpClipboardBufferToFile()
Line 47: Line 66:
def typeBuffer(inputBuffer):
def typeBuffer(inputBuffer):
     global clipboardBuffer
     global clipboardBuffer
    pyautogui.write(clipboardBuffer[inputBuffer])
#    pyautogui.write(clipboardBuffer[inputBuffer])
    keyboard.type(clipboardBuffer[inputBuffer])
def copyToBuffer(inputBuffer):
def copyToBuffer(inputBuffer):
     global clipboardBuffer
     global clipboardBuffer
     pyautogui.hotkey('ctrl', 'c')
     clip = pyperclip.paste()
     time.sleep(1)
     clipboardBuffer[inputBuffer] = clip
     clipboardBuffer[inputBuffer] = pyperclip.paste()
     print(clipboardBuffer[inputBuffer])
     dumpClipboardBufferToFile()
     dumpClipboardBufferToFile()
   
      
      
if sys.argv[1] == "paste":
if sys.argv[1] == "paste":

Latest revision as of 05:48, 12 December 2024

import sys import os import time import pyperclip import pyautogui as pg from PyHotKey import Key, keyboard import pickle import tkinter as tk

  1. pg.prompt(text="deez nuts?", title="deez nutz!", default="deez nars")

def dumpClipboardBufferToFile():

   global clipboardBuffer
   with open("clipboardBufferData.pk", 'wb') as fi:
       pickle.dump(clipboardBuffer, fi)

def getClipboardBufferFromFile():

   global clipboardBuffer
   with open("clipboardBufferData.pk", 'rb') as fi:
       clipboardBuffer = pickle.load(fi)
  1. scriptFolder = (os.path.dirname(__file__))

clipboardBuffer = [] clipboardBuffer = ["No value in this clipboard buffer" for i in range(10)]

  1. check if pickle file exists, if not, then create one

if os.path.isfile("clipboardBufferData.pk"):

   getClipboardBufferFromFile()

else:

   dumpClipboardBufferToFile()

def inputbox(inputBuffer):

   inputText = "No Input Given Yet"
   window = tk.Tk()
   window.title('clipboardbuffers')
   textbox = tk.Entry(window, width=400)
   textbox.pack()
   textbox.insert(0, clipboardBuffer[inputBuffer])
   textbox.focus_set()
   def entry_select_all(event):
       event.widget.select_range(0, 'end')
       event.widget.icursor('end')
       return 'break'
   def entry_ctrl_backspace(event):
       end_idx = textbox.index(tk.INSERT)
       start_idx = textbox.get().rfind(" ", None, end_idx)
       textbox.selection_range(start_idx, end_idx)
   def onclick(pos):
       nonlocal inputText
       inputText = textbox.get()
       global clipboardBuffer
       clipboardBuffer[inputBuffer] = inputText
       print(f"Clipboard buffer {inputBuffer} was set to: {inputText}")
       window.destroy()
   b = tk.Button(window, text="OK", width=10, command=onclick)
   b.pack()
   textbox.bind('<Return>', onclick)
   textbox.bind('<KP_Enter>', onclick)
   textbox.bind('<Control-BackSpace>', entry_ctrl_backspace)
   textbox.bind('<Control-Key-a>', entry_select_all)
   window.mainloop()
   print(clipboardBuffer)
   dumpClipboardBufferToFile()
   return (inputText)
   

def typeBuffer(inputBuffer):

   global clipboardBuffer
  1. pyautogui.write(clipboardBuffer[inputBuffer])
   keyboard.type(clipboardBuffer[inputBuffer])

def copyToBuffer(inputBuffer):

   global clipboardBuffer
   clip = pyperclip.paste()
   clipboardBuffer[inputBuffer] = clip
   print(clipboardBuffer[inputBuffer])
   dumpClipboardBufferToFile()
   

if sys.argv[1] == "paste":

   typeBuffer(int(sys.argv[2]))

if sys.argv[1] == "copy":

   copyToBuffer(int(sys.argv[2]))

if sys.argv[1] == "edit":

   inputbox(int(sys.argv[2]))