# SPDX-License-Identifier: AGPL-3.0-or-later

"""
Miscellaneous data that were found useful
"""

# This file is part of Haketilo.
#
# Copyright (C) 2021 jahoti <jahoti@tilde.team>
# Copyright (C) 2021 Wojtek Kosior <koszko@koszko.org>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program.  If not, see <https://www.gnu.org/licenses/>.
#
#
# I, Wojtek Kosior, thereby promise not to sue for violation of this
# file's license. Although I request that you do not make use of this code
# in a proprietary program, I am not going to enforce this in court.

import re
from pathlib import Path

here = Path(__file__).resolve().parent
proj_root = here.parent.parent
awk_script_name = 'compute_scripts.awk'

unit_test_defines = ['-D', 'MOZILLA', '-D', 'MV2', '-D', 'TEST',
                     '-D', 'UNIT_TEST', '-D', 'DEBUG']

conf_line_regex = re.compile(r'^([^=]+) = (.*)$')
conf_settings = {}
with open(Path.cwd() / 'record.conf', 'rt') as conf:
    for line in conf.readlines():
        match = conf_line_regex.match(line)
        if match:
            conf_settings[match.group(1).strip()] = match.group(2)

default_proxy_host = '127.0.0.1'

default_cert_dir = Path.cwd() / 'certs'

default_extension_uuid = 'a1291446-be95-48ad-a4c6-a475e389399b'
default_haketilo_id = '{6fe13369-88e9-440f-b837-5012fb3bedec}'

mime_types = {
	"7z": "application/x-7z-compressed",	"oga": "audio/ogg",
	"abw": "application/x-abiword",		"ogv": "video/ogg",
	"arc": "application/x-freearc",		"ogx": "application/ogg",
	"bin": "application/octet-stream",	"opus": "audio/opus",
	"bz": "application/x-bzip",		"otf": "font/otf",
	"bz2": "application/x-bzip2",		"pdf": "application/pdf",
	"css": "text/css",			"png": "image/png",
	"csv": "text/csv",			"sh": "application/x-sh",
	"gif": "image/gif",			"svg": "image/svg+xml",
	"gz": "application/gzip",		"tar": "application/x-tar",
	"htm": "text/html",			"ts": "video/mp2t",
	"html": "text/html",			"ttf": "font/ttf",
	"ico": "image/vnd.microsoft.icon",	"txt": "text/plain",
	"js": "text/javascript",		"wav": "audio/wav",
	"jpeg": "image/jpeg",			"weba": "audio/webm",
	"jpg": "image/jpeg",			"webm": "video/webm",
	"json": "application/json",		"woff": "font/woff",
	"mjs": "text/javascript",		"woff2": "font/woff2",
	"mp3": "audio/mpeg",			"xhtml": "application/xhtml+xml",
	"mp4": "video/mp4",			"zip": "application/zip",
	"mpeg": "video/mpeg",
	"odp": "application/vnd.oasis.opendocument.presentation",
	"ods": "application/vnd.oasis.opendocument.spreadsheet",
	"odt": "application/vnd.oasis.opendocument.text",
	"xml": "application/xml" # text/xml if readable from casual users
}