示例#1
0
def formatted_loadout_attributes(fit, cap=None):
    if cap is None:
        cap = fit.get_cap_stability() # TODO reload time options

    return render('attribs.html',
                  eng=formatted_engineering(fit, cap),
                 )
示例#2
0
def format_attr_category(id, title, title_data, title_class, contents):
    return render('attrib_category.html',
                  id=id,
                  title=title,
                  titledata=Markup(title_data),
                  titleclass=title_class,
                  contents=contents)
示例#3
0
def formatted_engineering(fit, cap):
    slots_left = fit.get_ship_attribute('turretSlotsLeft')
    slots_total = fit.get_ship_attribute('turretSlots')
    turrets_formatted = format_used(slots_total - slots_left, slots_total)
    turrets_over = 'overflow' if slots_left < 0 else ''

    slots_left = fit.get_ship_attribute('launcherSlotsLeft')
    slots_total = fit.get_ship_attribute('launcherSlots')
    launchers_formatted = format_used(slots_total - slots_left, slots_total)
    launchers_over = 'overflow' if slots_left < 0 else ''

    captime, capdelta = format_capacitor(cap)

    contents = render('attribs_engineering.html',
                      turrets_formatted=turrets_formatted,
                      turrets_over=turrets_over,
                      launchers_formatted=launchers_formatted,
                      launchers_over=launchers_over,
                      captime=captime,
                      capdelta=capdelta,
                     )

    return format_attr_category(
        'engineering', 'Engineering',
        ("<span title='Capacitor stability percentage / depletion time (estimated)'>"
         + captime + '</span>'),
        'overflow' if turrets_over or launchers_over else '',
        contents
    )
示例#4
0
def view_loadout_public(loadout_id):
    fit = Fit.get_fit(loadout_id)
    author = Account.get(fit.metadata["accountid"])

    # TODO: loadout history stuff
    # TODO: viewer permission stuff
    # TODO: url overrides

    tags = ""
    if fit.metadata.get("tags", []):
        tags = " (%s)" % (", ".join(fit.metadata["tags"]))
    title = fit.metadata["name"] + tags
    if fit.metadata.get("ship"):
        title += " / " + fit.metadata["ship"]["typename"]
    # TODO revision override in title

    # TODO canonicaluri

    # capacitors = fit.get_all_capacitors()
    # interesting_attrs = fit.get_interesting_attrs()

    formatted_attributes = chrome_fit.formatted_loadout_attributes(fit)

    loadout_section = chrome.render("loadout_loadout.html", fit=fit)
    # presets_section = chrome.render('loadout_presets.html', fit=fit)
    # remote_section = chrome.render('loadout_remote.html', fit=fit)
    # comments_section = chrome.render('loadout_comments.html', fit=fit)
    # meta_section = chrome.render('loadout_meta.html', fit=fit)
    # export_section = chrome.render('loadout_export.html', fit=fit)

    page = chrome.header(title=title)  # TODO index checking

    page += chrome.render(
        "loadout_view.html", loadoutid=loadout_id, fit=fit, formatted_attributes=formatted_attributes, fitname="TODO"
    )

    # TODO: cap and ia data
    chrome.include_js_snippet("view_loadout")
    chrome.include_js_snippet("view_loadout-presets")
    chrome.include_js_snippet("new_loadout-ship")
    chrome.include_js_snippet("new_loadout-modules")
    chrome.include_js_snippet("new_loadout-drones")
    chrome.include_js_snippet("new_loadout-implants")
    chrome.include_js_snippet("new_loadout-remote")

    from jinja2 import Markup

    page += Markup('<pre style="overflow: hidden;">%s</pre>' % json.dumps(fit.to_dict(), indent=4))
    page += chrome.footer()
    resp = make_response(page)

    # resp = make_response(chrome.header() + data + chrome.footer())
    resp.headers["Content-Security-Policy"] = (
        "default-src 'none'"
        " ; style-src 'self' https://fonts.googleapis.com http://fonts.googleapis.com https://cdnjs.cloudflare.com http://cdnjs.cloudflare.com 'unsafe-inline'"
        " ; font-src https://themes.googleusercontent.com http://themes.googleusercontent.com"
        " ; img-src 'self' https://image.eveonline.com http://image.eveonline.com"
        " ; script-src 'self' https://cdnjs.cloudflare.com http://cdnjs.cloudflare.com"
        " ; connect-src 'self'"
    )

    return resp