#!/bin/python
# -*- coding: utf-8 -*-
from enum import Enum

BASE_API_URL = "https://api.flarebrow.com/v2"

ADHOST_DATA_URL = "https://raw.githubusercontent.com/flarebrow/public/master/Adhost/hostlist.txt"

COUNTRY_IPV4_DATA_URL = "https://raw.githubusercontent.com/flarebrow/public/master/IPAddress/country/{cc}.txt"


class ConsoleColor:
    BLACK = '\033[30m'  # (文字)黒
    RED = '\033[31m'  # (文字)赤
    GREEN = '\033[32m'  # (文字)緑
    YELLOW = '\033[33m'  # (文字)黄
    BLUE = '\033[34m'  # (文字)青
    MAGENTA = '\033[35m'  # (文字)マゼンタ
    CYAN = '\033[36m'  # (文字)シアン
    WHITE = '\033[37m'  # (文字)白
    COLOR_DEFAULT = '\033[39m'  # 文字色をデフォルトに戻す
    BOLD = '\033[1m'  # 太字
    UNDERLINE = '\033[4m'  # 下線
    INVISIBLE = '\033[08m'  # 不可視
    REVERCE = '\033[07m'  # 文字色と背景色を反転
    BG_BLACK = '\033[40m'  # (背景)黒
    BG_RED = '\033[41m'  # (背景)赤
    BG_GREEN = '\033[42m'  # (背景)緑
    BG_YELLOW = '\033[43m'  # (背景)黄
    BG_BLUE = '\033[44m'  # (背景)青
    BG_MAGENTA = '\033[45m'  # (背景)マゼンタ
    BG_CYAN = '\033[46m'  # (背景)シアン
    BG_WHITE = '\033[47m'  # (背景)白
    BG_DEFAULT = '\033[49m'  # 背景色をデフォルトに戻す
    RESET = '\033[0m'  # 全てリセット


class Country(Enum):
    AD = "Andorra"
    AE = "United Arab Emirates"
    AF = "Afghanistan"
    AG = "Antigua and Barbuda"
    AI = "Anguilla"
    AL = "Albania"
    AM = "Armenia"
    AO = "Angola"
    AQ = "Antarctica"
    AR = "Argentina"
    AS = "American Samoa"
    AT = "Austria"
    AU = "Australia"
    AW = "Aruba"
    AX = "Åland Islands"
    AZ = "Azerbaijan"
    BA = "Bosnia and Herzegovina"
    BB = "Barbados"
    BD = "Bangladesh"
    BE = "Belgium"
    BF = "Burkina Faso"
    BG = "Bulgaria"
    BH = "Bahrain"
    BI = "Burundi"
    BJ = "Benin"
    BL = "Saint Barthélemy"
    BM = "Bermuda"
    BN = "Brunei Darussalam"
    BO = "Bolivia, Plurinational State of"
    BQ = "Bonaire, Sint Eustatius and Saba"
    BR = "Brazil"
    BS = "Bahamas"
    BT = "Bhutan"
    BW = "Botswana"
    BY = "Belarus"
    BZ = "Belize"
    CA = "Canada"
    CD = "Congo, The Democratic Republic of the"
    CF = "Central African Republic"
    CG = "Congo"
    CH = "Switzerland"
    CI = "Côte d'Ivoire"
    CK = "Cook Islands"
    CL = "Chile"
    CM = "Cameroon"
    CN = "China"
    CO = "Colombia"
    CR = "Costa Rica"
    CU = "Cuba"
    CV = "Cabo Verde"
    CW = "Curaçao"
    CY = "Cyprus"
    CZ = "Czechia"
    DE = "Germany"
    DJ = "Djibouti"
    DK = "Denmark"
    DM = "Dominica"
    DO = "Dominican Republic"
    DZ = "Algeria"
    EC = "Ecuador"
    EE = "Estonia"
    EG = "Egypt"
    ER = "Eritrea"
    ES = "Spain"
    ET = "Ethiopia"
    FI = "Finland"
    FJ = "Fiji"
    FK = "Falkland Islands (Malvinas)"
    FM = "Micronesia, Federated States of"
    FO = "Faroe Islands"
    FR = "France"
    GA = "Gabon"
    GB = "United Kingdom"
    GD = "Grenada"
    GE = "Georgia"
    GF = "French Guiana"
    GG = "Guernsey"
    GH = "Ghana"
    GI = "Gibraltar"
    GL = "Greenland"
    GM = "Gambia"
    GN = "Guinea"
    GP = "Guadeloupe"
    GQ = "Equatorial Guinea"
    GR = "Greece"
    GT = "Guatemala"
    GU = "Guam"
    GW = "Guinea-Bissau"
    GY = "Guyana"
    HK = "Hong Kong"
    HN = "Honduras"
    HR = "Croatia"
    HT = "Haiti"
    HU = "Hungary"
    ID = "Indonesia"
    IE = "Ireland"
    IL = "Israel"
    IM = "Isle of Man"
    IN = "India"
    IO = "British Indian Ocean Territory"
    IQ = "Iraq"
    IR = "Iran, Islamic Republic of"
    IS = "Iceland"
    IT = "Italy"
    JE = "Jersey"
    JM = "Jamaica"
    JO = "Jordan"
    JP = "Japan"
    KE = "Kenya"
    KG = "Kyrgyzstan"
    KH = "Cambodia"
    KI = "Kiribati"
    KM = "Comoros"
    KN = "Saint Kitts and Nevis"
    KP = "Korea, Democratic People's Republic of"
    KR = "Korea, Republic of"
    KW = "Kuwait"
    KY = "Cayman Islands"
    KZ = "Kazakhstan"
    LA = "Lao People's Democratic Republic"
    LB = "Lebanon"
    LC = "Saint Lucia"
    LI = "Liechtenstein"
    LK = "Sri Lanka"
    LR = "Liberia"
    LS = "Lesotho"
    LT = "Lithuania"
    LU = "Luxembourg"
    LV = "Latvia"
    LY = "Libya"
    MA = "Morocco"
    MC = "Monaco"
    MD = "Moldova, Republic of"
    ME = "Montenegro"
    MF = "Saint Martin (French part)"
    MG = "Madagascar"
    MH = "Marshall Islands"
    MK = "North Macedonia"
    ML = "Mali"
    MM = "Myanmar"
    MN = "Mongolia"
    MO = "Macao"
    MP = "Northern Mariana Islands"
    MQ = "Martinique"
    MR = "Mauritania"
    MS = "Montserrat"
    MT = "Malta"
    MU = "Mauritius"
    MV = "Maldives"
    MW = "Malawi"
    MX = "Mexico"
    MY = "Malaysia"
    MZ = "Mozambique"
    NA = "Namibia"
    NC = "New Caledonia"
    NE = "Niger"
    NF = "Norfolk Island"
    NG = "Nigeria"
    NI = "Nicaragua"
    NL = "Netherlands"
    NO = "Norway"
    NP = "Nepal"
    NR = "Nauru"
    NU = "Niue"
    NZ = "New Zealand"
    OM = "Oman"
    PA = "Panama"
    PE = "Peru"
    PF = "French Polynesia"
    PG = "Papua New Guinea"
    PH = "Philippines"
    PK = "Pakistan"
    PL = "Poland"
    PM = "Saint Pierre and Miquelon"
    PR = "Puerto Rico"
    PS = "Palestine, State of"
    PT = "Portugal"
    PW = "Palau"
    PY = "Paraguay"
    QA = "Qatar"
    RE = "Réunion"
    RO = "Romania"
    RS = "Serbia"
    RU = "Russian Federation"
    RW = "Rwanda"
    SA = "Saudi Arabia"
    SB = "Solomon Islands"
    SC = "Seychelles"
    SD = "Sudan"
    SE = "Sweden"
    SG = "Singapore"
    SI = "Slovenia"
    SK = "Slovakia"
    SL = "Sierra Leone"
    SM = "San Marino"
    SN = "Senegal"
    SO = "Somalia"
    SR = "Suriname"
    SS = "South Sudan"
    ST = "Sao Tome and Principe"
    SV = "El Salvador"
    SX = "Sint Maarten (Dutch part)"
    SY = "Syrian Arab Republic"
    SZ = "Eswatini"
    TC = "Turks and Caicos Islands"
    TD = "Chad"
    TG = "Togo"
    TH = "Thailand"
    TJ = "Tajikistan"
    TK = "Tokelau"
    TL = "Timor-Leste"
    TM = "Turkmenistan"
    TN = "Tunisia"
    TO = "Tonga"
    TR = "Turkey"
    TT = "Trinidad and Tobago"
    TV = "Tuvalu"
    TW = "Taiwan, Province of China"
    TZ = "Tanzania, United Republic of"
    UA = "Ukraine"
    UG = "Uganda"
    US = "United States"
    UY = "Uruguay"
    UZ = "Uzbekistan"
    VA = "Holy See (Vatican City State)"
    VC = "Saint Vincent and the Grenadines"
    VE = "Venezuela, Bolivarian Republic of"
    VG = "Virgin Islands, British"
    VI = "Virgin Islands, U.S."
    VN = "Viet Nam"
    VU = "Vanuatu"
    WF = "Wallis and Futuna"
    WS = "Samoa"
    YE = "Yemen"
    YT = "Mayotte"
    ZA = "South Africa"
    ZM = "Zambia"
    ZW = "Zimbabwe"
