def convert(self): cur = self.db.urls.find({"link_type": 2, "info.title": {"$exists": 1}}) for row in cur: if not os.path.exists(row["long_url"]): continue filename = os.path.basename(row["info"]["title"]) print "%s: %s->%s" % (row["short_code"], row["long_url"], filename) with open(row["long_url"], "r") as fh: uf = UploadedFile( None, stream=fh, mimetype=row["mime_type"], filename=filename) uf._update_filenames() if uf.get_filename() == row["long_url"]: print "\tskipping new format" continue uf.save() row["long_url"] = uf.get_filename() self.db.urls.update({"short_code": row["short_code"]}, row)
def new_paste(): if "p" not in flask.request.form: return flask.make_response("Bad Request", 400) text = flask.request.form["p"] title = flask.request.form.get("title") lang = flask.request.form.get("lang") with tempfile.TemporaryFile() as tmp_fh: tmp_fh.write(text) tmp_fh.seek(0) uploaded_file = UploadedFile(flask.request, stream=tmp_fh, filename='stdin') uploaded_file.save() fullpath = uploaded_file.get_filename() surl = sdb.new(fullpath, ShortURL.TEXT) surl.get_info()["title"] = title surl.get_info()["lang"] = lang surl.mime_type = "text/plain" sdb.save(surl) short_url = surl.get_short_url() return "%s\n" % short_url
def post(): sdb = apis.get_sdb() surl = None if "file" in flask.request.files: uploaded_file = UploadedFile(flask.request, formfile='file') uploaded_file.save() full_url = uploaded_file.get_filename() surl = sdb.new(full_url, ShortURL.IMG) surl.mime_type = uploaded_file.get_mimetype() if not surl.info: surl.info = {} surl.info["title"] = uploaded_file.get_remote_filename() sdb.save(surl) elif "d" in flask.request.form: text = flask.request.form["d"] with tempfile.TemporaryFile() as tmp_fh: tmp_fh.write(text) tmp_fh.seek(0) uploaded_file = UploadedFile(flask.request, stream=tmp_fh) uploaded_file.save() full_url = uploaded_file.get_filename() surl = sdb.new(full_url, ShortURL.TEXT) if "m" in flask.request.form: surl.mime_type = flask.request.form["m"] else: surl.mime_type = "text/plain" sdb.save(surl) else: raise Exception("missing required field") return { "status": "OK", "url": full_url, "short_code": surl.get_short_code(), "short_url": surl.get_short_url(), }