posts - 403, comments - 310, trackbacks - 0, articles - 7
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          將VIM Calender中的日記發(fā)布到blogger.com的腳本

          Posted on 2008-05-12 22:04 ZelluX 閱讀(1276) 評論(0)  編輯  收藏 所屬分類: Scripting
          VIM Calender是個很好用的寫日記的插件(http://www.vim.org/scripts/script.php?script_id=52)

          水木上的rmrf寫了一個同步VIM Calender和Google Calender的腳本(http://code.google.com/p/diaryvgc/downloads/list)

          想到blogger.com支持通過發(fā)送郵件發(fā)布日志,于是我也寫了個把VIM Calender中的日記發(fā)布到blogger.com的腳本。

          這個腳本把發(fā)布情況記錄在diary/poster.log中,以后每次執(zhí)行只會發(fā)布最新的日志,同時考慮到當天的日記可能會被修改(blogger.com似乎不支持通過email修改日志),所以當天的日記不會被發(fā)布。

          使用的時候修改開頭幾行的配置信息即可

          #!/usr/bin/python

          #?A?script?for?posting?diaries?created?by?VIM?Calender?to?blogger.com
          #
          ?Author:?Wang?Yuanxuan?<zellux@gmail.com>

          import?smtplib,?os,?re,?datetime
          from?email.mime.text?import?MIMEText

          fromaddr?
          =?xxxxx@fudan.edu.cn'
          toaddr?
          =?xxxx.xxxx@blogger.com'
          smtpserver?
          =?'mail.fudan.edu.cn'
          diarydir?
          =?'/home/user_name/diary'
          username?
          =?'xxxxxx'
          password?
          =?'xxxxxx'
          logpath?
          =?diarydir?+?'/poster.log'

          def?PostMail(title,?content):
          ????msg?
          =?MIMEText(content?+?'\r\n#end\r\n')
          ????msg[
          'Subject']?=?title
          ????msg[
          'From']?=?fromaddr
          ????msg[
          'To']?=?toaddr

          ????server?
          =?smtplib.SMTP(smtpserver)
          ????server.login(username,?password)
          ????
          #?server.set_debuglevel(1)
          ????server.sendmail(fromaddr,?[toaddr],?msg.as_string())
          ????server.quit()

          #?Load?log?file.?Create?a?new?one?if?not?exist.
          posted?=?[]
          if?os.path.isfile(logpath):
          ????temp?
          =?open(logpath,?'r')
          ????posted?
          =?[line[:-1]?for?line?in?temp.readlines()]
          ????log?
          =?open(logpath,?'a')
          else:
          ????
          print?"A?new?poster?log?has?been?created?at?"?+?logpath
          ????log?
          =?open(logpath,?'w')

          pattern?
          =?r'(\d{4})/(\d{1,2})/(\d{1,2}).cal$'
          scanner?
          =?re.compile(pattern)

          for?(top,?dirname,?filenames)?in?os.walk(diarydir):
          ????
          for?filename?in?filenames:
          ????????fullpath?
          =?os.path.join(top,?filename)
          ????????
          if?scanner.search(fullpath):
          ????????????(year,?month,?day)?
          =?scanner.search(fullpath).groups()
          ????????????filedate?
          =?datetime.date(int(year),?int(month),?int(day))
          ????????????title?
          =?filedate.isoformat()
          ????????????
          if?filedate?==?datetime.date.today():
          ????????????????
          continue
          ????????????
          if?fullpath?not?in?posted:
          ????????????????log.write(fullpath?
          +?'\n')
          ????????????????text?
          =?open(fullpath).read()
          ????????????????PostMail(title,?text)
          ????????????????
          print?'The?diary?'?+?title?+?'?has?been?posted'

          log.close()
          主站蜘蛛池模板: 德阳市| 西藏| 清徐县| 贺兰县| 嘉兴市| 建湖县| 独山县| 安岳县| 广南县| 汶上县| 鲁山县| 高碑店市| 长兴县| 昭通市| 平阴县| 广灵县| 渝北区| 稷山县| 都江堰市| 泰安市| 甘泉县| 平谷区| 英德市| 陇西县| 南陵县| 德庆县| 四子王旗| 万州区| 甘肃省| 河西区| 承德市| 北安市| 古交市| 高尔夫| 平泉县| 神木县| 瑞金市| 桦甸市| 荃湾区| 廉江市| 赣榆县|