2015-04-05 8 views
2

Я пытаюсь обновить запись приложения Marketplace в приложении Firefox через программный код Python API. Я могу успешно загружать скриншоты с использованием метода client.create_screenshot(app_id, filename) из модуля marketplace против среды разработки по адресу https://marketplace-dev.allizom.org/.API Firefox Marketplace: значок приложения остается по умолчанию после успешной загрузки

В API-интерфейсе Python отсутствует способ загрузки значка. В API документации Marketplace хотя существует точка REST, чтобы загрузить изображение: Updating an App Icon

Я использовал документацию, чтобы написать свой собственный метод, чтобы загрузить изображение:

import mimetypes 
import sys 
from base64 import b64encode 
from urlparse import urlunparse 

def post_icon_file(client, app_id, filename): 
    with open(filename, 'rb') as s_file: 
    s_content = s_file.read() 
    s_encoded = b64encode(s_content) 
    url = urlunparse((client.protocol, '%s:%s' % (client.domain, client.port), 
     '%s/api/v2%s' % (client.prefix, '/apps/app/' + str(app_id) + '/icon/'), 
     '', '', '')) 

    print url 

    mtype, encoding = mimetypes.guess_type(filename) 
    if mtype is None: 
     mtype = 'image/jpeg' 

    data = {'file': { 
     'type': mtype, 
     'data': s_encoded 
    }} 

    response = client.conn.fetch('PUT', url, data) 

    if response.status_code != 200: 
     sys.exit(response.content) 
    else: 
     print str(response.status_code) + ': Uploaded icon ' + filename + ' for app ID ' + str(app_id) 

Проблема: ответ загрузки является успешным (200). Я получаю сообщение:

200: Загружено значок /path/to/icon/icon-512.png для приложения ID 1234567

Еще в записи Marketplace в https://marketplace-dev.allizom.org/developers/app/[slug]/edit, приложение отображается значок в качестве значка по умолчанию

Мои исследования до сих пор:

  1. Если я получаю статус а с помощью client.status(app_id) записи для икон еще одни по умолчанию, например: иконки: {и \ «128 \»: и \ «https://marketplace-dev-cdn.allizom.org/media/img/hub/default-128.png

  2. Я пытался загрузить значок в размере 128 128 пикселей, а другой - 512 на 512 пикселей. Оба имеют одинаковый результат: успех, но они не изменяются в записи.

ответ

1

Попробуйте установить экземпляр Zamboni [1] и [2] файл и получить запрос на тяну. Вы можете увидеть ошибки, как это в прошлом [3]

[1] https://github.com/mozilla/zamboni

[2] https://bugzilla.mozilla.org/enter_bug.cgi#h=dupes|Marketplace

[3] https://github.com/mozilla/zamboni/pull/2403

+0

ли вы имеете в виду, что я должен раскошелиться Zamboni и посмотреть, если Я могу воспроизвести ошибку в моем клоне? – Rias

+0

Я висячий вилка Zamboni и попытаюсь исправить ошибку. Или только файл ошибка в bugzilla. –

+1

Спасибо alexandersalas. Я не мог воспроизвести ошибку в Zamboni на моей локальной машине. Но я подал здесь ошибку и прокомментировал ее соответствующим образом: https://bugzilla.mozilla.org/show_bug.cgi?id=1153669 – Rias