めも帖

「めも帖」代わりにダラダラと書いていったり、めもしたりしているだけです。

PythonでTumblrに画像を投稿

PythonTumblrの情報が読み取れるなら、書き込みもできるよね。
というわけで、

  • 普通の
  • 画像
  • 引用

の3タイプで書き込みをしてみました。httpでgetでアカウント情報も渡して使えるあたりは、お気軽な感じです。

実際

PythonでTumblrに画像を投稿するテスト - progd」を見てそのまま...

結果

本文を投稿してみた結果

結果(画像)

このあたりで気づいたのですが、tagも投稿できます

結果(引用)

ここでも気づいたんですが、HTMLも投稿できます。素敵です

ソース

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import urllib

class Tumblr():
	url = 'http://www.tumblr.com/api/write'

	def __init__(self, keyword=''):
		return

	def post(self):
		p = {}
		p['email']     = 'email'
		p['password']  = 'password'
		p['type']      = 'regular'
		p['tags']      = '写真'

		p['title']     = 'regularのテストです'
		p['body']      = 'regularのテスト本文です'
		p['generator'] = 'Python for Tumblr'

		params   = urllib.urlencode(p)
		response = urllib.urlopen(self.url, params)

		if response.code == 201:
			return response
		else:
			return ''

	def postImage(self, soruce, caption='', link=''):
		p = {}
		p['email']     = 'email'
		p['password']  = 'password'
		p['type']      = 'photo'
		
		p['tags']      = '写真'
		p['source']    = soruce
		p['caption']   = caption
		p['click-through-url'] = link

		#p['generator'] = 'Python for Tumblr'

		params   = urllib.urlencode(p)
		response = urllib.urlopen(self.url, params)
		print response.code

	def postQute(self, quote, soruce):
		p = {}
		p['email']     = 'email'
		p['password']  = 'password'
		p['type']      = 'quote'
	
		p['tags']      = '写真'

		p['source']    = '<a href="http://twitter.com/#!/kamonegi1977/status/20392541891334144">Twitter</a>'
		p['quote']     = 'モヤモヤで三軒茶屋かあ...'

		p['generator'] = 'Python for Tumblr'
		params   = urllib.urlencode(p)
		response = urllib.urlopen(self.url, params)
		print response.code


tumblr = Tumblr()
tumblr.post()

source  = '画像のURL'
caption = 'cat'
link    = '画像のURLのオリジナル'
tumblr.postImage(source, caption, link)

tumblr.postQute(source, link)