2014-05-04 19:26:43 +02:00
|
|
|
# -*- coding: utf-8 -*-
|
|
|
|
|
|
|
|
import json
|
|
|
|
import os
|
|
|
|
|
2016-01-05 21:44:57 +05:30
|
|
|
from oml.pdict import pdict
|
|
|
|
from oml.utils import get_user_id
|
2019-01-15 14:08:42 +05:30
|
|
|
from oml import fulltext
|
2014-05-04 19:26:43 +02:00
|
|
|
|
|
|
|
base_dir = os.path.normpath(os.path.join(os.path.abspath(os.path.dirname(__file__)), '..'))
|
|
|
|
static_path = os.path.join(base_dir, 'static')
|
2014-08-05 11:47:16 +02:00
|
|
|
updates_path = os.path.normpath(os.path.join(base_dir, '..', 'updates'))
|
2014-05-04 19:26:43 +02:00
|
|
|
|
2016-01-18 12:04:20 +05:30
|
|
|
oml_data_path = os.path.join(base_dir, 'config.json')
|
2014-05-04 19:26:43 +02:00
|
|
|
|
|
|
|
|
2016-01-18 12:04:20 +05:30
|
|
|
data_path = os.path.normpath(os.path.join(base_dir, '..', 'data'))
|
|
|
|
if not os.path.exists(data_path):
|
|
|
|
config_path = os.path.normpath(os.path.join(base_dir, '..', 'config'))
|
|
|
|
if os.path.exists(config_path):
|
|
|
|
data_path = config_path
|
|
|
|
else:
|
|
|
|
os.makedirs(data_path)
|
2014-05-04 19:26:43 +02:00
|
|
|
|
2016-01-18 12:04:20 +05:30
|
|
|
db_path = os.path.join(data_path, 'data.db')
|
|
|
|
log_path = os.path.join(data_path, 'debug.log')
|
2014-05-04 19:26:43 +02:00
|
|
|
|
2024-06-08 12:39:27 +01:00
|
|
|
ca_key_path = os.path.join(data_path, 'node.ca.key')
|
|
|
|
ca_cert_path = os.path.join(data_path, 'node.ca.crt')
|
|
|
|
ssl_cert_path = os.path.join(data_path, 'node.tls.crt')
|
|
|
|
ssl_key_path = os.path.join(data_path, 'node.tls.key')
|
2016-01-18 12:04:20 +05:30
|
|
|
|
|
|
|
if os.path.exists(oml_data_path):
|
|
|
|
with open(oml_data_path) as fd:
|
2014-05-04 19:26:43 +02:00
|
|
|
config = json.load(fd)
|
|
|
|
else:
|
|
|
|
config = {}
|
|
|
|
|
2016-01-18 12:04:20 +05:30
|
|
|
preferences = pdict(os.path.join(data_path, 'preferences.json'), config['user']['preferences'])
|
|
|
|
ui = pdict(os.path.join(data_path, 'ui.json'), config['user']['ui'])
|
2014-05-04 19:26:43 +02:00
|
|
|
|
2016-01-18 12:04:20 +05:30
|
|
|
server = pdict(os.path.join(data_path, 'server.json'))
|
2014-05-04 19:26:43 +02:00
|
|
|
server_defaults = {
|
|
|
|
'port': 9842,
|
2015-02-22 16:53:06 +05:30
|
|
|
'address': '127.0.0.1',
|
2014-05-04 19:26:43 +02:00
|
|
|
'node_port': 9851,
|
2019-01-17 16:00:22 +05:30
|
|
|
'public_address': '127.0.0.1',
|
|
|
|
'public_port': 9852,
|
2014-05-12 14:57:47 +02:00
|
|
|
'node_address': '',
|
2014-05-04 19:26:43 +02:00
|
|
|
'extract_text': True,
|
2014-05-15 01:28:49 +02:00
|
|
|
'localnode_discovery': True,
|
2019-01-20 16:46:58 +05:30
|
|
|
'release_url': 'https://downloads.openmedialibrary.com/release.json',
|
2016-02-10 19:32:32 +05:30
|
|
|
'pull_interval': 60000
|
2014-05-04 19:26:43 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
for key in server_defaults:
|
|
|
|
if key not in server:
|
|
|
|
server[key] = server_defaults[key]
|
|
|
|
|
2016-01-18 12:04:20 +05:30
|
|
|
release = pdict(os.path.join(data_path, 'release.json'))
|
2014-05-04 19:26:43 +02:00
|
|
|
|
2024-06-08 12:39:27 +01:00
|
|
|
USER_ID = get_user_id(ssl_key_path, ssl_cert_path, ca_key_path, ca_cert_path)
|
2015-11-26 01:26:10 +01:00
|
|
|
|
2017-06-03 22:50:14 +02:00
|
|
|
OML_UPDATE_KEY = 'K55EZpPYbP3X+3mA66cztlw1sSaUMqGwfTDKQyP2qOU'
|
|
|
|
OML_UPDATE_CERT = '''-----BEGIN CERTIFICATE-----
|
2016-01-18 19:36:21 +05:30
|
|
|
MIICgzCCAeygAwIBAgIBATANBgkqhkiG9w0BAQsFADAbMRkwFwYDVQQDDBBqc2pt
|
|
|
|
Z2J4ZjJvZGN6NGNxMB4XDTE1MTEyMzIwMzY1NFoXDTE1MTEyNDIwMzY1NFowGzEZ
|
|
|
|
MBcGA1UEAwwQanNqbWdieGYyb2RjejRjcTCBnzANBgkqhkiG9w0BAQEFAAOBjQAw
|
|
|
|
gYkCgYEAuUGGJPqtGaunUSWnnW6FO9WtMZUQkhjewlvZqFE8uQVcgeXVVmarpwjc
|
|
|
|
E/xFPYtDF5083jJs0UfCcJLpvWT5Y4pW8OCMmQl2JCxBiWsPTIYFtEizPbiZtMBs
|
|
|
|
xlEBmZRyB1mO/jSZ2ECmKf6yn2CJ4lY67Jlxy5/I963GZ9ZcHdECAwEAAaOB1jCB
|
|
|
|
0zASBgNVHRMBAf8ECDAGAQH/AgEAMBQGCWCGSAGG+EIBAQEB/wQEAwICBDB7BgNV
|
|
|
|
HSUBAf8EcTBvBggrBgEFBQcDAQYIKwYBBQUHAwIGCCsGAQUFBwMEBggrBgEFBQcD
|
|
|
|
CAYKKwYBBAGCNwIBFQYKKwYBBAGCNwIBFgYKKwYBBAGCNwoDAQYKKwYBBAGCNwoD
|
|
|
|
AwYKKwYBBAGCNwoDBAYJYIZIAYb4QgQBMAsGA1UdDwQEAwIBBjAdBgNVHQ4EFgQU
|
|
|
|
TJLDBuXThizwUMavAjjcm1mPu74wDQYJKoZIhvcNAQELBQADgYEAEyn9zfdrv7w9
|
|
|
|
GV47SOE+jJFhrSHsKGf0mKC1JDOJz1l9J1IYSnM7s8BcTBPpum2CJtc6braThH46
|
|
|
|
qvg7wm/8HUkrHouawZFudwTCGQEuUpe5AEQHGiBkBWiRwR9MIkfqE3aesrhDswb6
|
|
|
|
vZVVahubX7tZ0O1zUuCpn6E0uzh1aqg=
|
|
|
|
-----END CERTIFICATE-----'''
|
2014-05-04 19:26:43 +02:00
|
|
|
|
|
|
|
if 'modules' in release and 'openmedialibrary' in release['modules']:
|
2014-05-22 00:41:29 +02:00
|
|
|
MINOR_VERSION = release['modules']['openmedialibrary']['version']
|
2014-05-04 19:26:43 +02:00
|
|
|
else:
|
2014-05-22 00:41:29 +02:00
|
|
|
MINOR_VERSION = 'git'
|
|
|
|
|
2019-02-10 17:46:35 +05:30
|
|
|
NODE_PROTOCOL = "0.9"
|
2017-06-03 22:50:14 +02:00
|
|
|
VERSION = "%s.%s" % (NODE_PROTOCOL, MINOR_VERSION)
|
2014-05-22 00:41:29 +02:00
|
|
|
|
2014-05-04 19:26:43 +02:00
|
|
|
USER_AGENT = 'OpenMediaLibrary/%s' % VERSION
|
2015-11-29 17:07:01 +01:00
|
|
|
|
|
|
|
DEBUG_HTTP = server.get('debug_http', False)
|
2017-06-14 13:08:22 +02:00
|
|
|
DEBUG_API = server.get('debug_api', False)
|
2016-01-12 20:30:51 +05:30
|
|
|
|
2019-01-15 14:08:42 +05:30
|
|
|
FULLTEXT_SUPPORT = fulltext.platform_supported()
|
|
|
|
|
|
|
|
if not FULLTEXT_SUPPORT:
|
|
|
|
config['itemKeys'] = [k for k in config['itemKeys'] if k['id'] != 'fulltext']
|
|
|
|
|
2019-02-23 17:11:50 +05:30
|
|
|
DB_VERSION = 20
|
2024-06-08 12:39:27 +01:00
|
|
|
|
|
|
|
ID_LENGTH = 56
|