Exemplo n.º 1
0
def main() -> None:
    def shutdown(sig: int, frame_type: FrameType | None) -> None:
        if conn.websocket is not None and conn.loop is not None:
            for task in asyncio.all_tasks(conn.loop):
                task.cancel()
            coro = conn.websocket.close()
            asyncio.run_coroutine_threadsafe(coro, conn.loop)

    env = Env()
    env.read_env()

    conn = Connection(
        url=(("wss" if env("SHOWDOWN_PORT") == "443" else "ws") + "://" +
             env("SHOWDOWN_HOST") + ":" + env("SHOWDOWN_PORT") +
             "/showdown/websocket"),
        username=env("USERNAME"),
        password=env("PASSWORD"),
        avatar=env("AVATAR", ""),
        statustext=env("STATUSTEXT", ""),
        rooms=env.list("ROOMS", []),
        main_room=env("MAIN_ROOM"),
        command_character=env("COMMAND_CHARACTER"),
        administrators=env.list("ADMINISTRATORS", []),
        webhooks=env.dict("WEBHOOKS", {}),
    )

    signal.signal(signal.SIGINT, shutdown)

    conn.open_connection()
Exemplo n.º 2
0
def _load_app_options(env: Env):
    from octokit.utils import get_json_data as octokit_get_json_data

    global APP_NAME, APP_DESCRIPTION, APP_ORGANIZATION, APP_PUBLIC
    global APP_DEFAULT_EVENTS, APP_DEFAULT_PERMISSIONS

    valid_events = octokit_get_json_data("events.json")

    with env.prefixed("APP_"):
        APP_NAME = env.str("NAME", "gh-app")
        APP_DESCRIPTION = env.str("DESCRIPTION", "")
        APP_ORGANIZATION = env.str("ORGANIZATION", None)
        APP_PUBLIC = env.bool("PUBLIC", True)
        with env.prefixed("DEFAULT_"):
            APP_DEFAULT_EVENTS = env.list("EVENTS",
                                          "push",
                                          validate=ContainsOnly(valid_events))
            APP_DEFAULT_PERMISSIONS = env.dict("PERMISSIONS", "metadata=read")
Exemplo n.º 3
0
from environs import Env

env = Env()
env.read_env()

TOKEN = env("TOKEN")
URL = env("URL")
LOGIN_PAGE = "login/index.php"

MOODLE_USERNAME = env("MOODLE_USERNAME")
MOODLE_PASSWORD = env("MOODLE_PASSWORD")

# List of names of students to not grade
STUDENTS_TO_IGNORE = env.dict("STUDENTS_TO_IGNORE", subcast_key=int, default={})
Exemplo n.º 4
0
LAUNCH_INTERVAL = {"action": 60, "refresh": 1}

# ---------------------------------------------------
# TODO (√)Redis Cluster Configuration(SSH-BASE)
# 若您不知道如何配置Redis远程连接,请自行搜索或↓
# https://shimo.im/docs/5bqnroJYDbU4rGqy/
# ---------------------------------------------------
REDIS_GENERAL_DR = env.bool("REDIS_GENERAL_DR", True)
REDIS_GENERAL_DB = env.int("REDIS_GENERAL_DB", 0)

# TODO (√)Settings of the Master-Redis responsible for leading the workflow
REDIS_MASTER = env.dict(
    "REDIS_MASTER",
    {
        "host": "",
        "password": "",
        "port": 6379,
        "db": 0,
    },
)
# TODO (*)Setting of the Slave-Redis responsible for data disaster tolerance(DDT)
REDIS_SLAVER_DDT = env.dict(
    "REDIS_SLAVER_DDT",
    {
        # If you do not have extra servers, please use stand-alone backup
        # 'host': REDIS_MASTER['host'],
        # 'db': REDIS_MASTER['db'] + 1,
        "host": "",
        "password": "",
        "port": 6379,
        "db": 0,
Exemplo n.º 5
0
# ---------------------------------------------------
DEPLOY_CRONTAB = 60

# ---------------------------------------------------
# TODO (√)Redis Cluster Configuration(SSH-BASE)
# 若您不知道如何配置Redis远程连接,请自行搜索或↓
# https://shimo.im/docs/5bqnroJYDbU4rGqy/
# ---------------------------------------------------

REDIS_GENERAL_DR = env.bool('REDIS_GENERAL_DR', True)
REDIS_GENERAL_DB = env.int('REDIS_GENERAL_DB', 0)

# TODO (√)Settings of the Master-Redis responsible for leading the workflow
REDIS_MASTER = env.dict("REDIS_MASTER", {
    'host': '',
    'password': '',
    'port': 6379,
    'db': 0,
})
# TODO (*)Setting of the Slave-Redis responsible for data disaster tolerance(DDT)
REDIS_SLAVER_DDT = env.dict(
    "REDIS_SLAVER_DDT",
    {
        # If you do not have extra servers, please use stand-alone backup
        'host': REDIS_MASTER['host'],
        'db': REDIS_MASTER['db'] + 1,
        'password': '',
        'port': 6379,
        # 'host': '',
        # 'db': 0,
    })
Exemplo n.º 6
0
_OTEL_EXPORTER_OTLP_SPAN_ENDPOINT = _env.str(
    "OTEL_EXPORTER_OTLP_SPAN_ENDPOINT",
    _DEFAULT_OTEL_EXPORTER_OTLP_SPAN_ENDPOINT,
)
_OTEL_EXPORTER_OTLP_METRIC_ENDPOINT = _env.str(
    "OTEL_EXPORTER_OTLP_METRIC_ENDPOINT",
    _DEFAULT_OTEL_EXPORTER_OTLP_METRIC_ENDPOINT,
)
_LS_SERVICE_NAME = _env.str("LS_SERVICE_NAME", None)
_LS_SERVICE_VERSION = _env.str("LS_SERVICE_VERSION", "unknown")
_OTEL_PROPAGATORS = _env.list("OTEL_PROPAGATORS", ["b3"])
_OTEL_RESOURCE_LABELS = _env.dict(
    "OTEL_RESOURCE_LABELS",
    {
        "service.name": _LS_SERVICE_NAME,
        "service.version": _LS_SERVICE_VERSION,
        "telemetry.sdk.language": "python",
        "telemetry.sdk.version": __version__,
    },
)
_OTEL_LOG_LEVEL = _env.int("OTEL_LOG_LEVEL", DEBUG)
_OTEL_EXPORTER_OTLP_SPAN_INSECURE = _env.bool(
    "OTEL_EXPORTER_OTLP_SPAN_INSECURE", False
)
_OTEL_EXPORTER_OTLP_METRIC_INSECURE = _env.bool(
    "OTEL_EXPORTER_OTLP_METRIC_INSECURE", False
)

_logger = getLogger(__name__)

Exemplo n.º 7
0
    {
        "NAME":
        "authentication_service.password_validation.DiversityValidator",
    },
]

AUTHENTICATION_BACKENDS = [
    "authentication_service.backends.GirlEffectAuthBackend"
]

DATABASES = {
    "default":
    env.dict(
        "DB_DEFAULT", "ENGINE=django.db.backends.postgresql,"
        "NAME=authentication_service,"
        "USER=authentication_service,"
        "PASSWORD=password,"
        "HOST=127.0.0.1,"
        "PORT=5432")
}

INSTALLED_APPS = list(INSTALLED_APPS)

ADDITIONAL_APPS = [
    "layers",
    # Open ID prodiver.
    "oidc_provider",

    # Two factor auth apps.
    "django_otp",
    "django_otp.plugins.otp_static",
Exemplo n.º 8
0
BASICAUTH_ENABLED = False

# Google Tag Manager (dev/test instance)
GTM_ID = 'GTM-NJLR7LT'


def show_toolbar(request):
    return ENVIRONMENT in ['localdev', 'dev', 'minishift']


DEBUG_TOOLBAR_CONFIG = {
    'SHOW_TOOLBAR_CALLBACK': show_toolbar,
    'SHOW_COLLAPSED': True,
}

SECURE_BROWSER_XSS_FILTER = True

LOGOUT_URL = '/accounts/logout/'

# CLAMAV settings

# eFiling Hub settings
EFILING_HUB_TOKEN_BASE_URL = env('EFILING_HUB_TOKEN_BASE_URL', 'https://efiling.gov.bc.ca')
EFILING_HUB_REALM = env('EFILING_HUB_REALM', 'abc')
EFILING_HUB_CLIENT_ID = env('EFILING_HUB_CLIENT_ID', 'abc')
EFILING_HUB_CLIENT_SECRET = env('EFILING_HUB_CLIENT_SECRET', 'abc')
EFILING_HUB_API_BASE_URL = env('EFILING_HUB_API_BASE_URL', 'https://efiling.gov.bc.ca')

EFILING_BCEID = env.dict('EFILING_BCEID', '', subcast=str)
Exemplo n.º 9
0
GERAPY_PYPPETEER_HEADLESS = True

LOG_LEVEL = 'DEBUG'

SCHEDULER = "gerapy_rabbitmq.scheduler.Scheduler"

DUPEFILTER_CLASS = "gerapy_redis.dupefilter.RFPDupeFilter"

SCHEDULER_DUPEFILTER_KEY = '%(spider)s:dupefilter'

SCHEDULER_PERSIST = True

REDIS_URL = env.str('REDIS_URL', 'redis://@localhost:6379')

DUPEFILTER_DEBUG = True

DOWNLOAD_TIMEOUT = 10

SCHEDULER_FLUSH_ON_START = True

# SCHEDULER_PRE_ENQUEUE_ALL_START_REQUESTS = True

RABBITMQ_CONNECTION_PARAMETERS = env.dict('RABBITMQ_CONNECTION_PARAMETERS',
                                          'host=localhost')

SCHEDULER_QUEUE_DURABLE = False
SCHEDULER_QUEUE_MAX_PRIORITY = 110
SCHEDULER_QUEUE_PRIORITY_OFFSET = 15
SCHEDULER_QUEUE_FORCE_FLUSH = True
Exemplo n.º 10
0
# Dict of conversations IDs followed by regex to match agains repository names
default_conversations = {
    CHAT_ID_RAZGRIZONE: '.*',
    CHAT_ID_IMESEC_CORE: '.*',
    CHAT_ID_R0ZBOT: '.*'
}


def __conversation_subcast(s: str):
    try:
        return int(s)
    except:
        return s


CONVERSATIONS = env.dict('CONVERSATIONS',
                         default_conversations,
                         subcast=__conversation_subcast)

HEALTHCHECK_SERVICES = {
    'lightning-hacks Website': 'https://lh.imesec.ime.usp.br',
    'lightning-hacks API': 'https://api.lh.imesec.ime.usp.br/hacks',
    'lightning-hacks Timer': 'https://timer.imesec.ime.usp.br',
    'IMEsec wiki': 'https://wiki.imesec.ime.usp.br',
    'IMEsec Website': 'https://imesec.ime.usp.br'
}

HEALTHCHECK_SLEEP_AMOUNT = 2 * 60
HEALTHCHECK_ANOMALY_THRESHOLD = 3
Exemplo n.º 11
0
# Nginx映射路径
if "linux" in platform:
    NGINX_SUBSCRIBE = env.str("NGINX_SUBSCRIBE",
                              "/usr/share/nginx/html/subscribe/{}.txt")
else:
    NGINX_SUBSCRIBE = env.str("NGINX_SUBSCRIBE",
                              join(SERVER_DIR_DATABASE_CACHE, "{}.txt"))

# ---------------------------------------------------
# 路由接口
# ---------------------------------------------------
ROUTE_API = env.dict(
    "ROUTE_API",
    {
        "capture_subscribe": "/v2raycs/api/capture_subscribe",
        "version_manager": "/v2raycs/api/version_manager",
        "get_subs_num": "/v2raycs/api/get_sbus_num"
    },
)
# ---------------------------------------------------
# 任务队列
# ---------------------------------------------------
SEQ_TEST = env.dict(
    "SEQ_TEST",
    {
        "v2ray": True,
        "ssr": True,
        "trojan": False,
    },
)
CRAWLER_SEQUENCE = env.list("CRAWLER_SEQUENCE",
Exemplo n.º 12
0
BROWSER_TYPE = env.str('BROWSER_TYPE', 'Chrome')

# definition of chrome driver path
CHROME_DRIVER_PATH = env.str(
    'CHROME_DRIVER_PATH',
    'C:\\Program Files (x86)\\Google\\Chrome\\Application\\chromedriver.exe')

# definition of api
API_HOST = env.str('API_HOST', '0.0.0.0')
API_PORT = env.int('API_PORT', 5000)
API_THREADED = env.bool('API_THREADED', True)

# definition of generator class, if extends other website, conf in this
GENERATOR_MAP = env.dict(
    'GENERATOR_MAP',
    {
        # 'weibo': 'WeiboCookiesGenerator',
        'youyuan': 'YouYuanCookiesGenerator'
    })

# definition of test class, if extends other website, conf in this
TESTER_MAP = env.dict(
    'TESTER_MAP',
    {
        # 'weibo': 'WeiboValidTester',
        'youyuan': 'YouYuanValidTester'
    })

# definition of test_url map,  if extends other website, conf in this
TEST_URL_MAP = env.dict(
    'TEST_URL_MAP',
    {