aboutsummaryrefslogtreecommitdiff
# 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 this code
# in a proprietary program, I am not going to enforce this in court.

from pathlib import Path

here = Path(__file__).resolve().parent

default_firefox_binary = '/usr/lib/icecat/icecat'
# The browser might be loading some globally-installed add-ons by default. They
# could interfere with the tests, so we'll disable all of them.
default_clean_profile_dir = here / 'default_profile' / 'icecat_empty'

default_proxy_host = '127.0.0.1'
default_proxy_port = 1337

default_cert_dir = here / 'certs'

# Use user-specified values instead where available
try:
	with open('testing.conf') as f:
		option = f.readline()
		while ' ' in option:
			key, value = option[:-1].split(' ', maxsplit=1)
			if key == 'BINARY':
				default_firefox_binary = value
			
			elif key == 'TEST_PROFILE':
				default_clean_profile_dir = Path(value)
			
			elif key == 'TEST_PORT':
				default_proxy_port = int(value)
			
			elif key == 'CERT_DIR':
				default_cert_dir = Path(value)
			
			else:
				raise KeyError(key)
			
			option = f.readline()
except FileNotFoundError:
	# There may be no defaults overridden; that's OK!
	pass

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
}