Exemple #1
0
def report():
    # Create LogParser instance for this report
    logparser = LogParser(gi, KEYWORDS)

    filename = request.args.get("filename")
    if "/" in filename:  # Prevent directory traversal attacks
        return "Go away!"

    path = os.path.join("/home/malyhass/log-parser", filename)
    logparser.parse_file(
        gzip.open(path) if path.endswith(".gz") else open(path))

    return env.get_template("report.html").render({
        "map_svg":
        render_map(open(os.path.join(PROJECT_ROOT, "templates", "map.svg")),
                   logparser.countries),
        "humanize":
        humanize.naturalsize,
        "keyword_hits":
        sorted(logparser.d.items(), key=lambda i: i[1], reverse=True),
        "url_hits":
        sorted(logparser.urls.items(), key=lambda i: i[1], reverse=True),
        "user_bytes":
        sorted(logparser.user_bytes.items(),
               key=lambda item: item[1],
               reverse=True)
    })
Exemple #2
0
def report():
    # Create LogParser instance for this report
    logparser = LogParser(gi, KEYWORDS)

    filename = request.args.get("filename")
    if "/" in filename: # Prevent directory traversal attacks
        return "Go away!"

    path = os.path.join("/home/ebarrier/Documents/Python/logs", filename)
    logparser.parse_file(gzip.open(path) if path.endswith(".gz") else open(path))

    return env.get_template("report.html").render({
            "map_svg": render_map(open(os.path.join(PROJECT_ROOT, "templates", "map.svg")), logparser.countries),
            "humanize": humanize.naturalsize,
            "keyword_hits": sorted(logparser.d.items(), key=lambda i:i[1], reverse=True),
            "url_hits": sorted(logparser.urls.items(), key=lambda i:i[1], reverse=True),
            "user_bytes": sorted(logparser.user_bytes.items(), key = lambda item:item[1], reverse=True)
        })
Exemple #3
0
    elif bytes < 1024**3:
        return "%.1f MB" % (bytes / 1024.0**2)
    else:
        return "%.1f GB" % (bytes / 1024.0**3)


from jinja2 import Environment, FileSystemLoader  # This it the templating engine we will use

env = Environment(loader=FileSystemLoader(
    os.path.join(PROJECT_ROOT, "templates")),
                  trim_blocks=True)

import codecs

rendered_map = render_map(
    open(os.path.join(PROJECT_ROOT, 'templates', 'map.svg')),
    logparser.countries)

context = {
    "map_svg":
    rendered_map,
    "humanize":
    humanize,  # This is why we use locals() :D
    "keyword_hits":
    sorted(logparser.d.items(), key=lambda i: i[1], reverse=True),
    "url_hits":
    sorted(logparser.urls.items(), key=lambda i: i[1], reverse=True),
    "user_bytes":
    sorted(logparser.user_bytes.items(),
           key=lambda item: item[1],
           reverse=True),
Exemple #4
0
    elif bytes < 1024 ** 3:
        return "%.1f MB" % (bytes / 1024.0 ** 2)
    else:
        return "%.1f GB" % (bytes / 1024.0 ** 3)

from jinja2 import Environment, FileSystemLoader # This it the templating engine we will use

env = Environment(
    loader=FileSystemLoader(os.path.join(PROJECT_ROOT, "templates")),
    trim_blocks=True)

import codecs


rendered_map = render_map(
    open(os.path.join(PROJECT_ROOT, 'templates', 'map.svg')),
    logparser.countries)



context = {
    "map_svg": rendered_map,
    "humanize": humanize, # This is why we use locals() :D
    "keyword_hits": sorted(logparser.d.items(), key=lambda i:i[1], reverse=True),
    "url_hits": sorted(logparser.urls.items(), key=lambda i:i[1], reverse=True),
    "user_bytes": sorted(logparser.user_bytes.items(), key = lambda item:item[1], reverse=True),
}

with codecs.open(os.path.join(args.output, "report.html"), "w", encoding="utf-8") as fh:
    fh.write(env.get_template("report.html").render(context))