コード例 #1
0
ファイル: image_handlers.py プロジェクト: rrnntt/questions
 def post(self):
     user = self.get_current_user()
     if not user:
         self.redirect('/')
         return
     name = self.request.get('name')
     overwrite = self.request.get('overwrite')
     chapter = db.get( self.request.get('chapter') )
     args = { 'chapter': chapter.key() }
     if len(name) == 0:
         args['error'] = 'Image must have a name.'
     else:
         old_image = Image.get_image_by_name(chapter, name)
         if overwrite.lower() == 'true':
             if old_image:
                 old_image.delete()
                 refresh_chapter(chapter)
                 #chapter.put()
             old_image = None
         if old_image:
             args['image'] = old_image.key()
             args['error'] = 'Image with this name already exists.'
         else:
             data = self.request.get('img')
             if len(data) == 0:
                 args['error'] = 'No data received.' 
             else:
                 image = Image.create(chapter, name, data)
                 args['image'] = image.key()
                 refresh_chapter(chapter)
     self.redirect('/uploadimagepage?%s' % urllib.urlencode(args))
コード例 #2
0
ファイル: mymarkdown.py プロジェクト: rrnntt/questions
def update_links(chapter, text):
    """Parse the new text and correct if needed.
    
    Consider input text to have Markdown format.
    - Image names in reference links need to have urls.
    """
    # find all image tags in form ![Alt text][image_name]
    # and interpret image_name as markdown reference id
    # so text must contain line [image_name]: /proper_image_url
    image_link_pattern = re.compile('!\[.*?\]\[(.+?)\]')
    id_pattern_template = '\n\[%s\]:.+'
    match_list = re.findall(image_link_pattern, text)
    refresh = chapter.refresh
    for id in match_list:
        pattern = id_pattern_template % id
        image = Image.get_image_by_name(chapter, id)
        if not re.search(pattern,text):  # there is no [id]: /url string
            if image:
                text += '\n['+id+']: '+'/img?key='+str(image.key())
        elif refresh: # refresh anyway
            if image:
                text = re.sub(pattern,'\n['+id+']: '+'/img?key='+str(image.key()),text)
            else:
                text = re.sub(pattern,'',text)
                
    return text
コード例 #3
0
ファイル: image_handlers.py プロジェクト: rrnntt/questions
 def get(self):
     user = self.get_current_user()
     if not user:
         self.error(404)
         return
     key = self.request.get('key')
     if key:
         try:
             image = db.get( key )
         except:
             self.error(404)
             return
     else:
         name = self.request.get('name')
         if not name:
             self.error(404)
             return
         try:
             chapter = db.get( self.request.get('chapter') )
         except:
             self.error(404)
             return
         image = Image.get_image_by_name(chapter, name)
     if not image:
         self.error(404)
         return
     
     thumbnail = self.request.get('thumbnail')
     serveThumbnail = thumbnail and thumbnail == 'true'
         
     self.response.headers['Content-Type'] = str('image/'+image.type)
     if serveThumbnail:
         self.response.out.write(image.icon)
     else:
         self.response.out.write(image.data)