Compare commits

...

8 commits

10 changed files with 52 additions and 50 deletions

View file

@ -9,7 +9,7 @@ import asyncpg
from utils.load_config import load_config from utils.load_config import load_config
config = load_config('config.yaml') config = load_config('config.hjson')
async def create_pool() -> asyncpg.pool.Pool: async def create_pool() -> asyncpg.pool.Pool:
""" """

View file

@ -16,7 +16,7 @@ from routes import get_chart, get_chart_period
from utils.load_config import load_config from utils.load_config import load_config
app = FastAPI() app = FastAPI()
config = load_config('config.yaml') config = load_config('config.hjson')
if not os.path.exists('../charts'): if not os.path.exists('../charts'):
os.mkdir('../charts') os.mkdir('../charts')
@ -35,10 +35,10 @@ if __name__ == '__main__':
port=3030, port=3030,
ssl_keyfile= ssl_keyfile=
config['server']['ssl']['private_key'] config['server']['ssl']['private_key']
if config['server']['ssl']['work'] if config['server']['ssl']['enabled']
else None, else None,
ssl_certfile= ssl_certfile=
config['server']['ssl']['cert'] config['server']['ssl']['cert']
if config['server']['ssl']['work'] if config['server']['ssl']['enabled']
else None else None
) )

View file

@ -9,7 +9,7 @@ from user_agents import parse as ua_parse
from utils.load_config import load_config from utils.load_config import load_config
config = load_config('config.yaml') config = load_config('config.hjson')
# pylint: disable=too-few-public-methods # pylint: disable=too-few-public-methods
class PlausibleAnalytics: class PlausibleAnalytics:
@ -23,7 +23,7 @@ class PlausibleAnalytics:
async def __call__(self, request, call_next): async def __call__(self, request, call_next):
response = await call_next(request) response = await call_next(request)
if HTTPStatus(response.status_code).is_client_error or not config['analytics']['work']: if HTTPStatus(response.status_code).is_client_error or not config['analytics']['enabled']:
return response return response
user_agent = request.headers.get('user-agent', 'unknown') user_agent = request.headers.get('user-agent', 'unknown')

View file

@ -1,5 +1,5 @@
matplotlib~=3.9.1 matplotlib~=3.9.1
PyYAML~=6.0.1 hjson~=3.1.0
uvicorn~=0.29.0 uvicorn~=0.29.0
fastapi[standard]~=0.115.2 fastapi[standard]~=0.115.2
starlette~=0.40.0 starlette~=0.40.0

View file

@ -1,20 +1,20 @@
# pylint: disable=R0801
""" """
This module provides a function for loading a YAML configuration file. Parsing and converting HJSON config to JSON
The function reads the file content and returns it as a Python dictionary.
""" """
import yaml import hjson
import json
def load_config(file_path: str) -> dict: def load_config(file_path: str) -> dict:
""" """
Loads a YAML configuration file and returns its contents as a dictionary. Load an HJSON file, convert it to a JSON string with indentation,
and return it.
This function opens the specified YAML file, parses its content, and params: file_path (str): The path to the HJSON file.
returns it in dictionary format, making it accessible for use in
the application.
:param file_path: The path to the YAML configuration file to be loaded. returns str: The JSON string formatted with indentation.
:return: A dictionary containing the parsed content of the YAML file.
""" """
with open(file_path, 'r', encoding='utf-8') as file: with open(file_path, 'r', encoding='utf-8') as file:
return yaml.safe_load(file) hjson_data = hjson.load(file)
return json.loads(
json.dumps(hjson_data, indent=4)
)

View file

@ -24,7 +24,7 @@ services:
- '3000:3000' - '3000:3000'
volumes: volumes:
- './CertSSL:/CertSSL' - './CertSSL:/CertSSL'
- './config.yaml:/config.yaml' - './config.hjson:/config.hjson'
depends_on: depends_on:
- postgres - postgres
@ -36,7 +36,7 @@ services:
- '3030:3030' - '3030:3030'
volumes: volumes:
- './CertSSL:/CertSSL' - './CertSSL:/CertSSL'
- './config.yaml:/config.yaml' - './config.hjson:/config.hjson'
depends_on: depends_on:
postgres: postgres:
condition: service_healthy condition: service_healthy
@ -50,7 +50,7 @@ services:
- '3050:3050' - '3050:3050'
volumes: volumes:
- './CertSSL:/CertSSL' - './CertSSL:/CertSSL'
- './config.yaml:/config.yaml' - './config.hjson:/config.hjson'
docs: docs:
build: build:
@ -63,7 +63,7 @@ services:
dockerfile: Dockerfile-collect-currency dockerfile: Dockerfile-collect-currency
restart: unless-stopped restart: unless-stopped
volumes: volumes:
- './config.yaml:/config.yaml' - './config.hjson:/config.hjson'
depends_on: depends_on:
- postgres - postgres

View file

@ -9,19 +9,16 @@
"version": "1.0.0", "version": "1.0.0",
"license": "GPL-3.0-or-later", "license": "GPL-3.0-or-later",
"dependencies": { "dependencies": {
"yaml": "^2.5.0" "hjson": "^3.2.2"
} }
}, },
"node_modules/yaml": { "node_modules/hjson": {
"version": "2.5.0", "version": "3.2.2",
"resolved": "https://registry.npmjs.org/yaml/-/yaml-2.5.0.tgz", "resolved": "https://registry.npmjs.org/hjson/-/hjson-3.2.2.tgz",
"integrity": "sha512-2wWLbGbYDiSqqIKoPjar3MPgB94ErzCtrNE1FdqGuaO0pi2JGjmE8aW8TDZwzU7vuxcGRdL/4gPQwQ7hD5AMSw==", "integrity": "sha512-MkUeB0cTIlppeSsndgESkfFD21T2nXPRaBStLtf3cAYA2bVEFdXlodZB0TukwZiobPD1Ksax5DK4RTZeaXCI3Q==",
"license": "ISC", "license": "MIT",
"bin": { "bin": {
"yaml": "bin.mjs" "hjson": "bin/hjson"
},
"engines": {
"node": ">= 14"
} }
} }
} }

View file

@ -17,6 +17,6 @@
"homepage": "https://github.com/Redume/Kekkai#readme", "homepage": "https://github.com/Redume/Kekkai#readme",
"description": "Config management service", "description": "Config management service",
"dependencies": { "dependencies": {
"yaml": "^2.5.0" "hjson": "^3.2.2"
} }
} }

View file

@ -1,10 +1,10 @@
const fs = require('fs'); const fs = require('fs');
const yaml = require('yaml'); const hjson = require('hjson');
const config = () => { const config = () => {
if (!fs.existsSync('../config.yaml')) return; if (!fs.existsSync('../config.hjson')) throw new Error('Config not found');
return yaml.parse(fs.readFileSync('../config.yaml', 'utf-8')); return hjson.parse(fs.readFileSync('../config.hjson', 'utf-8'));
}; };
module.exports = config; module.exports = config;

View file

@ -1,18 +1,24 @@
const logger = require("../shared/logger"); const logger = require('../shared/logger');
const config = require("../shared/config/src/main.js")(); const config = require('../shared/config/src/main.js')();
const fs = require("fs"); const fs = require('fs');
const path = require("node:path"); const path = require('node:path');
const fastify = require("fastify")({ const fastify = require('fastify')({
logger: config["server"]["log"]["print"] ? logger : false, logger: config['server']['log']['level'] !== 'none' ? logger : false,
...(config["server"]["ssl"]["work"] ...(config['server']['ssl']['enabled']
? { ? {
https: { https: {
key: fs.readFileSync(config["server"]["ssl"]["private_key"], "utf8"), key: fs.readFileSync(
cert: fs.readFileSync(config["server"]["ssl"]["cert"], "utf8"), config['server']['ssl']['private_key'],
}, 'utf8',
} ),
cert: fs.readFileSync(
config['server']['ssl']['cert'],
'utf8',
),
},
}
: false), : false),
}); });
@ -23,11 +29,10 @@ fastify.register(require('@fastify/static'), {
fastify.register(require('./routes/home.js')); fastify.register(require('./routes/home.js'));
fastify.listen( fastify.listen(
{ {
port: 3050, port: 3050,
host: config["server"]["host"] ? config["server"]["host"] : "localhost", host: config['server']['host'] ? config['server']['host'] : 'localhost',
}, },
(err) => { (err) => {
if (err) { if (err) {