aboutsummaryrefslogtreecommitdiff
path: root/src/templates.py
blob: 8125f69a49ca36136c26bdec94a9a42019afda44 (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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
import html
import datetime

page: str = '''
    <!doctype html>
    <html lang="fr">
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width">

    <title>Files</title>
    <link rel="stylesheet" href="/static/main.css">
    <script src="/static/main.js"></script>

    <a href="/">
        <h1>Files</h1>
    </a>
'''

pub index: str = f'''
    {page}

    <form>
        <label>
            File
            <input type="file" name="file" required>
        </label>

        <label>
            Expiration
            <select name="expiration">
                <option value="1">1 day</option>
                <option value="2">2 days</option>
                <option value="3">3 days</option>
                <option value="4">4 days</option>
                <option value="5">5 days</option>
                <option value="6">6 days</option>
                <option value="7" selected>7 days</option>
                <option value="8">8 days</option>
                <option value="9">9 days</option>
                <option value="10">10 days</option>
                <option value="11">11 days</option>
                <option value="12">12 days</option>
                <option value="13">13 days</option>
                <option value="14">14 days</option>
                <option value="15">15 days</option>
                <option value="16">16 days</option>
                <option value="17">17 days</option>
                <option value="18">18 days</option>
                <option value="19">19 days</option>
                <option value="20">20 days</option>
                <option value="21">21 days</option>
                <option value="22">22 days</option>
                <option value="23">23 days</option>
                <option value="24">24 days</option>
                <option value="25">25 days</option>
                <option value="26">26 days</option>
                <option value="27">27 days</option>
                <option value="28">28 days</option>
                <option value="29">29 days</option>
                <option value="30">30 days</option>
                <option value="31">31 days</option>
            </select>
        </label>

        <label>
            Key
            <input type="password" name="key" required>
        </label>

        <div class="g-Loading">
            <div class="g-Spinner"></div>
            Uploading…
        </div>

        <div class="g-Error">
        </div>

        <input type="submit" value="Upload">
    </form>
'''

def file_page(file_id: str, filename: str, expires: str) -> str:
    href = f'{file_id}/download'
    expires_in = datetime.datetime.strptime(expires, '%Y-%m-%d %H:%M:%S') - datetime.datetime.now()

    print()
    print(href)
    print()

    return f'''
        {page}

        <div>
            <a class="g-Link" href="{html.escape(href)}">{html.escape(filename)}</a>
            <div>
                Expires in {expires_in}
            </div>
        </div>
    '''

not_found: str = f'''
    {page}

    Oops, not found!
'''