124 lines
3.7 KiB
Python
Executable File
124 lines
3.7 KiB
Python
Executable File
#!/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"
|
|
""" |