epstein-files 1.0.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- epstein_files/__init__.py +194 -0
- epstein_files/documents/communication.py +53 -0
- epstein_files/documents/document.py +357 -0
- epstein_files/documents/email.py +655 -0
- epstein_files/documents/emails/email_header.py +167 -0
- epstein_files/documents/imessage/text_message.py +93 -0
- epstein_files/documents/json_file.py +23 -0
- epstein_files/documents/messenger_log.py +73 -0
- epstein_files/documents/other_file.py +117 -0
- epstein_files/epstein_files.py +437 -0
- epstein_files/util/constant/common_words.py +94 -0
- epstein_files/util/constant/html.py +57 -0
- epstein_files/util/constant/names.py +261 -0
- epstein_files/util/constant/strings.py +47 -0
- epstein_files/util/constant/urls.py +103 -0
- epstein_files/util/constants.py +1552 -0
- epstein_files/util/data.py +131 -0
- epstein_files/util/env.py +80 -0
- epstein_files/util/file_cfg.py +172 -0
- epstein_files/util/file_helper.py +81 -0
- epstein_files/util/highlighted_group.py +620 -0
- epstein_files/util/rich.py +324 -0
- epstein_files/util/search_result.py +15 -0
- epstein_files/util/word_count.py +191 -0
- epstein_files-1.0.0.dist-info/LICENSE +674 -0
- epstein_files-1.0.0.dist-info/METADATA +60 -0
- epstein_files-1.0.0.dist-info/RECORD +28 -0
- epstein_files-1.0.0.dist-info/WHEEL +4 -0
|
@@ -0,0 +1,620 @@
|
|
|
1
|
+
import re
|
|
2
|
+
from dataclasses import dataclass, field
|
|
3
|
+
|
|
4
|
+
from rich.highlighter import RegexHighlighter
|
|
5
|
+
|
|
6
|
+
from epstein_files.util.constant.names import *
|
|
7
|
+
from epstein_files.util.constant.strings import DEFAULT, REDACTED, TIMESTAMP_STYLE, remove_question_marks
|
|
8
|
+
from epstein_files.util.constant.urls import ARCHIVE_LINK_COLOR
|
|
9
|
+
from epstein_files.util.constants import (EMAILER_ID_REGEXES, HEADER_ABBREVIATIONS, OSBORNE_LLP, REPLY_REGEX,
|
|
10
|
+
REPUTATION_MGMT, SENT_FROM_REGEX, VIRGIN_ISLANDS)
|
|
11
|
+
from epstein_files.util.data import extract_last_name, listify
|
|
12
|
+
from epstein_files.util.env import args, logger
|
|
13
|
+
|
|
14
|
+
ESTATE_EXECUTOR = 'Epstein estate executor'
|
|
15
|
+
REGEX_STYLE_PREFIX = 'regex'
|
|
16
|
+
NO_CATEGORY_LABELS = [BILL_GATES, STEVE_BANNON]
|
|
17
|
+
SIMPLE_NAME_REGEX = re.compile(r"^[-\w ]+$", re.IGNORECASE)
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
@dataclass(kw_only=True)
|
|
21
|
+
class HighlightedGroup:
|
|
22
|
+
"""
|
|
23
|
+
Encapsulates info about people, places, and other strings we want to highlight with RegexHighlighter.
|
|
24
|
+
Constructor must be called with either an 'emailers' arg or a 'pattern' arg (or both).
|
|
25
|
+
|
|
26
|
+
Attributes:
|
|
27
|
+
category (str): optional string to use as an override for self.label in some contexts
|
|
28
|
+
emailers (dict[str, str | None]): optional names to construct regexes for (values are descriptions)
|
|
29
|
+
is_multiline (bool): True if this pattern is only used by RegexHighlighter and this highlight group has no other info
|
|
30
|
+
label (str): RegexHighlighter match group name, defaults to 1st 'emailers' key if only 1 emailer provided
|
|
31
|
+
pattern (str): optional regex pattern identifying strings matching this group
|
|
32
|
+
regex (re.Pattern): matches self.pattern + all first and last names (and pluralizations) in self.emailers
|
|
33
|
+
style (str): Rich style to apply to text matching this group
|
|
34
|
+
_capture_group_label (str): regex capture group variable name for matches of this HighlightedGroup's 'regex'
|
|
35
|
+
"""
|
|
36
|
+
category: str = ''
|
|
37
|
+
emailers: dict[str, str | None] = field(default_factory=dict)
|
|
38
|
+
is_multiline: bool = False
|
|
39
|
+
label: str = ''
|
|
40
|
+
pattern: str = ''
|
|
41
|
+
style: str
|
|
42
|
+
# Computed fields
|
|
43
|
+
regex: re.Pattern = field(init=False)
|
|
44
|
+
_capture_group_label: str = field(init=False)
|
|
45
|
+
|
|
46
|
+
def __post_init__(self):
|
|
47
|
+
if not (self.emailers or self.pattern):
|
|
48
|
+
raise ValueError(f"Must provide either 'emailers' or 'pattern' arg.")
|
|
49
|
+
elif self.is_multiline and self.emailers:
|
|
50
|
+
raise ValueError(f"'is_multiline' cannot be True when there are 'emailers'.")
|
|
51
|
+
elif not self.label:
|
|
52
|
+
if len(self.emailers) == 1:
|
|
53
|
+
self.label = [k for k in self.emailers.keys()][0]
|
|
54
|
+
else:
|
|
55
|
+
raise ValueError(f"No label provided for {repr(self)}")
|
|
56
|
+
|
|
57
|
+
pattern = '|'.join([self._emailer_pattern(e) for e in self.emailers] + listify(self.pattern))
|
|
58
|
+
self._capture_group_label = self.label.lower().replace(' ', '_').replace('-', '_')
|
|
59
|
+
self.theme_style_name = f"{REGEX_STYLE_PREFIX}.{self._capture_group_label}"
|
|
60
|
+
match_group_var = fr"?P<{self._capture_group_label}>"
|
|
61
|
+
|
|
62
|
+
if self.is_multiline:
|
|
63
|
+
self.regex = re.compile(fr"({match_group_var}{pattern})", re.IGNORECASE | re.MULTILINE)
|
|
64
|
+
else:
|
|
65
|
+
self.regex = re.compile(fr"\b({match_group_var}({pattern})s?)\b", re.IGNORECASE)
|
|
66
|
+
|
|
67
|
+
def get_info(self, name: str) -> str | None:
|
|
68
|
+
"""Label for people in this group with the additional info for 'name' if 'name' is in self.emailers."""
|
|
69
|
+
info_pieces = [
|
|
70
|
+
None if len(self.emailers) == 1 else (self.category or self.label.title()),
|
|
71
|
+
self.emailers.get(name),
|
|
72
|
+
]
|
|
73
|
+
|
|
74
|
+
info_pieces = [p for p in info_pieces if p is not None]
|
|
75
|
+
return ', '.join(info_pieces) if info_pieces else None
|
|
76
|
+
|
|
77
|
+
# TODO: handle word boundary issue for names that end in symbols
|
|
78
|
+
def _emailer_pattern(self, name: str) -> str:
|
|
79
|
+
"""Pattern matching 'name'. Extends value in EMAILER_ID_REGEXES with last name if it exists."""
|
|
80
|
+
name = remove_question_marks(name)
|
|
81
|
+
last_name = extract_last_name(name)
|
|
82
|
+
|
|
83
|
+
if name in EMAILER_ID_REGEXES:
|
|
84
|
+
pattern = EMAILER_ID_REGEXES[name].pattern
|
|
85
|
+
|
|
86
|
+
if SIMPLE_NAME_REGEX.match(last_name) and last_name.lower() not in NAMES_TO_NOT_HIGHLIGHT:
|
|
87
|
+
pattern += fr"|{last_name}" # Include regex for last name
|
|
88
|
+
|
|
89
|
+
return pattern
|
|
90
|
+
elif ' ' not in name:
|
|
91
|
+
return name
|
|
92
|
+
|
|
93
|
+
first_name = name.removesuffix(f" {last_name}")
|
|
94
|
+
name_patterns = [name.replace(' ', r"\s+"), first_name.replace(' ', r"\s+"), last_name.replace(' ', r"\s+")]
|
|
95
|
+
name_regex_parts = [n for n in name_patterns if n.lower() not in NAMES_TO_NOT_HIGHLIGHT]
|
|
96
|
+
return '|'.join(name_regex_parts)
|
|
97
|
+
|
|
98
|
+
|
|
99
|
+
HIGHLIGHTED_GROUPS = [
|
|
100
|
+
HighlightedGroup(
|
|
101
|
+
label='africa',
|
|
102
|
+
style='light_pink4',
|
|
103
|
+
pattern=r'Econet(\s*Wireless)|Ghana(ian)?|Johannesburg|Kenya|Nigerian?|Senegal(ese)?|Serengeti|(South\s*)?African?|(Strive\s*)?Masiyiwa|Tanzania|Ugandan?|Zimbabwe(an)?',
|
|
104
|
+
emailers={
|
|
105
|
+
'Abdoulaye Wade': 'former president of Senegal, father of Karim Wade',
|
|
106
|
+
'Karim Wade': 'son of the president of Senegal, facing arrest for corruption, email handle is "Afri zp"',
|
|
107
|
+
'Miles Alexander': 'Operations Manager Michaelhouse Balgowan KwaZulu-Natal South Africa', # TODO: what's up with this person?
|
|
108
|
+
'Macky Sall': 'prime minister of Senegal, defeated Abdoulaye Wade',
|
|
109
|
+
},
|
|
110
|
+
),
|
|
111
|
+
HighlightedGroup(
|
|
112
|
+
label='bitcoin',
|
|
113
|
+
style='orange1 bold',
|
|
114
|
+
pattern=r'Balaji|bitcoin|block ?chain(\s*capital)?|Brock(\s*Pierce)?|coins?|cr[iy]?pto(currenc(y|ies))?|e-currency|(Gavin )?Andressen|(Howard\s+)?Lutnic?k|(jeffrey\s+)?wernick|Libra|Madars|(Patrick\s*)?Murck|(Ross\s*)?Ulbricht|Silk\s*Road|SpanCash|Tether|virtual\s*currenc(ies|y)|(zero\s+knowledge\s+|zk)pro(of|tocols?)',
|
|
115
|
+
emailers = {
|
|
116
|
+
JEREMY_RUBIN: 'developer/researcher',
|
|
117
|
+
ANTHONY_SCARAMUCCI: 'Skybridge Capital, FTX investor',
|
|
118
|
+
},
|
|
119
|
+
),
|
|
120
|
+
HighlightedGroup(
|
|
121
|
+
label='bro',
|
|
122
|
+
style='tan',
|
|
123
|
+
pattern=r"Andrew Farkas|Thomas\s*(J\.?\s*)?Barrack(\s*Jr)?",
|
|
124
|
+
emailers = {
|
|
125
|
+
JONATHAN_FARKAS: "heir to the Alexander's department store fortune",
|
|
126
|
+
'Peter Thomas Roth': 'student of Epstein at Dalton, skincare company founder',
|
|
127
|
+
STEPHEN_HANSON: None,
|
|
128
|
+
TOM_BARRACK: 'long time friend of Trump',
|
|
129
|
+
}
|
|
130
|
+
),
|
|
131
|
+
HighlightedGroup(
|
|
132
|
+
label='business',
|
|
133
|
+
style='spring_green4',
|
|
134
|
+
pattern=r'Gruterite|(John\s*)?Kluge|Marc Rich|(Mi(chael|ke)\s*)?Ovitz|(Steve\s+)?Wynn|(Leslie\s+)?Wexner|SALSS|Swedish[-\s]*American\s*Life\s*Science\s*Summit|Valhi|(Yves\s*)?Bouvier',
|
|
135
|
+
emailers = {
|
|
136
|
+
ALIREZA_ITTIHADIEH: 'CEO Freestream Aircraft Limited',
|
|
137
|
+
BARBRO_C_EHNBOM: 'Swedish pharmaceuticals',
|
|
138
|
+
FRED_HADDAD: "co-founder of Heck's in West Virginia",
|
|
139
|
+
GORDON_GETTY: 'heir of oil tycoon J. Paul Getty',
|
|
140
|
+
NICHOLAS_RIBIS: 'Hilton CEO, former president of Trump Organization',
|
|
141
|
+
'Philip Kafka': 'president of Prince Concepts (and son of Terry Kafka?)',
|
|
142
|
+
ROBERT_LAWRENCE_KUHN: "investment banker, China expert",
|
|
143
|
+
TERRY_KAFKA: 'CEO of Impact Outdoor (highway billboards)',
|
|
144
|
+
TOM_PRITZKER: 'brother of J.B. Pritzker',
|
|
145
|
+
}
|
|
146
|
+
),
|
|
147
|
+
HighlightedGroup(
|
|
148
|
+
label='cannabis',
|
|
149
|
+
style='chartreuse2',
|
|
150
|
+
pattern=r"CBD|cannabis|marijuana|THC|WEED(guide|maps)?[^s]?",
|
|
151
|
+
),
|
|
152
|
+
HighlightedGroup(
|
|
153
|
+
label='china',
|
|
154
|
+
style='bright_red',
|
|
155
|
+
pattern=r"Ali.?baba|Beijing|CCP|Chin(a|e?se)(?! Daily)|DPRK|Gino\s+Yu|Global Times|Guo|Hong|Huaw[ae]i|Kim\s*Jong\s*Un|Kong|Jack\s+Ma|Kwok|Ministry\sof\sState\sSecurity|Mongolian?|MSS|North\s*Korea|Peking|PRC|SCMP|Tai(pei|wan)|Xi(aomi)?|Jinping",
|
|
156
|
+
),
|
|
157
|
+
HighlightedGroup(
|
|
158
|
+
label='deepak_chopra',
|
|
159
|
+
style='dark_sea_green4',
|
|
160
|
+
emailers = {
|
|
161
|
+
'Carolyn Rangel': 'assistant',
|
|
162
|
+
DEEPAK_CHOPRA: 'woo woo',
|
|
163
|
+
}
|
|
164
|
+
),
|
|
165
|
+
HighlightedGroup(
|
|
166
|
+
label='democrats',
|
|
167
|
+
style='sky_blue1',
|
|
168
|
+
pattern=r'(Al\s*)?Franken|((Bill|Hillart?y)\s*)?Clinton|((Chuck|Charles)\s*)?S(ch|hc)umer|(Diana\s*)?DeGette|DNC|Elena\s*Kagan|(Eliott?\s*)?Spitzer(, Eliot)?|George\s*Mitchell|(George\s*)?Soros|Hill?ary|Dem(ocrat(ic)?)?|(Jo(e|seph)\s*)?Biden|(John\s*)?Kerry|Lisa Monaco|(Matteo\s*)?Salvini|Maxine\s*Waters|(Barac?k )?Obama|(Nancy )?Pelosi|Ron\s*Dellums|Schumer|(Tim\s*)?Geithner|Vernon\s*Jordan',
|
|
169
|
+
),
|
|
170
|
+
HighlightedGroup(
|
|
171
|
+
label='Dubin family',
|
|
172
|
+
style='medium_orchid1',
|
|
173
|
+
pattern=r'((Celina|Eva( Anderss?on)?|Glenn) )?Dubin',
|
|
174
|
+
emailers = {
|
|
175
|
+
GLENN_DUBIN: "Highbridge Capital Management, married to Epstein's ex-gf Eva",
|
|
176
|
+
EVA: "possibly Epstein's ex-girlfriend (?)",
|
|
177
|
+
},
|
|
178
|
+
),
|
|
179
|
+
HighlightedGroup(
|
|
180
|
+
label='employee',
|
|
181
|
+
style='deep_sky_blue4',
|
|
182
|
+
pattern=r'Merwin',
|
|
183
|
+
emailers = {
|
|
184
|
+
'Alfredo Rodriguez': "Epstein's butler, stole the journal",
|
|
185
|
+
ERIC_ROTH: 'jet decorator',
|
|
186
|
+
GWENDOLYN_BECK: 'Epstein fund manager in the 90s',
|
|
187
|
+
JEAN_HUGUEN: 'interior design at Alberto Pinto Cabinet',
|
|
188
|
+
LAWRANCE_VISOSKI: 'pilot',
|
|
189
|
+
LESLEY_GROFF: 'assistant',
|
|
190
|
+
'Linda Pinto': 'interior design at Alberto Pinto Cabinet',
|
|
191
|
+
MERWIN_DELA_CRUZ: None, # HOUSE_OVERSIGHT_032652 Groff says "Jojo and Merwin both requested off Nov. 25 and 26"
|
|
192
|
+
NADIA_MARCINKO: 'pilot',
|
|
193
|
+
}
|
|
194
|
+
),
|
|
195
|
+
HighlightedGroup(
|
|
196
|
+
label='entertainer',
|
|
197
|
+
style='light_steel_blue3',
|
|
198
|
+
pattern=r'(Art )?Spiegelman|Bobby slayton|bono\s*mick|Errol(\s*Morris)?|Etienne Binant|(Frank\s)?Gehry|Jagger|(Jeffrey\s*)?Katzenberg|(Johnny\s*)?Depp|Kid Rock|Lena\s*Dunham|Madonna|Mark\s*Burnett|Ramsey Elkholy|shirley maclaine|Steven Gaydos?|Woody( Allen)?|Zach Braff',
|
|
199
|
+
emailers={
|
|
200
|
+
ANDRES_SERRANO: "'Piss Christ' artist",
|
|
201
|
+
'Barry Josephson': 'American film producer and former music manager, editor FamilySecurityMatters.org',
|
|
202
|
+
BILL_SIEGEL: 'documentary film producer and director',
|
|
203
|
+
DAVID_BLAINE: 'famous magician',
|
|
204
|
+
HENRY_HOLT: f"{MICHAEL_WOLFF}'s book publisher",
|
|
205
|
+
'Richard Merkin': 'painter, illustrator and arts educator',
|
|
206
|
+
STEVEN_PFEIFFER: 'Associate Director at Independent Filmmaker Project (IFP)',
|
|
207
|
+
},
|
|
208
|
+
),
|
|
209
|
+
HighlightedGroup(
|
|
210
|
+
label='estate_executor',
|
|
211
|
+
style='purple3 bold',
|
|
212
|
+
category='lawyer',
|
|
213
|
+
emailers = {
|
|
214
|
+
DARREN_INDYKE: ESTATE_EXECUTOR,
|
|
215
|
+
RICHARD_KAHN: ESTATE_EXECUTOR,
|
|
216
|
+
}
|
|
217
|
+
),
|
|
218
|
+
HighlightedGroup(
|
|
219
|
+
label='europe',
|
|
220
|
+
style='light_sky_blue3',
|
|
221
|
+
pattern=r'(Angela )?Merk(el|le)|Austria|(Benjamin\s*)?Harnwell|Berlin|Brexit(eers?)?|Brit(ain|ish)|Brussels|Cannes|(Caroline|Jack)?\s*Lang(, Caroline)?|Cypr(iot|us)|Davos|ECB|EU|Europe(an)?(\s*Union)?|France|Geneva|Germany?|Gillard|Gree(ce|k)|Ital(ian|y)|Jacques|(Kevin\s*)?Rudd|Le\s*Pen|London|Macron|Melusine|Munich|(Natalia\s*)?Veselnitskaya|(Nicholas\s*)?Sarkozy|Nigel(\s*Farage)?|Oslo|Paris|Polish|(Sebastian )?Kurz|(Vi(c|k)tor\s+)?Orbah?n|Edward Rod Larsen|Strasbourg|Strauss[- ]?Kahn|Swed(en|ish)(?![-\s]+America)|Switzerland|(Tony\s)?Blair|Ukrain(e|ian)|Vienna|(Vitaly\s*)?Churkin|Zug',
|
|
222
|
+
emailers = {
|
|
223
|
+
ANDRZEJ_DUDA: 'former president of Poland',
|
|
224
|
+
MIROSLAV_LAJCAK: 'Russia-friendly Slovakian politician, friend of Steve Bannon',
|
|
225
|
+
PETER_MANDELSON: 'UK politics',
|
|
226
|
+
TERJE_ROD_LARSEN: 'Norwegian diplomat',
|
|
227
|
+
THORBJORN_JAGLAND: 'former prime minister of Norway and head of the Nobel Peace Prize Committee',
|
|
228
|
+
}
|
|
229
|
+
),
|
|
230
|
+
HighlightedGroup(
|
|
231
|
+
label='famous_lawyer',
|
|
232
|
+
style='medium_purple3',
|
|
233
|
+
category='famous_lawyer',
|
|
234
|
+
pattern=r'(David\s*)?Bo[il]es|dersh|(Gloria\s*)?Allred|(Mi(chael|ke)\s*)?Avenatti',
|
|
235
|
+
emailers = {
|
|
236
|
+
ALAN_DERSHOWITZ: 'Harvard Law School professor and all around (in)famous American lawyer',
|
|
237
|
+
KEN_STARR: 'head of the Monica Lewinsky investigation against Bill Clinton',
|
|
238
|
+
}
|
|
239
|
+
),
|
|
240
|
+
HighlightedGroup(
|
|
241
|
+
label='finance',
|
|
242
|
+
style='green',
|
|
243
|
+
pattern=r'Apollo|Ari\s*Glass|(Bernie\s*)?Madoff|Black(rock|stone)|BofA|Boothbay(\sFund\sManagement)?|Chase\s*Bank|Credit\s*Suisse|DB|Deutsche\s*(Asset|Bank)|Electron\s*Capital\s*(Partners)?|Fenner|FRBNY|Goldman(\s*Sachs)|HSBC|Invesco|(Janet\s*)?Yellen|(Jerome\s*)?Powell(?!M\. Cabot)|(Jimmy\s*)?Cayne|JPMC?|j\.?p\.?\s*morgan(\.?com|\s*Chase)?|Madoff|Merrill(\s*Lynch)?|(Michael\s*)?(Cembalest|Milken)|MLPF&S|(money\s+)?launder(s?|ers?|ing)?(\s+money)?|Morgan Stanley|(Peter L. )?Scher|(Ray\s*)?Dalio|Schwartz?man|Serageldin|UBS|us.gio@jpmorgan.com',
|
|
244
|
+
emailers={
|
|
245
|
+
AMANDA_ENS: 'Citigroup',
|
|
246
|
+
DANIEL_SABBA: 'UBS Investment Bank',
|
|
247
|
+
DAVID_FISZEL: 'CIO Honeycomb Asset Management',
|
|
248
|
+
JES_STALEY: 'former CEO of Barclays',
|
|
249
|
+
JIDE_ZEITLIN: 'former partner at Goldman Sachs, allegations of sexual misconduct',
|
|
250
|
+
LEON_BLACK: 'Apollo CEO',
|
|
251
|
+
MARC_LEON: 'Luxury Properties Sari Morrocco',
|
|
252
|
+
MELANIE_SPINELLA: f'representative of {LEON_BLACK}',
|
|
253
|
+
MORTIMER_ZUCKERMAN: 'business partner of Epstein',
|
|
254
|
+
PAUL_BARRETT: None,
|
|
255
|
+
PAUL_MORRIS: 'Deutsche Bank',
|
|
256
|
+
}
|
|
257
|
+
),
|
|
258
|
+
HighlightedGroup(
|
|
259
|
+
label=HARVARD.lower(),
|
|
260
|
+
style='deep_pink2',
|
|
261
|
+
pattern=r'Cambridge|(Derek\s*)?Bok|Elisa(\s*New)?|Harvard(\s*(Business|Law|University)(\s*School)?)?|(Jonathan\s*)?Zittrain|(Stephen\s*)?Kosslyn',
|
|
262
|
+
emailers = {
|
|
263
|
+
LARRY_SUMMERS: 'board of Digital Currency Group (DCG), Harvard president, Obama economic advisor',
|
|
264
|
+
'Leah Reis-Dennis': 'producer for Lisa New\'s Poetry in America',
|
|
265
|
+
LISA_NEW: f'professor of poetry, wife of {LARRY_SUMMERS}, AKA "Elisa New"',
|
|
266
|
+
'Lisa Randall': 'theoretical physicist',
|
|
267
|
+
MARTIN_NOWAK: 'professor of mathematics and biology',
|
|
268
|
+
MOSHE_HOFFMAN: 'lecturer and research scholar in behavioral and evolutionary economics',
|
|
269
|
+
}
|
|
270
|
+
),
|
|
271
|
+
HighlightedGroup(
|
|
272
|
+
label='india',
|
|
273
|
+
style='bright_green',
|
|
274
|
+
pattern=r'Abraaj|Anna\s*Hazare|(Arif\s*)?Naqvi|(Arvind\s*)?Kejriwal|Hardeep( Pur[ei]e)?|Indian?|InsightsPod|Modi|Mumbai|Tranchulas',
|
|
275
|
+
emailers = {
|
|
276
|
+
ANIL_AMBANI: 'chairman of Reliance Group',
|
|
277
|
+
VINIT_SAHNI: None,
|
|
278
|
+
ZUBAIR_KHAN: 'Tranchulas CEO, InsightsPod founder',
|
|
279
|
+
}
|
|
280
|
+
),
|
|
281
|
+
HighlightedGroup(
|
|
282
|
+
label='israel',
|
|
283
|
+
style='dodger_blue2',
|
|
284
|
+
pattern=r"AIPAC|Bibi|(eh|(Ehud|Nili Priell) )?barak|Ehud\s*Barack|Israeli?|Jerusalem|J\s*Street|Mossad|Netanyahu|(Sheldon\s*)?Adelson|Tel\s*Aviv|(The\s*)?Shimon\s*Post|Yitzhak|Rabin|YIVO|zionist",
|
|
285
|
+
emailers={
|
|
286
|
+
EHUD_BARAK: 'former primer minister',
|
|
287
|
+
'Mitchell Bard': 'director of the American-Israeli Cooperative Enterprise (AICE)',
|
|
288
|
+
'Nili Priell Barak': f'wife of {EHUD_BARAK}',
|
|
289
|
+
}
|
|
290
|
+
),
|
|
291
|
+
HighlightedGroup(
|
|
292
|
+
label='japan',
|
|
293
|
+
style='color(168)',
|
|
294
|
+
pattern=r'BOJ|(Bank\s+of\s+)?Japan(ese)?|jpy?(?! Morgan)|SG|Singapore|Toky[op]',
|
|
295
|
+
),
|
|
296
|
+
HighlightedGroup(
|
|
297
|
+
label='javanka',
|
|
298
|
+
style='medium_violet_red',
|
|
299
|
+
emailers = {
|
|
300
|
+
IVANKA: None,
|
|
301
|
+
JARED_KUSHNER: None,
|
|
302
|
+
}
|
|
303
|
+
),
|
|
304
|
+
HighlightedGroup(
|
|
305
|
+
label='journalist',
|
|
306
|
+
style='bright_yellow',
|
|
307
|
+
pattern=r'Palm\s*Beach\s*(Daily\s*News|Post)|ABC(\s*News)?|Alex\s*Yablon|(Andrew\s*)?Marra|Arianna(\s*Huffington)?|(Arthur\s*)?Kretchmer|BBC|Bloomberg|Breitbart|Charlie\s*Rose|China\s*Daily|CNBC|CNN(politics?)?|Con[cs]hita|Sarnoff|(?<!Virgin[-\s]Islands[-\s])Daily\s*(Beast|Mail|News|Telegraph)|(David\s*)?Pecker|David\s*Brooks|Ed\s*Krassenstein|(Emily\s*)?Michot|Ezra\s*Klein|(George\s*)?Stephanopoulus|Globe\s*and\s*Mail|Good\s*Morning\s*America|Graydon(\s*Carter)?|Huffington(\s*Post)?|Ingram, David|(James\s*)?Patterson|Jonathan\s*Karl|Julie\s*(K.?\s*)?Brown|(Katie\s*)?Couric|Keith\s*Larsen|Miami\s*Herald|(Michele\s*)?Dargan|(National\s*)?Enquirer|(The\s*)?N(ew\s*)?Y(ork\s*)?(P(ost)?|T(imes)?)|(The\s*)?New\s*Yorker|NYer|PERVERSION\s*OF\s*JUSTICE|Politico|Pro\s*Publica|(Sean\s*)?Hannity|Sulzberger|SunSentinel|Susan Edelman|(Uma\s*)?Sanghvi|(The\s*)?Wa(shington\s*)?Po(st)?|Viceland|Vick[iy]\s*Ward|Vox|WGBH|(The\s*)?Wall\s*Street\s*Journal|WSJ|[-\w.]+@(bbc|independent|mailonline|mirror|thetimes)\.co\.uk',
|
|
308
|
+
emailers = {
|
|
309
|
+
EDWARD_JAY_EPSTEIN: 'reporter who wrote about the kinds of crimes Epstein was involved in, no relation to Jeffrey',
|
|
310
|
+
'James Hill': 'ABC News',
|
|
311
|
+
JENNIFER_JACQUET: 'Future Science',
|
|
312
|
+
JOHN_BROCKMAN: 'literary agent and author specializing in scientific literature',
|
|
313
|
+
LANDON_THOMAS: 'New York Times',
|
|
314
|
+
MICHAEL_WOLFF: 'Author of "Fire and Fury: Inside the Trump White House"',
|
|
315
|
+
PAUL_KRASSNER: '60s counterculture guy',
|
|
316
|
+
'Tim Zagat': 'Zagat restaurant guide CEO',
|
|
317
|
+
}
|
|
318
|
+
),
|
|
319
|
+
HighlightedGroup(
|
|
320
|
+
label='latin america',
|
|
321
|
+
style='yellow',
|
|
322
|
+
pattern=r'Argentin(a|ian)|Bolsonar[aio]|Bra[sz]il(ian)?|Bukele|Caracas|Castro|Colombian?|Cuban?|El\s*Salvador|((Enrique )?Pena )?Nieto|LatAm|Lula|Mexic(an|o)|(Nicolas\s+)?Maduro|Panama( Papers)?|Peru|Venezuelan?|Zambrano',
|
|
323
|
+
),
|
|
324
|
+
HighlightedGroup(
|
|
325
|
+
label='law enforcement',
|
|
326
|
+
style='color(24) bold',
|
|
327
|
+
pattern=r'ag|(Alicia\s*)?Valle|((Bob|Robert)\s*)?Mueller|(Byung\s)?Pak|CFTC|CIA|CIS|CVRA|Dep(artmen)?t\.?\s*of\s*(the\s*)?(Justice|Treasury)|DHS|DOJ|FBI|FCPA|FDIC|Federal\s*Bureau\s*of\s*Investigation|FinCEN|FINRA|FOIA|FTC|IRS|(James\s*)?Comey|(Jennifer\s*Shasky\s*)?Calvery|((Judge|Mark)\s*)?(Carney|Filip)|(Kirk )?Blouin|KYC|NIH|NS(A|C)|OCC|OFAC|(Lann?a\s*)?Belohlavek|(Michael\s*)?Reiter|OGE|Office\s*of\s*Government\s*Ethics|Police Code Enforcement|(Preet\s*)?Bharara|SCOTUS|SD(FL|NY)|Southern\s*District\s*of\s*(Florida|New\s*York)|SEC|Securities\s*and\s*Exchange\s*Commission|State\s*Dep(artmen)?t|Strzok|Supreme\s*Court|Treasury\s*(Dep(artmen)?t|Secretary)|TSA|USAID|(William\s*J\.?\s*)?Zloch',
|
|
328
|
+
emailers = {
|
|
329
|
+
ANN_MARIE_VILLAFANA: 'southern district of Florida U.S. Attorney',
|
|
330
|
+
DANNY_FROST: 'Director of Communications at Manhattan DA',
|
|
331
|
+
}
|
|
332
|
+
),
|
|
333
|
+
HighlightedGroup(
|
|
334
|
+
label='epstein lawyer',
|
|
335
|
+
style='purple',
|
|
336
|
+
pattern=r'(Barry (E. )?)?Krischer|Kate Kelly|Kirkland\s*&\s*Ellis|(Leon\s*)?Jaworski|Michael J. Pike|Paul,?\s*Weiss|Steptoe|Wein(berg|garten)',
|
|
337
|
+
emailers = {
|
|
338
|
+
ARDA_BESKARDES: 'NYC immigration attorney allegedly involved in sex-trafficking operations',
|
|
339
|
+
BENNET_MOSKOWITZ: None,
|
|
340
|
+
BRAD_KARP: 'head of the law firm Paul Weiss',
|
|
341
|
+
DAVID_STERN: None,
|
|
342
|
+
DAVID_SCHOEN: None,
|
|
343
|
+
DEBBIE_FEIN: None,
|
|
344
|
+
'Erika Kellerhals': 'attorney in St. Thomas',
|
|
345
|
+
GERALD_LEFCOURT: f'friend of {ALAN_DERSHOWITZ}',
|
|
346
|
+
JACK_GOLDBERGER: None,
|
|
347
|
+
JACKIE_PERCZEK: None,
|
|
348
|
+
JAY_LEFKOWITZ: None,
|
|
349
|
+
JESSICA_CADWELL: 'paralegal (?)', # paralegal, see https://x.com/ImDrinknWyn/status/1993765348898927022
|
|
350
|
+
LILLY_SANCHEZ: 'criminal defense attorney',
|
|
351
|
+
MARTIN_WEINBERG: 'criminal defense attorney',
|
|
352
|
+
MICHAEL_MILLER: 'Steptoe LLP partner',
|
|
353
|
+
REID_WEINGARTEN: 'Steptoe LLP partner',
|
|
354
|
+
'Roy Black': 'criminal defense attorney',
|
|
355
|
+
SCOTT_J_LINK: None,
|
|
356
|
+
TONJA_HADDAD_COLEMAN: 'maybe daughter of Fred Haddad?',
|
|
357
|
+
}
|
|
358
|
+
),
|
|
359
|
+
HighlightedGroup(
|
|
360
|
+
label='lobbyist',
|
|
361
|
+
style='light_coral',
|
|
362
|
+
pattern=r'[BR]ob Crowe|Stanley Rosenberg',
|
|
363
|
+
emailers = {
|
|
364
|
+
'Joshua Cooper Ramo': 'co-CEO of Henry Kissinger Associates',
|
|
365
|
+
KATHERINE_KEATING: 'Daughter of former Australian PM',
|
|
366
|
+
MOHAMED_WAHEED_HASSAN: 'former president of the Maldives',
|
|
367
|
+
OLIVIER_COLOM: 'France',
|
|
368
|
+
'Paul Keating': 'former PM of Australia',
|
|
369
|
+
PUREVSUREN_LUNDEG: 'Mongolian ambassador to the UN',
|
|
370
|
+
'Stanley Rosenberg': 'former President of the Massachusetts Senate',
|
|
371
|
+
}
|
|
372
|
+
),
|
|
373
|
+
HighlightedGroup(
|
|
374
|
+
label='mideast',
|
|
375
|
+
style='dark_sea_green4',
|
|
376
|
+
pattern=r"[-\s]9/11[\s.]|Abdulmalik Al-Makhlafi|Abdullah|Abu\s+Dhabi|Afghanistan|Al[-\s]?Qa[ei]da|Ahmadinejad|Arab|Aramco|Assad|Bahrain|Basiji?|Benghazi|Cairo|Chagoury|Dj[iu]bo?uti|Doha|Dubai|Egypt(ian)?|Emir(at(es?|i))?|Erdogan|Fashi|Gaddafi|(Hamid\s*)?Karzai|Hamad\s*bin\s*Jassim|HBJ|Houthi|Imran\s+Khan|Iran(ian)?|Isi[ls]|Islam(abad|ic|ist)?|Istanbul|Kh?ashoggi|(Kairat\s*)?Kelimbetov|kasshohgi|Kaz(akh|ich)stan|Kazakh?|Kh[ao]menei|Khalid\s*Sheikh\s*Mohammed|KSA|Leban(ese|on)|Libyan?|Mahmoud|Marra[hk]e[cs]h|MB(N|S|Z)|Mohammed\s+bin\s+Salman|Morocco|Mubarak|Muslim|Nayaf|Pakistani?|Omar|(Osama\s*)?Bin\s*Laden|Osama(?! al)|Palestin(e|ian)|Persian?|Riya(dh|nd)|Saddam|Salman|Saudi(\s+Arabian?)?|Shariah?|SHC|sheikh|shia|(Sultan\s*)?Yacoub|Syrian?|(Tarek\s*)?El\s*Sayed|Tehran|Tunisian?|Turk(ey|ish)|UAE|((Iraq|Iran|Kuwait|Qatar|Yemen)i?)",
|
|
377
|
+
emailers = {
|
|
378
|
+
ANAS_ALRASHEED: f'former information minister of Kuwait {QUESTION_MARKS}',
|
|
379
|
+
AZIZA_ALAHMADI: 'Abu Dhabi Department of Culture & Tourism',
|
|
380
|
+
RAAFAT_ALSABBAGH: 'Saudi royal advisor',
|
|
381
|
+
SHAHER_ABDULHAK_BESHER: 'Yemeni billionaire',
|
|
382
|
+
}
|
|
383
|
+
),
|
|
384
|
+
HighlightedGroup(
|
|
385
|
+
label='modeling',
|
|
386
|
+
style='pale_violet_red1',
|
|
387
|
+
pattern=r'\w+@mc2mm.com|(Nicole\s*)?Junkerman',
|
|
388
|
+
emailers = {
|
|
389
|
+
'Abi Schwinck': 'MC2 Model Management (?)',
|
|
390
|
+
DANIEL_SIAD: None,
|
|
391
|
+
FAITH_KATES: 'Next Models co-founder',
|
|
392
|
+
'Gianni Serazzi': 'fashion consultant?',
|
|
393
|
+
HEATHER_MANN: 'South African former model, ex-girlfriend of Prince Andrew (?)',
|
|
394
|
+
JEAN_LUC_BRUNEL: 'MC2 Model Management founder, died by suicide in French jail',
|
|
395
|
+
JEFF_FULLER: 'president of MC2 Model Management USA',
|
|
396
|
+
MANUELA_MARTINEZ: 'Mega Partners (Brazilian agency)',
|
|
397
|
+
MARIANA_IDZKOWSKA: None,
|
|
398
|
+
'Michael Sanka': 'MC2 Model Management (?)',
|
|
399
|
+
}
|
|
400
|
+
),
|
|
401
|
+
HighlightedGroup(
|
|
402
|
+
label='publicist',
|
|
403
|
+
style='orange_red1',
|
|
404
|
+
pattern=fr"(Matt(hew)? )?Hiltzi[gk]|{REPUTATION_MGMT.rstrip(':')}",
|
|
405
|
+
emailers = {
|
|
406
|
+
AL_SECKEL: 'husband of Isabel Maxwell, Mindshift conference organizer who fell off a cliff',
|
|
407
|
+
'Barnaby Marsh': 'co-founder of Saint Partners, a philanthropy services company',
|
|
408
|
+
CHRISTINA_GALBRAITH: None,
|
|
409
|
+
IAN_OSBORNE: f"{OSBORNE_LLP} reputation repairer possibly hired by Epstein ca. 2011-06",
|
|
410
|
+
MICHAEL_SITRICK: None,
|
|
411
|
+
PEGGY_SIEGAL: 'socialite',
|
|
412
|
+
ROSS_GOW: 'Acuity Reputation Management',
|
|
413
|
+
TYLER_SHEARS: None,
|
|
414
|
+
}
|
|
415
|
+
),
|
|
416
|
+
HighlightedGroup(
|
|
417
|
+
label='republicans',
|
|
418
|
+
style='bold dark_red',
|
|
419
|
+
pattern=r'Alberto\sGonzale[sz]|(Alex\s*)?Acosta|(Bill\s*)?Barr|Bill\s*Shine|(Bob\s*)?Corker|(John\s*(R.?\s*)?)Bolton|Broidy|(Chris\s)?Christie|Devin\s*Nunes|(Don\s*)?McGa[hn]n|McMaster|(George\s*)?Nader|GOP|(Brett\s*)?Kavanaugh|Kissinger|Kobach|Koch\s*Brothers|Kolfage|Kudlow|Lewandowski|(Marco\s)?Rubio|(Mark\s*)Meadows|Mattis|(?<!Merwin Dela )Cruz|(Michael\s)?Hayden|((General|Mike)\s*)?(Flynn|Pence)|(Mitt\s*)?Romney|Mnuchin|Nikki|Haley|(Paul\s+)?Manafort|(Peter\s)?Navarro|Pompeo|Reagan|Republican|(?<!Cynthia )(Richard\s*)?Nixon|Sasse|(Rex\s*)?Tillerson',
|
|
420
|
+
emailers = {
|
|
421
|
+
RUDY_GIULIANI: 'disbarred formed mayor of New York City',
|
|
422
|
+
TULSI_GABBARD: None,
|
|
423
|
+
},
|
|
424
|
+
),
|
|
425
|
+
HighlightedGroup(
|
|
426
|
+
label='Rothschild family',
|
|
427
|
+
style='indian_red',
|
|
428
|
+
emailers={
|
|
429
|
+
ARIANE_DE_ROTHSCHILD: None,
|
|
430
|
+
JOHNNY_EL_HACHEM: f'Works with {ARIANE_DE_ROTHSCHILD}',
|
|
431
|
+
},
|
|
432
|
+
),
|
|
433
|
+
HighlightedGroup(
|
|
434
|
+
label='russia',
|
|
435
|
+
style='red bold',
|
|
436
|
+
pattern=r'Alfa\s*Bank|Anya\s*Rasulova|Chernobyl|Day\s+One\s+Ventures|(Dmitry\s)?(Kiselyov|(Lana\s*)?Pozhidaeva|Medvedev|Rybolo(o?l?ev|vlev))|Dmitry|FSB|GRU|KGB|Kislyak|Kremlin|Kuznetsova|Lavrov|Lukoil|Moscow|(Oleg\s*)?Deripaska|Oleksandr Vilkul|Rosneft|RT|St.?\s*?Petersburg|Russian?|Sberbank|Soviet(\s*Union)?|USSR|(Vladimir\s*)?(Putin|Yudashkin)|Xitrans',
|
|
437
|
+
emailers = {
|
|
438
|
+
MASHA_DROKOVA: 'silicon valley VC, former Putin Youth',
|
|
439
|
+
RENATA_BOLOTOVA: 'former aspiring model, now fund manager at New York State Insurance Fund',
|
|
440
|
+
SVETLANA_POZHIDAEVA: f'Epstein\'s Russian assistant who was recommended for a visa by Sergei Belyakov (FSB) and {DAVID_BLAINE}',
|
|
441
|
+
}
|
|
442
|
+
),
|
|
443
|
+
HighlightedGroup(
|
|
444
|
+
label='scholar',
|
|
445
|
+
style='light_goldenrod2',
|
|
446
|
+
pattern=r'Alain Forget|Brotherton|Carl\s*Sagan|Columbia|David Grosof|J(ames|im)\s*Watson|(Lord\s*)?Martin\s*Rees|Massachusetts\s*Institute\s*of\s*Technology|MIT(\s*Media\s*Lab)?|Media\s*Lab|Minsky|((Noam|Valeria)\s*)?Chomsky|Praluent|Regeneron|(Richard\s*)?Dawkins|Sanofi|Stanford|(Stephen\s*)?Hawking|(Steven?\s*)?Pinker|UCLA',
|
|
447
|
+
emailers = {
|
|
448
|
+
DAVID_HAIG: None,
|
|
449
|
+
JOSCHA_BACH: 'cognitive science / AI research',
|
|
450
|
+
'Daniel Kahneman': 'Nobel economic sciences laureate and cognitivie psychologist (?)',
|
|
451
|
+
LAWRENCE_KRAUSS: 'theoretical physicist',
|
|
452
|
+
LINDA_STONE: 'ex-Microsoft, MIT Media Lab',
|
|
453
|
+
MARK_TRAMO: 'professor of neurology at UCLA',
|
|
454
|
+
NEAL_KASSELL: 'professor of neurosurgery at University of Virginia',
|
|
455
|
+
PETER_ATTIA: 'longevity medicine',
|
|
456
|
+
ROBERT_TRIVERS: 'evolutionary biology',
|
|
457
|
+
ROGER_SCHANK: 'Teachers College, Columbia University',
|
|
458
|
+
},
|
|
459
|
+
),
|
|
460
|
+
HighlightedGroup(
|
|
461
|
+
label='southeast_asia',
|
|
462
|
+
style='light_salmon3 bold',
|
|
463
|
+
pattern=r'Bangkok|Burm(a|ese)|Cambodian?|Laos|Malaysian?|Myan?mar|Thai(land)?|Vietnam(ese)?',
|
|
464
|
+
),
|
|
465
|
+
HighlightedGroup(
|
|
466
|
+
label='tech bro',
|
|
467
|
+
style='bright_cyan',
|
|
468
|
+
pattern=r"AG?I|Chamath|Palihapitiya|Danny\s*Hillis|Drew\s*Houston|Eric\s*Schmidt|Greylock(\s*Partners)?|(?<!(ustin|Moshe)\s)Hoffmand?|LinkedIn|(Mark\s*)?Zuckerberg|Masa(yoshi)?(\sSon)?|Najeev|Nathan\s*Myhrvold|Palantir|(Peter\s)?Th(ie|ei)l|Pierre\s*Omidyar|Sergey\s*Brin|Silicon\s*Valley|Softbank|SpaceX|Tim\s*Ferriss?|WikiLeak(ed|s)",
|
|
469
|
+
emailers = {
|
|
470
|
+
'Auren Hoffman': 'CEO of SafeGraph (firm that gathers location data from mobile devices) and LiveRamp',
|
|
471
|
+
ELON_MUSK: 'father of Mecha-Hitler',
|
|
472
|
+
PETER_THIEL: 'Paypal mafia member, founder of Palantir, early Facebook investor, reactionary',
|
|
473
|
+
REID_HOFFMAN: 'PayPal mafia member, founder of LinkedIn',
|
|
474
|
+
STEVEN_SINOFSKY: 'ex-Microsoft, loves bitcoin',
|
|
475
|
+
},
|
|
476
|
+
),
|
|
477
|
+
HighlightedGroup(
|
|
478
|
+
label='trump',
|
|
479
|
+
style='red3 bold',
|
|
480
|
+
pattern=r"@?realDonaldTrump|(Alan\s*)?Weiss?elberg|\bDJ?T\b|Donald J. Tramp|(Donald\s+(J\.\s+)?)?Trump(ism|\s*Properties)?|Don(ald| *Jr)(?! Rubin)|Ivana|(Madeleine\s*)?Westerhout|Mar[-\s]*a[-\s]*Lago|(Marla\s*)?Maples|(Matt(hew)? )?Calamari|\bMatt C\b|Melania|(Michael (J.? )?)?Boccio|Roger\s+Stone|rona|(The\s*)?Art\s*of\s*the\s*Deal",
|
|
481
|
+
emailers = {
|
|
482
|
+
'Bruce Moskowitz': "'Trump's health guy' according to Epstein",
|
|
483
|
+
},
|
|
484
|
+
),
|
|
485
|
+
HighlightedGroup(
|
|
486
|
+
label='victim',
|
|
487
|
+
style='orchid1',
|
|
488
|
+
pattern=r'BVI|(Jane|Tiffany)\s*Doe|Katie\s*Johnson|(Virginia\s+((L\.?|Roberts)\s+)?)?Giuffre|Virginia\s+Roberts',
|
|
489
|
+
),
|
|
490
|
+
HighlightedGroup(
|
|
491
|
+
label='victim lawyer',
|
|
492
|
+
style='dark_magenta bold',
|
|
493
|
+
pattern=r'(Alan(\s*P.)?|MINTZ)\s*FRAADE|Paul\s*(G.\s*)?Cassell|Rothstein\s*Rosenfeldt\s*Adler|(Scott\s*)?Rothstein|(J\.?\s*)?(Stan(ley)?\s*)?Pottinger',
|
|
494
|
+
emailers = {
|
|
495
|
+
BRAD_EDWARDS: 'Rothstein Rosenfeldt Adler (Rothstein was a crook & partner of Roger Stone)',
|
|
496
|
+
JACK_SCAROLA: 'Searcy Denney Scarola Barnhart & Shipley',
|
|
497
|
+
}
|
|
498
|
+
),
|
|
499
|
+
HighlightedGroup(
|
|
500
|
+
label=VIRGIN_ISLANDS,
|
|
501
|
+
style='sea_green1',
|
|
502
|
+
pattern=r'Bahamas|Dominican\s*Republic|(Great|Little)\s*St.?\s*James|Haiti(an)?|(John\s*)deJongh(\s*Jr\.?)|(Kenneth E\. )?Mapp|Palm\s*Beach(?!\s*Post)|PBI|S(ain)?t.?\s*Thomas|USVI|VI|(The\s*)?Virgin\s*Islands(\s*Daily\s*News)?', # TODO: VI Daily News should be yellow but it's hard bc Daily News xists
|
|
503
|
+
emailers = {
|
|
504
|
+
CECILE_DE_JONGH: f'First lady 2007-2015',
|
|
505
|
+
STACEY_PLASKETT: 'non-voting member of Congress',
|
|
506
|
+
KENNETH_E_MAPP: 'Governor',
|
|
507
|
+
},
|
|
508
|
+
),
|
|
509
|
+
|
|
510
|
+
# Individuals
|
|
511
|
+
HighlightedGroup(
|
|
512
|
+
label=BILL_GATES,
|
|
513
|
+
style='turquoise4',
|
|
514
|
+
pattern=r'BG|b?g?C3|(Bill\s*((and|or)\s*Melinda\s*)?)?Gates|Melinda(\s*Gates)?|Microsoft|MSFT',
|
|
515
|
+
emailers = {
|
|
516
|
+
BORIS_NIKOLIC: f'biotech VC partner of {BILL_GATES}, {ESTATE_EXECUTOR}',
|
|
517
|
+
},
|
|
518
|
+
),
|
|
519
|
+
HighlightedGroup(
|
|
520
|
+
label=STEVE_BANNON,
|
|
521
|
+
style='color(58)',
|
|
522
|
+
pattern=r'((Steve|Sean)\s*)?Bannon?',
|
|
523
|
+
),
|
|
524
|
+
HighlightedGroup(
|
|
525
|
+
emailers={STEVEN_HOFFENBERG: HEADER_ABBREVIATIONS['Hoffenberg']},
|
|
526
|
+
pattern=r'(steven?\s*)?hoffenberg?w?',
|
|
527
|
+
style='gold3'
|
|
528
|
+
),
|
|
529
|
+
HighlightedGroup(emailers={GHISLAINE_MAXWELL: None}, pattern='gmax(1@ellmax.com)?|TerraMar', style='deep_pink3'),
|
|
530
|
+
HighlightedGroup(emailers={JABOR_Y: HEADER_ABBREVIATIONS['Jabor']}, style='spring_green1'),
|
|
531
|
+
HighlightedGroup(emailers={JEFFREY_EPSTEIN: None}, pattern='JEGE|LSJ|Mark (L. )?Epstein', style='blue1'),
|
|
532
|
+
HighlightedGroup(emailers={JOI_ITO: 'former head of MIT Media Lab'}, style='gold1'),
|
|
533
|
+
HighlightedGroup(emailers={KATHRYN_RUEMMLER: 'former Obama legal counsel'}, style='magenta2'),
|
|
534
|
+
HighlightedGroup(emailers={MELANIE_WALKER: 'doctor'}, style='pale_violet_red1'),
|
|
535
|
+
HighlightedGroup(emailers={PAULA: "Epstein's ex-girlfriend who is now in the opera"}, label='paula_heil_fisher', style='pink1'),
|
|
536
|
+
HighlightedGroup(emailers={PRINCE_ANDREW: 'British royal family'}, style='dodger_blue1'),
|
|
537
|
+
HighlightedGroup(emailers={SOON_YI_PREVIN: "wife of Woody Allen"}, style='hot_pink'),
|
|
538
|
+
HighlightedGroup(emailers={SULTAN_BIN_SULAYEM: 'CEO of DP World, chairman of ports in Dubai'}, style='green1'),
|
|
539
|
+
|
|
540
|
+
# Highlight regexes for things other than names, only used by RegexHighlighter pattern matching
|
|
541
|
+
HighlightedGroup(
|
|
542
|
+
label='header_field',
|
|
543
|
+
style='plum4',
|
|
544
|
+
pattern='^(Date|From|Sent|To|C[cC]|Importance|Subject|Bee|B[cC]{2}|Attachments):',
|
|
545
|
+
is_multiline=True,
|
|
546
|
+
),
|
|
547
|
+
HighlightedGroup(
|
|
548
|
+
label='http_links',
|
|
549
|
+
style=f'{ARCHIVE_LINK_COLOR} underline',
|
|
550
|
+
pattern=r"https?:[^\s]+",
|
|
551
|
+
is_multiline=True,
|
|
552
|
+
),
|
|
553
|
+
HighlightedGroup(
|
|
554
|
+
label='phone_number',
|
|
555
|
+
style='bright_green',
|
|
556
|
+
pattern=r"\+?(1?\(?\d{3}\)?[- ]\d{3}[- ]\d{4}|\d{2}[- ]\(?0?\)?\d{2}[- ]\d{4}[- ]\d{4})|[\d+]{10,12}",
|
|
557
|
+
is_multiline=True,
|
|
558
|
+
),
|
|
559
|
+
HighlightedGroup(
|
|
560
|
+
label='quoted_reply_line',
|
|
561
|
+
style='dim',
|
|
562
|
+
pattern=REPLY_REGEX.pattern,
|
|
563
|
+
is_multiline=True,
|
|
564
|
+
),
|
|
565
|
+
HighlightedGroup(
|
|
566
|
+
label='redacted',
|
|
567
|
+
style='grey58',
|
|
568
|
+
pattern=REDACTED,
|
|
569
|
+
is_multiline=True,
|
|
570
|
+
),
|
|
571
|
+
HighlightedGroup(
|
|
572
|
+
label='sent_from',
|
|
573
|
+
style='gray42 italic',
|
|
574
|
+
pattern=SENT_FROM_REGEX.pattern,
|
|
575
|
+
is_multiline=True,
|
|
576
|
+
),
|
|
577
|
+
HighlightedGroup(
|
|
578
|
+
label='snipped_signature',
|
|
579
|
+
style='gray19',
|
|
580
|
+
pattern=r'<\.\.\.(snipped|trimmed).*\.\.\.>',
|
|
581
|
+
is_multiline=True,
|
|
582
|
+
),
|
|
583
|
+
HighlightedGroup(
|
|
584
|
+
label='timestamp_2',
|
|
585
|
+
style=TIMESTAMP_STYLE,
|
|
586
|
+
pattern=r"\d{1,4}[-/]\d{1,2}[-/]\d{2,4} \d{1,2}:\d{2}:\d{2}( [AP]M)?",
|
|
587
|
+
is_multiline=True,
|
|
588
|
+
),
|
|
589
|
+
HighlightedGroup(
|
|
590
|
+
label='unknown',
|
|
591
|
+
style='cyan',
|
|
592
|
+
pattern=r'\(unknown\)',
|
|
593
|
+
is_multiline=True,
|
|
594
|
+
),
|
|
595
|
+
]
|
|
596
|
+
|
|
597
|
+
|
|
598
|
+
class InterestingNamesHighlighter(RegexHighlighter):
|
|
599
|
+
"""rich.highlighter that finds and colors interesting keywords based on the above config."""
|
|
600
|
+
base_style = f"{REGEX_STYLE_PREFIX}."
|
|
601
|
+
highlights = [highlight_group.regex for highlight_group in HIGHLIGHTED_GROUPS]
|
|
602
|
+
|
|
603
|
+
|
|
604
|
+
def get_info_for_name(name: str) -> str | None:
|
|
605
|
+
highlight_group = _get_highlight_group_for_name(name)
|
|
606
|
+
|
|
607
|
+
if highlight_group:
|
|
608
|
+
return highlight_group.get_info(name)
|
|
609
|
+
|
|
610
|
+
|
|
611
|
+
def get_style_for_name(name: str | None, default_style: str = DEFAULT, allow_bold: bool = True) -> str:
|
|
612
|
+
highlight_group = _get_highlight_group_for_name(name or UNKNOWN)
|
|
613
|
+
style = highlight_group.style if highlight_group else default_style
|
|
614
|
+
return style if allow_bold else style.replace('bold', '').strip()
|
|
615
|
+
|
|
616
|
+
|
|
617
|
+
def _get_highlight_group_for_name(name: str) -> HighlightedGroup | None:
|
|
618
|
+
for highlight_group in HIGHLIGHTED_GROUPS:
|
|
619
|
+
if highlight_group.regex.search(name):
|
|
620
|
+
return highlight_group
|