文件操作 - exo-compose-mail-1
返回文件管理
返回主菜单
删除本文件
文件: /usr/lib64/xfce4/exo-1/exo-compose-mail-1
编辑文件内容
#!/usr/bin/python -tt # skvidal@fedoraproject.org # (c) red hat, inc 2013 # gpl whatever # this is a direct port of exo-compos-mail-1 from xfce # from perl to python # the idea is to dump the 2000000000 perl pkgs pulled in # by this for a single item :( # it should handle all the behaviour the same # it probably has bugs # TODO: # - figure out what the attachment parsing is trying to do # - figure out if rebuilding the mailto for evo, sylpheed and balsa # is actually necessary or not - feels silly but I'm not shocked by silly # - would be nice to have an actual set of tests :) import sys import posix import os import urlparse import urllib def parse_url(mailto): urlparse.uses_query.append('mailto') url = urlparse.urlparse(mailto) res = {} to = [] query = None if url.query or '?' not in url.path: if url.path: to.append(urlparse.unquote(url.path)) else: (thisto, ques, query) = url.path.partition('?') if thisto.strip(): to.append(urlparse.unquote(thisto)) if not query: query = url.query q_dict = urlparse.parse_qs(query) to.extend(q_dict.get('to', [])) res['to'] = to if 'to' in q_dict: del(q_dict['to']) res.update(q_dict) return res if len(sys.argv) < 3: print >> sys.stderr, "Usage: %s <style> <binary> <mailto>" % (sys.argv[0]) sys.exit(1) style = sys.argv[1] binary = sys.argv[2] raw_mailto = sys.argv[3] mailto = parse_url(raw_mailto) to = mailto.get('to', []) cc = mailto.get('cc', []) bcc = mailto.get('bcc', []) subject = ' '.join(mailto.get('subject', [])) body = '\n'.join(mailto.get('body', [])) attachments = mailto.get('attachment',[]) args = [binary] if style == 'mozilla': command = "to='" + ','.join(to) + "'" command += ",cc='" + ','.join(cc) + "'" command += ",bcc='" + ','.join(bcc) + "'" command += ",attachment='" + ','.join(attachments) + "'" if subject: command += ",subject='" + subject + "'" if body: command += ",body='" + body + "'" args.append('-compose') args.append(command) elif style == 'mozilla-remote': # generate xfeDoCommand(composeMessage, ...) string command = 'xfeDoCommand(composeMessage' command += ",to='" + ','.join(to) + "'" command += ",cc='" + ','.join(cc) + "'"; command += ",bcc='" + ','.join(bcc) + "'" command += ",attachment='" + ','.join(attachments) + "'" if subject: command += ",subject='" + subject + "'" if body: command += ",body='" + body + "'" command += ')'; # and add the parameters to the argv args.append('-remote') args.append(command) elif style == 'evolution': # evo takes a mailto uri and parses it itself # just hand back what we were handed originally # note - it my want them to be url_escaped first? or not? args.append(raw_mailto) elif style == 'kmail': if len(to) >= 1: baseaddr = to[0] cc.extend(to[1:]) else: baseaddr = " " for item in cc: args.append('--cc') args.append(item) for item in bcc: args.append('--bcc') args.append(item) for item in attachments: args.append('--attach') args.append(item) if subject: args.append('--subject') args.append(subject) if body: args.append('--body') args.append('\n'.join(body)) args.append('--composer') args.append(baseaddr) elif style == 'sylpheed': args.append('--compose') args.append(raw_mailto) # fixme - do attachments separately elif style == 'balsa': # cmon, balsa? really? args.append('--compose') args.append(raw_mailto) # fixme - do attachments separately elif style == 'mutt': for item in cc: args.append('-c') args.append(item) for item in attachments: args.append('-a') args.append(item) if subject: args.append('-s') args.append(subject) for item in to: args.append(item) if to: args.append('') else: print >> sys.stderr, "%s: Unsupported style '%s'." % (sys.argv[0], style) sys.exit(1) # try to execute the generated command posix.execv(binary,args) #DEBUG #print binary, #print ' '.join(args) #sys.exit(0) #ENDDEBUG # something went wrong sys.exit(1)
修改文件时间
将文件时间修改为当前时间的前一年
删除文件