def http_get_edit(self):
     """Aviary use a javascript in our website to edit the image"""
     ret = ''
     form = self.request.form
     service = 'aviary'
     context_url = self.context.absolute_url()
     editor = queryMultiAdapter((self.context, self.request), i.IExternalImageEditor, name = service)
     languages = ['en', 'de', 'fr',
                  'ja', 'it', 'nl',
                  'es', 'ru']
     if editor.enabled:
         lang = (True==(editor.lang in languages)) and editor.lang or 'en'
         here = self.context.absolute_url()
         params = {
             'language': lang,
             'apikey': editor.key,
             'authenticator': editor.authenticator,
             'apisecret': editor.secret,
             'callback': '%s/%s' % (here, urllib.quote('@@externalimageeditor_save')),
             'image_url': self.image_url,
             'image_preview': self.image_preview_url,
         }
         params['editor'] = AVIARY_ED % params
         getMultiAdapter((self.context, self.request), i.IEditSessionHelper).register_edit_session(service)
         return self.template(**params)
     else:
         ret = 'Invalid edit proxy request!'
         logger.info(ret)
         url = context_url
         if IATImage.providedBy(self.context):
             url += "/view"
         self.request.response.redirect(url)
     return ret
Exemplo n.º 2
0
def get_image_data(item):
    if IATImage.providedBy(item):
        data = item.getImage()
        return getattr(item, 'data', data)
    elif isinstance(item, FSImage):
        return item._readFile(0)
    elif IImage.providedBy(item):
        return item.data
    else:
        return getattr(item, 'data', '')
 def service_edit_url(self):
     context, thisurl, url = self.context, "", ""
     if IATImage.providedBy(self.context):
         thisurl = self.context.absolute_url()
         surl = "http://www.pixlr.com/editor"
         params = {
             "image": thisurl,
             "locktarget": "true",
             "target": "%s/@@externalimageeditor_save?service=%s" % (thisurl, self.name),
         }
         url = "%s?%s" % (surl, urllib.urlencode(params))
     return url
def get_image_data(item):
    if IATImage.providedBy(item):
        data = item.getImage()
        return getattr(item, 'data', data)
    elif isinstance(item, FSImage):
        return item._readFile(0)
    elif IImage.providedBy(item):
        return item.data
    else:
        #exta level to deal with image scales
        data = getattr(item, 'data', '')
        return data.data if hasattr(data, 'data') else data
Exemplo n.º 5
0
def get_image_data(item):
    if IATImage.providedBy(item):
        data = item.getImage()
        return getattr(item, 'data', data)
    elif isinstance(item, FSImage):
        return item._readFile(0)
    elif IImage.providedBy(item):
        return item.data
    else:
        #exta level to deal with image scales
        data = getattr(item, 'data', '')
        return data.data if hasattr(data, 'data') else data
 def save(self):
     """Save the image"""
     context, request, form = self.context, self.request, self.request.form
     check(self.request)  # raise an error if not authenficated
     if not "image" in form:
         raise Exception("invalid request")
     data = self.fetch(form["image"])
     if not data:
         raise Exception("image download fails")
     if IATImage.providedBy(self.context):
         self.at_store(self.context, data)
     parent = aq_parent(self.context)
     if IATContentType.providedBy(parent):
         self.at_store(parent, data, self.context.id())
 def service_edit_url(self):
     context, thisurl, url = self.context, "", ""
     langk = (True == (self.lang in self.langs)) and self.lang or "en"
     lang = self.langs[langk]
     if IATImage.providedBy(self.context) or IOFSImage.providedBy(self.context):
         thisurl = self.context.absolute_url()
         surl = "http://fotoflexer.com/API/API_Loader_v1_01.php"
         params = {
             "ff_image_url": thisurl,
             "ff_cancel_url": "%s/view" % thisurl,
             "ff_lang": lang,
             "ff_callback_url": "%s/@@externalimageeditor_save?service=%s&_authenticator=%s"
             % (thisurl, self.name, self.authenticator),
         }
         url = "%s?%s" % (surl, urllib.urlencode(params))
     return url
 def http_get_edit(self):
     """."""
     ret = 'OK'
     context_url = self.context.absolute_url()
     form = self.request.form
     service = form.get('service', 'pixlr')
     # edit with pixlr by default
     editor = queryMultiAdapter((self.context, self.request), i.IExternalImageEditor, name = service)
     if editor is not None:
         url = editor.service_edit_url
         getMultiAdapter((self.context, self.request), i.IEditSessionHelper).register_edit_session(service)
     else:
         ret = 'Invalid edit proxy request!'
         logger.info(ret)
         url = context_url
         if IATImage.providedBy(self.context):
             url += "/view"
     self.request.response.redirect(url)
     return ret
 def get_infos_for(self, context):
     data = {'embedded_images' : False,
             'contexts_info' : []}
     contexts_info = data['contexts_info']
     if IATImage.providedBy(self.context):
         contexts_info.append({'c':self.context, 'type': 'image'})
     if IATContentType.providedBy(self.context):
         for f in self.context.schema.keys():
             field = self.context.schema[f]
             if 'image' == field.type:
                 data['embedded_images'] = True
                 contexts_info.append(
                     {'c':field.get(self.context), 'type': 'atimage'}
                 )
     for context_info in contexts_info:
         request = self.request
         adapters = getAdapters((context_info['c'], request), provided=i.IExternalImageEditor)
         context_info['infos'] = []
         for name, a in adapters:
             if a.enabled:
                 context_info['infos'].append(a.link_infos)
     return data
        if editor is not None:
            session = getMultiAdapter((self.context, self.request), i.IEditSessionHelper)
            if session.is_edited_by(service):
                invalid = False
                try:
                    editor.save()
                except Exception, e:
                    ret = 'An error occured during image record: %s' % e
                ret = 'image updated'
            else:
                ret = 'No edit session!'
        if invalid:
            if not ret:
                ret = 'Invalid edit proxy request!'
            logger.info(ret)
        if IATImage.providedBy(self.context):
            context_url += "/view"
        parent = aq_parent(self.context)

        if (IATContentType.providedBy(parent)
            and IOFSImage.providedBy(self.context)):
            context_url = parent.absolute_url()
        if service not in ['aviary']:
            self.request.response.redirect(context_url)
        return ret

class Edit(BrowserView):
    """Redirect to a specific edit service"""
    interface.implements(IEdit)