mirror of
				https://github.com/noDRM/DeDRM_tools.git
				synced 2025-10-23 23:07:47 -04:00 
			
		
		
		
	
		
			
				
	
	
		
			61 lines
		
	
	
	
		
			3 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			61 lines
		
	
	
	
		
			3 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
| on unlockfile(encryptedFile, MobiDeDRMPath, encryptionKey)
 | |
| 	set encryptedFilePath to POSIX path of file encryptedFile
 | |
| 	-- display dialog "filepath " & encryptedFilePath buttons {"OK"} default button 1 giving up after 10
 | |
| 	tell application "Finder" to Â
 | |
| 		set parent_folder to (container of file encryptedFile) as text
 | |
| 	tell application "Finder" to set fileName to (name of file encryptedFile) as text
 | |
| 	set unlockedFilePath to POSIX path of file (parent_folder & "Unlocked_" & fileName)
 | |
| 	set shellcommand to "python '" & MobiDeDRMPath & "' '" & encryptedFilePath & "' '" & unlockedFilePath & "' '" & encryptionKey & "'"
 | |
| 	-- display dialog "shellcommand: " & shellcommand buttons {"OK"} default button 1 giving up after 10
 | |
| 	try
 | |
| 		--with timeout of 5 seconds
 | |
| 		--	display dialog "About to Unlock " & fileName buttons {"Unlock"} default button 1 giving up after 1
 | |
| 		--end timeout
 | |
| 	end try
 | |
| 	set result to do shell script shellcommand
 | |
| 	try
 | |
| 		if (offset of "Error" in result) > 0 then
 | |
| 			with timeout of 5 seconds
 | |
| 				display dialog "Can't unlock file " & fileName & ".
 | |
| 
 | |
| " & result buttons ("OK") default button 1 giving up after 5
 | |
| 			end timeout
 | |
| 		end if
 | |
| 	end try
 | |
| end unlockfile
 | |
| 
 | |
| on unlockfolder(encryptedFolder, MobiDeDRMPath, encryptionKey)
 | |
| 	tell application "Finder" to set encryptedFileList to (every file in folder encryptedFolder) whose (name extension is "prc") or (name extension is "mobi") or (name extension is "azw")
 | |
| 	tell application "Finder" to set encryptedFolderList to (every folder in folder encryptedFolder)
 | |
| 	repeat with this_item in encryptedFileList
 | |
| 		unlockfile(this_item as text, MobiDeDRMPath, encryptionKey)
 | |
| 	end repeat
 | |
| 	repeat with this_item in encryptedFolderList
 | |
| 		unlockfolder(this_item as text, MobiDeDRMPath, encryptionKey)
 | |
| 	end repeat
 | |
| end unlockfolder
 | |
| 
 | |
| on run
 | |
| 	set MobiDeDRMPath to POSIX path of file ((path to me as text) & "Contents:Resources:MobiDeDRM.py")
 | |
| 	set encryptedFolder to choose folder with prompt "Please choose the folder of encrypted Mobipocket files."
 | |
| 	set encryptionKey to (display dialog "Enter Mobipocket key for encrypted Mobipocket files." default answer "X12QIL1M3D" buttons {"Cancel", "OK"} default button 2)
 | |
| 	set encryptionKey to text returned of encryptionKey
 | |
| 	unlockfolder(encryptedFolder, MobiDeDRMPath, encryptionKey)
 | |
| end run
 | |
| 
 | |
| on open some_items
 | |
| 	set MobiDeDRMPath to POSIX path of file ((path to me as text) & "Contents:Resources:MobiDeDRM.py")
 | |
| 	set encryptionKey to (display dialog "Enter Mobipocket key for encrypted Mobipocket files." default answer "X12QIL1M3D" buttons {"Cancel", "OK"} default button 2)
 | |
| 	set encryptionKey to text returned of encryptionKey
 | |
| 	repeat with this_item in some_items
 | |
| 		if (folder of (info for this_item) is true) then
 | |
| 			unlockfolder(this_item as text, MobiDeDRMPath, encryptionKey)
 | |
| 		else
 | |
| 			tell application "Finder" to set item_extension to name extension of file this_item
 | |
| 			if item_extension is "prc" or item_extension is "mobi" or item_extension is "azw" then
 | |
| 				unlockfile(this_item as text, MobiDeDRMPath, encryptionKey)
 | |
| 			end if
 | |
| 		end if
 | |
| 	end repeat
 | |
| end open
 | |
| 
 | 
