from glob import glob from re import compile from datetime import datetime, timedelta import webbrowser from string import join from urllib import quote, quote_plus from win32api import GetTempPath from tempfile import mkstemp from os import remove ## thanks to Dalziel(?) ## at ## http://blog.slaven.net.au/archives/2006/08/17/posting-to-windows-live-writer-from-feeddemon/ ## for a big hint HTMLpatt = compile ( r'''\[([^]]+)\]\s*([^(]+)\s*\(\s*([0-9]+)''' ) folder = GetTempPath ( ) maxFileNumber = '0000' for fileName in glob ( r'''%s\*.post''' % folder ) : maxFileNumber = max ( maxFileNumber, fileName [ -9 : -5 ] ) postFileName = '%s%s.post' % ( fileName [ : -9 ], maxFileNumber, ) postFile = open ( postFileName ) HTMLline = postFile . readline ( ) . strip ( ) postFile . readline ( ) description = postFile . readline ( ) . strip ( ) postFile . close ( ) mat = HTMLpatt . search ( HTMLline ) URL = mat . groups ( ) [ 0 ] rawDate = mat . groups ( ) [ 1 ] title = mat . groups ( ) [ 2 ] duration = int ( mat . groups ( ) [ 3 ] ) dateAndTime = datetime . strptime ( rawDate [ : -4 ], '%b %d, %Y, %I:%M %p' ) dateAndTime = dateAndTime - timedelta ( hours = 4 ) ## needs work here! endDateAndTime = dateAndTime + timedelta ( hours = duration ) URLparts = { 'action' : 'TEMPLATE', 'text' : 'TappedIn: %s' % title, 'location' : 'on line', 'details' : '%s\n\n%s' % ( description, URL, ), 'dates' : '%s/%s' % ( dateAndTime . strftime ( '%Y%m%dT%H%M00Z' ), endDateAndTime . strftime ( '%Y%m%dT%H%M00Z' ), ), 'trp' : 'false', 'sprop' : 'TappedIn: %s' % title, 'sprop' : URL, } parameters = [ ] for URLpart in URLparts : parameters . append ( '&%s=%s' % ( URLpart, quote ( URLparts [ URLpart ] ), ) ) GoogleURLtemplate = r'''''' ignore, GoogleOfferHTMLFilename = mkstemp ( '.htm' ) GoogleOfferHTML = file ( GoogleOfferHTMLFilename, 'w' ) GoogleOfferHTML . write ( GoogleURLtemplate % join ( parameters, '' ) ) GoogleOfferHTML . close ( ) webbrowser . open ( GoogleOfferHTMLFilename ) remove ( GoogleOfferHTMLFilename )