summaryrefslogtreecommitdiff
path: root/hacks/make_db.py
blob: 538bddd7b9d78a2b5987be87ce9d0c06db864707 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
#!/usr/bin/python3

import random
import sqlite3


SCREENS = 2622
AVERAGE_SCREENS_PER_CINEMA = 4


def name(min_len=12, max_len=20):
    return ''.join(random.choices("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ", k=random.randint(min_len, max_len)))

def email():
    return name(4, 8) + "@" + name(5, 10) + ".com"

def certificate():
    return """-----BEGIN CERTIFICATE-----
MIIEZDCCA0ygAwIBAgIBBTANBgkqhkiG9w0BAQsFADB9MRYwFAYDVQQKEw1kY3Bv
bWF0aWMuY29tMRYwFAYDVQQLEw1kY3BvbWF0aWMuY29tMSQwIgYDVQQDExsuZGNw
b21hdGljLnNtcHRlLTQzMC0yLlJPT1QxJTAjBgNVBC4THEhRTDR1ODV6OHFaSjBP
ZWJLbndIWkdSTndFUT0wHhcNMjQxMjIwMTQyMzM3WhcNMzQxMjE4MTQyMzM3WjB9
MRYwFAYDVQQKEw1kY3BvbWF0aWMuY29tMRYwFAYDVQQLEw1kY3BvbWF0aWMuY29t
MSQwIgYDVQQDExsuZGNwb21hdGljLnNtcHRlLTQzMC0yLlJPT1QxJTAjBgNVBC4T
HEhRTDR1ODV6OHFaSjBPZWJLbndIWkdSTndFUT0wggEiMA0GCSqGSIb3DQEBAQUA
A4IBDwAwggEKAoIBAQDGAvpPyIQ8BWBYZqqimNR8tpFMvPFlk+UkB0BlO+mt8rfi
tpkYVxZuvpsRCBqK9pEYvUnybp2bQHJCuG2lvAp1MTvn9t0TyON5w5BXbxyMKg8f
EvEKZvWsgCSupMw7TWvRebYidj7y51XmKF+p4vq9BOyV54MNPGwZWP1UVw6nJMr2
/jw1TR+iURdVYtQKMMc6jQp59EhE2FMpTGAe47LK/gSwZvsiXz9tJIf2xd6IELeA
CZ7D7eMe4TtApbYZofpIdEcOQye+O1Brl3UhsJJOAVrlAN8ya4P6IaSP20kMrFij
vZFfT8CuWXsg68JwiMLWJKFPvvixSPWImZVf8g3NAgMBAAGjge4wgeswEgYDVR0T
AQH/BAgwBgEB/wIBAzALBgNVHQ8EBAMCAQYwHQYDVR0OBBYEFB0C+LvOc/KmSdDn
myp8B2RkTcBEMIGoBgNVHSMEgaAwgZ2AFB0C+LvOc/KmSdDnmyp8B2RkTcBEoYGB
pH8wfTEWMBQGA1UEChMNZGNwb21hdGljLmNvbTEWMBQGA1UECxMNZGNwb21hdGlj
LmNvbTEkMCIGA1UEAxMbLmRjcG9tYXRpYy5zbXB0ZS00MzAtMi5ST09UMSUwIwYD
VQQuExxIUUw0dTg1ejhxWkowT2ViS253SFpHUk53RVE9ggEFMA0GCSqGSIb3DQEB
CwUAA4IBAQCrJuN+Bdzvj9m5MBNYjgCkmuvVQsGMvwQOIm38PN94hbrmxCNMWJTF
r9MYLKT7wqcdKTw9QvW0g5pjbywXdHCSObgDUsON8nOrIzTsX0bUomD+C6Ohga9P
ep/49aw8CH4yypW/0NUKnqz0+JVMOYsz5wOzIdoQpNggToJXfM08W0m2pIrTrR4+
8rMnp3g2WF8Td+NDIiP23M2FJB2/c0WvoaT++TAVTaBxL1mbCHcxeVN0nyWnBskA
WLqdsVYYC3fKvvcP3Kopbyz7qDN2tE4Ei82PtGQ8WwU+Pt7qI8YMEi6HqfCFmBlj
rb1igF89Id53udux1MaUBdeBnQjG+9Aj
-----END CERTIFICATE-----"""


con = sqlite3.connect("test.db")
cur = con.cursor()

cur.execute("CREATE TABLE cinemas (id INTEGER PRIMARY KEY, name TEXT, emails TEXT, notes TEXT, utc_offset_hour INTEGER, utc_offset_minute INTEGER)")
cur.execute("CREATE TABLE screens (id INTEGER PRIMARY KEY, cinema INTEGER, name TEXT, notes TEXT, recipient TEXT, recipient_file TEXT)")
cur.execute("CREATE TABLE trusted_devices (id INTEGER PRIMARY KEY, screen INTEGER, certificate_or_thumbprint TEXT)")

while SCREENS > 0:
    cur.execute(
        "INSERT INTO cinemas (name, emails, notes, utc_offset_hour, utc_offset_minute) VALUES (?, ?, ?, ?, ?)",
        (name(), email(), "", 0, 0)
    )

    cinema_id = cur.lastrowid

    for i in range(0, AVERAGE_SCREENS_PER_CINEMA + random.randint(-2, 2)):
        cur.execute(
            "INSERT INTO screens (cinema, name, notes, recipient, recipient_file) VALUES(?, ?, ?, ?, ?)",
            (cinema_id, name(), "", certificate(), "")
        )
        SCREENS -= 1

con.commit()
con.close()