Example #1
0
def _upload(req):
    p = req.POST
    for f in req.FILES.values():
        if f.name.find(".") >= 0:
            (name, ext) = f.name.rsplit(".", 1)
            ext = ext.lower()
        else:
            name = f.name
            ext = ''
        if ext in ['jpg', 'gif', 'png']:
            nicename = re.sub(r'[^\w]', '-', name)
            tryname = "%s.%s" % (nicename, ext)
            i = 0
            mkdirp('static/kbfiles')
            while os.path.exists("static/kbfiles/%s" % tryname):
                i += 1
                tryname = "%s-%d.%s" % (nicename, i, ext)
            outf = open("static/kbfiles/%s" % tryname, "w")
            for c in f.chunks():
                outf.write(c)
            outf.close()
            return HttpResponse("0 %s" % tryname)
        else:
            return HttpResponse(
                  "1 You can only upload .gif, .png, or .jpg files.")
    return HttpResponse("Error", status=400)
Example #2
0
def _try_save(doc, title, tags, text):
    mkdirp(os.path.dirname('docs/%s' % doc.pathname))
    f = open('docs/%s' % doc.pathname, 'w')
    f.write(("Title: %s\nTags: %s\n\n%s"
             % (title, tags, text)).replace('\r', '').encode('utf-8'))
    f.close()
    if os.path.isdir('docs/.git'):
        pn = './%s' % doc.pathname
        msg = 'kb: updated "%s" via web' % doc.filename
        p = Popen(args = ['git', 'add', '--', pn], cwd = 'docs')
        p.wait()
        p = Popen(args = ['git', 'commit', '-m', msg], cwd = 'docs')
        p.wait()
    doc.use_latest()
    doc.title = title
    doc.save()
    db.commit()
Example #3
0
def _pdf_url(req, name):
    if name.startswith("/static/kbfiles/"):
        name = os.getcwd() + name
        dir = os.path.dirname(name)
        base = os.path.basename(name)
        if not os.path.exists(name):
            return "invalid-path"
        if base.endswith(".gif"):
            # pdflatex can't handle .gif files, sigh
            outdir = os.path.join(dir, ".convert")
            pngname = os.path.join(outdir, base[:-4] + '.png')
            if not os.path.exists(pngname) \
                    or os.path.getmtime(name) >= os.path.getmtime(pngname):
                mkdirp(outdir)
                unlink(pngname)
                im = Image.open(name)
                im.save(pngname, "PNG")
            return pngname
        else:
            return name
    else:
        return req.build_absolute_uri(name)