Ejemplo n.º 1
0
def completed(request):
    """
    Will complete authentictaion to TeamSpeak
    """

    url = GLOBAL_URL + "/auth/complete"

    request_teamspeak_auth = requests.post(url,
                                           headers=global_headers(request))

    if request_teamspeak_auth.status_code == 404:
        try:
            detail = request_teamspeak_auth.json()["detail"]
        except KeyError:
            pass
        else:
            if detail == "Could not find corresponding teamspeak client":
                return render(request, "teamspeak/notfound.html")

    if request_teamspeak_auth.status_code != 201:
        return render_error(request_teamspeak_auth)

    request_character_url = SNI_URL + "user/" + str(request.session["user_id"])
    request_character = requests.get(request_character_url,
                                     headers=global_headers(request))
    if request_character.status_code != 200:
        return render_error(request_character)

    return render(request, 'teamspeak/completed.html',
                  {"tickered_name": request_character.json()["tickered_name"]})
Ejemplo n.º 2
0
def home(request):
    """
  Will display all the coalitions registered on the SNI
  """

    request_coalitions = requests.get(GLOBAL_URL,
                                      headers=global_headers(request))

    if request_coalitions.status_code != 200:
        return render_error(request_coalitions)

    coalition_list = request_coalitions.json()
    coalition_dict = {}

    for coalition in coalition_list:
        request_coalition_details = requests.get(
            f"{GLOBAL_URL}/{coalition['coalition_id']}",
            headers=global_headers(request))

        if request_coalition_details.status_code != 200:
            return render_error(request_coalition_details)

        coalition_details = request_coalition_details.json()
        coalition_dict[coalition['coalition_id']] = coalition_details
        coalition_dict[coalition['coalition_id']]['members'] = len(
            coalition_details['member_alliances'] +
            coalition_details['member_corporations'])

    return render(
        request, 'coalition/home.html', {
            "coalition_list": coalition_dict,
            "new_coalition": request.GET.get("new_coa"),
            "deleted_coalition": request.GET.get("del_coa"),
            "clearance_level": get_clearance_level(request)
        })
Ejemplo n.º 3
0
def sni(request, character_id):
    """
    Will display the SNI details for a character
    """

    #Get data from SNI backend
    url = f"{GLOBAL_URL}/{character_id}"
    request_sni = requests.get(url, headers=global_headers(request))
    if request_sni.status_code != 200:
        return render_error(request_sni)

    character = request_sni.json()

    # Get corporation details
    if character["corporation"]:
        corp_id = character["corporation"]
        corp_name = IdToName.get_name(corp_id, 'corporations')

        character["corporation"] = {
            "id": character["corporation"],
            "name": corp_name
        }

    else:
        character["corporation"] = {"name": ""}

    # Get alliance details
    if character["alliance"]:
        alliance_name = IdToName.get_name(character["alliance"], 'alliances')
        character["alliance"] = {
            "id": character["alliance"],
            "name": alliance_name,
        }
    else:
        character["alliance"] = {"name": ""}

    # Get coalition details
    resolved_coalition = list()
    if character["coalitions"]:
        for coalition in character["coalitions"]:
            url_coalition = f"{SNI_URL}coalition/{coalition}"
            request_coalition = requests.get(url_coalition, headers=global_headers(request))
            resolved_coalition.append({
                "id": coalition,
                "name": request_coalition.json()["coalition_name"]
            })

            #character["coalitions"][coalition] = request_coalition.json()["coalition_name"]
    character["coalitions"] = resolved_coalition

    return render(request, 'character/sni.html', {
        "character_id": character_id,
        "character_name": character["character_name"],
        "character": character,
    })
Ejemplo n.º 4
0
def add(request, coalition_id):
    """
    Add a new member to the coalition (alliance or corporation)
    """

    url = f"{GLOBAL_URL}/{coalition_id}"

    headers = global_headers(request)
    headers.update({"Content-type": "application/json"})

    request_member_id = post_universe_ids(request.POST.get("member"))
    if request_member_id.status_code != 200:
        return render_error(request_alliance_id)

    if "alliances" in request_member_id.json():
        t = "alliance"
        alliance_id = request_member_id.json()["alliances"][0]["id"]
        data = "{\"add_member_alliances\": [\"" + str(alliance_id) + "\"]}"
    elif "corporations" in request_member_id.json():
        t = "coproration"
        corporation_id = request_member_id.json()["corporations"][0]["id"]
        data = "{\"add_member_corporations\": [\"" + str(
            corporation_id) + "\"]}"
    else:
        params = urlencode({"not_found": request.POST.get("alliance")})
        return_url = reverse("coalition-sheet", args=[coalition_id
                                                      ]) + "?" + params
        return redirect(return_url)

    request_new = requests.put(url, headers=headers, data=data)

    if request_new.status_code == 404:  # case when the alliance isn't know by the backend yet
        if t == "alliance":
            request_fetch = requests.post(SNI_URL + f"alliance/{alliance_id}",
                                          headers=global_headers(request))
        else:
            request_fetch = requests.post(SNI_URL +
                                          f"corporation/{corporation_id}",
                                          headers=global_headers(request))
        if request_fetch.status_code != 200:
            return render_error(request_fetch)
        request_new = requests.put(
            url, headers=headers, data=data)  # tries again to add the alliance

    if request_new.status_code != 200:
        return render_error(request_new)

    params = urlencode({"new_member": request.POST.get("member")})
    return_url = reverse("coalition-sheet", args=[coalition_id]) + "?" + params

    return redirect(return_url)
Ejemplo n.º 5
0
def change_scopes(request, corp_id):
    """
    Changing corporation mandatory scopes with a specific list
    """

    scopes = []
    for key in request.POST:
        if key in ESI_SCOPES:
            scopes.append(key)

    if len(scopes) > 0:
        data = "{\"mandatory_esi_scopes\": [\"" + "\",\"".join(scopes) + "\"]}"
    else:
        data = "{\"mandatory_esi_scopes\": []}"
    request_change = requests.put(GLOBAL_URL + f"/{corp_id}",
                                  headers=global_headers(
                                      request,
                                      {"Content-type": "application/json"}),
                                  data=data)
    if request_change.status_code != 200:
        return render_error(request_change)

    params = urlencode({"changed_scopes": "true"})
    return_url = reverse("corporation-sheet", args=[corp_id]) + "?" + params
    return redirect(return_url)
Ejemplo n.º 6
0
def contracts_details(request, character_id, contract_id):
    """
    Displays informations on a contract
    """

    request_name = esi.get_character_information(character_id)
    if request_name.status_code != 200:
        return render_error(request_name)

    url = SNI_URL + f"esi/latest/characters/{character_id}/contracts/"
    json = {"on_behalf_of": request.session["user_id"], "all_pages": True}
    request_contracts = requests.get(url, headers=global_headers(request), json=json)
    if request_contracts.status_code != 200:
        return render_error(request_contracts)

    for contract in request_contracts.json()["data"]:
        if contract["contract_id"] == contract_id:
            if contract["type"] != "courier":
                request_contract_items = requests.get(url+f"{contract_id}/items/", headers=global_headers(request), json=json)
                if request_contract_items.status_code != 200:
                    return render_error(request_contract_items)
                contract["contract_items"] = request_contract_items.json()["data"]
            return render(request, 'character/contracts-details.html', {
                "character": request_name.json(),
                "character_id": character_id,
                "contract": contract,
            })
    return render(request, "404.html")
Ejemplo n.º 7
0
def locations(request, character_id):
    """
    Displays characters location history
    """

    url = HISTORY_URL + f"{character_id}/location"
    headers = global_headers(request)
    request_locations = requests.get(url, headers=headers)
    if request_locations.status_code != 200:
        return render_error(request_locations)

    locations = list()
    for i in range(len(request_locations.json())):
        if len(request_locations.json()[i]["timestamp"]) == 26:
            date_str = datetime.datetime.strptime(request_locations.json()[i]["timestamp"][:-7], "%Y-%m-%dT%H:%M:%S").__str__()
        elif len(request_locations.json()[i]["timestamp"]) == 19:
            date_str = datetime.datetime.strptime(request_locations.json()[i]["timestamp"], "%Y-%m-%dT%H:%M:%S").__str__()
        else:
            data_str = request_locations.json()[i]["timestamp"]
        locations.append((request_locations.json()[i], date_str))

    return render(request, "character/locations.html",{
        "character_id": character_id,
        "locations": locations,
    })
Ejemplo n.º 8
0
def remove_corporation(request, coalition_id, corporation_id):
    """
    Removes a corporation from the coalition
    """

    url = f"{GLOBAL_URL}/{coalition_id}"

    headers = global_headers(request)
    headers.update({"Content-type": "application/json"})

    data = "{\"remove_member_corporations\": [\"" + str(
        corporation_id) + "\"]}"

    request_remove = requests.put(url, headers=headers, data=data)

    if request_remove.status_code != 200:
        return render_error(request_remove)

    request_corporation_name = post_universe_names(corporation_id)

    if request_corporation_name.status_code != 200:
        return render_error(request_corporation_name)

    corproation_name = request_corporation_name.json()[0]["name"]

    params = urlencode({"rem_corp": corproation_name})
    return_url = reverse("coalition-sheet", args=[coalition_id]) + "?" + params

    return redirect(return_url)
Ejemplo n.º 9
0
def sheet(request, corp_id):
    """
    Information sheet on a corporation
    """

    request_corp = requests.get(GLOBAL_URL + f"/{corp_id}",
                                headers=global_headers(request))
    if request_corp.status_code != 200:
        return render_error(request_corp)

    esi_request_corp = get_corporations_corporation_id(corp_id)
    if esi_request_corp.status_code != 200:
        return render_error(esi_request_corp)
    esi_corp = esi_request_corp.json()
    esi_corp["tax_rate"] *= 100

    return render(
        request, "corporation/sheet.html", {
            "corporation": request_corp.json(),
            "esi": esi_corp,
            "corporation_id": corp_id,
            "corporation_name": esi_request_corp.json()["name"],
            "scopes": ESI_SCOPES,
            "changed_scopes": request.GET.get("changed_scopes"),
        })
Ejemplo n.º 10
0
def create(request):
    """
    Create a new group
    This link should only be accessed by a redirection from group/new

    note: maybe use a post or something to make sure the group isn't created several times?
    """

    headers = global_headers(request)
    headers.update({"Content-type": "application/json"})

    data = "{\"group_name\":\"" + request.GET.get("name") + "\"}"

    request_create_group = requests.post(GLOBAL_URL,
                                         headers=headers,
                                         data=data)

    print(request_create_group)
    print(request_create_group.json())

    if request_create_group.status_code != 201:
        return render_error(request_create_group)

    return_url = reverse("group-home")
    params = urlencode({"new_group": request.GET.get("name")})
    url = f"{return_url}?{params}"

    return redirect(url)
Ejemplo n.º 11
0
def tracking(request, coalition_id):
    """
    Display the tracking of the coalition members
    """

    request_coa = requests.get(GLOBAL_URL + f"/{coalition_id}",
                               headers=global_headers(request))
    if request_coa.status_code != 200:
        return render_error(request_coa)

    url = GLOBAL_URL + f"/{coalition_id}/tracking"
    request_track = requests.get(url, headers=global_headers(request))
    if request_track.status_code != 200:
        return render_error(request_track)

    return render(request, "coalition/tracking.html", {
        "coalition": request_coa.json(),
        "tracking": request_track.json(),
    })
Ejemplo n.º 12
0
def tracking(request, ally_id):
    """
    Alliance tracking
    """

    url = GLOBAL_URL+f"/{ally_id}/tracking"
    request_track = requests.get(url, headers=global_headers(request))
    if request_track.status_code != 200:
        return render_error(request_track)

    request_alliance = requests.get(GLOBAL_URL+f"/{ally_id}", headers=global_headers(request))
    if request_alliance.status_code != 200:
        return render_error(request_alliance)

    return render(request, "alliance/tracking.html", {
        "tracking": request_track.json(),
        "alliance_id": ally_id,
        "alliance_name": request_alliance.json()["alliance_name"],
    })
Ejemplo n.º 13
0
def home(request):
    """
    Corporation home
    """

    request_corp = requests.get(GLOBAL_URL, headers=global_headers(request))
    if request_corp.status_code != 200:
        return render_error(request_corp)

    return render(request, "corporation/home.html", {
        "corporations": request_corp.json(),
    })
Ejemplo n.º 14
0
def change_scopes_all(request, ally_id):
    """
    Changing alliance mandatory scopes by applying them all
    """

    data = "{\"mandatory_esi_scopes\": [\"" + "\",\"".join(ESI_SCOPES) + "\"]}"
    request_change = requests.put(GLOBAL_URL+f"/{ally_id}", headers=global_headers(request, {"Content-type":"application/json"}), data=data)
    if request_change.status_code != 200:
        return render_error(request_change)

    params = urlencode({"changed_scopes": "true"})
    return_url = reverse("alliance-sheet", args=[ally_id]) + "?" + params
    return redirect(return_url)
Ejemplo n.º 15
0
def home(request):
    """
    Alliance home view
    """

    request_ally = requests.get(GLOBAL_URL, headers=global_headers(request))

    if request_ally.status_code != 200:
        return render_error(request_ally)

    return render(request, "alliance/home.html", {
        "alliances": request_ally.json(),
    })
Ejemplo n.º 16
0
def home(request):
    """
    Home view for the administration part
    """

    request_jobs = requests.get(GLOBAL_URL, headers=global_headers(request))

    if request_jobs.status_code != 200:
        return render_error(request_jobs)

    return render(request, 'admin/home.html', {
        "jobs": request_jobs.json(),
    })
Ejemplo n.º 17
0
def guest_new(request, corp_id):
    """
    Will issue a state code that can be used to authentificate and be recognized as a guest of the corproation
    """
    request_code = requests.post(GLOBAL_URL + f"/{corp_id}/guest",
                                 headers=global_headers(request))
    if request_code.status_code != 200:
        return render_error(request_code)

    print(request_code.json()["state_code"])
    params = urlencode({"state_code": request_code.json()["state_code"]})
    return_url = reverse("corporation-guest", args=[corp_id]) + "?" + params
    return redirect(return_url)
Ejemplo n.º 18
0
def delete(request, group_id):
    """
    Deletes a group
    """

    url = f"{GLOBAL_URL}/{group_id}"

    request_group = requests.get(
        url, headers=global_headers(request))  # stores group params

    if request_group.status_code != 200:
        return render_error(request_group)

    request_delete_group = requests.delete(url,
                                           headers=global_headers(request))

    if request_delete_group.status_code != 200:
        return render_error(request_delete_group)

    params = urlencode({"del_group": request_group.json()["group_name"]})
    return_url = f"{reverse('group-home')}?{params}"

    return redirect(return_url)
Ejemplo n.º 19
0
def guest_delete(request, corp_id, user_id):
    """
    Delete a user from the guests of a corporation
    """

    request_delete = requests.delete(GLOBAL_URL +
                                     f"/{corp_id}/guest/{user_id}",
                                     headers=global_headers(request))
    if request_delete.status_code != 200:
        return render_error(request_delete)

    params = urlencode({"delete_guest": "true"})
    return_url = reverse("corporation-guest", args=[corp_id]) + "?" + params
    return redirect(return_url)
Ejemplo n.º 20
0
def delete(request, coalition_id):
    """
    Deletes a coaliton
    """

    url = f"{GLOBAL_URL}/{coalition_id}"

    request_coalition = requests.get(
        url, headers=global_headers(request))  # stores coalition params

    if request_coalition.status_code != 200:
        return render_error(request_coalition)

    request_delete_coalition = requests.delete(url,
                                               headers=global_headers(request))

    if request_delete_coalition.status_code != 200:
        return render_error(request_delete_coalition)

    params = urlencode({"del_coa": request_coalition.json()["coalition_name"]})
    return_url = f"{reverse('coalition-home')}?{params}"

    return redirect(return_url)
Ejemplo n.º 21
0
def sheet(request, ally_id):
    """
    Alliance sheet
    """
    request_alliance = requests.get(GLOBAL_URL+f"/{ally_id}", headers=global_headers(request))
    if request_alliance.status_code != 200:
        return render_error(request_alliance)

    return render(request, "alliance/sheet.html",{
        "changed_scopes": request.GET.get("changed_scopes"),
        "alliance_id": ally_id,
        "alliance": request_alliance.json(),
        "alliance_name": request_alliance.json()["alliance_name"],
        "scopes": ESI_SCOPES,
    })
Ejemplo n.º 22
0
def scopes_none(request, coalition_id):
    """
    Update coalition required scopes by removing them all
    """

    headers = global_headers(request, {"Content-type": "application/json"})
    data = "{\"mandatory_esi_scopes\": []}"
    request_change_scopes = requests.put(GLOBAL_URL + f"/{coalition_id}",
                                         headers=headers,
                                         data=data)
    if request_change_scopes.status_code != 200:
        return render_error(request_change_scopes)

    params = urlencode({"changed_scopes": "true"})
    return_url = reverse("coalition-sheet", args=[coalition_id]) + "?" + params
    return redirect(return_url)
Ejemplo n.º 23
0
def home(request):
    """
    Will start authentictaion to TeamSpeak
    """

    url = GLOBAL_URL + "/auth/start"

    request_teamspeak_auth = requests.post(url,
                                           headers=global_headers(request))

    if request_teamspeak_auth.status_code != 200:
        return render_error(request_teamspeak_auth)

    teamspeak_auth = request_teamspeak_auth.json()

    return render(request, 'teamspeak/home.html',
                  {"teamspeak_auth": teamspeak_auth})
Ejemplo n.º 24
0
def submit(request):
    """
    Submits a job to the scheduler
    """

    callable_name = request.POST["callable_name"]
    url = f"{GLOBAL_URL}/{callable_name}"

    request_submit = requests.post(url, headers=global_headers(request))

    if request_submit.status_code != 200:
        return render_error(request_submit)

    params = urlencode({'sub_job': callable_name})
    return_url = reverse("admin-home") + "?" + params

    return redirect(return_url)
Ejemplo n.º 25
0
def home(request):
    """
    Home view of discord
    """

    url = SNI_URL + "discord/auth/start"

    request_auth_code = requests.post(url, headers=global_headers(request))

    if request_auth_code.status_code == 200:
        return render(request, 'discord/home.html',
                      {"request_code": request_auth_code.json()})

    elif request_auth_code.status_code == 404:
        return render(request, 'discord/notactive.html')
    else:
        return render_error(request_auth_code)
Ejemplo n.º 26
0
def home(request):
    """
    Will display all the characters registered on the SNI
    """

    request_characters = requests.get(GLOBAL_URL, headers=global_headers(request))

    if request_characters.status_code != 200:
        return render_error(request_characters)

    character_list = request_characters.json()

    # Remove root from the list as it is not a truly valid character
    root = next((item for item in character_list if item["character_name"] == "root"), None)
    if root != None:
        character_list.remove(root)

    return render(request, 'character/home.html', {"character_list": character_list})
Ejemplo n.º 27
0
def ticker(request, coalition_id):
    """
    Change a coalition ticker
    """

    url = f"{GLOBAL_URL}/{coalition_id}"

    headers = global_headers(request)
    headers.update({"Content-type": "application/json"})

    data = "{\"ticker\":\"" + request.POST.get("ticker") + "\"}"
    request_ticker = requests.put(url, headers=headers, data=data)

    if request_ticker.status_code != 200:
        return render_error(request_ticker)

    params = urlencode({"new_ticker": request.POST.get("ticker")})
    return_url = reverse("coalition-sheet", args=[coalition_id]) + "?" + params
    return redirect(return_url)
Ejemplo n.º 28
0
def wallet_transactions(request, character_id):
    """
    Displays a character transactions list
    """

    request_name = esi.get_character_information(character_id)
    if request_name.status_code != 200:
        return render_error(request_name)

    transactions_url = SNI_URL + f"esi/latest/characters/{character_id}/wallet/transactions/"
    json = {"all_pages": True, "on_behalf_of": request.session.get("user_id")}
    request_wallet_transactions = requests.get(transactions_url, headers=global_headers(request), json=json)
    if request_wallet_transactions.status_code != 200:
        return render_error(request_wallet_transactions)

    return render(request, 'character/transactions.html', {
        "character": request_name.json(),
        "character_id": character_id,
        "transactions": request_wallet_transactions.json()["data"],
    })
Ejemplo n.º 29
0
def wallet_journal(request, character_id):
    """
    Displays character journal
    """

    request_name = esi.get_character_information(character_id)
    if request_name.status_code != 200:
        return render_error(request_name)

    journal_url = SNI_URL + f"esi/latest/characters/{character_id}/wallet/journal/"
    data = {"all_pages": True, "on_behalf_of": request.session.get("user_id")}
    request_wallet_journal = requests.get(journal_url, headers=global_headers(request), json=data)
    if request_wallet_journal.status_code != 200:
        return render_error(request_wallet_journal)

    return render(request, 'character/journal.html', {
        "character": request_name.json(),
        "character_id": character_id,
        "journal": request_wallet_journal.json()["data"],
    })
Ejemplo n.º 30
0
def contracts(request, character_id):
    """
    Displays character contracts
    """

    request_name = esi.get_character_information(character_id)
    if request_name.status_code != 200:
        return render_error(request_name)

    url = SNI_URL + f"esi/latest/characters/{character_id}/contracts/"
    json = {"on_behalf_of": request.session["user_id"], "all_pages": True}
    request_contracts = requests.get(url, headers=global_headers(request), json=json)
    if request_contracts.status_code != 200:
        return render_error(request_contracts)

    return render(request, 'character/contracts.html', {
        "character": request_name.json(),
        "character_id": character_id,
        "contracts": request_contracts.json()["data"],
    })