예제 #1
0
def get_document(path):
    path = universe.root + "/content/" + path
    # print("[* get_document] Path: " + path)
    if os.path.exists(path):
        data = universe.fread(path)
        if data:
            meta = {
                "ip": return_ip().data.decode("utf-8"),
                "up": ".." if os.path.isdir(path) else "."
            }
            extension = path.split(".")[-1]
            res = make_response("", 200)
            if extension in ["txt"] or os.path.isdir(path):
                html = universe.parse(data.decode("utf-8"), path)
                meta.update({"content": html})
                res.headers["Content-Type"] = "text/html; charset=UTF-8"
                res.set_data(render_template("txt.html.jinja", data=meta))
            elif extension in ["md", "markdown"]:
                html = markdown.markdown(data.decode("utf-8"),
                                         extensions=['extra'])
                meta.update({"content": html})
                res.headers["Content-Type"] = "text/html; charset=UTF-8"
                res.set_data(render_template("txt.html.jinja", data=meta))
            elif extension in ["png", "jpg", "pdf", "mp3", "mp4"]:
                res.headers["Content-Type"] = "%s; charset=UTF-8" % guess_mime(
                    path)[0]
                res.set_data(data)
            elif extension in ["html", "htm"]:
                res.headers["Content-Type"] = "text/html; charset=UTF-8"
                res.set_data(data)
            else:
                res.headers["Content-Type"] = "text/plain; charset=UTF-8"
                res.set_data(data)
            return res
    abort(404)
예제 #2
0
 def loadBrowserTable(self):
     pwd = self.browserInput.text()
     filelist = []
     try:
         if not self.browser.pathExists(self.browser.host,
                                        self.browser.port, pwd):
             self.showMessage("Error", "The path does not exist!")
             return
         self.browser.historyStack.append(pwd)
         filelist = self.browser.getFileList(self.browser.host,
                                             self.browser.port, pwd)
         self.browser.filelist = filelist
     except ConnectionRefusedError:
         self.showMessage(
             "Offline",
             "The remote machine cannot be contacted!\nBetter luck next time."
         )
         self.tabWidget.setCurrentIndex(1)
     table = self.browserTable
     table.clearContents()
     table.setRowCount(len(filelist))
     for i, file in enumerate(filelist):
         table.setItem(i, 0, QTableWidgetItem(str(i)))
         table.setItem(i, 1,
                       QTableWidgetItem(QIcon(":images/download.png"), ""))
         table.setItem(i, 2,
                       QTableWidgetItem(toHumanReadable(file["filesize"])))
         if file["isDir"]:
             table.setItem(
                 i, 3, QTableWidgetItem(QIcon(":/images/folder.png"), ""))
         else:
             table.setItem(
                 i, 3, QTableWidgetItem(guess_mime(file["filename"])[0]))
         table.setItem(i, 4, QTableWidgetItem(file["filename"]))
예제 #3
0
def view_resource(path):
    path = "res/" + path
    if not os.path.exists(path):
        return make_response(render_template("404.jinja", filename=filename),
                             status=404)
    with open(path, "rb") as f:
        res = make_response(f.read())
        res.headers["Content-Type"] = guess_mime(path) + "; charset=UTF-8"
        return res
예제 #4
0
def grab_latest_by_camera(request, addr):
    camera = ':'.join([ addr[i*2:i*2+2] for i in range(len(addr)/2) ])
    f = models.CameraRecord.objects.filter(remote__address=camera).latest('time').picture
    mime = guess_mime(f.name)
    logger.info('%s -> %s' % (camera, f.name))
    parts = [
	(mime[0], f.read())
    ]
    return http.StreamingMultipartHttpResponse(parts, 
	    type="multipart/x-mixed-replace")
예제 #5
0
def get_resource(path):
    path = universe.root + "/res/" + path
    # print("[* get_resource] Path: " + path)
    if os.path.exists(path) and not os.path.isdir(path):
        data = universe.fread(path)
        if data:
            res = make_response(data, 200)
            res.headers["Content-Type"] = "%s; charset=UTF-8" % guess_mime(
                path)[0]
            return res
    abort(404)
예제 #6
0
def grab_file(request, file):
    logger.info("grab_file %s" % file)
    file = CampaignFile.objects.get(file=file).file
    mime = guess_mime(file.name)
    return HttpResponse(file.read(), mimetype=mime[0])
예제 #7
0
def grab_picture(request, filename):
    f=models.CameraRecord.objects.get(picture=filename).picture
    mime = guess_mime(f.name)
    logger.info(f.name)
    return HttpResponse(f.read(), mimetype=mime[0])
예제 #8
0
def grab_file(request, file):
    logger.info("grab_file %s" % file)
    file = CampaignFile.objects.get(file=file).file
    mime = guess_mime(file.name)
    return HttpResponse(file.read(), mimetype=mime[0])
예제 #9
0
    def getFile(self, request, pk):
	f = CampaignFile.objects.get(pk=pk).file
	mime = guess_mime(f.name)
	return HttpResponse(f.read(), mimetype=mime[0])