epstein-files 1.0.13__py3-none-any.whl → 1.0.14__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 +11 -6
- epstein_files/documents/communication.py +2 -2
- epstein_files/documents/document.py +52 -46
- epstein_files/documents/email.py +32 -29
- epstein_files/documents/imessage/text_message.py +4 -4
- epstein_files/documents/json_file.py +9 -3
- epstein_files/documents/messenger_log.py +20 -17
- epstein_files/documents/other_file.py +50 -71
- epstein_files/epstein_files.py +89 -67
- epstein_files/util/constant/names.py +1 -1
- epstein_files/util/constant/strings.py +1 -1
- epstein_files/util/constants.py +62 -44
- epstein_files/util/data.py +2 -0
- epstein_files/util/doc_cfg.py +7 -7
- epstein_files/util/env.py +2 -5
- epstein_files/util/highlighted_group.py +7 -15
- epstein_files/util/output.py +15 -30
- epstein_files/util/rich.py +29 -29
- epstein_files/util/word_count.py +1 -1
- {epstein_files-1.0.13.dist-info → epstein_files-1.0.14.dist-info}/METADATA +10 -3
- epstein_files-1.0.14.dist-info/RECORD +33 -0
- epstein_files-1.0.13.dist-info/RECORD +0 -33
- {epstein_files-1.0.13.dist-info → epstein_files-1.0.14.dist-info}/LICENSE +0 -0
- {epstein_files-1.0.13.dist-info → epstein_files-1.0.14.dist-info}/WHEEL +0 -0
- {epstein_files-1.0.13.dist-info → epstein_files-1.0.14.dist-info}/entry_points.txt +0 -0
epstein_files/util/constants.py
CHANGED
|
@@ -45,9 +45,9 @@ HEADER_ABBREVIATIONS = {
|
|
|
45
45
|
}
|
|
46
46
|
|
|
47
47
|
|
|
48
|
-
|
|
49
|
-
#
|
|
50
|
-
|
|
48
|
+
#########################
|
|
49
|
+
# Emailers Config Stuff #
|
|
50
|
+
#########################
|
|
51
51
|
|
|
52
52
|
# Emailers
|
|
53
53
|
EMAILER_ID_REGEXES: dict[str, re.Pattern] = {
|
|
@@ -85,7 +85,7 @@ EMAILER_ID_REGEXES: dict[str, re.Pattern] = {
|
|
|
85
85
|
JAMES_HILL: re.compile(r"hill, james e.|james.e.hill@abc.com", re.IGNORECASE),
|
|
86
86
|
JEAN_LUC_BRUNEL: re.compile(r'Jean[- ]Luc Brunel?', re.IGNORECASE),
|
|
87
87
|
JEFF_FULLER: re.compile(r"jeff@mc2mm.com|Jeff Fuller", re.IGNORECASE),
|
|
88
|
-
JEFFREY_EPSTEIN: re.compile(r'[djl]\s?ee[vy]acation[©@]?g?(mail.com)?|Epstine|\bJEE?\b|Jeffrey E((sp|ps)tein?)?|jeeproject@yahoo.com|J Jep|Jeffery Edwards|(?<!(Mark L.|ard Jay) )Epstein', re.IGNORECASE),
|
|
88
|
+
JEFFREY_EPSTEIN: re.compile(r'[djl]\s?ee[vy]acation[©@]?g?(mail.com)?|Epstine|\bJEE?\b|Jeffrey E((sp|ps)tein?)?( VI Foundation)?|jeeproject@yahoo.com|J Jep|Jeffery Edwards|(?<!(Mark L.|ard Jay) )Epstein', re.IGNORECASE),
|
|
89
89
|
JESSICA_CADWELL: re.compile(r'Jessica Cadwell?', re.IGNORECASE),
|
|
90
90
|
JOHNNY_EL_HACHEM: re.compile(r'el hachem johnny|johnny el hachem', re.IGNORECASE),
|
|
91
91
|
JOI_ITO: re.compile(r'ji@media.mit.?edu|(joichi|joi)( Ito)?', re.IGNORECASE),
|
|
@@ -220,7 +220,6 @@ RESUME_OF = 'professional resumé'
|
|
|
220
220
|
SCREENSHOT = 'screenshot of'
|
|
221
221
|
TRANSLATION = 'translation of'
|
|
222
222
|
TWEET = 'tweet'
|
|
223
|
-
TEXT_OF_US_LAW = 'text of U.S. law:'
|
|
224
223
|
|
|
225
224
|
# Legal cases
|
|
226
225
|
BRUNEL_V_EPSTEIN = f"{JEAN_LUC_BRUNEL} v. {JEFFREY_EPSTEIN} and Tyler McDonald d/b/a YI.org"
|
|
@@ -239,7 +238,6 @@ BOFA_MERRILL = f'{BOFA} / Merrill Lynch Report'
|
|
|
239
238
|
BOFA_WEALTH_MGMT = f'{BOFA} Wealth Management'
|
|
240
239
|
BROCKMAN_INC = 'Brockman, Inc.'
|
|
241
240
|
CVRA = "Crime Victims' Rights Act [CVRA]"
|
|
242
|
-
CVRA_LEXIS_SEARCH = f"Lexis Nexis search for case law around the {CVRA}"
|
|
243
241
|
DAVID_BLAINE_VISA_LETTER = f"letter of recommendation for visa for a model"
|
|
244
242
|
DERSH_GIUFFRE_TWEET = f"{TWEET} about {VIRGINIA_GIUFFRE}"
|
|
245
243
|
DEUTSCHE_BANK_TAX_TOPICS = f'{DEUTSCHE_BANK} Wealth Management Tax Topics'
|
|
@@ -253,15 +251,16 @@ HARVARD_POETRY = f'{HARVARD} poetry stuff from {LISA_NEW}'
|
|
|
253
251
|
HBS_APPLICATION = f"{HARVARD} Business School application letter"
|
|
254
252
|
JASTA = 'JASTA'
|
|
255
253
|
JASTA_SAUDI_LAWSUIT = f"{JASTA} lawsuit against Saudi Arabia by 9/11 victims"
|
|
256
|
-
JOHN_BOLTON_PRESS_CLIPPING = 'John Bolton press clipping'
|
|
257
254
|
JP_MORGAN_EYE_ON_THE_MARKET = f"Eye On The Market"
|
|
258
255
|
LAWRENCE_KRAUSS_ASU_ORIGINS = f"{LAWRENCE_KRAUSS}'s ASU Origins Project"
|
|
256
|
+
LEXIS_NEXIS_CVRA_SEARCH = f"{LEXIS_NEXIS} search for case law around the {CVRA}"
|
|
259
257
|
KEN_STARR_LETTER = f"letter to judge overseeing Epstein's criminal prosecution, mentions Alex Acosta"
|
|
260
258
|
MICHAEL_WOLFF_EPSTEIN_ARTICLE_DRAFT = f"draft of an unpublished article about Epstein by {MICHAEL_WOLFF} written ca. 2014/2015"
|
|
261
259
|
NIGHT_FLIGHT_BOOK = f'"Night Flight" (draft)'
|
|
262
260
|
NOBEL_CHARITABLE_TRUST = 'Nobel Charitable Trust'
|
|
263
261
|
OBAMA_JOKE = 'joke about Obama'
|
|
264
262
|
PALM_BEACH_CODE_ENFORCEMENT = f'{PALM_BEACH} Code Enforcement'
|
|
263
|
+
PALM_BEACH_PROPERTY_INFO = f"{PALM_BEACH} property info"
|
|
265
264
|
PALM_BEACH_TSV = f"TSV of {PALM_BEACH} property"
|
|
266
265
|
PALM_BEACH_WATER_COMMITTEE = f'{PALM_BEACH} Water Committee'
|
|
267
266
|
PATTERSON_BOOK_SCANS = f'pages of "Filthy Rich: The Shocking True Story of {JEFFREY_EPSTEIN}"'
|
|
@@ -649,9 +648,9 @@ EMAILS_CONFIG = [
|
|
|
649
648
|
EmailCfg(id='032358', actual_text=REDACTED), # Completely redacted
|
|
650
649
|
EmailCfg(id='033050', actual_text='schwartman'),
|
|
651
650
|
EmailCfg(id='022219', description="discussion of attempts to clean up Epstein's Google search results"),
|
|
652
|
-
EmailCfg(id='023627', is_fwded_article=True, description=MICHAEL_WOLFF_EPSTEIN_ARTICLE_DRAFT),
|
|
653
651
|
EmailCfg(id='031333', is_fwded_article=True, description='looks like a Russian disinfo article'), # Russia Says IMF Chief Jailed For Discovering All US Gold is Gone
|
|
654
652
|
EmailCfg(id='031335', is_fwded_article=True, description='looks like a Russian disinfo article'), # DOMINQUE STRAUSS-KAHN ARRESTED, NOT BECAUSE HE RAPED A MAID, BUT BECAUSE HE HAD EVIDENCE US HAS NO GOLD IN FORT KNOX.
|
|
653
|
+
EmailCfg(id='023627', is_fwded_article=True, description=MICHAEL_WOLFF_EPSTEIN_ARTICLE_DRAFT),
|
|
655
654
|
EmailCfg(id='026298', is_fwded_article=True, duplicate_ids=['026499']), # Written by someone else?
|
|
656
655
|
EmailCfg(id='029692', is_fwded_article=True, duplicate_ids=['029779']), # WaPo article
|
|
657
656
|
EmailCfg(id='022344', is_fwded_article=True, duplicate_ids=['028529']), # Bill Gates is most admired from Nikolic
|
|
@@ -664,6 +663,7 @@ EMAILS_CONFIG = [
|
|
|
664
663
|
EmailCfg(id='029849', is_fwded_article=True, duplicate_ids=['033482']), # Fareed Zakaria: Trump sells America short),
|
|
665
664
|
EmailCfg(id='032023', is_fwded_article=True, duplicate_ids=['032012']), # American-Israeli Cooperative Enterprise Newsletter
|
|
666
665
|
EmailCfg(id='021758', is_fwded_article=True, duplicate_ids=['030616']), # Radar Online article about Epstein's early prison release
|
|
666
|
+
EmailCfg(id='033297', is_fwded_article=True, duplicate_ids=['033586']), # Sultan Sulayem fwding article about Trump and Russia
|
|
667
667
|
EmailCfg(id='031774', is_fwded_article=True), # Krassner fwd of Palmer Report article
|
|
668
668
|
EmailCfg(id='033345', is_fwded_article=True), # Krassner fwd of Palmer Report article
|
|
669
669
|
EmailCfg(id='029903', is_fwded_article=True), # Krassner fwd of Ann Coulter article about Epstein
|
|
@@ -715,7 +715,6 @@ EMAILS_CONFIG = [
|
|
|
715
715
|
EmailCfg(id='031340', is_fwded_article=True), # Article about Alex Jones threatening Robert Mueller
|
|
716
716
|
EmailCfg(id='030209', is_fwded_article=True), # Atlantic Council Syria: Blackberry Diplomacy
|
|
717
717
|
EmailCfg(id='026605', is_fwded_article=True), # Article about Ruemmler turning down attorney general job by NEDRA PICKLER
|
|
718
|
-
EmailCfg(id='033297', is_fwded_article=True, duplicate_ids=['033586']), # Sultan Sulayem fwding article about Trump and Russia
|
|
719
718
|
EmailCfg(id='032475', timestamp=parse('2017-02-15 13:31:25')),
|
|
720
719
|
EmailCfg(id='030373', timestamp=parse('2018-10-03 01:49:27')),
|
|
721
720
|
|
|
@@ -868,14 +867,13 @@ EMAILS_CONFIG = [
|
|
|
868
867
|
################################################################################################
|
|
869
868
|
|
|
870
869
|
OTHER_FILES_BOOKS = [
|
|
871
|
-
DocCfg(id='017088', author=ALAN_DERSHOWITZ,
|
|
870
|
+
DocCfg(id='017088', author=ALAN_DERSHOWITZ, description=f'"Taking the Stand: My Life in the Law" (draft)'),
|
|
872
871
|
DocCfg(id='013501', author='Arnold J. Mandell', description=f'The Nearness Of Grace: A Personal Science Of Spiritual Transformation', date='2005-01-01'),
|
|
873
872
|
DocCfg(id='012899', author='Ben Goertzel', description=f'Engineering General Intelligence: A Path to Advanced AGI Via Embodied Learning and Cognitive Synergy'),
|
|
874
873
|
DocCfg(id='018438', author='Clarisse Thorn', description=f'The S&M Feminist'),
|
|
875
874
|
DocCfg(id='019477', author=EDWARD_JAY_EPSTEIN, description=f'How America Lost Its Secrets: Edward Snowden, the Man, and the Theft'),
|
|
876
875
|
DocCfg(id='020153', author=EDWARD_JAY_EPSTEIN, description=f'The Snowden Affair: A Spy Story In Six Parts'),
|
|
877
|
-
DocCfg(id='011472', author=EHUD_BARAK, description=NIGHT_FLIGHT_BOOK),
|
|
878
|
-
DocCfg(id='027849', author=EHUD_BARAK, description=NIGHT_FLIGHT_BOOK),
|
|
876
|
+
DocCfg(id='011472', author=EHUD_BARAK, description=NIGHT_FLIGHT_BOOK, date='2006-07-12', duplicate_ids=['027849']), # date from _extract_timestamp()
|
|
879
877
|
DocCfg(id='010912', author=GORDON_GETTY, description=f'"Free Growth and Other Surprises" (draft)', date='2018-10-18'),
|
|
880
878
|
DocCfg(id='010477', author=JAMES_PATTERSON, description=PATTERSON_BOOK_SCANS, date='2016-10-10'),
|
|
881
879
|
DocCfg(id='010486', author=JAMES_PATTERSON, description=PATTERSON_BOOK_SCANS, date='2016-10-10'),
|
|
@@ -899,9 +897,6 @@ OTHER_FILES_BOOKS = [
|
|
|
899
897
|
]
|
|
900
898
|
|
|
901
899
|
OTHER_FILES_ARTICLES = [
|
|
902
|
-
DocCfg(id='030258', author=ALAN_DERSHOWITZ, description=f'{ARTICLE_DRAFT} Mueller probe, almost same as 030248'),
|
|
903
|
-
DocCfg(id='030248', author=ALAN_DERSHOWITZ, description=f'{ARTICLE_DRAFT} Mueller probe, almost same as 030258'),
|
|
904
|
-
DocCfg(id='029165', author=ALAN_DERSHOWITZ, description=f'{ARTICLE_DRAFT} Mueller probe, almost same as 030258'),
|
|
905
900
|
DocCfg(id='030013', author=f'Aviation International News', description=f'article', date='2012-07-01'),
|
|
906
901
|
DocCfg(id='013275', author=BLOOMBERG, description=f"article on notable 2013 obituaries", date='2013-12-26'),
|
|
907
902
|
DocCfg(id='026543', author=BLOOMBERG, description=f"BNA article about taxes"),
|
|
@@ -943,6 +938,7 @@ OTHER_FILES_ARTICLES = [
|
|
|
943
938
|
DocCfg(id='022952', author=MICHAEL_WOLFF, description=MICHAEL_WOLFF_EPSTEIN_ARTICLE_DRAFT),
|
|
944
939
|
DocCfg(id='024229', author=MICHAEL_WOLFF, description=MICHAEL_WOLFF_EPSTEIN_ARTICLE_DRAFT),
|
|
945
940
|
DocCfg(id='031198', author='Morning News USA', description=f"article about identify of Jane Doe in {JANE_DOE_V_EPSTEIN_TRUMP}"),
|
|
941
|
+
DocCfg(id='015462', author='Nautilus Education', description=f'magazine (?) issue'),
|
|
946
942
|
DocCfg(id='031972', author=NYT, description=f"article about #MeToo allegations against {LAWRENCE_KRAUSS}", date='2018-03-07'),
|
|
947
943
|
DocCfg(id='032435', author=NYT, description=f'article about Chinese butlers'),
|
|
948
944
|
DocCfg(id='029452', author=NYT, description=f"article about {PETER_THIEL}"),
|
|
@@ -1029,12 +1025,10 @@ OTHER_FILES_ARTICLES = [
|
|
|
1029
1025
|
DocCfg(id='031725', description=f"article about Gloria Allred and Trump allegations", date='2016-10-10'),
|
|
1030
1026
|
DocCfg(id='026648', description=f'article about {JASTA} lawsuit against Saudi Arabia by 9/11 victims (Russian propaganda?)', date='2017-05-13'),
|
|
1031
1027
|
DocCfg(id='032159', description=f"article about microfinance and cell phones in Zimbabwe, Strive Masiyiwa (Econet Wireless)"),
|
|
1032
|
-
DocCfg(id='033468', description=f'{ARTICLE_DRAFT} Rod Rosenstein', date='2018-09-24'),
|
|
1033
1028
|
DocCfg(id='030825', description=f'{ARTICLE_DRAFT} Syria'),
|
|
1034
1029
|
DocCfg(id='027051', description=f"German language article about the 2013 Lifeball / AIDS Gala", date='2013-01-01'),
|
|
1035
|
-
DocCfg(id='033480', description=f"
|
|
1036
|
-
DocCfg(id='013403', description=f"
|
|
1037
|
-
DocCfg(id='015462', description=f'Nautilus Education magazine (?) issue'),
|
|
1030
|
+
DocCfg(id='033480', description=f"John Bolton press clipping", date='2018-04-06', duplicate_ids=['033481']),
|
|
1031
|
+
DocCfg(id='013403', description=f"{LEXIS_NEXIS} result from The Evening Standard about Bernie Madoff", date='2009-12-24'),
|
|
1038
1032
|
DocCfg(id='021093', description=f"page of unknown article about Epstein and Maxwell"),
|
|
1039
1033
|
DocCfg(id='031191', description=f"{SINGLE_PAGE} unknown article about Epstein and Trump's relationship in 1997"),
|
|
1040
1034
|
DocCfg(id='026520', description=f'Spanish language article about {SULTAN_BIN_SULAYEM}', date='2013-09-27'),
|
|
@@ -1044,16 +1038,16 @@ OTHER_FILES_ARTICLES = [
|
|
|
1044
1038
|
date='2017-05-13',
|
|
1045
1039
|
),
|
|
1046
1040
|
DocCfg(id='025094', description=f'{TRANSLATION} Spanish article about Cuba', date='2015-11-08'),
|
|
1047
|
-
DocCfg(id='031794', description=f"very short French magazine clipping"
|
|
1041
|
+
DocCfg(id='031794', description=f"very short French magazine clipping"),
|
|
1048
1042
|
]
|
|
1049
1043
|
|
|
1050
1044
|
OTHER_FILES_LEGAL = [
|
|
1051
1045
|
DocCfg(id='017789', author=ALAN_DERSHOWITZ, description=f'letter to {HARVARD} Crimson complaining he was defamed'),
|
|
1052
1046
|
DocCfg(id='011908', author=BRUNEL_V_EPSTEIN, description=f"court filing"),
|
|
1053
|
-
DocCfg(id='017603', author=DAVID_SCHOEN, description=
|
|
1054
|
-
DocCfg(id='017635', author=DAVID_SCHOEN, description=
|
|
1055
|
-
DocCfg(id='016509', author=DAVID_SCHOEN, description=
|
|
1056
|
-
DocCfg(id='017714', author=DAVID_SCHOEN, description=
|
|
1047
|
+
DocCfg(id='017603', author=DAVID_SCHOEN, description=LEXIS_NEXIS_CVRA_SEARCH, date='2019-02-28'),
|
|
1048
|
+
DocCfg(id='017635', author=DAVID_SCHOEN, description=LEXIS_NEXIS_CVRA_SEARCH, date='2019-02-28'),
|
|
1049
|
+
DocCfg(id='016509', author=DAVID_SCHOEN, description=LEXIS_NEXIS_CVRA_SEARCH, date='2019-02-28'),
|
|
1050
|
+
DocCfg(id='017714', author=DAVID_SCHOEN, description=LEXIS_NEXIS_CVRA_SEARCH, date='2019-02-28'),
|
|
1057
1051
|
DocCfg(id='021824', author=EDWARDS_V_DERSHOWITZ, description=f"deposition of {PAUL_G_CASSELL}"),
|
|
1058
1052
|
DocCfg(
|
|
1059
1053
|
id='010757',
|
|
@@ -1187,8 +1181,8 @@ OTHER_FILES_LEGAL = [
|
|
|
1187
1181
|
date='2019-01-11',
|
|
1188
1182
|
),
|
|
1189
1183
|
DocCfg(id='028540', author='SCOTUS', description=f"decision in Budha Ismail Jam et al. v. INTERNATIONAL FINANCE CORP"),
|
|
1190
|
-
DocCfg(id='012197', author='SDFL', description=f"
|
|
1191
|
-
DocCfg(id='022277', description=f"
|
|
1184
|
+
DocCfg(id='012197', author='SDFL', description=f"response to {JAY_LEFKOWITZ} on Epstein Plea Agreement Compliance"),
|
|
1185
|
+
DocCfg(id='022277', description=f"text of National Labour Relations Board (NLRB) law", is_interesting=False),
|
|
1192
1186
|
]
|
|
1193
1187
|
|
|
1194
1188
|
OTHER_FILES_CONFERENCES = [
|
|
@@ -1210,10 +1204,20 @@ OTHER_FILES_CONFERENCES = [
|
|
|
1210
1204
|
author=UN_GENERAL_ASSEMBLY,
|
|
1211
1205
|
description=f'schedule including "Presidents Private Dinner - Jeffrey Epstine (sic)"',
|
|
1212
1206
|
date='2012-09-21',
|
|
1207
|
+
is_interesting=True,
|
|
1213
1208
|
),
|
|
1214
1209
|
DocCfg(id='017526', description=f'Intellectual Jazz conference brochure f. {DAVID_BLAINE}'),
|
|
1215
|
-
DocCfg(
|
|
1216
|
-
|
|
1210
|
+
DocCfg(
|
|
1211
|
+
id='029427',
|
|
1212
|
+
description=f"seems related to an IRL meeting about concerns China will attempt to absorb Mongolia",
|
|
1213
|
+
is_interesting=True,
|
|
1214
|
+
),
|
|
1215
|
+
DocCfg(
|
|
1216
|
+
id='025797',
|
|
1217
|
+
date='2013-05-29',
|
|
1218
|
+
description=f"someone's notes from Aspen Strategy Group",
|
|
1219
|
+
is_interesting=True,
|
|
1220
|
+
),
|
|
1217
1221
|
DocCfg(
|
|
1218
1222
|
id='017060',
|
|
1219
1223
|
description=f'World Economic Forum (WEF) Annual Meeting 2011 List of Participants',
|
|
@@ -1264,7 +1268,12 @@ OTHER_FILES_FINANCE = [
|
|
|
1264
1268
|
DocCfg(id='026944', author=GOLDMAN_INVESTMENT_MGMT, description=f"Risk of a US-Iran Military Conflict", date='2019-05-23'),
|
|
1265
1269
|
DocCfg(id='018804', author='Integra Realty Resources', description=f"appraisal of going concern for IGY American Yacht Harbor Marina in {VIRGIN_ISLANDS}"),
|
|
1266
1270
|
DocCfg(id='026679', author='Invesco', description=f"Global Sovereign Asset Management Study 2017"),
|
|
1267
|
-
DocCfg(
|
|
1271
|
+
DocCfg(
|
|
1272
|
+
id='033220',
|
|
1273
|
+
author='Joseph G. Carson',
|
|
1274
|
+
description=f"short economic report on defense spending under Trump",
|
|
1275
|
+
is_interesting=True,
|
|
1276
|
+
),
|
|
1268
1277
|
DocCfg(id='026572', author=JP_MORGAN, description=f"Global Asset Allocation report", date='2012-11-09'),
|
|
1269
1278
|
DocCfg(id='030848', author=JP_MORGAN, description=f"Global Asset Allocation report", date='2013-03-28'),
|
|
1270
1279
|
DocCfg(id='030840', author=JP_MORGAN, description=f"Market Thoughts"),
|
|
@@ -1284,7 +1293,7 @@ OTHER_FILES_FINANCE = [
|
|
|
1284
1293
|
DocCfg(id='025763', author='S&P', description=f"Economic Research: How Increasing Income Inequality Is Dampening U.S. Growth", date='2014-08-05'),
|
|
1285
1294
|
DocCfg(id='024135', author=UBS, description=UBS_CIO_REPORT, date='2012-06-29'),
|
|
1286
1295
|
DocCfg(id='025247', author=UBS, description=UBS_CIO_REPORT, date='2012-10-25'),
|
|
1287
|
-
DocCfg(id='026584', description=f"article about tax implications of disregarded entities", date='2009-07-01'),
|
|
1296
|
+
DocCfg(id='026584', description=f"article about tax implications of disregarded entities", date='2009-07-01', is_interesting=True),
|
|
1288
1297
|
DocCfg(
|
|
1289
1298
|
id='024271',
|
|
1290
1299
|
description=f"Blockchain Capital and Brock Pierce pitch deck",
|
|
@@ -1345,8 +1354,8 @@ OTHER_FILES_PROPERTY = [
|
|
|
1345
1354
|
DocCfg(id='029520', author=THE_REAL_DEAL, description=f"{REAL_DEAL_ARTICLE} 'Lost Paradise at the Palm House'", date='2019-06-17'),
|
|
1346
1355
|
DocCfg(id='016597', author='Trump Properties LLC', description=f'appeal of some decision about Mar-a-Lago by {PALM_BEACH} authorities'),
|
|
1347
1356
|
DocCfg(id='018743', description=f"Las Vegas property listing"),
|
|
1348
|
-
DocCfg(id='016695', description=f"{
|
|
1349
|
-
DocCfg(id='016697', description=f"{
|
|
1357
|
+
DocCfg(id='016695', description=f"{PALM_BEACH_PROPERTY_INFO} (?)"),
|
|
1358
|
+
DocCfg(id='016697', description=f"{PALM_BEACH_PROPERTY_INFO} (?) that mentions Trump"),
|
|
1350
1359
|
DocCfg(id='016599', description=f"{PALM_BEACH_TSV} consumption (water?)"),
|
|
1351
1360
|
DocCfg(id='016600', description=f"{PALM_BEACH_TSV} consumption (water?)"),
|
|
1352
1361
|
DocCfg(id='016601', description=f"{PALM_BEACH_TSV} consumption (water?)"),
|
|
@@ -1389,15 +1398,20 @@ OTHER_FILES_SOCIAL = [
|
|
|
1389
1398
|
]
|
|
1390
1399
|
|
|
1391
1400
|
OTHER_FILES_POLITICS = [
|
|
1401
|
+
DocCfg(id='030258', author=ALAN_DERSHOWITZ, description=f'{ARTICLE_DRAFT} Mueller probe, almost same as 030248'),
|
|
1402
|
+
DocCfg(id='030248', author=ALAN_DERSHOWITZ, description=f'{ARTICLE_DRAFT} Mueller probe, almost same as 030258'),
|
|
1403
|
+
DocCfg(id='029165', author=ALAN_DERSHOWITZ, description=f'{ARTICLE_DRAFT} Mueller probe, almost same as 030258'),
|
|
1392
1404
|
DocCfg(id='029918', author=DIANA_DEGETTE_CAMPAIGN, description=f"bio", date='2012-09-27'),
|
|
1393
1405
|
DocCfg(id='031184', author=DIANA_DEGETTE_CAMPAIGN, description=f"invitation to fundraiser hosted by {BARBRO_C_EHNBOM}", date='2012-09-27'),
|
|
1394
1406
|
DocCfg(id='026248', author='Don McGahn', description=f'letter from Trump lawyer to Devin Nunes (R-CA) about FISA courts and Trump'),
|
|
1407
|
+
DocCfg(id='027009', author=EHUD_BARAK, description=f"speech to AIPAC", date='2013-03-03'),
|
|
1395
1408
|
DocCfg(
|
|
1396
1409
|
id='019233',
|
|
1397
1410
|
author='Freedom House',
|
|
1398
1411
|
description=f"'Breaking Down Democracy: Goals, Strategies, and Methods of Modern Authoritarians'",
|
|
1399
1412
|
date='2017-06-02',
|
|
1400
1413
|
),
|
|
1414
|
+
DocCfg(id='026856', author='Kevin Rudd', description=f"speech 'Xi Jinping, China And The Global Order'", date='2018-06-26'),
|
|
1401
1415
|
DocCfg(id='026827', author='Scowcroft Group', description=f'report on ISIS', date='2015-11-14'),
|
|
1402
1416
|
DocCfg(id='024294', author=STACEY_PLASKETT, description=f"campaign flier", date='2016-10-01'),
|
|
1403
1417
|
DocCfg(
|
|
@@ -1406,6 +1420,7 @@ OTHER_FILES_POLITICS = [
|
|
|
1406
1420
|
description=f'The Search for Peace in the Arab-Israeli Conflict',
|
|
1407
1421
|
date='2019-12-09',
|
|
1408
1422
|
),
|
|
1423
|
+
DocCfg(id='033468', description=f'{ARTICLE_DRAFT} Rod Rosenstein', date='2018-09-24'),
|
|
1409
1424
|
DocCfg(
|
|
1410
1425
|
id='025849',
|
|
1411
1426
|
author='US Office of Government Information Services',
|
|
@@ -1418,8 +1433,8 @@ OTHER_FILES_POLITICS = [
|
|
|
1418
1433
|
date='2015-01-15', # TODO: this is just a guess
|
|
1419
1434
|
duplicate_ids=['028887'],
|
|
1420
1435
|
),
|
|
1421
|
-
DocCfg(id='010617', description=TRUMP_DISCLOSURES, date='2017-01-20'),
|
|
1422
|
-
DocCfg(id='016699', description=TRUMP_DISCLOSURES, date='2017-01-20'),
|
|
1436
|
+
DocCfg(id='010617', description=TRUMP_DISCLOSURES, date='2017-01-20', is_interesting=True),
|
|
1437
|
+
DocCfg(id='016699', description=TRUMP_DISCLOSURES, date='2017-01-20', is_interesting=True),
|
|
1423
1438
|
]
|
|
1424
1439
|
|
|
1425
1440
|
OTHER_FILES_ACADEMIA = [
|
|
@@ -1431,6 +1446,7 @@ OTHER_FILES_ACADEMIA = [
|
|
|
1431
1446
|
description=f'report: "Challenges of AI: Envisioning and Addressing Adverse Outcomes"',
|
|
1432
1447
|
duplicate_ids=['011284']
|
|
1433
1448
|
),
|
|
1449
|
+
DocCfg(id='026731', author='Lord Martin Rees', description=f"speech at first inaugural Cornell Carl Sagan Lecture"),
|
|
1434
1450
|
DocCfg(id='015501', author=f"{MOSHE_HOFFMAN}, Erez Yoeli, and Carlos David Navarrete", description=f"Game Theory and Morality"),
|
|
1435
1451
|
DocCfg(
|
|
1436
1452
|
id='026521',
|
|
@@ -1458,13 +1474,13 @@ OTHER_FILES_ACADEMIA = [
|
|
|
1458
1474
|
DocCfg(id='029592', description=HARVARD_POETRY),
|
|
1459
1475
|
DocCfg(id='019396', description=f'{HARVARD} Economics 1545 Professor Kenneth Rogoff syllabus'),
|
|
1460
1476
|
DocCfg(id='022445', description=f"Inference: International Review of Science Feedback & Comments", date='2018-11-01'),
|
|
1461
|
-
DocCfg(
|
|
1462
|
-
|
|
1463
|
-
|
|
1464
|
-
|
|
1465
|
-
|
|
1466
|
-
|
|
1467
|
-
|
|
1477
|
+
DocCfg(
|
|
1478
|
+
id='029355',
|
|
1479
|
+
description=f'{SCREENSHOT} quote in book about {LARRY_SUMMERS}',
|
|
1480
|
+
duplicate_ids=['029356'], # 029356 is zoomed in corner
|
|
1481
|
+
dupe_type='quoted',
|
|
1482
|
+
is_interesting=False,
|
|
1483
|
+
),
|
|
1468
1484
|
]
|
|
1469
1485
|
|
|
1470
1486
|
# resumes and application letters
|
|
@@ -1525,7 +1541,7 @@ OTHER_FILES_MISC = [
|
|
|
1525
1541
|
DocCfg(id='032735', author=GORDON_GETTY, description=f"on Trump", date='2018-03-20'), # Dated based on concurrent emails from Getty
|
|
1526
1542
|
DocCfg(id='025540', author=JEFFREY_EPSTEIN, description=f"rough draft of Epstein's side of the story?"),
|
|
1527
1543
|
DocCfg(id='026634', author='Michael Carrier', description=f"comments about an Apollo linked hedge fund 'DE Fund VIII'"),
|
|
1528
|
-
DocCfg(id='031425', author=SCOTT_J_LINK, description=f'completely redacted email from'),
|
|
1544
|
+
DocCfg(id='031425', author=SCOTT_J_LINK, description=f'completely redacted email from', is_interesting=False),
|
|
1529
1545
|
DocCfg(id='020447', author='Working Group on Chinese Influence Activities in the U.S.', description=f'Promoting Constructive Vigilance'),
|
|
1530
1546
|
DocCfg(id='031743', description=f'a few pages describing the internet as a "New Nation State" (Network State?)'),
|
|
1531
1547
|
DocCfg(id='012718', description=f"{CVRA} congressional record", date='2011-06-17'),
|
|
@@ -1542,7 +1558,7 @@ OTHER_FILES_MISC = [
|
|
|
1542
1558
|
date='2000-06-07',
|
|
1543
1559
|
description=f"{PRESS_RELEASE} announcing Donald Trump & {NICHOLAS_RIBIS} ended their working relationship at Trump's casino",
|
|
1544
1560
|
),
|
|
1545
|
-
DocCfg(id='029328', description=f"Rafanelli Events promotional deck"),
|
|
1561
|
+
DocCfg(id='029328', description=f"Rafanelli Events promotional deck", is_interesting=False),
|
|
1546
1562
|
DocCfg(id='033434', description=f"{SCREENSHOT} iPhone chat labeled 'Edwards' at the top"),
|
|
1547
1563
|
DocCfg(id='029475', description=f'{VIRGIN_ISLANDS} Twin City Mobile Integrated Health Services (TCMIH) proposal/request for donation'),
|
|
1548
1564
|
DocCfg(id='029448', description=f"weird short essay titled 'President Obama and Self-Deception'"),
|
|
@@ -1577,7 +1593,6 @@ OTHER_FILES_CATEGORIES = [
|
|
|
1577
1593
|
REPUTATION,
|
|
1578
1594
|
'RESUMES',
|
|
1579
1595
|
SOCIAL,
|
|
1580
|
-
SPEECH,
|
|
1581
1596
|
]
|
|
1582
1597
|
|
|
1583
1598
|
OTHER_FILES_CONFIG = []
|
|
@@ -1602,6 +1617,9 @@ for cfg in ALL_CONFIGS:
|
|
|
1602
1617
|
|
|
1603
1618
|
# Add extra config objects for duplicate files that match the config of file they are duplicating
|
|
1604
1619
|
for dupe_cfg in cfg.duplicate_cfgs():
|
|
1620
|
+
if not isinstance(dupe_cfg, EmailCfg):
|
|
1621
|
+
logger.debug(f"Generated synthetic config for dupe: {dupe_cfg}")
|
|
1622
|
+
|
|
1605
1623
|
ALL_FILE_CONFIGS[dupe_cfg.id] = dupe_cfg
|
|
1606
1624
|
|
|
1607
1625
|
|
epstein_files/util/data.py
CHANGED
|
@@ -26,6 +26,8 @@ date_str = lambda dt: dt.isoformat()[0:10] if dt else None
|
|
|
26
26
|
escape_double_quotes = lambda text: text.replace('"', r'\"')
|
|
27
27
|
escape_single_quotes = lambda text: text.replace("'", r"\'")
|
|
28
28
|
iso_timestamp = lambda dt: dt.isoformat().replace('T', ' ')
|
|
29
|
+
days_between = lambda dt1, dt2: (dt2 - dt1).days + 1
|
|
30
|
+
days_between_str = lambda dt1, dt2: f"{days_between(dt1, dt2)} day" + ('s' if days_between(dt1, dt2) > 1 else '')
|
|
29
31
|
remove_zero_time_from_timestamp_str = lambda dt: dt.isoformat().removesuffix('T00:00:00')
|
|
30
32
|
uniquify = lambda _list: list(set(_list))
|
|
31
33
|
without_falsey = lambda _list: [e for e in _list if e]
|
epstein_files/util/doc_cfg.py
CHANGED
|
@@ -65,10 +65,10 @@ class DocCfg:
|
|
|
65
65
|
author (str | None): Author of the document (if any)
|
|
66
66
|
category (str | None): Type of file
|
|
67
67
|
date (str | None): If passed will be immediated parsed into the 'timestamp' field
|
|
68
|
-
dupe_of_id (str | None): If this is a dupe the ID of the duplicated file. This file will be suppressed
|
|
69
68
|
dupe_type (DuplicateType | None): The type of duplicate this file is or its 'duplicate_ids' are
|
|
70
69
|
duplicate_ids (list[str]): IDs of *other* documents that are dupes of this document
|
|
71
|
-
|
|
70
|
+
duplicate_of_id (str | None): If this is a dupe the ID of the duplicated file. This file will be suppressed
|
|
71
|
+
is_interesting (bool | None): Override other considerations and always consider this file interesting (or not)
|
|
72
72
|
timestamp (datetime | None): Time this email was sent, file was created, article published, etc.
|
|
73
73
|
is_synthetic (bool): True if this config was generated by the duplicate_cfgs() method
|
|
74
74
|
"""
|
|
@@ -77,10 +77,10 @@ class DocCfg:
|
|
|
77
77
|
category: str | None = None
|
|
78
78
|
date: str | None = None
|
|
79
79
|
description: str | None = None
|
|
80
|
-
dupe_of_id: str | None = None
|
|
81
80
|
dupe_type: DuplicateType | None = None
|
|
82
81
|
duplicate_ids: list[str] = field(default_factory=list)
|
|
83
|
-
|
|
82
|
+
duplicate_of_id: str | None = None
|
|
83
|
+
is_interesting: bool | None = None
|
|
84
84
|
is_synthetic: bool = False
|
|
85
85
|
timestamp: datetime | None = None
|
|
86
86
|
|
|
@@ -88,7 +88,7 @@ class DocCfg:
|
|
|
88
88
|
if self.date:
|
|
89
89
|
self.timestamp = parse(self.date)
|
|
90
90
|
|
|
91
|
-
if self.
|
|
91
|
+
if self.duplicate_of_id or self.duplicate_ids:
|
|
92
92
|
self.dupe_type = self.dupe_type or SAME
|
|
93
93
|
|
|
94
94
|
def complete_description(self) -> str | None:
|
|
@@ -115,11 +115,11 @@ class DocCfg:
|
|
|
115
115
|
return ' '.join(pieces) if pieces else None
|
|
116
116
|
|
|
117
117
|
def duplicate_cfgs(self) -> Generator['DocCfg', None, None]:
|
|
118
|
-
"""Create synthetic DocCfg objects that set the '
|
|
118
|
+
"""Create synthetic DocCfg objects that set the 'duplicate_of_id' field to point back to this object."""
|
|
119
119
|
for id in self.duplicate_ids:
|
|
120
120
|
dupe_cfg = deepcopy(self)
|
|
121
121
|
dupe_cfg.id = id
|
|
122
|
-
dupe_cfg.
|
|
122
|
+
dupe_cfg.duplicate_of_id = self.id
|
|
123
123
|
dupe_cfg.duplicate_ids = []
|
|
124
124
|
dupe_cfg.dupe_type = self.dupe_type
|
|
125
125
|
dupe_cfg.is_synthetic = True
|
epstein_files/util/env.py
CHANGED
|
@@ -31,8 +31,8 @@ output.add_argument('--output-other', '-oo', action='store_true', help='generate
|
|
|
31
31
|
output.add_argument('--output-texts', '-ot', action='store_true', help='generate text messages section')
|
|
32
32
|
output.add_argument('--sort-alphabetical', action='store_true', help='sort emailers alphabetically intead of by email count')
|
|
33
33
|
output.add_argument('--suppress-output', action='store_true', help='no output to terminal (use with --build)')
|
|
34
|
+
output.add_argument('--uninteresting', action='store_true', help='only output uninteresting other files')
|
|
34
35
|
output.add_argument('--width', '-w', type=int, default=DEFAULT_WIDTH, help='screen width to use (in characters)')
|
|
35
|
-
output.add_argument('--use-epstein-web', action='store_true', help='use epsteinweb.org links instead of epstein.media')
|
|
36
36
|
|
|
37
37
|
scripts = parser.add_argument_group('SCRIPTS', 'Options used by epstein_search, epstein_show, and epstein_diff.')
|
|
38
38
|
scripts.add_argument('positional_args', nargs='*', help='strings to searchs for, file IDs to show or diff, etc.')
|
|
@@ -66,7 +66,7 @@ is_html_script = current_script in HTML_SCRIPTS
|
|
|
66
66
|
|
|
67
67
|
args.debug = args.deep_debug or args.debug or is_env_var_set('DEBUG')
|
|
68
68
|
args.output_emails = args.output_emails or args.all_emails
|
|
69
|
-
args.output_other = args.output_other or args.all_other_files
|
|
69
|
+
args.output_other = args.output_other or args.all_other_files or args.uninteresting
|
|
70
70
|
args.overwrite_pickle = args.overwrite_pickle or (is_env_var_set('OVERWRITE_PICKLE') and not is_env_var_set('PICKLED'))
|
|
71
71
|
args.width = args.width if is_html_script else None
|
|
72
72
|
is_output_selected = any([arg.startswith('output_') and value for arg, value in vars(args).items()])
|
|
@@ -90,8 +90,5 @@ if current_script == 'epstein_generate' and not (is_output_selected or args.make
|
|
|
90
90
|
logger.warning(f"No output section chosen; outputting default selection of texts, selected emails, and other files...")
|
|
91
91
|
args.output_texts = args.output_emails = args.output_other = True
|
|
92
92
|
|
|
93
|
-
if args.use_epstein_web:
|
|
94
|
-
logger.warning(f"Using links to epsteinweb.org links instead of epsteinify.com...")
|
|
95
|
-
|
|
96
93
|
if args.debug:
|
|
97
94
|
logger.warning(f"Invocation args:\ncurrent_script={current_script}\nis_html_script={is_html_script},\nis_output_selected={is_output_selected}\nspecified_names={specified_names},\nargs={args}")
|
|
@@ -373,14 +373,6 @@ HIGHLIGHTED_NAMES = [
|
|
|
373
373
|
style='color(168)',
|
|
374
374
|
pattern=r'BOJ|(Bank\s+of\s+)?Japan(ese)?|jpy?(?! Morgan)|SG|Singapore|Toky[op]',
|
|
375
375
|
),
|
|
376
|
-
HighlightedNames(
|
|
377
|
-
label='javanka',
|
|
378
|
-
style='medium_violet_red',
|
|
379
|
-
emailers = {
|
|
380
|
-
IVANKA: None,
|
|
381
|
-
JARED_KUSHNER: None,
|
|
382
|
-
}
|
|
383
|
-
),
|
|
384
376
|
HighlightedNames(
|
|
385
377
|
label=JOURNALIST,
|
|
386
378
|
style='bright_yellow',
|
|
@@ -404,7 +396,7 @@ HIGHLIGHTED_NAMES = [
|
|
|
404
396
|
HighlightedNames(
|
|
405
397
|
label='law enforcement',
|
|
406
398
|
style='color(24) bold',
|
|
407
|
-
pattern=r'ag|(Alicia\s*)?Valle|AML|(Andrew\s*)?McCabe|attorney|((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|lawyer|(Michael\s*)?Reiter|OGE|Office\s*of\s*Government\s*Ethics|Police Code Enforcement|(Preet\s*)?Bharara|SCOTUS|SD(FL|NY)|
|
|
399
|
+
pattern=r'ag|(Alicia\s*)?Valle|AML|(Andrew\s*)?McCabe|attorney|((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|lawyer|(Michael\s*)?Reiter|OGE|Office\s*of\s*Government\s*Ethics|Police Code Enforcement|(Preet\s*)?Bharara|SCOTUS|SD(FL|NY)|SEC|Secret\s*Service|Securities\s*and\s*Exchange\s*Commission|Southern\s*District\s*of\s*(Florida|New\s*York)|State\s*Dep(artmen)?t|Strzok|Supreme\s*Court|Treasury\s*(Dep(artmen)?t|Secretary)|TSA|USAID|(William\s*J\.?\s*)?Zloch',
|
|
408
400
|
emailers = {
|
|
409
401
|
ANN_MARIE_VILLAFANA: 'southern district of Florida U.S. Attorney',
|
|
410
402
|
DANNY_FROST: 'Director of Communications at Manhattan DA',
|
|
@@ -476,7 +468,7 @@ HIGHLIGHTED_NAMES = [
|
|
|
476
468
|
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|McCain|(?<!Merwin Dela )Cruz|(Michael\s)?Hayden|((General|Mike)\s*)?(Flynn|Pence)|(Mitt\s*)?Romney|Mnuchin|Nikki|Haley|(Paul\s+)?(Manafort|Volcker)|(Peter\s)?Navarro|Pompeo|Reagan|Reince|Priebus|Republican|(Rex\s*)?Tillerson|(?<!Cynthia )(Richard\s*)?Nixon|Sasse|Tea\s*Party',
|
|
477
469
|
# There's no emails from these people, they're just here to automate the regex creation for both first + last names
|
|
478
470
|
emailers = {
|
|
479
|
-
RUDY_GIULIANI:
|
|
471
|
+
RUDY_GIULIANI: None,
|
|
480
472
|
TULSI_GABBARD: None,
|
|
481
473
|
},
|
|
482
474
|
),
|
|
@@ -484,7 +476,7 @@ HIGHLIGHTED_NAMES = [
|
|
|
484
476
|
label='Rothschild family',
|
|
485
477
|
style='indian_red',
|
|
486
478
|
emailers={
|
|
487
|
-
ARIANE_DE_ROTHSCHILD:
|
|
479
|
+
ARIANE_DE_ROTHSCHILD: 'heiress',
|
|
488
480
|
JOHNNY_EL_HACHEM: f'Works with {ARIANE_DE_ROTHSCHILD}',
|
|
489
481
|
},
|
|
490
482
|
),
|
|
@@ -504,7 +496,7 @@ HIGHLIGHTED_NAMES = [
|
|
|
504
496
|
style='light_goldenrod2',
|
|
505
497
|
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|Norman\s*Finkelstein|Praluent|Regeneron|(Richard\s*)?Dawkins|Sanofi|Stanford|(Stephen\s*)?Hawking|(Steven?\s*)?Pinker|UCLA',
|
|
506
498
|
emailers = {
|
|
507
|
-
DAVID_HAIG:
|
|
499
|
+
DAVID_HAIG: 'evolutionary geneticist?',
|
|
508
500
|
JOSCHA_BACH: 'cognitive science / AI research',
|
|
509
501
|
'Daniel Kahneman': 'Nobel economic sciences laureate and cognitivie psychologist (?)',
|
|
510
502
|
'Ed Boyden': 'Associate Professor, MIT Media Lab neurobiology',
|
|
@@ -538,7 +530,7 @@ HIGHLIGHTED_NAMES = [
|
|
|
538
530
|
HighlightedNames(
|
|
539
531
|
label='trump',
|
|
540
532
|
style='red3 bold',
|
|
541
|
-
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)|
|
|
533
|
+
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)|Ivank?a|Jared|Kushner|(Madeleine\s*)?Westerhout|Mar[-\s]*a[-\s]*Lago|(Marla\s*)?Maples|(Matt(hew)? )?Calamari|\bMatt C\b|Melania|(Michael (J.? )?)?Boccio|Rebekah\s*Mercer|Roger\s+Stone|rona|(The\s*)?Art\s*of\s*the\s*Deal",
|
|
542
534
|
emailers = {
|
|
543
535
|
'Bruce Moskowitz': "'Trump's health guy' according to Epstein",
|
|
544
536
|
},
|
|
@@ -560,7 +552,7 @@ HIGHLIGHTED_NAMES = [
|
|
|
560
552
|
HighlightedNames(
|
|
561
553
|
label=VIRGIN_ISLANDS,
|
|
562
554
|
style='sea_green1',
|
|
563
|
-
pattern=r'Antigua|Bahamas|Caribb?ean|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
|
|
555
|
+
pattern=r'Antigua|Bahamas|Caribb?ean|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|(?<!Epstein )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
|
|
564
556
|
emailers = {
|
|
565
557
|
CECILE_DE_JONGH: f'First lady 2007-2015',
|
|
566
558
|
STACEY_PLASKETT: 'non-voting member of Congress',
|
|
@@ -669,7 +661,7 @@ def get_info_for_name(name: str) -> str | None:
|
|
|
669
661
|
def get_style_for_category(category: str) -> str | None:
|
|
670
662
|
if category in CATEGORY_STYLES:
|
|
671
663
|
return CATEGORY_STYLES[category]
|
|
672
|
-
elif category
|
|
664
|
+
elif category == CONFERENCE:
|
|
673
665
|
return f"{get_style_for_category(ACADEMIA)} dim"
|
|
674
666
|
elif category == SOCIAL:
|
|
675
667
|
return get_style_for_category(PUBLICIST)
|
epstein_files/util/output.py
CHANGED
|
@@ -32,8 +32,6 @@ DEFAULT_EMAILERS = [
|
|
|
32
32
|
MASHA_DROKOVA,
|
|
33
33
|
RENATA_BOLOTOVA,
|
|
34
34
|
STEVE_BANNON,
|
|
35
|
-
OLIVIER_COLOM,
|
|
36
|
-
BORIS_NIKOLIC,
|
|
37
35
|
PRINCE_ANDREW,
|
|
38
36
|
JIDE_ZEITLIN,
|
|
39
37
|
DAVID_STERN,
|
|
@@ -60,7 +58,7 @@ if len(set(DEFAULT_EMAILERS).intersection(set(DEFAULT_EMAILER_TABLES))) > 0:
|
|
|
60
58
|
def print_emails(epstein_files: EpsteinFiles) -> int:
|
|
61
59
|
"""Returns number of emails printed."""
|
|
62
60
|
print_section_header(('Selections from ' if not args.all_emails else '') + 'His Emails')
|
|
63
|
-
|
|
61
|
+
print_all_files_page_link(epstein_files)
|
|
64
62
|
emailers_to_print: list[str | None]
|
|
65
63
|
emailer_tables: list[str | None] = []
|
|
66
64
|
already_printed_emails: list[Email] = []
|
|
@@ -69,7 +67,7 @@ def print_emails(epstein_files: EpsteinFiles) -> int:
|
|
|
69
67
|
if specified_names:
|
|
70
68
|
emailers_to_print = specified_names
|
|
71
69
|
else:
|
|
72
|
-
epstein_files.
|
|
70
|
+
print_centered(Padding(epstein_files.table_of_emailers(), (2, 0)))
|
|
73
71
|
|
|
74
72
|
if args.all_emails:
|
|
75
73
|
emailers_to_print = sorted(epstein_files.all_emailers(), key=lambda e: epstein_files.earliest_email_at(e))
|
|
@@ -105,8 +103,8 @@ def print_emails(epstein_files: EpsteinFiles) -> int:
|
|
|
105
103
|
if args.all_emails:
|
|
106
104
|
_verify_all_emails_were_printed(epstein_files, already_printed_emails)
|
|
107
105
|
|
|
108
|
-
fwded_articles = [e for e in already_printed_emails if e.config and e.
|
|
109
|
-
log_msg = f"Rewrote {len(Email.rewritten_header_ids)}
|
|
106
|
+
fwded_articles = [e for e in already_printed_emails if e.config and e.is_fwded_article()]
|
|
107
|
+
log_msg = f"Rewrote {len(Email.rewritten_header_ids)} of {len(already_printed_emails)} email headers"
|
|
110
108
|
logger.warning(f"{log_msg}, {len(fwded_articles)} of the emails were forwarded articles.")
|
|
111
109
|
return len(already_printed_emails)
|
|
112
110
|
|
|
@@ -125,17 +123,6 @@ def print_json_files(epstein_files: EpsteinFiles):
|
|
|
125
123
|
console.print_json(json_file.json_str(), indent=4, sort_keys=False)
|
|
126
124
|
|
|
127
125
|
|
|
128
|
-
def write_json_metadata(epstein_files: EpsteinFiles) -> None:
|
|
129
|
-
json_str = epstein_files.json_metadata()
|
|
130
|
-
|
|
131
|
-
if args.build:
|
|
132
|
-
with open(JSON_METADATA_PATH, 'w') as f:
|
|
133
|
-
f.write(json_str)
|
|
134
|
-
log_file_write(JSON_METADATA_PATH)
|
|
135
|
-
else:
|
|
136
|
-
console.print_json(json_str, indent=4, sort_keys=True)
|
|
137
|
-
|
|
138
|
-
|
|
139
126
|
def print_json_stats(epstein_files: EpsteinFiles) -> None:
|
|
140
127
|
console.line(5)
|
|
141
128
|
console.print(Panel('JSON Stats Dump', expand=True, style='reverse bold'), '\n')
|
|
@@ -149,21 +136,19 @@ def print_json_stats(epstein_files: EpsteinFiles) -> None:
|
|
|
149
136
|
print_json("count_by_month", count_by_month(epstein_files.all_documents()))
|
|
150
137
|
|
|
151
138
|
|
|
152
|
-
def
|
|
153
|
-
|
|
154
|
-
print_centered("(conversations are sorted chronologically based on timestamp of first message)\n", style='gray30')
|
|
155
|
-
authors: list[str | None] = specified_names if specified_names else [JEFFREY_EPSTEIN]
|
|
156
|
-
log_files = epstein_files.imessage_logs_for(authors)
|
|
157
|
-
|
|
158
|
-
for log_file in log_files:
|
|
159
|
-
console.print(Padding(log_file))
|
|
160
|
-
console.line(2)
|
|
139
|
+
def write_json_metadata(epstein_files: EpsteinFiles) -> None:
|
|
140
|
+
json_str = epstein_files.json_metadata()
|
|
161
141
|
|
|
162
|
-
|
|
142
|
+
if args.build:
|
|
143
|
+
with open(JSON_METADATA_PATH, 'w') as f:
|
|
144
|
+
f.write(json_str)
|
|
145
|
+
log_file_write(JSON_METADATA_PATH)
|
|
146
|
+
else:
|
|
147
|
+
console.print_json(json_str, indent=4, sort_keys=True)
|
|
163
148
|
|
|
164
149
|
|
|
165
150
|
def write_urls() -> None:
|
|
166
|
-
"""Write _URL style constant variables to
|
|
151
|
+
"""Write _URL style constant variables to URLS_ENV file so bash scripts can load as env vars."""
|
|
167
152
|
url_vars = {k: v for k, v in vars(output_files).items() if k.endswith('URL') and not k.startswith('GH')}
|
|
168
153
|
|
|
169
154
|
if not args.suppress_output:
|
|
@@ -190,8 +175,8 @@ def _verify_all_emails_were_printed(epstein_files: EpsteinFiles, already_printed
|
|
|
190
175
|
logger.warning(f"Printed {len(already_printed_emails):,} emails of {len(email_ids_that_were_printed):,} unique file IDs.")
|
|
191
176
|
missed_an_email = False
|
|
192
177
|
|
|
193
|
-
for email in epstein_files.
|
|
194
|
-
if email.file_id not in email_ids_that_were_printed
|
|
178
|
+
for email in epstein_files.non_duplicate_emails():
|
|
179
|
+
if email.file_id not in email_ids_that_were_printed:
|
|
195
180
|
logger.warning(f"Failed to print {email.summary()}")
|
|
196
181
|
missed_an_email = True
|
|
197
182
|
|