Clipboardbuffers.py: Difference between revisions
From Lucca's Wiki
Jump to navigationJump to search
No edit summary |
No edit summary |
||
(5 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
import sys | |||
import os | |||
import time | |||
import pyperclip | |||
import pyautogui as pg | |||
from PyHotKey import Key, keyboard | |||
import pickle | |||
import tkinter as tk | |||
#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) | |||
#scriptFolder = (os.path.dirname(__file__)) | |||
clipboardBuffer = [] | |||
clipboardBuffer = ["No value in this clipboard buffer" for i in range(10)] | |||
#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 | |||
# 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])) |
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
- 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)
- scriptFolder = (os.path.dirname(__file__))
clipboardBuffer = [] clipboardBuffer = ["No value in this clipboard buffer" for i in range(10)]
- 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
- 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]))