Опубликовать картинку из каталога в Tumblr через Python - PullRequest
2 голосов
/ 16 февраля 2012

Я искал доски объявлений и нашел нить, в которую я делал сценарий для загрузки изображения на Tumblr.

from tumblr import Api
import sys

def antearaTumblr(blog, email, password):
    BLOG=blog
    USER=email
    PASSWORD=password
    api = Api(BLOG,USER,PASSWORD)
    #data = open('C:/Users/Kevin/Desktop/python-tumblr-0.1/1329360987775.jpg').read()
    api.write_photo('http://www.jonathanworthington.co.uk/wp-content/uploads/2008/07/etc.jpg')
    title = ''
    body = ''
    api.write_regular(title,body)

Это работает, он использует write_photo, чтобы получить фотографию из Интернета и загрузить ее на мой Tumblr. Тем не менее, я не знаю, как заставить его взять фотографию из каталога на моем компьютере, как это ....

from tumblr import Api
import sys

def antearaTumblr(blog, email, password):
    BLOG=blog
    USER=email
    PASSWORD=password
    api = Api(BLOG,USER,PASSWORD)
    data = open('C:/Users/Kevin/Desktop/python-tumblr-0.1/1329360987775.jpg').read()
    title = ''
    body = ''
    api.write_regular(title,data)

Он успешно загружается, однако все, что он загружает, это ... ÿØÿà ... который я предполагаю, это заголовок jpg.

Я нашел эту тему Опубликовать картинку на Tumblr, используя Python , но я не знаю точно, что говорят ответы.

Кто-нибудь знает, как заставить его работать, используя каталог, а не ссылку?

Кроме того, я попробовал это https://gist.github.com/1242662 но, честно говоря, я просто не знал, как это сделать.

Спасибо за любую помощь, которую я получаю.

1 Ответ

1 голос
/ 16 февраля 2012

Глядя на связанный пост, кажется, что данные являются ключевым аргументом, поэтому вы бы назвали api.write следующим образом:

api.write_regular(title, data=data)

Я понятия не имею, будет ли это работать или нет, но TumblrAPI кажется хорошо документированным .Я бы рекомендовал вместо этого использовать requests, что, безусловно, является самой красивой HTTP-библиотекой для Python.Чтобы загрузить фото:

import requests

url = 'https://www.tumblr.com/api/write'
data = {'email': your_email, 'password': your_password, 'type': 'photo'}
files = {'data': open('your_image.jpg')}

requests.post(url, data=data, files=files)
...