-
Notifications
You must be signed in to change notification settings - Fork 0
/
rename_to_configs.py
executable file
·122 lines (107 loc) · 6.78 KB
/
rename_to_configs.py
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
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
import os
from datetime import timedelta
from typing import NamedTuple
from utils import make_path
class CONSTS(NamedTuple):
TESTING = True
REVERSE_PROXY = False
PERMANENT_SESSION_LIFETIME = timedelta(days=4)
DATABASE_FILE = "hollowlink.db"
SQLALCHEMY_DATABASE_URI = "sqlite:////" + make_path(DATABASE_FILE)
SQLALCHEMY_ECHO = False
MAX_CONTENT_LENGTH = 16 * 1024 * 1024 # MB
UPLOADS_REL_PATH = os.path.join("static", "uploads") # must be somewhere in the app's root directory
UPLOADS_FULL_PATH = make_path(UPLOADS_REL_PATH)
with open(make_path("secret.txt"), encoding="utf-8") as f:
SECRET_KEY = f.read().strip()
site_name = "HollowLink"
site_url = ""
site_host = '127.0.0.1'
site_port = 8080
if TESTING:
site_url = f"http://{site_host}:{site_port}"
site_logo_url = "/static/images/logo.png"
redis_url = "redis://localhost:6379"
token_length = 16
site_version = "v1.1"
admin_username = "admin"
admin_password = "admin"
admin_email = ""
intro = f"""<div class="d-flex justify-content-between"> <div>Welcome to Hollow Link!</div> <div>{site_version}</div> </div>"""
body = """We are an anonymous web service that specializes in email read-receipt technologies. Our highest priority is helping you determine if, and when an email you've sent has been opened by its intended recipient, or someone else."""
conclusion = """Some use cases of our email read-receipt services include,
<ul>
<li>Letting you know whether or not your <b>doctor</b> or <b>pharmacist</b> has seen your calls for help.</li>
<li>Assisting you with your job search by letting you know if your <b>job applications</b> were read by hiring managers.</li>
<li>Trivializing the set-up of <b>honey pots</b> so you're notified if someone else has been reading your emails.</li>
</ul>
"""
email_html = f"""<a href="mailto:{admin_email}">{admin_email}</a>"""
contact = f"""Feel free to reach out to us at {email_html}, or by filling out the contact form below."""
faqs = [
(
"""How do I use this software?""",
"""Please see our <a href="/user_guide">user guide</a> for a step-by-step tutorial.""",
),
(
"""Does HollowLink respect my privacy?""",
"""As an emerging web service, we analyze the data generated by our users to enhance our platform and improve user experiences. It's important to note that, as part of our commitment to user privacy, we allow users to remain anonymous while utilizing our services. Consequently, the amount of data we collect about any individual user is limited.""",
),
(
"""Why shouldn't I use another email read-receipt service?""",
"""The way we approach the email read-receipt problem is fundamentally less invasive than other services. Browser extension solutions have unrestricted access to your emails, including messages, photo attachments, and contacts. On the other hand, solutions that involve altering email recipient domains, i.e changing <code>johnsmith@example.com</code> to <code>johnsmith@example.com.notifyme.com</code>, act as middle-men which have full access to the messages you send. We don't require access to your email account, or have access the messages you send. We can only know when someone has requested a transparent gif from our site.""",
),
(
"""I prefer using dark themes, is there one available?""",
"""An incredible browser extensions called <a href="https://darkreader.org/">Dark Reader</a> can help with this.""",
),
]
user_guide = [
{
"header": """What is a Hurl?""",
"info": """Hurl, HURL, or H URL, are all abbreviations for <b>Hollow Link URL</b>. These are all aliases for the image URL you insert into your emails, or elsewhere. "Tracking pixel URL" felt a bit verbose, and we could also add support for inserting other media, besides pixels, in the future.""",
},
{
"header": """Usage Tips""",
"info": """
<ul>
<li>After you've sent an email with an inserted Hurl, try not to open it. This will ensure visit records aren't generated by you, raising false positives.</li>
<li>When you first insert a Hurl into an email message, Gmail, and Protonmail will make a request to the image to make sure it exists. You will have to subtract these requests from your Hurl's total read counts.</li>
<ul>""",
},
{
"header": """Outlook""",
"sending": """Unfortunately, Outlook does not support inserting URL images to outgoing emails. This means you will have to use an email client that's connected to your Outlook account in order to send emails with an inserted URL image.<br><br>""",
"tracking": """On the plus side, any emails received by an Outlook account will ping our server every time the email is opened since Outlook does not cache URL media.""",
},
{
"header": """Gmail""",
"sending": """
<ol>
<li>Click on the <code>Insert link</code> icon<br><img src="/static/images/user_guide_gmail_insert_link.png" class="img-fluid border border-secondary border-3 rounded m-2"/></li>
<li><br><img src="/static/images/user_guide_gmail_link_image.png" class="img-fluid border border-secondary border-3 rounded m-2"/></li>
<li>Click <code>Insert</code></li>
</ol>
""",
"tracking": """
Tracking Gmail recipients works well if they haven't disabled remote content from loading. Also, Gmail has a proxy, "via ggpht.com GoogleImageProxy", that fetches images on behalf of recipients which means the tracking IP address you see will belong to Google (66.102.8.173), and not the recipient of the email.
""",
},
{
"header": """ProtonMail""",
"sending": """
<ol>
<li>Click <code>New message</code></li>
<li>On the styling panel, click on the ellipsis <code>...</code></li>
<li>In the dropdown, choose <code>Insert image</code></li>
<li>Insert your <b>Hurl</b> and click <code>Save</code></li>
</ol>
""",
"tracking": """
Tracking Protonmail activity is harder than with Outlook or Gmail. Protonmail doesn't load images by default - users must choose whether or not they want to load remote content. It also caches remote media so it doesn't have to make requests as often.
""",
},
]
for i, o in enumerate(user_guide):
for k in o.keys():
user_guide[i][k] = o[k].strip()