Clipboardbuffers.py: Difference between revisions

From Lucca's Wiki
Jump to navigationJump to search
No edit summary
No edit summary
Line 4: Line 4:
import pyperclip
import pyperclip
import pyautogui as pg
import pyautogui as pg
from PyHotKey import Key, keyboard
import pickle
import pickle
import tkinter as tk
import tkinter as tk
Line 32: Line 33:
     inputText = "No Input Given Yet"
     inputText = "No Input Given Yet"
     window = tk.Tk()
     window = tk.Tk()
     textbox = tk.Text(window)
    window.title('clipboardbuffers')
     textbox = tk.Entry(window, width=400)
     textbox.pack()
     textbox.pack()
     textbox.insert(0.0, clipboardBuffer[inputBuffer])
     textbox.insert(0, clipboardBuffer[inputBuffer])
     textbox.focus_set()
     textbox.focus_set()
     def entry_select_all(event):
     def entry_select_all(event):
         event.widget.select_range(0.0, 'end')
         event.widget.select_range(0, 'end')
         event.widget.icursor('end')
         event.widget.icursor('end')
         return 'break'
         return 'break'
Line 46: Line 48:
     def onclick(pos):
     def onclick(pos):
         nonlocal inputText
         nonlocal inputText
         inputText = textbox.get(0.0, 'end')
         inputText = textbox.get()
         global clipboardBuffer
         global clipboardBuffer
         clipboardBuffer[inputBuffer] = inputText
         clipboardBuffer[inputBuffer] = inputText
Line 63: Line 65:
def typeBuffer(inputBuffer):
def typeBuffer(inputBuffer):
     global clipboardBuffer
     global clipboardBuffer
    pyautogui.write(clipboardBuffer[inputBuffer])
#    pyautogui.write(clipboardBuffer[inputBuffer])
    keyboard.type(clipboardBuffer[inputBuffer])
def copy_clipboard():
    pg.hotkey('ctrl', 'c')
    time.sleep(.01)  # ctrl-c is usually very fast but your program may execute faster
    return pyperclip.paste()
def copyToBuffer(inputBuffer):
def copyToBuffer(inputBuffer):
     global clipboardBuffer
     global clipboardBuffer
     clipboardBuffer[inputBuffer] = pyperclip.paste()
     clipboardBuffer[inputBuffer] = copy_clipboard()
     dumpClipboardBufferToFile()
     dumpClipboardBufferToFile()
      
      

Revision as of 05:13, 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('<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 copy_clipboard():

   pg.hotkey('ctrl', 'c')
   time.sleep(.01)  # ctrl-c is usually very fast but your program may execute faster
   return pyperclip.paste()

def copyToBuffer(inputBuffer):

   global clipboardBuffer
   clipboardBuffer[inputBuffer] = copy_clipboard()
   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]))