# mcb.pyw : Saves and loads pieces of text to the clipboard
# Usage: py.exe mcb.pyw save <keyword> - Saves clipboard to keyword
# py.exe mcb.pyw <keyword> - Loads keyword to clipboard
# py.exe mcb.pyw list - Loads all keywords to clipboard
# py.exe mcb.pyw read <path text file> <keyword>

import shelve
import pyperclip
import sys
import os
import re


mcbShelf = shelve.open("mcb")

if len(sys.argv) == 4 and sys.argv[1].lower() == "read":
    # TODO: read file and save to shelf
    # check if path is valid
    path = sys.argv[2]
    if os.path.exists(path):
       # check if path is a text file
       if ".txt" in os.path.basename(path):
         # read file
         file = open(os.path.abspath(path))
         content = file.read()
         # close file
         file.close()
         key = sys.argv[3]
         mcbShelf[key] = content
       else:
         print("Path should lead to a text file")
   else:
     print("Path does not exist")
   # TODO: Save clipboard content 
elif len(sys.argv) == 3 and sys.argv[1].lower() == "save":
   content = pyperclip.paste() #copies the clipboard content 
   mcbShelf[sys.argv[2]] = content #stores the content to the keyword in the shelf object 
   # TODO : List keywords and load content 
elif len(sys.argv) == 2:
   keys = list(mcbShelf.keys())
   if sys.argv[1].lower() == "list":
     content = ""
     for pos in range(len(keys)):
       content += "{}. ".format(pos) + keys[pos] + "\n" 
       # content += mcbShelf[key] + "\n"*2
       # content += "-"*20 + "\n"*2
       pyperclip.copy(content)
       print(content)
   else:
      # TODO: Load keyword to clipboard
   if sys.argv[1] in keys:
     content = mcbShelf[sys.argv[1]]
     # paste to clipboard
     pyperclip.copy(content)
     print("\tkeyword: \n{}\n\tcontent: \n\n{}".format(sys.argv[1], content ) )
  else:
    print("Your command line arguments are invalid")
  



mcbShelf.close()
%d bloggers like this: