mintmenu/usr/lib/linuxmint/mintMenu/plugins/easyfiles.py

124 lines
3.7 KiB
Python
Raw Normal View History

2009-07-27 11:45:34 +01:00
#!/usr/bin/env python
import os
import os.path
import urllib
"""
def TestForDir(dirname):
if not os.path.exists( os.path.join(os.path.expanduser("~"), dirname ) ):
os.makedirs( os.path.join( os.path.expanduser("~"), dirname) )
def TestForFiles(filename):
if not os.path.exists( os.path.join( os.path.expanduser("~"), filename ) ):
file = open( os.path.join( os.path.expanduser("~"), filename ),"w")
file.close()
def FileExists(f):
return os.path.exists(f)
"""
def GetFilePath(uri):
path = urllib.url2pathname(uri) # escape special chars
path = path.strip('\r\n\x00') # remove \r\n and NULL
# get the path to file
if path.startswith('file://'): # nautilus, rox
path = path[7:] # 7 is len('file://')
return path
"""
def ParseDesktopFile(DFile):
# Get the locale
lang = os.getenv("LANG")
if lang:
langArray = lang.split("_")
else:
langArray = [ None ]
locale = langArray[0] or ""
localeName = "Name[" + locale + "]="
localeComment = "Comment[" + locale + "]="
localeGenericName = "GenericName[" + locale + "]="
PlaceName=PlaceComment=PlaceExec=PlaceIconName=GenericName=TerminalName=""
FileData = []
if FileExists(GetFilePath(DFile))==True:
parseData = False
openfile = open(GetFilePath(DFile), 'r')
datalist = openfile.readlines()
openfile.close()
for i in datalist:
i = i.strip('\r\n\x00')
if len(i) != 0:
if i[0] == "[" and i[-1] == "]":
parseData = "[Desktop Entry]" == i
elif parseData:
if i[0:5] == "Name=":
PlaceName = i[5:]
elif i[0:9] == localeName:
PlaceName = i[9:]
elif i[0:8] == "Comment=":
PlaceComment = i[8:]
elif i[0:12] == localeComment:
PlaceComment = i[12:]
elif i[0:5] == "Exec=":
PlaceExec = i[5:]
elif i[0:5] == "Icon=":
PlaceIconName = i[5:]
elif i[0:12] == "GenericName=":
GenericName = i[12:]
elif i[0:16] == localeGenericName:
GenericName = i[16:]
elif i[0:9] == "Terminal=":
TerminalName = i[9:]
FileData.append(PlaceName)
FileData.append(PlaceComment)
FileData.append(PlaceExec)
FileData.append(PlaceIconName)
FileData.append(GenericName)
FileData.append(TerminalName)
return FileData
return None
def WriteListFile(ListToAdd,ItemToAdd,mode):
RecentapplicationsFile = open (os.path.join(os.path.expanduser("~"), ListToAdd),"r")
RecentapplicationsList = RecentapplicationsFile.readlines()
RecentapplicationsList.reverse()
RecentapplicationsFile.close()
if RecentapplicationsList != []:
outfile = open (os.path.join(os.path.expanduser("~"), ListToAdd),mode)
outfile.write(ItemToAdd+"\n")
outfile.close()
else:
outfile = open (os.path.join(os.path.expanduser("~"), ListToAdd),mode)
outfile.write(ItemToAdd+"\n")
outfile.close()
def EditDesktopFile(DroppedFile,FileData,ListToAdd):
fileHandle = open ( DroppedFile , 'w' )
fileHandle.write ( '[Desktop Entry]\nEncoding=UTF-8\n' )
fileHandle.write ( 'Name='+FileData[0]+'\n')
fileHandle.write ( 'Comment='+FileData[1]+'\n')
fileHandle.write ( 'Exec='+FileData[2]+'\n')
fileHandle.write ( 'Icon='+FileData[3]+'\n')
fileHandle.write ( 'GenericName='+FileData[4]+'\n')
fileHandle.write ( 'Terminal='+FileData[5]+'\n')
fileHandle.close()
def WriteDesktopFile(DroppedFile,FileData,ListToAdd):
fileHandle = open ( DroppedFile , 'w' )
fileHandle.write ( '[Desktop Entry]\nEncoding=UTF-8\n' )
fileHandle.write ( 'Name='+FileData[0]+'\n')
fileHandle.write ( 'Comment='+FileData[1]+'\n')
fileHandle.write ( 'Exec='+FileData[2]+'\n')
fileHandle.write ( 'Icon='+FileData[3]+'\n')
fileHandle.write ( 'GenericName='+FileData[4]+'\n')
fileHandle.write ( 'Terminal='+FileData[5]+'\n')
fileHandle.close()
WriteListFile(ListToAdd,DroppedFile,"a")
print "Added to places.list"
"""