Commit graph

2536 commits

Author SHA1 Message Date
Hongbo Wu
6618a6ed19 migrate popular reads into database 2023-10-20 14:31:16 +08:00
Rudra
23eb7ea76f fix typo 2023-10-20 11:51:02 +05:30
Jackson Harper
a23b67b70b Dont rate limit auth in local env so tests can run 2023-10-20 11:44:52 +08:00
Jackson Harper
b9e2f9ee53 Add a longer rate limit window on createaccount/reset password, reduce api rate limit hits 2023-10-20 11:28:16 +08:00
Hongbo Wu
4e36a5809e fix failure of re-subscribing rss feed 2023-10-20 11:05:58 +08:00
Hongbo Wu
750ccb0c42 fix conflicts with main 2023-10-19 17:44:53 +08:00
Hongbo Wu
1880f2ace4 Update rss handler to fetch a group of rss feeds in one task 2023-10-19 17:27:55 +08:00
Hongbo Wu
f50d1c9cb9 Group RSS subscriptions by feed URL and create cloud task for the groups 2023-10-19 17:27:08 +08:00
Hongbo Wu
5283a84908 add scheduledAt to the task payload 2023-10-19 17:27:08 +08:00
Hongbo Wu
18aece84e7 add scheduledAt to subscriptions 2023-10-19 17:27:08 +08:00
Jackson Harper
c93e61ec24 Remove debug 2023-10-18 21:30:23 +08:00
Jackson Harper
78a642db6d Update type signature 2023-10-18 19:53:26 +08:00
Jackson Harper
5c576347a8 MOre debug 2023-10-18 19:26:45 +08:00
Jackson Harper
fbaaaeca7c Add some debugging 2023-10-18 18:48:18 +08:00
Jackson Harper
7848413645 Update schema 2023-10-18 16:34:20 +08:00
Jackson Harper
cf101c6d18 Cache and check feed checksums to reduce fetching 2023-10-18 16:26:03 +08:00
Hongbo Wu
46313b14ba set trust proxy = true if set in env var 2023-10-18 13:06:33 +08:00
Hongbo Wu
988b20e30c test trust proxy=true 2023-10-18 12:30:27 +08:00
Hongbo Wu
506004d410 test trust proxy=2 2023-10-18 11:58:15 +08:00
Hongbo Wu
32ba744d20 test trust proxy=1 2023-10-18 11:04:32 +08:00
Hongbo Wu
91076014cd log req.ip 2023-10-18 11:04:32 +08:00
Hongbo Wu
0874f6ff21 log x-forwarded-for header for debugging purpose 2023-10-18 11:04:32 +08:00
Jackson Harper
71aaef3628 Update attachment URL 2023-10-18 10:43:53 +08:00
Jackson Harper
b88c64424f Special handling of file URLs 2023-10-18 10:37:21 +08:00
Jackson Harper
78843fff14 Remove import 2023-10-18 10:27:09 +08:00
Jackson Harper
4220922ff8 Preserve original URL if possible 2023-10-18 10:23:26 +08:00
Jackson Harper
b6ce4f39b1 Fix imports 2023-10-18 10:15:49 +08:00
Jackson Harper
25c0051fd4 Only use signed URLs for PDF attachments 2023-10-18 10:14:35 +08:00
Hongbo Wu
fa2fba1a2c
Merge pull request #2942 from omnivore-app/fix/rules
improvement on subscriptions and delete user api
2023-10-17 17:14:49 +08:00
Hongbo Wu
700fd73dbb disallow social login if account is deleted 2023-10-17 17:07:46 +08:00
Hongbo Wu
6e79f6c67f update sql to deduplicate rss subscriptions 2023-10-17 16:41:14 +08:00
Hongbo Wu
eb667e04b9 update reading progress in db 2023-10-17 15:09:16 +08:00
Hongbo Wu
1b2d93e118 remove duplicate rss subscriptions by user and url; create a unique constraint 2023-10-16 17:35:29 +08:00
Jackson Harper
9e8ccb35e3 Limit users to a single import a day 2023-10-16 15:48:03 +08:00
Hongbo Wu
e54c1c81a1 soft delete user by calling delete account api 2023-10-16 15:24:53 +08:00
Jackson Harper
34798f39f0 Disable JSONLD fetching which can be quite slow 2023-10-16 11:25:37 +08:00
Jackson Harper
a20b956e26
Merge pull request #2926 from omnivore-app/fix/api-site-name-query
Add ILIKE queries to all field queries
2023-10-13 22:02:55 +08:00
Hongbo Wu
497b6e9f72 fetch highlights if necessary and before converting content to markdown 2023-10-13 18:27:57 +08:00
Jackson Harper
3f4be32df8 Merge library item imports 2023-10-13 18:26:02 +08:00
Hongbo Wu
a6c5f4e862 fix bulk action slow query 2023-10-13 13:45:09 +08:00
Hongbo Wu
4d64231abf save content reader in the item 2023-10-12 12:59:36 +08:00
Hongbo Wu
d1472c6519
Merge pull request #2915 from omnivore-app/fix/drop-label-position-trigger
drop position trigger on labels table and sort labels by name returned by labels api
2023-10-12 12:10:33 +08:00
Hongbo Wu
9b25a64fd8
Merge pull request #2916 from omnivore-app/fix/email-attachment
fix email attachment not being saved as item
2023-10-12 12:09:01 +08:00
Hongbo Wu
039632556b add more method in mock cloud storage and update test cases for email-attachment rest api 2023-10-12 11:56:54 +08:00
Hongbo Wu
1bc9912271 fix failure of saving highlight when position is null 2023-10-12 11:27:46 +08:00
Hongbo Wu
ebb45f1973 fix email attachment not being saved as item 2023-10-12 10:47:20 +08:00
Hongbo Wu
f1c4bc6a74 fix email attachment not being saved as item 2023-10-12 10:46:12 +08:00
Hongbo Wu
b0f0dba53d drop position trigger on labels table and sort labels by name returned by labels api 2023-10-12 10:39:35 +08:00
Hongbo Wu
30ba22cbbc add user_id to the sql query to reduce query latency 2023-10-11 16:05:35 +08:00
Hongbo Wu
a4aeb40276 fix: after successfully deleted highlights, still return error codes 2023-10-11 14:48:44 +08:00
Hongbo Wu
768845e101 update the filter value to use is:reading of the Continue Reading filter 2023-10-10 15:33:59 +08:00
Hongbo Wu
62ffaa924b add wordsCount filter 2023-10-10 12:52:49 +08:00
Hongbo Wu
93c410a564 fix is:read filter and add is:reading filter 2023-10-10 12:21:32 +08:00
Hongbo Wu
3e91f3836b fix tests 2023-10-10 10:58:48 +08:00
Hongbo Wu
835b61064f allow filter by wordsCount 2023-10-10 10:58:48 +08:00
Hongbo Wu
1adbed9876 revert postgres connection timeout 2023-10-10 10:33:49 +08:00
Hongbo Wu
bab343c41f testing 2023-10-10 10:10:45 +08:00
Hongbo Wu
ac0d295cf3 debug 2023-10-09 22:06:35 +08:00
Hongbo Wu
0b7da62aca debug 2023-10-09 21:34:52 +08:00
Hongbo Wu
f4f38e4b31 reduce unnecessary logs 2023-10-09 17:26:03 +08:00
Hongbo Wu
78490e15f1 disable db connection timeout 2023-10-09 15:30:30 +08:00
Hongbo Wu
50901d25a3 remove elastic url from env var 2023-10-09 13:00:30 +08:00
Hongbo Wu
e424328f20 fix recommendations not fetched in search results 2023-10-05 23:00:29 +08:00
Hongbo Wu
ac576aa5c7 fix isArchived = false when archivedAt is not null 2023-10-05 17:53:57 +08:00
Hongbo Wu
39b3a1cad4 resolve conflicts 2023-10-05 14:37:21 +08:00
Hongbo Wu
463231b26b fix trigger 2023-10-05 14:32:05 +08:00
Hongbo Wu
0e7f45a758 create a trigger to update recommender_names in library_item table 2023-10-05 14:32:05 +08:00
Hongbo Wu
f6c906201b fetch recommendations separately too 2023-10-05 14:32:05 +08:00
Hongbo Wu
d4404b0248 fetch labels and highlights after items fetched in a search query 2023-10-05 14:32:05 +08:00
Hongbo Wu
bb59ed757c fix word count not return 2023-10-05 14:32:05 +08:00
Hongbo Wu
cbf58614c4 use log levels in custom typeorm logger 2023-10-05 14:32:05 +08:00
Hongbo Wu
efdbc4f345 use interpolated string or dictionary parameter in logs 2023-10-05 14:32:03 +08:00
Hongbo Wu
327f6959ef fix highlight createdByMe is wrong 2023-10-05 14:31:07 +08:00
Hongbo Wu
0ff9fdef04 add elastic scroll time in the env var 2023-10-05 14:31:07 +08:00
Hongbo Wu
0912e7cf0f remove warn logs 2023-10-05 14:31:07 +08:00
Hongbo Wu
3b8b48bc21 fix recovered deleted items still shown in trash 2023-10-05 14:31:07 +08:00
Hongbo Wu
7bf3f1bbf4 set deletedAt to now when bulk delete 2023-10-05 14:31:07 +08:00
Hongbo Wu
47510c0785 fix recommendations not fetched in search results 2023-10-05 14:31:07 +08:00
Hongbo Wu
9c723ecbd3 fix id not set in page update pubsub message 2023-10-05 14:31:07 +08:00
Hongbo Wu
0c691257eb fix rules permission 2023-10-05 14:31:07 +08:00
Hongbo Wu
5f6587537e fix recommendation wildcard search 2023-10-05 14:31:07 +08:00
Hongbo Wu
bf2c54084b fix getArticle API failed on iOS 2023-10-05 14:31:07 +08:00
Hongbo Wu
9e5196406e revert rls on old tables 2023-10-05 14:31:07 +08:00
Hongbo Wu
2e5529fd81 allow readingProgressAnchorIndex to be null 2023-10-05 14:31:07 +08:00
Hongbo Wu
8712107a2f remove db caching 2023-10-05 14:31:07 +08:00
Hongbo Wu
c57ead3583 add test for when rss:feed in:archive is in the query 2023-10-05 14:31:07 +08:00
Hongbo Wu
867c31a582 add test for searching in:archive label:test 2023-10-05 14:31:07 +08:00
Hongbo Wu
6cb4bb8de8 fix in:subscription search 2023-10-05 14:31:07 +08:00
Hongbo Wu
15f9017291 fix in:archive search 2023-10-05 14:31:07 +08:00
Hongbo Wu
a35e6c0147 fix sort by read time bug 2023-10-05 14:31:07 +08:00
Hongbo Wu
dc98719b85 reduce log 2023-10-05 14:31:07 +08:00
Hongbo Wu
0c5ba53c26 fix recommendations 2023-10-05 14:31:07 +08:00
Hongbo Wu
b9af543b45 fix rss feeds 2023-10-05 14:31:06 +08:00
Hongbo Wu
673ce83c33 fix searching for site 2023-10-05 14:31:06 +08:00
Hongbo Wu
4ff5484d8e change item_type to text 2023-10-05 14:31:06 +08:00
Hongbo Wu
7c56973fad fix update filter api 2023-10-05 14:31:06 +08:00
Hongbo Wu
e696709a69 resolve conflicts 2023-10-05 14:31:06 +08:00
Hongbo Wu
7225d861f3 use skip and take instead of limit, offset 2023-10-05 14:31:06 +08:00
Hongbo Wu
68e381deb2 revert note changes 2023-10-05 14:31:06 +08:00
Hongbo Wu
fdd771bc06 add migration script 2023-10-05 14:31:06 +08:00
Hongbo Wu
dd292879a4 sort type ahead search result by saved at desc order 2023-10-05 14:31:06 +08:00
Hongbo Wu
2b9a6b26f6 debug test error 2023-10-05 14:30:37 +08:00
Hongbo Wu
a284884398 fix rebase conflicts 2023-10-05 14:30:37 +08:00
Hongbo Wu
5a9dc344d3 fix rebase conflicts 2023-10-05 14:30:35 +08:00
Hongbo Wu
cbaa3d6900 fix newsletters test 2023-10-05 14:30:10 +08:00
Hongbo Wu
c3caf15e44 fix auth tests 2023-10-05 14:30:10 +08:00
Hongbo Wu
024d558cfe update labels rls 2023-10-05 14:30:10 +08:00
Hongbo Wu
6672ca0109 fix labels tests 2023-10-05 14:30:10 +08:00
Hongbo Wu
4b95b732cf fix highlight tests 2023-10-05 14:30:10 +08:00
Hongbo Wu
b036149fe2 fix feature tests 2023-10-05 14:30:10 +08:00
Hongbo Wu
d50174ef76 fix article tests 2023-10-05 14:30:10 +08:00
Hongbo Wu
669cddeec8 fix some rls issue 2023-10-05 14:30:10 +08:00
Hongbo Wu
cea5f790d8 fix some tests 2023-10-05 14:30:09 +08:00
Hongbo Wu
01c74cb7c4 fix tests for popular reads 2023-10-05 14:29:25 +08:00
Hongbo Wu
50bfc1fa74 fix tests 2023-10-05 14:29:23 +08:00
Hongbo Wu
bab957256d fix multiple parameters in query builder 2023-10-05 14:28:52 +08:00
Hongbo Wu
e1a7a24323 improve search result 2023-10-05 14:28:52 +08:00
Hongbo Wu
1bade22076 fix file uploading 2023-10-05 14:28:52 +08:00
Hongbo Wu
e05d341952 fix file uploading 2023-10-05 14:28:52 +08:00
Hongbo Wu
86cff913fb fix label search 2023-10-05 14:28:52 +08:00
Hongbo Wu
0747c4603c fix bulk action 2023-10-05 14:28:52 +08:00
Hongbo Wu
afa1165a29 fix setting labels 2023-10-05 14:28:52 +08:00
Hongbo Wu
33ba17707b fix setting labels 2023-10-05 14:28:52 +08:00
Hongbo Wu
0016b0a9a7 fix update library item 2023-10-05 14:28:52 +08:00
Hongbo Wu
d9d71aa443 fix highlights api 2023-10-05 14:28:52 +08:00
Hongbo Wu
5ed7e819e8 fix label constraint 2023-10-05 14:28:52 +08:00
Hongbo Wu
b72acf8e6f fix permission issue 2023-10-05 14:28:52 +08:00
Hongbo Wu
4a55e801b4 fix typo 2023-10-05 14:28:50 +08:00
Hongbo Wu
3f572ea89a fix typo 2023-10-05 14:27:52 +08:00
Hongbo Wu
65bb4aa85f remove knex 2023-10-05 14:27:18 +08:00
Hongbo Wu
c1ad9b6f41 cont 2023-10-05 14:27:18 +08:00
Hongbo Wu
f8f3ec0c56 save claim in httpContext 2023-10-05 14:27:17 +08:00
Hongbo Wu
b1899e340d replace library item 2023-10-05 14:25:10 +08:00
Hongbo Wu
c655f78f8c replace highlight 2023-10-05 14:24:28 +08:00
Hongbo Wu
381e9bc173 replace database subscriber with db trigger 2023-10-05 14:24:05 +08:00
Hongbo Wu
612151c151 remove elastic from docker-compose 2023-10-05 14:24:04 +08:00
Hongbo Wu
5dce78eedb update entity subscriber 2023-10-05 14:22:58 +08:00
Hongbo Wu
648a16615b update search query 2023-10-05 14:22:58 +08:00
Hongbo Wu
751df68175 implement search function 2023-10-05 14:22:58 +08:00
Hongbo Wu
0b309b7a45 add recommendation db table and entity 2023-10-05 14:22:58 +08:00
Hongbo Wu
5f0e1af285 update highlight entity 2023-10-05 14:22:58 +08:00
Hongbo Wu
06000264d2 replace saveEmail 2023-10-05 14:22:58 +08:00
Hongbo Wu
fc52b522f2 fix test 2023-10-05 14:22:58 +08:00
Hongbo Wu
9370951893 create a repository directory 2023-10-05 14:22:56 +08:00
Hongbo Wu
425864ce01 remove knex 2023-10-05 14:21:56 +08:00
Hongbo Wu
928ed2e6a9 add libraryItemPreview entity class 2023-10-05 14:18:21 +08:00
Hongbo Wu
e1af53ab48 add libraryItem entity class 2023-10-05 14:18:21 +08:00
Hongbo Wu
789cb1d501
Merge pull request #2860 from omnivore-app/fix/self-hosting-login
fix demo user not able to login when self hosting
2023-10-05 12:02:46 +08:00
Hongbo Wu
c008c3154d make reminder task url optional env var 2023-10-05 11:36:34 +08:00
Hongbo Wu
16f72d6a74 fix labels and highlights were deleted when deleting items 2023-10-05 10:03:06 +08:00
Hongbo Wu
418f27f586 fix convert to email login does not change source field in user table 2023-10-04 16:35:50 +08:00
Jackson Harper
c41363b51c
Merge pull request #2831 from omnivore-app/feature/convert-to-email-api
Update Email Feature
2023-10-04 14:30:35 +08:00
Hongbo Wu
3cf0c45fa9 mark unsubscribed newsletter in the db 2023-10-03 12:50:55 +08:00
Hongbo Wu
ee50529f95 add update email form on account page 2023-10-02 22:21:50 +08:00
Hongbo Wu
c40e64773a convert to email api 2023-10-02 17:01:13 +08:00
Hongbo Wu
082e83b1ad fix 406 not acceptable error from subscribing an rss feed 2023-10-02 10:52:50 +08:00
Hongbo Wu
010e2841da fix getting 403 when parsing some rss url by setting a user agent in the request 2023-09-27 10:38:49 +08:00
Jackson Harper
21244a394d Move debug directory to not interfere with usernames 2023-09-22 17:56:25 +08:00
Jackson Harper
53ac43563d Set user properties instead of event properties on labels setter 2023-09-19 12:30:20 +08:00
Jackson Harper
6c6f27be3e Properly tag user on labels event 2023-09-14 16:31:01 +08:00
Jackson Harper
e4b5bd6a67 Add code to join users without email on login 2023-09-14 11:24:19 +08:00
Jackson Harper
014614d097
Merge pull request #2759 from omnivore-app/feat/web-use-posthog
Remove segment from the web
2023-09-13 14:01:08 +08:00
Jackson Harper
dfcfe64b1b Add a create_user event 2023-09-13 13:44:26 +08:00
Jackson Harper
0946f3d3e8 Fix some console logs, better handle posthog 2023-09-13 12:52:34 +08:00
Jackson Harper
842e4bbf98 Update help links 2023-09-13 10:22:45 +08:00
Jackson Harper
293becf596 Ignore link density checks in newsletters 2023-09-12 15:53:43 +08:00
Jackson Harper
2a3214e393 Remove identify call from backend 2023-09-12 09:53:19 +08:00
Jackson Harper
a5eb527ae1
Merge pull request #2738 from omnivore-app/fix/api-enable-rules-notifications
Remove debounce from notification rule
2023-09-07 18:07:06 +08:00
Jackson Harper
facde7d9b3 Remove import 2023-09-07 17:51:20 +08:00
Jackson Harper
e94529a96c
Merge pull request #2707 from Podginator/feat/saved-links
Add Saved Searches,  the ability to add new searches, delete searches, and reorder searches.
2023-09-07 17:27:48 +08:00
Jackson Harper
edd7246a9b Remove debounce from notification rule 2023-09-07 17:24:49 +08:00
Jackson Harper
d0583bf271 Disable persisted queries in Apollo 2023-09-07 14:49:48 +08:00
Jackson Harper
f7e5a8cbfd Increase unauthed rate limit 2023-09-07 14:01:18 +08:00
Thomas Rogers
79f42a5bde Merge Main 2023-09-06 17:54:18 +02:00
Thomas Rogers
13ab13d94d Code Review Comments 2023-09-06 17:51:42 +02:00
Jackson Harper
d2534d692b Better preview URLs for onboarding articles 2023-09-04 18:27:56 +08:00
Thomas Rogers
faf7880fcd Fix some bugs regarding scrolling, fix some UI Issues, and correct the name of Non-feed Filter. 2023-08-31 20:08:54 +02:00
Thomas Rogers
a58864fe2c Merge main 2023-08-30 19:48:04 +02:00
Thomas Rogers
d433d48365 Add Filters, and editing filters. 2023-08-30 19:37:24 +02:00
Jackson Harper
79cea907a3 Fix typo with RSS typed subscription queries 2023-08-30 14:18:39 +08:00
Jackson Harper
fe3d3be7f5 Make query more clear 2023-08-29 20:17:13 +08:00
Jackson Harper
6c1484cd09 Add type filter 2023-08-29 20:06:28 +08:00
Jackson Harper
3565c7000e Update subscriptions query 2023-08-29 17:03:49 +08:00
Jackson Harper
8851017100 Use andWhere query to not overwrite the where 2023-08-29 15:54:07 +08:00
Jackson Harper
89c17fd0ab Only filter inactive newsletters out from the subscriptions response 2023-08-29 11:34:55 +08:00
Jackson Harper
49496f7aa2 Only return active subscriptions 2023-08-29 10:19:57 +08:00
Jackson Harper
feaa539c15 Use and where for type query. Prettier changes 2023-08-28 15:23:14 +08:00
Jackson Harper
aa0f4399aa Remove prettier changes 2023-08-28 15:15:05 +08:00
Jackson Harper
38c9bbdcaa Allow getting all subscritons regardless of type at the same time 2023-08-28 15:11:16 +08:00
Hongbo Wu
ec574d0ad9 use new color or the color of the last overlap highlight when merging highlights 2023-08-18 13:54:38 +08:00
Hongbo Wu
ce480806c0 add color to create/update/merge highlight api and highlight schema 2023-08-18 13:30:54 +08:00
Hongbo Wu
cd1fc5c4db fix typo 2023-08-17 18:46:39 +08:00
Hongbo Wu
c45b760f71 fix test 2023-08-17 18:42:11 +08:00
Hongbo Wu
e54e61f3c0 reduce log size 2023-08-17 18:33:14 +08:00
Hongbo Wu
dedd76cfb7 do not publish a pubsub event if the page is imported 2023-08-17 18:24:57 +08:00
Hongbo Wu
ec88a9fe8e we don't want to create thumbnail for imported pages 2023-08-17 18:05:51 +08:00
Hongbo Wu
0609043956 reduce retry 2023-08-17 17:59:24 +08:00
Hongbo Wu
6f315ef4d9 create a transaction for uploading files in the upload_files resolver 2023-08-16 21:19:03 +08:00
Hongbo Wu
755fb66588
Merge pull request #2651 from omnivore-app/feature/csv-importer
feature/csv importer
2023-08-15 14:09:36 +08:00
Hongbo Wu
9ad9cea917 raise rss limit to 150 2023-08-14 22:27:43 +08:00
Hongbo Wu
5f6be169bd add savedAt and publishedAt to saveUrl api 2023-08-14 17:10:34 +08:00
Hongbo Wu
fb845152d9 add header to the pocket data csv file 2023-08-14 13:44:30 +08:00
Hongbo Wu
93cca5040e add comment 2023-08-11 14:41:21 +08:00
Hongbo Wu
05e73ebc9c reduce readwise api timeout to 5 sec 2023-08-11 14:38:45 +08:00
Hongbo Wu
b18018ab2e reduce max content size to 5MB and 10MB for both content and originalHtml 2023-08-11 14:02:29 +08:00
Hongbo Wu
792cf0b207 upgrade google cloud sdk 2023-08-11 13:55:29 +08:00
Hongbo Wu
55841e595f fix dependecies 2023-08-11 11:12:03 +08:00
Hongbo Wu
61f553fd09
Merge pull request #2616 from omnivore-app/fix/thumbnail-delay
fix thumbnail not pre-cached if it was already set
2023-08-10 18:45:48 +08:00
Hongbo Wu
7bd747601b update thumbnail if failed to fetch and return url if already signed 2023-08-10 18:41:10 +08:00
Hongbo Wu
f06d2558c2 update thumbnail if failed to fetch and return url if already signed 2023-08-10 18:41:03 +08:00
Hongbo Wu
8809c9764a max content length = 10MB 2023-08-10 18:12:29 +08:00
Hongbo Wu
fc76897df3 timeout = 5 when syncing omnivore data to readwise 2023-08-10 15:23:03 +08:00
Hongbo Wu
d4ac069503 fix webhook logs 2023-08-10 15:07:00 +08:00
Hongbo Wu
6acedb64c8 fix maximum call stack size error 2023-08-10 14:18:29 +08:00
Hongbo Wu
7506e27dd0 create or update an opt-in record with null grantedAt if exceeding max users 2023-08-10 13:47:39 +08:00
Hongbo Wu
163dbc73a6 do not send content in the thumbnail task payload 2023-08-10 11:55:59 +08:00
Hongbo Wu
51e0dfde23 set new limit = 1500 2023-08-10 09:43:40 +08:00
Hongbo Wu
3df0ffc5d3 fix existing opted in users not being able to be granted with the feature after increasing the limit 2023-08-08 22:08:37 +08:00
Hongbo Wu
3570079824 fix thumbnail not pre-cached if it was already set 2023-08-07 18:20:59 +08:00
Hongbo Wu
55e378c9b5
Merge pull request #2572 from omnivore-app/feature/pause-rss-feed
add a button to pause rss feed
2023-08-03 13:33:11 +08:00
Hongbo Wu
f4e537a4c7 set max redirect = 5 and timeout = 30 seconds 2023-08-03 13:31:18 +08:00
Hongbo Wu
82d820ea8f get link following the order of preference: via, self, alternate 2023-08-03 13:05:26 +08:00
Hongbo Wu
f3994a8a06 fix test 2023-08-02 22:00:09 +08:00
Hongbo Wu
b403dea247 add a button to pause rss feed 2023-08-01 22:07:53 +08:00
Jackson Harper
3d6d421e84
Merge pull request #2566 from omnivore-app/feat/web-improved-cards
WIP: grid card design
2023-08-01 20:34:39 +08:00
Jackson Harper
c0dbbc3b86 Update icons 2023-08-01 12:31:12 +08:00
Hongbo Wu
00e7e49a4b increase the max number of rss subscriptions to 50 2023-07-31 21:44:50 +08:00
Hongbo Wu
d0ad636b7f use safe stringify in logs 2023-07-28 16:52:28 +08:00
Hongbo Wu
f20e12311a check if the page is from rss feed 2023-07-28 13:53:19 +08:00
Hongbo Wu
9bc7ed92c0 we don't want to update an rss feed page if rss-feeder is tring to re-save it 2023-07-28 12:43:04 +08:00
Hongbo Wu
2e965afd69 reformat sql query in logs 2023-07-27 17:34:12 +08:00
Hongbo Wu
99a52f8d56 replace all the console logs with logger logs 2023-07-27 16:06:44 +08:00
Hongbo Wu
808f6f3d3a remove trace 2023-07-26 22:00:37 +08:00
Jackson Harper
5bf3213e49 Dont send newsletter notifications 2023-07-26 20:53:50 +08:00
Hongbo Wu
61967fdde5 fix test 2023-07-26 18:07:25 +08:00
Hongbo Wu
ced1a711eb fix test 2023-07-26 17:12:40 +08:00
Hongbo Wu
7b36156ce6 add a trace when log size too big 2023-07-26 17:07:24 +08:00
Hongbo Wu
8cd47eec11 run prettier 2023-07-26 16:41:55 +08:00
Hongbo Wu
07d43812a7 use winston logger instead of console log so the log will be truncated if it exceeds the max entry size 2023-07-26 16:27:18 +08:00
Hongbo Wu
66490df72f deeply truncate log object size 2023-07-26 15:52:13 +08:00
Hongbo Wu
f0e62b1d2a use lodash instead of standalone lodash.debounce package 2023-07-26 13:41:51 +08:00
Hongbo Wu
0a227decdd
Merge pull request #2515 from omnivore-app/fix/push-notification
fix/push notification
2023-07-26 12:36:13 +08:00
Hongbo Wu
2841783504 limit max log entry size to 256kb 2023-07-25 23:39:03 +08:00
Hongbo Wu
f5ae16a904 disable gql request log 2023-07-25 23:03:57 +08:00
Hongbo Wu
ecd6a2922f disable sentry error handler 2023-07-25 22:32:00 +08:00
Hongbo Wu
fd6223ee93 revert changes 2023-07-25 21:20:26 +08:00
Hongbo Wu
a3e86a9bc1 only log error.message 2023-07-25 20:52:15 +08:00
Hongbo Wu
0e38060b0c set maxEntrySize for logger to 256KB 2023-07-25 20:07:02 +08:00
Hongbo Wu
1006cdad36 reduce error log size 2023-07-25 19:11:08 +08:00
Hongbo Wu
de647e44bd Revert "move sentry error handler after apollo middleware"
This reverts commit 8d8d2b592c.
2023-07-25 19:10:12 +08:00
Hongbo Wu
8d8d2b592c move sentry error handler after apollo middleware 2023-07-25 18:18:40 +08:00
Hongbo Wu
77456373bf return content without highlight if it takes too long to process highlighted content
* timeout if the get text node function takes more than 10 minutes
2023-07-25 11:19:06 +08:00
Jackson Harper
fa1ff9ba17 Upgrade node to 18.16 2023-07-24 15:55:11 +08:00
Hongbo Wu
0d3b742837 limit 20k articles per pocket import 2023-07-21 18:03:57 +08:00
Hongbo Wu
e0a6a2e0a4 limit number of rss subscriptions to 20 2023-07-21 15:28:20 +08:00
Hongbo Wu
99b12c6cfb debounce send push notificaiton within 1 minute 2023-07-20 21:48:30 +08:00
Hongbo Wu
9a224d2324 add event_types and fix the validation of form on rules page 2023-07-20 18:33:30 +08:00
Hongbo Wu
4dad4a6fa3 revert push notification 2023-07-20 17:29:26 +08:00
Hongbo Wu
6004b51956 return not found if rss feed not found 2023-07-20 14:21:36 +08:00
Hongbo Wu
7ceb96a93e fix edit rss ui 2023-07-20 13:35:43 +08:00
Hongbo Wu
400739f61c stop writing empty csv file if no new data retrieved from the integration 2023-07-20 10:32:46 +08:00
Hongbo Wu
6ef74a2601 disable import button while importer is running 2023-07-20 09:52:23 +08:00
Hongbo Wu
cd440a77c3 send last fetched at as a unix timestamp in ms 2023-07-19 14:09:38 +08:00
Hongbo Wu
35c074e647 create a cloud task to fetch rss feed item for the new subscription 2023-07-19 10:07:08 +08:00
Hongbo Wu
dcb306bcfc do not include archived items in library or subscription 2023-07-18 16:45:24 +08:00
Hongbo Wu
456a73f4ab make library an internal label 2023-07-17 18:29:35 +08:00
Hongbo Wu
44c9bfce48
Merge pull request #2494 from omnivore-app/fix/rss-feed
fix/rss feed
2023-07-17 17:50:00 +08:00
Hongbo Wu
3cfd390346
Merge pull request #2489 from omnivore-app/more-search-scope
add in:subscription and in:library in search scope
2023-07-17 17:28:24 +08:00
Hongbo Wu
03ce4b00d2 add authorization header in rss feed fetching request 2023-07-17 17:27:12 +08:00
Hongbo Wu
be1e8169ba exclude items with newsletter or rss labels in library 2023-07-17 17:06:39 +08:00
Hongbo Wu
113720caf6 wrap document fragment in the <html> and <body> in order to parse the HTML correctly 2023-07-17 16:14:59 +08:00
Hongbo Wu
b3dcf0ee46 default return builder 2023-07-17 16:14:03 +08:00
Hongbo Wu
e3af3f526c add in:subscription and in:library in search scope 2023-07-14 17:07:25 +08:00
Hongbo Wu
153662ce6a set savedAt and publishedAt timestamp for rss item 2023-07-14 12:21:34 +08:00
Hongbo Wu
983f0dcb99 add rss to the search scope 2023-07-13 11:09:13 +08:00
Hongbo Wu
9697ae2eca make rss an internal label 2023-07-13 10:58:37 +08:00
Hongbo Wu
87275fbb9c use a separate queue for fetching rss feed item content 2023-07-13 10:27:15 +08:00
Hongbo Wu
3444480b95 change the rss-feed cronjob api endpoint 2023-07-12 10:53:32 +08:00
Hongbo Wu
435fa0c541
Merge pull request #2478 from omnivore-app/fix/puppeteer-timezone
add optional locale and timezone to saveUrl request for puppeteer to use
2023-07-11 17:32:10 +08:00
Hongbo Wu
1f283e6122 add optional locale and timezone to saveUrl request for puppeteer to use 2023-07-11 16:15:32 +08:00
Hongbo Wu
b1b4a2e3fd save rss feed url in the index 2023-07-11 13:14:43 +08:00
Hongbo Wu
c500997693 add lastFetchedAt to the cloud task payload 2023-07-11 13:05:27 +08:00
Hongbo Wu
eb9a3eddd0 skip old item 2023-07-11 12:59:55 +08:00
Hongbo Wu
44473ba089 upload feed subscriptions in cloud storage in cronjob 2023-07-11 12:22:49 +08:00
Hongbo Wu
56a27878dc add updateSubscription api 2023-07-10 15:24:33 +08:00
Hongbo Wu
68667053c8 create an endpoint to fetch all rss feeds 2023-07-07 21:15:42 +08:00
Hongbo Wu
574636451d update api to accommodate rss feed subscriptions 2023-07-06 19:51:30 +08:00
Hongbo Wu
7075375e2b fix test 2023-07-06 19:51:30 +08:00
Hongbo Wu
2adf753f8f update graphql schema 2023-07-06 19:51:30 +08:00
Hongbo Wu
a6192ed86b add rss subscription entity class 2023-07-06 19:51:30 +08:00
Jackson Harper
0c96172053
Merge pull request #2458 from omnivore-app/feature/search-filter-cat
feat: add category field to Filter object
2023-07-05 10:41:43 -07:00
Hongbo Wu
599d61016e feat: add category field to Filter object 2023-07-03 19:06:45 +08:00
Hongbo Wu
e4284d215c feat: boost sitename score by 2 times in the basic search 2023-07-03 18:09:41 +08:00
Hongbo Wu
afaaf8af60 feat: allow searching by note in the basic search 2023-07-03 18:06:54 +08:00
Hongbo Wu
a413521e3b
Merge pull request #2445 from omnivore-app/feature/create-labels
feat: create labels if not exist when setting labels
2023-07-03 16:54:15 +08:00
Hongbo Wu
88dc514d27 feat: allow recovering a soft deleted item through updatePage api 2023-06-30 18:39:43 +08:00
Hongbo Wu
ba35fa4447 feat: show soft deleted pages within 14 days by searching in:trash 2023-06-30 18:05:41 +08:00
Hongbo Wu
6be9afb619 feat: allow searching by note: 2023-06-30 16:02:49 +08:00
Hongbo Wu
53b854b69f fix: improve full-text search result
* always sort by score first
* boost title score by 3 times
* tie breaker is 0.3
2023-06-30 15:32:09 +08:00
Hongbo Wu
13afb7febd feat: create labels if not exist when setting labels in the highlight 2023-06-30 11:40:39 +08:00
Hongbo Wu
8d3cac989b feat: create labels if not exist when setting labels in the page 2023-06-30 11:08:03 +08:00
Hongbo Wu
74f2dd6bf1 catch authorization error in rate limiter and 5 rpm 2023-06-28 17:04:47 +08:00
Hongbo Wu
b7c133d58e fix: email sending and recommendation
* use token in the custom header as the key in rate limiter
2023-06-28 17:00:11 +08:00
Hongbo Wu
b60ace4877 log unauthorized error 2023-06-28 12:22:32 +08:00
Hongbo Wu
1b069c2696 catch authorization error and return 401 2023-06-28 12:19:47 +08:00
Hongbo Wu
af7350bd31 fix: importer status update email not sent
* create omnivore-authorization header to contain the token
2023-06-28 11:00:40 +08:00
Hongbo Wu
7c0c4eaa40 fix: type error 2023-06-27 21:05:00 +08:00
Hongbo Wu
ed8287df19 remove tracking params from tweet url 2023-06-27 17:49:31 +08:00
Hongbo Wu
bb359d9747 save normalized url 2023-06-27 16:58:57 +08:00
Hongbo Wu
f372636d6e fix: tweet not saved correctly when using share button on iOS 2023-06-27 16:47:36 +08:00
Hongbo Wu
90444788ba
Merge pull request #2400 from omnivore-app/feat/web-multi-select-labels
Add support for multi select Add Label
2023-06-22 09:42:59 +08:00
Jackson Harper
cceff32e5f Return non-error if setting labels is a noop 2023-06-21 20:24:36 +08:00
Hongbo Wu
826565a2c4 temporarily skip unsubscribing by url and mark them as unsubscribed automatically 2023-06-21 12:13:22 +08:00
Hongbo Wu
4f74b32ff6 do not subscribe a newsletter if subscription already exists and is unsubscribed 2023-06-21 12:02:15 +08:00
Hongbo Wu
84788e7551 fix: mark failed to unsubscribe newsletters as unsubscribed state 2023-06-21 11:33:49 +08:00
Hongbo Wu
ea6d06f464
Merge pull request #2375 from omnivore-app/fix/pocket-importer
fix pocket paginated api
2023-06-19 11:19:31 +08:00
Hongbo Wu
0d8a3f7346 fix pocket paginated api 2023-06-16 18:11:31 +08:00
Hongbo Wu
c8e3f79655
Merge pull request #2368 from omnivore-app/fix/api-robots-txt
Add robots.txt to the list of reserved names
2023-06-16 16:38:06 +08:00
Jackson Harper
cf7c50468e Use normalized URLs when querying article saving requests
When we save pages we save the normalized URL, so if a user saves
a URL like https://foo.com/ in elastic it will be saved as
https://foo.com but the browser will redirect to this url:

https://omnivore.app/article?url=https://foo.com/ and the URL
lookup will fail.
2023-06-16 15:15:24 +08:00
Jackson Harper
5dd28de9e8 Add security.txt file too 2023-06-16 12:54:30 +08:00
Jackson Harper
52af2d8cb4 Add robots.txt to the list of reserved names 2023-06-16 12:54:30 +08:00
Hongbo Wu
9a3673e315
Merge pull request #2367 from omnivore-app/fix/refresh-index
refresh index after altering the page state or adding/removing/updating labels/highlights
2023-06-15 12:18:53 +08:00
Hongbo Wu
ceaa7b0356 refresh index after altering the page state or adding/removing/updating labels/highlights 2023-06-15 11:37:09 +08:00
Hongbo Wu
5d2ab3f554 create another rate limiter for auth api with 4 rpm 2023-06-14 19:31:18 +08:00
Hongbo Wu
fc08a434e1
Merge pull request #2359 from omnivore-app/fix/pocket-import
fix/pocket import
2023-06-14 15:32:10 +08:00
Jackson Harper
aaf6bb617f Remove backend events that we dont need to watch 2023-06-14 13:19:39 +08:00
Hongbo Wu
11cf9f7c28 stringify csv before uploading 2023-06-14 12:50:06 +08:00
Hongbo Wu
d851a705a6 refresh index after archiving page 2023-06-13 12:44:32 +08:00
Hongbo Wu
771114b30d refresh index if update is not async 2023-06-13 12:43:18 +08:00
Hongbo Wu
1a48ad03e4 use a separate queue for thumbnailer 2023-06-12 12:25:04 +08:00
Hongbo Wu
8904247620 add test 2023-06-09 18:58:41 +08:00
Hongbo Wu
b12e127d15 use gold color for the label 2023-06-09 17:36:38 +08:00
Hongbo Wu
5db4354f3f make internal optional in label response 2023-06-09 17:33:14 +08:00
Hongbo Wu
bd4204fc42 add analytics 2023-06-09 13:14:14 +08:00
Hongbo Wu
55904ccf04 feat: add set favorite article api which adds the favorites internal label to it 2023-06-09 13:09:47 +08:00
Hongbo Wu
6116746e80 feat: make newsletters and favorites internal labels 2023-06-09 12:48:46 +08:00
Hongbo Wu
51032d2bf1 fix: test 2023-06-08 18:52:47 +08:00
Hongbo Wu
039f00e3b2 perf: add max doc and throttling to bulk api 2023-06-08 18:36:09 +08:00
Hongbo Wu
4678d6f473 check label uniqueness by name 2023-06-08 13:33:59 +08:00
Hongbo Wu
3630d743d7 add unique labels 2023-06-08 13:29:05 +08:00
Hongbo Wu
de3623d3f2 allow mark as read and add labels bulk actions 2023-06-08 13:05:30 +08:00
Hongbo Wu
1af845e4e5 feat: add bulk action api schema 2023-06-07 21:50:43 +08:00
Hongbo Wu
b698029972 store token in cookie instead of authorization header 2023-06-07 14:24:52 +08:00
Hongbo Wu
c0872939a7
Merge pull request #2311 from omnivore-app/feature/metadata
Feature: Set thumbnail and pre-cache all the images in the content
2023-06-07 12:08:20 +08:00
Hongbo Wu
9be84fb473 create thumbnail task for newsletters too 2023-06-07 11:52:13 +08:00
Hongbo Wu
986c4eb48b fix: parse unsubscribe mailto email address and set subject 2023-06-06 19:53:18 +08:00
Hongbo Wu
4f4f50af49 fix: redundant argument 2023-06-06 12:05:33 +08:00
Hongbo Wu
0c3fa2cdd4 feat: start a cloud task to set thumbnail and pre-cache all the images in the content 2023-06-06 11:56:31 +08:00
Hongbo Wu
e2315b5662 feat: add thumbnail handler 2023-06-06 11:02:46 +08:00
Hongbo Wu
c66d13177f
Merge pull request #2295 from omnivore-app/fix/twitter-handler-timeout
Feature: importer metrics collector and fix puppeteer timeout issue
2023-06-05 17:17:50 +08:00
Jackson Harper
e53cc28683 Fix issue where we return EPUB content reader for items marked as book in metadata
If we parse a page with <meta property="og:type" content="book"> in
it now, we incorrectly set this to ContentReader.EPUB, which then
causes syncing issues on iOS which doesn't have an EPUB reader
type defined in its GraphQL schema yet.
2023-06-05 14:44:51 +08:00
Hongbo Wu
a439aac7e7 feat: update api to include preview image 2023-06-05 12:38:30 +08:00
Hongbo Wu
d69e732579 fix: dedupe url if failed to save 2023-06-01 16:11:35 +08:00
Hongbo Wu
15b41560de fix: improve the speed of generating highlighted markdown content 2023-05-26 15:51:54 +08:00
Hongbo Wu
15b977f7c6 fix: set server timeout = 10 mins 2023-05-26 15:00:46 +08:00
Jackson Harper
751aec2676 Use number instead of function 2023-05-19 18:10:28 +08:00
Jackson Harper
f671b3625c Change rate limiting rules 2023-05-19 18:05:57 +08:00
Hongbo Wu
4cc9547935 fix: fallback to html if failed to convert html to markdown 2023-05-19 16:55:50 +08:00
Hongbo Wu
87f55eabf6 fix: sentry report on node is null 2023-05-19 10:54:43 +08:00
Hongbo Wu
331ddf69d4 remove debugging log 2023-05-18 21:12:44 +08:00
Hongbo Wu
0adab7ad23 fix: sentry report on unable to find highlight 2023-05-18 21:07:51 +08:00
Hongbo Wu
48554be76d fix: wrap link with == 2023-05-18 21:04:27 +08:00
Hongbo Wu
2bf932cbdc fix: &npsp; breaks highlight 2023-05-18 16:50:49 +08:00
Jackson Harper
058ccf3006
Merge pull request #2183 from omnivore-app/fix/unauthed-rate-limit
Reduce the rate limit for unauthenticated users
2023-05-18 15:15:18 +08:00
Jackson Harper
1d37f04808 Properly call getClaimsByToken 2023-05-16 17:14:38 +08:00
Hongbo Wu
e14080a05f Set labels = undefined if pocket tags is undefined 2023-05-16 11:04:22 +08:00
Hongbo Wu
62ce7ff713
Merge pull request #2200 from omnivore-app/fix/pocket-import
Pass pocket auth token in query string
2023-05-15 21:53:15 +08:00
Hongbo Wu
175b82485f Fix typo 2023-05-15 17:39:29 +08:00
Hongbo Wu
c2e62155cc Pass pocket auth token in query string 2023-05-15 16:56:27 +08:00
Hongbo Wu
e3d8fae6c5 Remove debug log 2023-05-12 19:28:19 +08:00
Hongbo Wu
791d11f581 Allow content to be converted into highlightedMarkdown format 2023-05-12 19:27:04 +08:00
Jackson Harper
c49ca0149f Set max to 10/minute for unauthenticated requests 2023-05-12 17:11:20 +08:00
Hongbo Wu
565c932a2d Add archivedAt to the search item in the search api response 2023-05-12 12:22:11 +08:00
Jackson Harper
cbdd4f0a71
Merge pull request #2184 from omnivore-app/fix/rm-auth-cookie-on-reset
Clear auth cookie when password reset is triggered
2023-05-11 17:33:16 +08:00
Jackson Harper
8d9f54c62c Fix linting 2023-05-11 13:36:27 +08:00
Jackson Harper
78681df4ab Use clearCookie, rm the pending auth cookie too 2023-05-11 13:32:43 +08:00
Jackson Harper
4329c28904 On password reset clear the auth cookie 2023-05-11 13:29:35 +08:00
Jackson Harper
88aa7aad4c Reduce the rate limit for unauthenticated users 2023-05-11 13:23:43 +08:00
Jackson Harper
f8df71508b Enforce max lengths on signup credentials 2023-05-10 23:09:31 +08:00
Hongbo Wu
a4d385bc83 add sorting by wordsCount 2023-05-03 08:36:33 +08:00
Hongbo Wu
31cbcc7c7f validate sign up request body in mobile sign-up router 2023-04-27 12:18:32 +08:00
Hongbo Wu
0e8887a1d9 trim user email before saving in db 2023-04-27 11:39:34 +08:00
Hongbo Wu
673c43aee0 trim user email in mobile sign-in router 2023-04-27 11:37:27 +08:00
Hongbo Wu
fb4c8cb1ed trim user email in mobile sign-up router 2023-04-27 11:33:03 +08:00
Hongbo Wu
692fd7b959 Fix save url error when uid is not in the apollo context 2023-04-25 17:01:25 +08:00
Hongbo Wu
3841734deb Fix forwarded email subject being treated as an URL, for example "Fwd: subject" 2023-04-24 21:16:44 +08:00
Hongbo Wu
b891e547c9 Make content optional 2023-04-24 21:03:39 +08:00
Hongbo Wu
e512ba0bad Fix tests 2023-04-24 18:04:18 +08:00
Hongbo Wu
69968e5288 Save url if the email subject is a parsable url 2023-04-24 12:54:23 +08:00
Hongbo Wu
bce7afde50 Eagerly load profile of the user 2023-04-24 12:53:40 +08:00
Hongbo Wu
b57ccd0616 Allow wildcards in query filter 2023-04-21 17:39:04 +08:00
Hongbo Wu
b2c115f9d9 Allow wildcards in label: filter 2023-04-21 17:10:46 +08:00
Hongbo Wu
130677b50c Add contentReader to the typeAheadSearchResult 2023-04-20 10:00:56 +08:00
Hongbo Wu
5ce4bf7171 Compare labels with lower cased 2023-04-20 09:38:04 +08:00
Hongbo Wu
62b772eeca Allow saving epub from email attachments 2023-04-19 11:30:49 +08:00
Jackson Harper
3c12162866 Fix typo in content type check 2023-04-18 11:22:44 +08:00
Jackson Harper
69df32d428 Implement a reader for epubs 2023-04-18 09:00:48 +08:00
Hongbo Wu
e6690709c3 Replace express-http-context with express-http-context2 2023-04-12 17:50:13 +08:00
Hongbo Wu
014dc773e3 Fix labels not saved correctly by saveUrl 2023-04-12 17:04:59 +08:00
Hongbo Wu
874247661b resolve conflicts 2023-04-12 17:04:59 +08:00
Hongbo Wu
c07ada0218 resolve conflicts 2023-04-12 17:04:59 +08:00
Hongbo Wu
42dc3f7330 Fix some external requests not being mocked 2023-04-12 17:04:59 +08:00
Hongbo Wu
9857af27e2 Add labels and state to createArticle API 2023-04-12 17:04:59 +08:00
Hongbo Wu
abd42f7064 Add labels and state to saveUrl API 2023-04-12 16:50:11 +08:00
Hongbo Wu
ce273b5172 Add test case for archives page and saves labels in savePage API 2023-04-12 16:50:11 +08:00
Hongbo Wu
87d3f5b3d8 Add labels and state to savePage API 2023-04-12 16:50:11 +08:00
Hongbo Wu
fcf08fc364 Add state and labels to savePageInput 2023-04-12 16:50:11 +08:00
Hongbo Wu
4b578bbebb Process labels and state in the csv file 2023-04-12 16:50:11 +08:00
Hongbo Wu
9a46e935d9 Add [] to the labels in csv 2023-04-12 16:50:11 +08:00
Hongbo Wu
06b6583f29 Mock cloud storage bucket 2023-04-12 16:50:11 +08:00
Hongbo Wu
76b63efdc1 Fix tests 2023-04-12 16:50:11 +08:00
Hongbo Wu
10c01c12f2 Add test case for integration import task handler 2023-04-12 16:50:10 +08:00
Hongbo Wu
56fd3d7617 Create a router to handle importing from integrations cloud task 2023-04-12 16:50:10 +08:00
Hongbo Wu
503ec3d413 Update task name 2023-04-12 16:50:10 +08:00
Hongbo Wu
9ff0711a73 Remove wrong comments 2023-04-12 16:50:10 +08:00
Hongbo Wu
c8ec84562b Create an import from integration cloud task 2023-04-12 16:50:10 +08:00
Hongbo Wu
b62b769604 Paginate pocket api 2023-04-12 16:50:10 +08:00
Hongbo Wu
1c5991aded import from integration api return a boolean value 2023-04-12 16:50:10 +08:00
Hongbo Wu
c78fe9f87d Paginate pocket retrieve api response data 2023-04-12 16:50:10 +08:00
Hongbo Wu
737957ff82 Add import from pocket to web 2023-04-12 16:50:10 +08:00
Hongbo Wu
2e5e3bd19e Add headers 2023-04-12 16:50:10 +08:00
Hongbo Wu
59621768c8 Get request token from pocket 2023-04-12 16:50:10 +08:00
Hongbo Wu
ae2f695df8 Get access token from pocket 2023-04-12 16:50:10 +08:00
Hongbo Wu
9c7f6fefca Add PocketIntegration service to the list 2023-04-12 16:50:10 +08:00
Hongbo Wu
c3bfb593c6 Fix regression 2023-04-12 16:50:10 +08:00
Hongbo Wu
02247bc0a6 Add import from integration api implementation 2023-04-12 16:50:10 +08:00
Hongbo Wu
e2d050288e write the list of urls to a csv file and upload it to gcs 2023-04-12 16:50:10 +08:00
Hongbo Wu
94d8903ec1 Add pocket integration support 2023-04-12 16:50:10 +08:00
Hongbo Wu
0bf4119c92 Refactor with factor pattern 2023-04-12 16:50:10 +08:00
Hongbo Wu
4ce4cd0a62 Add a type for export or import to the integration table 2023-04-12 16:50:10 +08:00
Hongbo Wu
9056318667 Change type field in integration table from enum to text type 2023-04-12 16:50:10 +08:00
Hongbo Wu
b43f6904f4
Merge pull request #2021 from omnivore-app/fix/subscriptions
creates or updates subscription only if their is a valid unsubscribe link
2023-04-12 13:17:34 +08:00
Hongbo Wu
80d0e7c944 Move pageType to function_resolver 2023-04-12 12:37:22 +08:00
Hongbo Wu
158a75807c Use camel case 2023-04-12 12:27:05 +08:00
Hongbo Wu
4969391d4c Replace picture with image 2023-04-12 12:15:53 +08:00
Hongbo Wu
c5eb223c07 Add tweet, video, picture pageType 2023-04-12 11:53:23 +08:00
Hongbo Wu
f28912728a creates or updates subscription only if their is a valid unsubscribe link 2023-04-11 22:39:47 +08:00
Hongbo Wu
83cd0ac880 Return error if query exceeds 255 char 2023-04-06 12:03:26 +08:00
Hongbo Wu
3d599ad7ab Remove sanitize directive on query argument because we will change the argument type if doing so 2023-04-06 11:56:19 +08:00
Hongbo Wu
c596e88f46 Set search query max size to 255 char 2023-04-05 12:20:52 +08:00
Hongbo Wu
e5ffd3f5bd Stop inserting search history to the DB in the search API 2023-04-05 11:45:39 +08:00
Hongbo Wu
819d275497 Add wordsCount if undefined when creating pages in elastic 2023-04-04 12:52:46 +08:00
Hongbo Wu
32d31af847
Merge pull request #1970 from omnivore-app/double-quote-size-limit
Double max length of quote in highlights
2023-04-04 11:44:28 +08:00
Hongbo Wu
c52d2f0f56 Fix pageType to be null in updatesSince api response 2023-04-04 11:00:13 +08:00
Hongbo Wu
8d79f858c3 Double max length of quote in highlights 2023-04-03 18:46:59 +08:00
Hongbo Wu
53a2df5dd2 Fix start_date or end_date is undefined in elasticsearch search query 2023-03-27 18:45:24 +08:00
Hongbo Wu
dd24cfbeec Remove async 2023-03-23 10:45:39 +08:00
Hongbo Wu
abb8df26e5 Set HIGHLIGHT as default highlight type in every highlight 2023-03-23 10:44:30 +08:00
Hongbo Wu
aae16d7a4d Set HIGHLIGHT as default highlight type 2023-03-22 22:02:03 +08:00
Hongbo Wu
b3a965781c resolve conflicts 2023-03-22 10:40:03 +08:00
Hongbo Wu
ee151637e3 Only send event if highlight updated 2023-03-22 10:37:07 +08:00
Hongbo Wu
9df1546323 Fix tests 2023-03-22 10:37:07 +08:00
Hongbo Wu
b0e91cbbbb Change GraphQL APIs 2023-03-22 10:36:38 +08:00
Hongbo Wu
71826148fd Add type to the highlight in the elasticsearch and three types are HIGHLIGHTS, REDACTION and NOTE 2023-03-22 10:34:40 +08:00
Hongbo Wu
013b460e39 Check the permission to access page in elasticsearch 2023-03-21 15:56:30 +08:00
Hongbo Wu
e84b517493 Do not update createdAt for existing page 2023-03-21 13:57:57 +08:00
Hongbo Wu
8148453503 When saving an existing page, update the content 2023-03-21 13:44:00 +08:00
Hongbo Wu
bc9ba1d976 Reset state to processing when creating articles 2023-03-21 13:05:00 +08:00
Hongbo Wu
5af9d9266c Do not fetch deleted article in saving request 2023-03-21 13:03:53 +08:00
Hongbo Wu
f053b60cbe Allow array values in page filters 2023-03-21 13:03:23 +08:00
Hongbo Wu
f93148fcdd Add BAD_DATA to the saving request error code 2023-03-21 13:02:38 +08:00
Jackson Harper
265c050f5c Return readerURL on save URL requests 2023-03-20 17:28:55 +08:00
Hongbo Wu
c315e8be04 Return article's url in saveUrl api 2023-03-20 16:49:18 +08:00
Hongbo Wu
fb945f2791 Return url in save API 2023-03-20 16:48:50 +08:00
Hongbo Wu
f348ec7100 Add id to saving request and make both id and url optional 2023-03-17 17:56:38 +08:00
Hongbo Wu
f9396450a5 Get saving request by url 2023-03-17 11:37:59 +08:00
Hongbo Wu
fc662dd2d5 Return existing slug if page exists 2023-03-17 11:37:59 +08:00
Hongbo Wu
86ae533b66
Merge pull request #1915 from omnivore-app/allow-scoping-searches-to-site
Allow scoping searches to site:
2023-03-17 09:59:21 +08:00
Hongbo Wu
adae20e7e1 Use elasticsearch body builder 2023-03-15 19:15:40 +08:00
Hongbo Wu
45eed5c40d Must match siteName 2023-03-15 13:32:04 +08:00
Hongbo Wu
7d2cb07af0 eslint 2023-03-14 22:24:17 +08:00
Hongbo Wu
e5f1f25a4d Allow scoping searches to site: 2023-03-14 18:26:45 +08:00
Hongbo Wu
a8682b8cf6 Save html along with highlight and return 2023-03-14 15:55:32 +08:00
Hongbo Wu
bf6ae38fe1 Add html to the highlight document in elasticsearch 2023-03-14 15:20:09 +08:00
Hongbo Wu
c3f2262b6b Update test 2023-03-14 14:52:42 +08:00
Hongbo Wu
ee2487ff01 Case insensitive 2023-03-14 14:42:56 +08:00
Hongbo Wu
461b348dc0 Use lower function in the query 2023-03-14 14:42:00 +08:00
Hongbo Wu
7dd32c3e87 Trim whitespace text from user email address 2023-03-14 12:57:23 +08:00
Hongbo Wu
a0ec7bc89d Reset readingProgressAnchorIndex to zero if the input is zero 2023-03-11 10:16:47 +08:00
Hongbo Wu
98d5f92ad4 Call youtube data api to fetch published date 2023-03-10 17:38:03 +08:00
Hongbo Wu
a0aab94e8b Add site_name and published date to saved twitter 2023-03-10 16:42:40 +08:00
Hongbo Wu
5c3dd904a5 do not use highlightPositionAnchorIndex as the location 2023-03-10 15:54:51 +08:00
Hongbo Wu
12160cc9dc filter out highlights with no quote 2023-03-10 15:43:06 +08:00
Hongbo Wu
45a857152b Add minLength = 1 for quote in highlight 2023-03-10 15:40:31 +08:00
Hongbo Wu
2e197644d4 Add debug logs 2023-03-10 15:17:04 +08:00
Hongbo Wu
45b2fa6329 fix not setting zero 2023-03-10 12:46:41 +08:00
Hongbo Wu
bba0f69f62 Add top percentage to the reading position in API 2023-03-10 12:38:25 +08:00
Hongbo Wu
590a1cb8ad Only publish labels to add to the pubsub queue 2023-03-09 21:46:33 +08:00
Hongbo Wu
104da191d2 Allow webhooks with same event types 2023-03-09 15:00:06 +08:00
Jackson Harper
58156b72ff Update yarn.lock 2023-03-09 10:44:42 +08:00
Jackson Harper
d0e4c01b45 Allow passing mode to backend to better handle mode changes in client 2023-03-09 10:15:14 +08:00
Hongbo Wu
a1e3ac8a07 Add quote to the updateHighlightInput of the updateHighlight API 2023-03-08 15:37:24 +08:00
Hongbo Wu
87fd49540a
Merge pull request #1697 from omnivore-app/dependabot/npm_and_yarn/knex-2.4.2
Bump knex from 0.21.12 to 2.4.2
2023-03-06 09:45:50 +08:00
Hongbo Wu
0a350bef6d Fix issues with knex version bump 2023-03-05 21:36:46 +08:00
Hongbo Wu
bd12ecd7ec Add publishedAt to the updatePageInput 2023-03-02 13:40:59 +08:00
Hongbo Wu
65c244edd7
Merge pull request #1819 from omnivore-app/feature/search-filter-with-no-as-keyword 2023-02-21 12:23:22 +08:00
Hongbo Wu
214766dda6 Add no: keyword to the search filter to filter items without label or highlight 2023-02-17 12:48:02 +08:00
Hongbo Wu
153ca6995b Refactor exclude labels query 2023-02-17 12:13:20 +08:00
Hongbo Wu
7f761049d7 Preparse the newsletter content 2023-02-17 09:49:19 +08:00
Hongbo Wu
cc8b1cefdb Preserve <pre> elements with prism- class and identity them as code blocks 2023-02-14 12:33:59 +08:00
Hongbo Wu
d816ee9563 Allow image and media to be loaded in puppeteer 2023-02-13 16:50:39 +08:00
Hongbo Wu
0359cefb4f
Merge pull request #1794 from omnivore-app/add-domdistiller-test-page
Add dom-distiller generated test pages
2023-02-10 10:42:59 +08:00
Hongbo Wu
c285a017c3 Increase view.html iframe height 2023-02-09 22:20:58 +08:00
Hongbo Wu
761f2ff8f2 Add JWT token to the request 2023-02-09 18:05:04 +08:00
Hongbo Wu
a91cf9ef63 Add an option for the original html to be parsed by distiller 2023-02-09 17:44:02 +08:00
Jackson Harper
b0ccfc213d Operate on pages in processing state during bulk operations 2023-02-09 12:28:06 +08:00
Jackson Harper
e6833fddff Add to address on email not forwarded logs 2023-02-06 11:13:28 +08:00
Jackson Harper
1e63899748 Add additional logging for mobile auth login errors 2023-02-06 11:11:28 +08:00
Hongbo Wu
1458395630
Merge pull request #1759 from omnivore-app/archive-all-api
bulk action api
2023-02-02 22:14:33 +08:00
Hongbo Wu
bb5c104a42 Change archiveAll to bulkAction which allows deletion too 2023-02-02 21:26:37 +08:00
Hongbo Wu
7255061e36 Unescape HTML entities in annotation when creating highlight 2023-02-02 11:32:24 +08:00
Hongbo Wu
3b888bbb08 Make Async call to archive all 2023-02-01 18:50:10 +08:00
Hongbo Wu
03ab96b7f8 Add archiveAll API 2023-02-01 18:05:16 +08:00
Hongbo Wu
dd6c8cf6dc Make subject optional too 2023-02-01 13:53:27 +08:00
Hongbo Wu
ac6f5b497c Accept null value for text in an email 2023-02-01 13:44:27 +08:00
Hongbo Wu
83c8166b3b Unescape HTML entities in annotation to avoid showing escaped characters 2023-02-01 12:13:00 +08:00
Jackson Harper
749df941f8 Use ilike for recent email query 2023-01-28 16:18:06 +08:00
Jackson Harper
7476878254 Add more logging for recent email lookups 2023-01-28 15:05:45 +08:00
Jackson Harper
6a50e85759 Save the parsed email address as the to field in received_emails
The unparsed addresses can look something like this:

"jacksonh-XXXX@inbox.omnivore.app" <jacksonh-XXXX@inbox-demo.omnivore.app>

but we want to join on this field to the NewsletterEmail.address
field which will look like `jacksonh-XXXX@inbox.omnivore.app`
2023-01-28 13:53:23 +08:00
Jackson Harper
15782fc5ce Add some analytics when creating reports 2023-01-26 19:32:41 +08:00
Jackson Harper
506568e0c2
Merge pull request #1667 from omnivore-app/recent-emails
recent emails
2023-01-25 14:22:00 +08:00
Hongbo Wu
a682d87aa6 Add tests for recent emails resolver 2023-01-19 12:11:34 +08:00
Hongbo Wu
83c62c65a3 Add test for saving received email 2023-01-19 10:44:08 +08:00
Hongbo Wu
318a6557a5 Email us if a recent email marked as library item 2023-01-19 09:55:49 +08:00
Hongbo Wu
7dbf8662fc Fix test 2023-01-19 09:38:21 +08:00
Hongbo Wu
8f9c317dd1 Save received email before publishing data 2023-01-18 22:35:07 +08:00
Jackson Harper
08048405a1 Correct typo in doc about labels 2023-01-18 22:07:39 +08:00
Hongbo Wu
36d2ac041a Fix error of getting subscriptions without newsletter email by inner join them 2023-01-18 18:42:10 +08:00
Hongbo Wu
d60890d154 Add pubsub to save received email 2023-01-18 17:13:11 +08:00
Hongbo Wu
60e107964f Fix typo 2023-01-18 15:00:34 +08:00
Hongbo Wu
96f727a165 Add mark a recent email as library item api 2023-01-18 15:00:34 +08:00
Hongbo Wu
62a3b48e00 Add list recent emails api 2023-01-18 15:00:34 +08:00
Hongbo Wu
3f373ab3b6 Save received email 2023-01-18 15:00:34 +08:00
Hongbo Wu
2da4ca5da8 Add saveReceivedEmail service 2023-01-18 15:00:34 +08:00
Hongbo Wu
b7d732df7c Add received_email entity 2023-01-18 15:00:34 +08:00
Hongbo Wu
f01ab3805a Left join active subscriptions of a newsletter email to get the right count 2023-01-18 14:37:54 +08:00
Hongbo Wu
e94f6de466 Delete subscription if unsub 2023-01-18 14:36:23 +08:00
Jackson Harper
786ad35da9
Merge pull request #1635 from omnivore-app/fix/content-display-reports
Fix creation of content display report
2023-01-13 11:37:22 +08:00
Hongbo Wu
6572f718c9
Merge pull request #1648 from omnivore-app/fix/puppeteer-parse
fix/puppeteer parse
2023-01-13 10:59:09 +08:00
Hongbo Wu
c647aabeaa Save newsletter_email_id in subscription instead of the whole entity 2023-01-12 22:15:42 +08:00
Hongbo Wu
7bfd36e308 Fix readability not run in puppeteer-parse 2023-01-12 18:33:47 +08:00
Jackson Harper
824899760a Update some style, add Matter archive importer tool 2023-01-12 14:00:46 +08:00
Jackson Harper
337b723d24 Fix creation of content display report 2023-01-11 10:51:46 +08:00
Hongbo Wu
43e813a73d Add unique constraint on user_id and name to subscription entity 2023-01-09 15:12:26 +08:00
Hongbo Wu
892a9ef30d Add subscriptionCount and createdAt in NewsletterEmail type 2023-01-09 12:24:45 +08:00
Hongbo Wu
3c8416ca1b
Merge pull request #1620 from omnivore-app/fix/sign-up
Log email content if Sendgrid api key not set
2023-01-06 15:39:33 +08:00
Hongbo Wu
9762b14ebc Check if the env is local 2023-01-06 15:28:45 +08:00
Jackson Harper
3520428ff0 Get the auth token from cookie in the user_router
This is called through Cloud Task so .authorization is actually
Cloud Task's auth token.
2023-01-06 10:29:36 +08:00
Hongbo Wu
d86a6038ea Log email content if Sendgrid api key not set 2023-01-06 09:54:02 +08:00
Jackson Harper
88b6fcfb5d Use cookie auth instead of header as GCP uses the Authorization header 2023-01-05 20:17:43 +08:00
Hongbo Wu
24763669b3
Merge pull request #1616 from omnivore-app/html-to-markdown
html to markdown
2023-01-05 19:30:19 +08:00
Hongbo Wu
e28c9b10bb Fetch markdown content if specified in search API 2023-01-05 17:17:09 +08:00
Jackson Harper
b0938ea8e2
Merge pull request #1612 from omnivore-app/feat/email-after-import
Send email to user after a bulk import completes
2023-01-05 13:39:49 +08:00
Hongbo Wu
7b749f974d Convert HTML to markdown if specified 2023-01-05 12:12:48 +08:00
Jackson Harper
89454d8b59
Merge pull request #1610 from omnivore-app/fix/reduce-logging
Remove some places we are logging too much data causing sentry failures
2023-01-05 11:19:30 +08:00
Jackson Harper
cfa3b5de89 Remove unneeded linting rules 2023-01-05 10:25:10 +08:00
Jackson Harper
7b2bc21b16 Add cors config, handle exception response 2023-01-04 21:45:41 +08:00
Jackson Harper
d89a307aca Send email to user after a bulk import completes 2023-01-04 18:15:26 +08:00
Jackson Harper
2390f2d716 Cast data to NewsletterMessage 2023-01-04 16:24:41 +08:00
Jackson Harper
e3ed7d0250 More logging changes 2023-01-04 11:23:13 +08:00
Jackson Harper
b438d42f38 Remove some unneeded console.log calls 2023-01-04 11:18:37 +08:00
Jackson Harper
8edd94bdb5 Remove some places we are logging too much data causing sentry failures 2023-01-04 11:07:54 +08:00
Jackson Harper
f939786c2a Reserve some names for tools and landing pages 2023-01-03 20:55:30 +08:00
Jackson Harper
0edd91057e Update user interface for file import tool 2023-01-03 17:49:07 +08:00
Jackson Harper
9314c3d8f1 Add uploadImportFile API method
Add uploadImportFile API method

Fix prefix, counting max files uploaded

Add resolver types

Basic web ui for the uploader interface

Allow selecting type when uploading import files
2023-01-03 10:01:59 +08:00
Hongbo Wu
2c39916441 Add wordsCount to article schema 2023-01-02 16:49:11 +08:00
Hongbo Wu
e0b9a6689a Not raise error when there is conflict of setting labels in highlights 2022-12-30 11:22:41 +08:00
Hongbo Wu
e0437008d7 Fix not updating/deleting the right label in the highlight 2022-12-29 22:40:31 +08:00
Hongbo Wu
264ebef46e Fix not setting labels to the correct highlight in a page 2022-12-29 21:34:45 +08:00
Hongbo Wu
7c39db207b Replace createArticle with savePage in puppeteer-parse service 2022-12-28 10:15:05 +08:00
Hongbo Wu
e22d209721 Fix test 2022-12-28 09:16:44 +08:00
Hongbo Wu
e9b31e375f Update savePage API to accept parsed content in the param 2022-12-27 21:59:31 +08:00
Hongbo Wu
302ea2023f Add obsidian to corsConfig 2022-12-23 10:29:43 +08:00
Jackson Harper
34029bee7e Update getting started guide, improve section on newsletter forwards, fix link to Logseq guide 2022-12-14 17:59:32 +08:00
Hongbo Wu
83aa2093eb Still return admins if not allowed to see members 2022-12-13 19:05:07 +08:00
Hongbo Wu
943b20f21e Only recommend page if the user is allowed to post 2022-12-13 19:00:49 +08:00
Hongbo Wu
5ef4e8479d Create one rule for all pages in the group to have the label and another rule for the recommended page to send a notification 2022-12-13 16:35:39 +08:00
Hongbo Wu
a340699240 add comment 2022-12-13 12:15:41 +08:00
Hongbo Wu
918ada2100 only recommend highlights created by the user 2022-12-13 12:12:20 +08:00
Hongbo Wu
25842270d7 Update the rule to only trigger on page created event 2022-12-13 12:04:17 +08:00
Hongbo Wu
4247835dc5
Merge pull request #1537 from omnivore-app/group-rules
group rules
2022-12-13 09:54:20 +08:00
Hongbo Wu
f5650acb69 Return canPost and canSeeMembers and topics and description in type group 2022-12-12 22:57:58 +08:00
Hongbo Wu
54ceeb326a Add canPost and canSeeMembers to type Group 2022-12-12 22:40:19 +08:00
Hongbo Wu
3e79b86179 Allow search recommendations with wildcard 2022-12-12 22:09:25 +08:00
Hongbo Wu
1338b1fc10 Remove subscription from shared page 2022-12-12 17:53:58 +08:00
Hongbo Wu
70ed3dccb7 Add analytic events for create/join/leave group actions 2022-12-12 17:49:00 +08:00
Hongbo Wu
5650971042 Do not save recent searches for rule based queries 2022-12-12 17:40:40 +08:00
Hongbo Wu
940c449880 revert for update page 2022-12-12 10:17:34 +08:00
Hongbo Wu
3347e81e39 Fix rule action not triggered due to the page index not being refreshed after page creation 2022-12-10 13:27:32 +08:00
Hongbo Wu
845235268d
Merge pull request #1525 from omnivore-app/recommend-api
Add recommendation to the original page too
2022-12-09 21:40:26 +08:00
Hongbo Wu
f4fa9cb15b do the same for merge highlight 2022-12-09 15:29:15 +08:00
Hongbo Wu
5fc18770ad Upsize max highlight char length to 6000 2022-12-09 15:24:10 +08:00
Hongbo Wu
181b401030 Update new recommendation notification message 2022-12-09 10:56:08 +08:00
Hongbo Wu
1f54db79fb Add recommendation to the original page too 2022-12-09 10:10:02 +08:00
Hongbo Wu
b8e7b15805 Fix generating colors with less than 6 digits 2022-12-08 19:01:54 +08:00
Hongbo Wu
04cb360c2f Fix some issue 2022-12-08 18:50:36 +08:00
Hongbo Wu
b942303b18 Create a rule after creating or joining a group 2022-12-08 18:35:22 +08:00
Hongbo Wu
9f260c1442 Create a label for new group if not exists 2022-12-08 18:20:58 +08:00
Hongbo Wu
84d8a9bb67 lint 2022-12-08 16:36:17 +08:00
Hongbo Wu
ff3e8aa29e Add delete permission to group and membership tables 2022-12-08 16:29:46 +08:00
Hongbo Wu
6830da995f Add leaveGroup API 2022-12-08 15:36:28 +08:00
Hongbo Wu
4c92af1856 Allow recommended With Highlights 2022-12-08 12:51:01 +08:00
Hongbo Wu
ef13cbf39a Recommend highlights 2022-12-08 12:33:05 +08:00
Hongbo Wu
62a3f6d1d8 Add recommendHighlights API 2022-12-08 11:37:35 +08:00
Jackson Harper
b150083358 Remove debug 2022-12-07 11:53:48 +08:00
Jackson Harper
533a4ae65c Update recommendedBy query 2022-12-06 21:23:19 +08:00
Jackson Harper
a8df439297 Rename recommendedBy to recommendations 2022-12-06 21:18:21 +08:00
Jackson Harper
0892d9e7e6 Add user and note to Recommendation type 2022-12-06 17:44:53 +08:00
Jackson Harper
8ac1afe277 Use cookie auth instead of header to not interfere with GCPs auth mechanisms 2022-12-05 18:41:08 +08:00
Jackson Harper
e555cc733a More descriptive error messages 2022-12-05 18:40:33 +08:00
Hongbo Wu
c49db571cd Add search by recommendedBy group name 2022-12-05 14:53:29 +08:00
Hongbo Wu
bf18c3d3c7 Add recommendedBy in search result 2022-12-05 14:27:46 +08:00
Hongbo Wu
e6b56e6fba Rename groups service 2022-12-05 14:12:04 +08:00
Hongbo Wu
714f0f1f63 Add joinGroup API 2022-12-05 12:47:38 +08:00
Hongbo Wu
27d9e8464d Add unique constraint on user_id and group_id to group_membership table 2022-12-05 12:45:54 +08:00
Hongbo Wu
6b65c386a0 Add authentication to the request header 2022-12-02 21:15:33 +08:00
Hongbo Wu
7707f100f2 Add recommend gql api 2022-12-02 19:45:26 +08:00
Hongbo Wu
0e3d1ced46 Add recommend rest api to handler tasks 2022-12-02 19:10:41 +08:00
Hongbo Wu
5fd137d23e Add recommendation cloud task 2022-12-02 18:49:13 +08:00
Hongbo Wu
a7d0525d2e Add recommendPage helper function 2022-12-02 18:26:16 +08:00
Hongbo Wu
b19b04bbe6 Add recommendedBy nested field in page index 2022-12-02 15:24:37 +08:00
Hongbo Wu
93c6c4202a Max number of group per user is 3 2022-12-02 12:36:18 +08:00
Hongbo Wu
da3d9cf76b Add groups api 2022-12-02 12:32:26 +08:00
Hongbo Wu
7285ebb940 Add createGroup API 2022-12-01 18:41:00 +08:00
Hongbo Wu
7f04a381a1 Add is_admin field to group_membership table 2022-12-01 17:47:12 +08:00
Hongbo Wu
7c8b057f85
Merge pull request #1486 from omnivore-app/fix/site-name-extraction
Fix site_name not saved when a page is saved by extensions
2022-12-01 11:28:51 +08:00
Hongbo Wu
0693a6c2ff
Merge pull request #1487 from omnivore-app/saved-filters-api
saved filters api
2022-12-01 11:25:50 +08:00
Hongbo Wu
0eebfe923a Add position in filter table and move filter api 2022-12-01 10:26:32 +08:00
Hongbo Wu
0487d8325c Add saved filter api 2022-11-30 21:41:59 +08:00
Hongbo Wu
1d514a0530 Update table name 2022-11-30 20:39:09 +08:00
Hongbo Wu
4d845ef413 Add search_filter table and entity 2022-11-30 20:38:30 +08:00
Hongbo Wu
bb839960f1 Fix site_name not saved when a page is saved by extensions 2022-11-30 17:46:59 +08:00
Hongbo Wu
86dccc0d44 Update savedAt in update page api 2022-11-30 13:17:50 +08:00
Hongbo Wu
28025db959 Add labels in highlight type in api response 2022-11-25 17:12:47 +08:00
Jackson Harper
e4e21ddc3a
Merge pull request #1462 from omnivore-app/add-order-in-updatesince-api
Add sort in updatesince api and default sorting by updatedAt in descending order
2022-11-25 13:18:05 +08:00
Hongbo Wu
64fd0cfdc6 Add sort in updatesince api and default sorting by updatedAt in descending order 2022-11-25 11:44:55 +08:00
Hongbo Wu
319c0c4bcd Allow changing byline in update api 2022-11-24 16:25:27 +08:00
Hongbo Wu
eb345ba393
Merge pull request #1449 from omnivore-app/more-filters-in-rules
Use search API to filter page in rule engine
2022-11-24 15:30:18 +08:00
Hongbo Wu
3f24d9a99e Add includes filter to search by ids in search api 2022-11-24 14:10:13 +08:00
Hongbo Wu
05ecac7c52 Fix tests 2022-11-24 08:59:21 +08:00
Hongbo Wu
f473c18939 Add deleteRule api 2022-11-23 09:52:15 +08:00
Hongbo Wu
ba730bdc3e Use default application credential 2022-11-22 13:00:01 +08:00
Hongbo Wu
2ae3226bdb Add sendNotification api 2022-11-22 12:48:17 +08:00
Hongbo Wu
9344fae1b9 Add title and image url in notification 2022-11-22 10:50:38 +08:00
Hongbo Wu
6b772c9248 Disable push notification reminders 2022-11-22 10:20:52 +08:00
Jackson Harper
080a1982b2 Remove unused import 2022-11-21 22:39:10 +08:00
Jackson Harper
1e4658b771 Consistent function declaration syntax 2022-11-21 22:39:10 +08:00
Jackson Harper
c0d5d12ec0 Add missing file 2022-11-21 22:39:10 +08:00
Jackson Harper
a3f477f57a Linting fix 2022-11-21 22:39:10 +08:00
Jackson Harper
9741f6b12d Add highlights to newly saved pages if they contain highlight markers 2022-11-21 22:39:10 +08:00
Hongbo Wu
f358094bbf Add get device tokens api 2022-11-21 17:03:12 +08:00
Hongbo Wu
88416bc178 Add get rules api 2022-11-21 15:03:15 +08:00
Hongbo Wu
dc92fe9c52 Create rule handler cloud run 2022-11-19 11:15:26 +08:00
Hongbo Wu
075c1b4d14 Fix send notification failure 2022-11-18 17:43:21 +08:00
Hongbo Wu
ecc217deef Fix test 2022-11-18 16:25:22 +08:00
Hongbo Wu
06c30e4f40 Add notification cloud run 2022-11-18 16:13:49 +08:00
Hongbo Wu
e53d5036dc Add notification endpoint 2022-11-18 14:33:27 +08:00
Hongbo Wu
fbe4c471cd Add pubsub subscription to trigger rule actions 2022-11-18 14:00:10 +08:00
Hongbo Wu
50fe92ac85 Add setRule resolver 2022-11-17 18:53:05 +08:00
Hongbo Wu
845e932d93 Store actions as a json in db 2022-11-17 16:21:43 +08:00
Hongbo Wu
23c527c345 Add rule entity 2022-11-17 15:04:44 +08:00
Hongbo Wu
60027dd670 Add rules table migration sql 2022-11-17 14:50:57 +08:00
Hongbo Wu
71348ab492 Remove trigger type in gql schema 2022-11-17 14:50:57 +08:00
Hongbo Wu
775180d785 Add rules api gql schema 2022-11-17 14:50:57 +08:00
Hongbo Wu
6a9a5c3870
Merge pull request #1408 from omnivore-app/fix/use-must-clause
Replace filter clause with must clause in the search query in elastic
2022-11-14 11:32:33 +08:00
Hongbo Wu
3f6a3b36ff Replace default voice to Larry for pre-generating 2022-11-11 18:34:44 +08:00
Hongbo Wu
2301f44848 Replace filter clause with must clause in the search query in elastic 2022-11-11 18:31:47 +08:00
Hongbo Wu
a78074b0da
Merge pull request #1406 from omnivore-app/set-voice-in-user-personalization
set voice in user personalization
2022-11-11 16:57:49 +08:00
Hongbo Wu
9872355056 Allow apollo sandbox access in local env only 2022-11-11 16:18:11 +08:00
Hongbo Wu
917396c976 Upsert user personalization in db 2022-11-11 16:11:09 +08:00
Hongbo Wu
67b26be547 Allow apollo sandbox access 2022-11-11 15:24:54 +08:00
Jackson Harper
83dbb54896 Allow filtering by author 2022-11-11 15:01:14 +08:00
Hongbo Wu
477b5d7d24 Fix typeorm issue 2022-11-11 14:53:46 +08:00
Hongbo Wu
ac21e4e6c8 Set voice and secondary voice in user personalization 2022-11-11 14:08:28 +08:00
Hongbo Wu
ce18d33ae1 Change queue name 2022-11-11 10:14:46 +08:00
Hongbo Wu
d58fb63c87 Pre-fetch realistic voice only if user is opted in 2022-11-10 18:49:52 +08:00
Hongbo Wu
b0938ee96c Pre-fetch realistic voice only if user is opted in 2022-11-10 18:48:00 +08:00
Hongbo Wu
69d6b60adc Extend expiration of the jwt token to 1 year 2022-11-10 17:42:25 +08:00
Hongbo Wu
399e31534d Update jwt token 2022-11-09 22:48:33 +08:00
Hongbo Wu
c89ffdeaf9 Fix some tests 2022-11-09 18:14:15 +08:00
Hongbo Wu
63de1c3359 Add optInFeature API 2022-11-09 17:35:54 +08:00
Hongbo Wu
98f59c50f0 Remove token in features table 2022-11-09 11:32:08 +08:00
Hongbo Wu
c2f4ba4a57 Add features entity 2022-11-08 18:14:23 +08:00
Hongbo Wu
398e242131 Add features table 2022-11-08 17:30:03 +08:00
Hongbo Wu
f2a69d06c4 Change default rate to 1.1 2022-11-08 16:53:35 +08:00
Hongbo Wu
ddd1e84686 Add language and rate in the cloud task params 2022-11-08 16:22:23 +08:00
Hongbo Wu
769e8c5f96 Add default language and rate 2022-11-08 15:41:20 +08:00
Hongbo Wu
3ffd7739bb Default voice is Larry 2022-11-08 14:23:48 +08:00
Hongbo Wu
44987072ee Get voice from user personalization 2022-11-08 13:08:05 +08:00
Hongbo Wu
271280f4fc Fix not correctly getting audio file 2022-11-08 12:56:52 +08:00
Hongbo Wu
e62765c3e6 Save steaming data in GCS 2022-11-08 11:24:47 +08:00
Hongbo Wu
1af5af0e97 Get realistic voice id from user personalization table 2022-11-08 10:21:27 +08:00
Hongbo Wu
2e47b0879c Convert HTML to utterances 2022-11-07 19:30:20 +08:00
Hongbo Wu
d5583455ca Forward text if html is not found in the email 2022-11-01 12:47:23 +08:00
Hongbo Wu
028b212ecb Fix readwise api error when image_url is empty by removing image_url from api payload 2022-10-31 12:45:49 +08:00
Hongbo Wu
e87b81c5c8 Use order instead of page to indicate highlight location in Readwise 2022-10-28 17:44:14 +08:00
Hongbo Wu
1c31e5fc15 Skip sync with Readwise if no highlights 2022-10-28 15:05:16 +08:00
Hongbo Wu
bad6904909
Merge pull request #1355 from omnivore-app/fix/sync-integration
Use the correct data format in the pub/sub queue
2022-10-27 14:15:01 +08:00
Hongbo Wu
3446bc3555 Use the correct data format in the pub/sub queue 2022-10-27 14:01:32 +08:00
Hongbo Wu
f0dc9b7d13 Fix tests 2022-10-27 12:45:32 +08:00
Hongbo Wu
2169ade48f Persist integration in db before creating cloud task to sync with integrations 2022-10-27 11:32:56 +08:00
Hongbo Wu
614c6a2b95
Merge pull request #1347 from omnivore-app/fix/puppeteer-timeout
Use auth token to identify client request in rate limiter
2022-10-25 17:21:13 +08:00
Hongbo Wu
57ba9afbfa Remove debugging 2022-10-25 13:17:57 +08:00
Hongbo Wu
c9ea622461 Use auth token to identify client request in rate limiter 2022-10-25 12:42:32 +08:00
Hongbo Wu
5e68e30d5b Add highlightPositionPercent and highlightPositionAnchorIndex in highlight api 2022-10-25 10:24:30 +08:00
Hongbo Wu
a2f31c943f Fix tests 2022-10-20 11:31:39 +08:00
Hongbo Wu
e1de55bea0 Delete highlights, labels and other metadata when soft delete pages 2022-10-20 11:16:49 +08:00
Jackson Harper
d5c7aa2b8f Fix linting 2022-10-19 17:36:58 +08:00
Jackson Harper
0ad8558e92 Add the iOS Saving Links article as a default read for new Omnivore users on iOS
This also re-orders things a bit, making sure the getting started
guide is always the topmost in a user's library.
2022-10-19 17:22:30 +08:00
Jackson Harper
d34e5aff04 Change the order of the new user welcome articles
In the UI it will appear:

- Getting Started
- Power of Read it Later
- Organize with Labels
- (optional) iOS/Android/Web
2022-10-18 17:35:00 +08:00
Hongbo Wu
a7e92addb0 Create 128 * 128 proxy image for the site icon 2022-10-18 15:32:30 +08:00
Hongbo Wu
22e92256eb Fetch subscription's favicon if the site icon is base64 encoded image 2022-10-18 15:32:30 +08:00
Jackson Harper
5312c31ea7 Dont crash if a popular read is not available on signup 2022-10-17 20:45:04 +08:00
Jackson Harper
08a1d4af91 Update the Getting started guide for new users 2022-10-17 17:11:25 +08:00
Hongbo Wu
496b28c9ee Return deleted article in the updatesSince API response 2022-10-14 13:50:53 +08:00
Hongbo Wu
14c87a1240
Merge pull request #1298 from omnivore-app/feature/add-popular-read-when-signup
feature/add popular read when signup
2022-10-13 13:13:13 +08:00
Hongbo Wu
19d0d314db Fix tests 2022-10-12 18:05:17 +08:00
Hongbo Wu
7a48cccac9 Save client in request context 2022-10-12 14:30:39 +08:00
Hongbo Wu
9496827c6b Add popular reads to new users based on client 2022-10-12 13:59:08 +08:00
Hongbo Wu
4b7950458c Remove Redis client in api 2022-10-12 13:40:16 +08:00
Hongbo Wu
bccb949fce Save advanced search terms in search history too 2022-10-12 13:35:01 +08:00
Hongbo Wu
d4f32f7bdd Save search term in search history and update timestamp 2022-10-12 13:27:19 +08:00
Hongbo Wu
8f96c167f8 Save search term in search history 2022-10-12 12:30:22 +08:00
Hongbo Wu
1725f96d82 Add recentSearches API implementation and test 2022-10-12 12:20:48 +08:00
Hongbo Wu
fd1d43c104 Add search history repo methods 2022-10-12 10:49:07 +08:00
Hongbo Wu
ff12675713 Make user_id and term unique 2022-10-12 10:37:29 +08:00
Hongbo Wu
ab86450864 Rename X-Device to X-OmnivoreClient in the request headers 2022-10-12 10:27:39 +08:00
Hongbo Wu
2ba9247a98 Device info expires in 10 mins 2022-10-11 19:03:33 +08:00
Hongbo Wu
2210a38982 Set device of the request in Redis 2022-10-11 18:47:19 +08:00
Hongbo Wu
af9147d9d3 Add iOS popular reads to new iOS users 2022-10-11 16:07:49 +08:00
Hongbo Wu
606183829a Add popular reads to new users 2022-10-11 15:44:53 +08:00
Hongbo Wu
a5c0ef19ec Add recentSearches API GQL schema 2022-10-11 14:53:48 +08:00
Hongbo Wu
4e14518189 Replace keyword with term 2022-10-11 11:26:18 +08:00
Hongbo Wu
cd13e5874a Create search_history table and entity class 2022-10-10 17:44:55 +08:00
Hongbo Wu
5d70d04154 If the saved tweet is a reply, we need to get the referenced tweet 2022-10-10 15:12:41 +08:00
Hongbo Wu
49ed8e279b Calls preParseContent function in content-handler package before parsing content 2022-10-07 16:56:38 +08:00
Hongbo Wu
679977805f Remove custom content-handler in packages/api 2022-10-07 16:56:38 +08:00
Hongbo Wu
8942398092 Change GET to HEAD 2022-09-30 12:52:09 +08:00
Hongbo Wu
9841ce7f8e Remove parsing newsletter emails from forwarded emails 2022-09-30 12:51:23 +08:00
Hongbo Wu
b00a516737 Add other newsletter handlers 2022-09-30 12:51:23 +08:00
Hongbo Wu
57ca5ed6f8
Merge pull request #1246 from omnivore-app/feature/subscription-icon
feature/subscription icon
2022-09-28 22:10:23 +08:00
Hongbo Wu
2f6b26d21d Use GET request as some host do not allow HEAD requests 2022-09-28 20:18:40 +08:00
Hongbo Wu
a55ad135fd Set 5s for the HEAD request timeout 2022-09-28 19:26:42 +08:00
Hongbo Wu
d6974f9e5f Remove unused icon 2022-09-28 19:14:14 +08:00
Hongbo Wu
a6795b380a Fetch favicon from url 2022-09-28 19:02:29 +08:00
Hongbo Wu
4aceac5f04 Revert "Get favicon from URL if not found from doc"
This reverts commit 7306d65642.
2022-09-28 18:25:11 +08:00
Hongbo Wu
7306d65642 Get favicon from URL if not found from doc 2022-09-28 17:18:00 +08:00
Hongbo Wu
ee3fec9d96
improve text to speech dependency (#1250)
* Generate .d.ts files from TypeScript for text-to-speech project

* Remove module export for htmlToSpeechFile

* Include test
2022-09-28 11:48:06 +08:00
Hongbo Wu
66d37e31b1 Use siteIcon 2022-09-27 21:41:01 +08:00
Hongbo Wu
6220d5d4af Return subscription icon proxy url in the list subscriptions api response 2022-09-27 15:35:06 +08:00
Hongbo Wu
d42d4ace98 Use parsed image as subscription icon 2022-09-27 15:21:18 +08:00
Hongbo Wu
5d62d92974 Save icon in the subscription table 2022-09-27 12:12:47 +08:00
Hongbo Wu
94719a5cce Add icon to the subscription entity 2022-09-27 12:00:13 +08:00
Hongbo Wu
710243e94e Allow language in the query to override the page language in the speech file 2022-09-23 14:19:29 +08:00
Hongbo Wu
0239103fc4 Remove the table with text content less than 20 because these are ads 2022-09-22 22:16:03 +08:00
Hongbo Wu
56e3ccadf0 Add test case for Axios AM newsletter 2022-09-21 12:16:13 +08:00
Hongbo Wu
2c3b8535d8 Fix one morning brew newsletter parsing error by only keeping market info table in the original newsletter 2022-09-20 17:12:13 +08:00
Hongbo Wu
b995dc0500 Stop throwing error and return empty speech if there is no content in the article 2022-09-19 17:36:58 +08:00
Hongbo Wu
b03f7ebeb8 Add handler to pre-process morning brew newsletters 2022-09-15 16:21:09 +08:00
Hongbo Wu
d795fef8a7 Add handler to pre-process morning brew newsletters 2022-09-15 16:20:57 +08:00
Hongbo Wu
fa731acd74 Create new newsletter if old one is deleted 2022-09-14 19:14:58 +08:00
Hongbo Wu
e86a107a9a Bump up image size to 160*160 2022-09-12 17:05:31 +08:00
Hongbo Wu
a01a10e3f5 Put title the first utterance 2022-09-09 12:10:29 +08:00
Hongbo Wu
06218ef5e0 Return image proxy url in Article function_resolver 2022-09-08 17:55:09 +08:00
Hongbo Wu
6350a3d53e Make idx string type 2022-09-08 11:33:29 +08:00
Hongbo Wu
8e8a6dccd0 Change rate to string type 2022-09-07 22:55:07 +08:00
Hongbo Wu
9a62a3c31e Add pageId to speech-file 2022-09-07 22:51:44 +08:00
Hongbo Wu
3cf3d40482 Replace speech-file with speech in the route 2022-09-07 22:48:40 +08:00
Hongbo Wu
aeb7e47d68 Make voice, secondaryVoice and priority query params 2022-09-07 18:42:46 +08:00
Hongbo Wu
f1b379b96e Convert html to speech file and return 2022-09-07 18:00:32 +08:00
Hongbo Wu
96cbdc9f30 Replace wordsCount with wordCount 2022-09-07 15:16:16 +08:00
Hongbo Wu
5781d385ad Return utterances in the API if output format is ssml 2022-09-07 15:16:16 +08:00
Hongbo Wu
d4dcec75d5 Return 0 for wordsCount if error 2022-09-07 15:16:16 +08:00
Hongbo Wu
97e560c443 Update wordsCount in page 2022-09-07 15:16:16 +08:00
Hongbo Wu
795ca47414 Save wordsCount when page is created 2022-09-06 10:19:58 +08:00
Hongbo Wu
d00391b593 Add wordCount to Page doc in elastic 2022-09-06 10:03:36 +08:00
Hongbo Wu
9826262ef4 Return an array of SSMLs instead of ssmlItems 2022-09-02 15:33:00 +08:00
Hongbo Wu
3953a9098e Send SSML items in the synthesis API 2022-09-02 15:33:00 +08:00
Hongbo Wu
7353c328d9 Remove unused text-to-speech code 2022-08-29 22:29:40 +08:00
Hongbo Wu
d085c86bb6 Enqueue text to speech tasks 2022-08-29 22:23:07 +08:00
Hongbo Wu
8c8734d153 Re-enable auto synthesis in the backend 2022-08-29 22:09:09 +08:00
Hongbo Wu
a94dca8932 Prioritize synthesis over playing audio over pre-fetching 2022-08-29 15:45:21 +08:00
Hongbo Wu
4672b520e9
Merge pull request #1148 from omnivore-app/feature/separate-queues-for-synthesis
feature/separate queues for synthesis
2022-08-29 13:43:53 +08:00
Hongbo Wu
a19ec8efea Hardcode queue name 2022-08-29 13:20:39 +08:00
Satindar Dhillon
dfea982df7
Merge pull request #1146 from omnivore-app/feature/android-apple-login-redirect
Android Apple Login Endpoint
2022-08-28 21:17:32 -07:00
Hongbo Wu
2e4cb7f4b0 Fix using wrong taskHandlerUrl for low priority task 2022-08-29 12:01:17 +08:00
Hongbo Wu
4af340f30e Add the priority to request param and use the correct queue accordingly 2022-08-29 11:49:10 +08:00
Hongbo Wu
f903a92245 Use text-to-speech queue 2022-08-29 11:47:42 +08:00
Hongbo Wu
e976c9e169 Add text-to-speech queue name and location to env 2022-08-29 11:47:01 +08:00
Satindar Dhillon
3f6ade9614 verify apple token with both audience names used for the app 2022-08-28 09:55:41 -07:00
Satindar Dhillon
a720d5a5d5 set cors config for android web redirect 2022-08-28 09:48:39 -07:00
Satindar Dhillon
3d16b1d0b4 add redirect uri for android apple login 2022-08-28 09:36:30 -07:00
Hongbo Wu
7a9eca2622 Update text-to-speech endpoint 2022-08-26 17:53:26 +08:00
Hongbo Wu
5201f5d360 Add RLS to speech table 2022-08-26 16:56:33 +08:00
Hongbo Wu
b2d49d1fbf Add dotenv 2022-08-26 16:30:09 +08:00
Hongbo Wu
5a1dbb594e Call backend api to update speech in db 2022-08-26 15:41:06 +08:00
Jackson Harper
933fa9f142 Use a promise 2022-08-25 20:07:13 +08:00
Jackson Harper
82fdad3c80 Disable the automatic speech trigger 2022-08-25 19:54:39 +08:00
Hongbo Wu
b337735c9d Do not throw error if failed to synthesize self-closing tags elements 2022-08-25 18:52:10 +08:00
Hongbo Wu
3945c2f887 Prevent synthesizing PDF 2022-08-25 17:01:29 +08:00
Hongbo Wu
3cea785336 Fix page id not get in auto-synthesize subscription 2022-08-25 16:09:35 +08:00
Hongbo Wu
7f83045c0c Fix a bug 2022-08-25 16:09:35 +08:00
Hongbo Wu
99a628f03f Fix tests 2022-08-25 16:09:35 +08:00
Hongbo Wu
a477560626 Add a feature flag for text to speech beta test and if turned on, automatically synthesize new articles 2022-08-25 16:09:35 +08:00
Hongbo Wu
00d1696f23 use complimentary voice for blockquote, hardcoded for now 2022-08-25 16:09:35 +08:00
Hongbo Wu
4f8d71b7cc Add a pubsub subscription listening on the new article to automatically synthesize article 2022-08-25 16:09:35 +08:00
Hongbo Wu
9b0093e3d2 Add function to test if a page should be transcribed 2022-08-25 16:09:35 +08:00
Hongbo Wu
5622154e6c Update listenedAt in the API 2022-08-25 16:09:35 +08:00
Satindar Dhillon
2a273ef504 specify multiple aud values when verifying google tokens 2022-08-24 21:00:15 -07:00
Satindar Dhillon
ba1c9c970b use correct aud value when verifying google token from android 2022-08-23 09:26:47 -07:00
Hongbo Wu
45c1ba2d25 Update log 2022-08-22 16:45:10 +08:00
Hongbo Wu
5cfe0a14e9 Authorize user to get or create speech in the API 2022-08-22 16:44:05 +08:00
Hongbo Wu
cfdc236297 Validate token and authenticate user before setting Speech state to FAILED 2022-08-22 16:24:39 +08:00
Hongbo Wu
463f423cab Enqueue TTS task in the get speech of article API if speech not found 2022-08-22 16:13:34 +08:00
Hongbo Wu
efce6dad94 Stop queueing transcription after calling createArticle API 2022-08-22 16:12:27 +08:00
Hongbo Wu
476e43a1f8 Set speech state to FAILED if encountered error during transcription 2022-08-22 16:11:49 +08:00
Hongbo Wu
4852777f66 Throw error if synthesizing was cancelled 2022-08-22 16:10:49 +08:00
Hongbo Wu
2298635e56 Add function to set speech to failed state 2022-08-22 16:09:56 +08:00
Hongbo Wu
4ce7352013
Merge pull request #1108 from omnivore-app/fix/failed-to-convert-speech
Fix some articles not converted to speech correctly
2022-08-22 12:58:04 +08:00
Jackson Harper
965ffb3013
Merge pull request #1065 from omnivore-app/feature/android-login
Android Login
2022-08-22 12:41:04 +08:00
Hongbo Wu
85d8816e1e Replace li element with a sentence element when converting HTML to SSML 2022-08-22 12:39:06 +08:00
Satindar Dhillon
1115cf34d9 update google login client id for android 2022-08-19 19:39:41 -07:00
Satindar Dhillon
33a4ee39dc check for android source in api mobile sign up route 2022-08-19 18:53:51 -07:00
Hongbo Wu
dba749c506 Fix some articles not converted to speech correctly 2022-08-20 00:11:46 +08:00
Hongbo Wu
0cf689ce21 Fix not getting revue newsletter url by checking all the hyper links in the table tr td 2022-08-19 17:32:29 +08:00
Hongbo Wu
0a75c52a8c Fix getting script_exception when updating labels in highlights by checking null before updating 2022-08-19 14:36:58 +08:00
Hongbo Wu
9906e2153b Save correct mp3 and speech marks file name in the database 2022-08-19 10:04:13 +08:00
Satindar Dhillon
1b46739a0d add sign in option for android client on server 2022-08-18 18:42:18 -07:00
Hongbo Wu
a1171c7952 Catch authentication error 2022-08-18 19:24:38 +08:00
Hongbo Wu
576318fcbe Add authentication to speech svc endpoint 2022-08-18 19:24:38 +08:00
Hongbo Wu
401633eda6 Return signed url 2022-08-18 19:24:38 +08:00
Hongbo Wu
249a5cda4a Add bucket, audioFileName, speechMarksFileName, state to speech table 2022-08-18 19:24:38 +08:00
Hongbo Wu
4cf5b934eb Add validation to request params 2022-08-18 19:24:38 +08:00
Hongbo Wu
29061cf7b1 Remove &nbsp in SSML 2022-08-18 19:24:38 +08:00
Hongbo Wu
a4a8fa9241 Replace emphasis elements in HTML 2022-08-18 19:24:38 +08:00
Hongbo Wu
c79651202d Add synthesize SSML to speech and test 2022-08-18 19:24:38 +08:00
Hongbo Wu
dee94f7c93 Fix a bug for converting text to speech for articles with less than 5000 characters 2022-08-18 19:24:38 +08:00
Hongbo Wu
19b13d164d Fix a bug not getting user personalization 2022-08-18 19:24:38 +08:00
Hongbo Wu
83c1930378 Split text into chunks of 5000 characters in paragraph 2022-08-18 19:24:38 +08:00
Hongbo Wu
c9d26acb25 Fix typo 2022-08-18 19:24:38 +08:00
Hongbo Wu
02ba753375 Upload speech marks file to gcs too 2022-08-18 19:24:38 +08:00
Hongbo Wu
c482ad320b Add duration in logging 2022-08-18 19:24:38 +08:00
Hongbo Wu
b0bf4fc5ce Create speech while requesting 2022-08-18 19:24:38 +08:00
Hongbo Wu
301746d494 Add /:id/mp3 router to redirect request to speech MP3 URL 2022-08-18 19:24:38 +08:00
Hongbo Wu
c74f2bc3fd Enqueue text to speech task after creating article 2022-08-18 19:24:38 +08:00
Hongbo Wu
447e413605 Add function to parse HTML to SSML 2022-08-18 19:24:38 +08:00
Hongbo Wu
355e33b648 Test Mandarin 2022-08-18 19:24:38 +08:00
Hongbo Wu
e086a14ac2 Convert time to ms 2022-08-18 19:24:38 +08:00
Hongbo Wu
77570aa5ab Synthesize text to speech with azure API 2022-08-18 19:24:36 +08:00
Hongbo Wu
94f9dd9e6e Enqueue text to speech tasks 2022-08-18 19:23:41 +08:00
Hongbo Wu
4b42d013ca Convert text to OGG file 2022-08-18 19:23:41 +08:00
Hongbo Wu
0419472c2e Upload audio file with public access right 2022-08-18 19:23:41 +08:00
Hongbo Wu
dd332f5ee6 Add tests 2022-08-18 19:23:41 +08:00
Hongbo Wu
bca0f5ed59 Create Amazon Polly text to speech integration 2022-08-18 19:23:41 +08:00
Hongbo Wu
427cecf6b9 Update syncedAt after syncing 2022-08-09 09:51:31 +08:00
Hongbo Wu
134482a261 Add integration tests for integration router 2022-08-08 23:11:35 +08:00
Hongbo Wu
7ac45ca748 Add deleteIntegration API and integration tests 2022-08-08 18:34:13 +08:00
Hongbo Wu
4aa62d6031 Add list integrations API and integration tests 2022-08-08 18:12:44 +08:00
Hongbo Wu
0cf3f58258 Add integration tests for setIntegration API 2022-08-08 17:09:23 +08:00
Hongbo Wu
8070273dad Fix tests 2022-08-05 16:10:33 +08:00
Hongbo Wu
22ce59a198 Enqueue or delete sync task when create or disable integration 2022-08-05 16:09:26 +08:00
Hongbo Wu
5a8184da3a Add taskName in integrations table 2022-08-05 16:09:26 +08:00
Hongbo Wu
eb2ee5ab55 Add task to handle sync with integrations 2022-08-05 16:09:26 +08:00
Hongbo Wu
c0c58bf751 Only sync pages that were updated after syncedAt 2022-08-05 16:09:26 +08:00
Hongbo Wu
8e9d1fcc4f Update integration syncedAt if successful 2022-08-05 16:09:26 +08:00
Hongbo Wu
bd73da0571 Add syncedAt field in integrations table 2022-08-05 16:09:26 +08:00
Hongbo Wu
8aa7ccdd1e Add INTEGRATION_TASK_HANDLER_URL in env 2022-08-05 16:09:26 +08:00
Hongbo Wu
971bbfda7f Add integrations service router to sync pages with integrations 2022-08-05 16:09:26 +08:00
Hongbo Wu
24caac2ed5 Update integration updatedAt after syncing 2022-08-05 16:09:26 +08:00
Hongbo Wu
8f50285ad5 Allow search page by highlight or label id 2022-08-05 16:09:24 +08:00
Hongbo Wu
fa97c9511c Add Readwise create highlight API integration 2022-08-05 16:08:20 +08:00
Hongbo Wu
73bf695cf3 Add function to get highlight start location 2022-08-05 16:08:20 +08:00
Hongbo Wu
b8dbcdb2bd Add createHighlight API integration for Readwise 2022-08-05 16:08:20 +08:00
Hongbo Wu
dd2db71876 Add createIntegration API implementation 2022-08-05 16:08:20 +08:00
Hongbo Wu
e66d047d51 Add createIntegration API to the GQL schema 2022-08-05 16:08:20 +08:00
Hongbo Wu
db27ac7d59 Add integration entity 2022-08-05 16:08:20 +08:00
Hongbo Wu
977bd1deda Fix tests 2022-08-05 11:44:02 +08:00
Hongbo Wu
7c73982fe3 Add test for moving to the top 2022-08-04 21:39:45 +08:00
Hongbo Wu
a95f532e44 Add moveLabel api implementation 2022-08-04 21:38:36 +08:00
Hongbo Wu
b12607887e Add moveLable api in gql Schema 2022-08-04 21:38:05 +08:00
Hongbo Wu
31d8f72840 Sort labels by position order 2022-08-04 21:37:32 +08:00
Hongbo Wu
5e2e2a2151
Merge pull request #1044 from omnivore-app/fix/email-forwarding
Fix not getting correct sender email address from forwarding email by Gmail rules
2022-08-04 21:37:13 +08:00
Hongbo Wu
92d3ab0195
Merge pull request #1035 from omnivore-app/feature/sync-api
feature/sync api
2022-08-04 20:33:05 +08:00
Hongbo Wu
70deb348cf Fix not getting correct sender email address from forwarding email by Gmail rules 2022-08-04 18:50:23 +08:00
Satindar Dhillon
c076dd0f72 add mobile email sign up endpoint 2022-08-01 21:54:10 -07:00
Satindar Dhillon
c01d9a7021 server returns a pendingEmailVerification boolean in auth payload 2022-08-01 21:54:10 -07:00
Satindar Dhillon
6a100051ac add mobile email sign in route to api 2022-08-01 21:54:10 -07:00
Hongbo Wu
336d06375a Add updatesSince API resolver 2022-07-29 18:11:18 +08:00
Hongbo Wu
7ce183d6f8 Add soft delete of pages by updating page state to Deleted 2022-07-29 18:10:05 +08:00
Hongbo Wu
83f988bb35 Soft delete articles 2022-07-29 15:53:13 +08:00
Hongbo Wu
07c6214e88 Add DELETED state to the article 2022-07-29 14:08:35 +08:00
Hongbo Wu
b976b6098d Add updatesSince API in GQL schema 2022-07-29 12:11:48 +08:00
Jackson Harper
6d19c8c9bc Remove unused import 2022-07-28 11:43:16 -07:00
Jackson Harper
1525742b4e Linting fixes 2022-07-28 11:23:27 -07:00
Jackson Harper
565da42b46 When parsing newsletters with no url dont fetch the generated url 2022-07-28 11:05:17 -07:00
Hongbo Wu
3a120b8f47 Return empty name if name not found in from header 2022-07-28 10:37:28 +08:00
Hongbo Wu
c99c1db57e Add support to the case when from address is in Name <address> format 2022-07-28 10:26:15 +08:00
Hongbo Wu
0bdab51bbd
Merge pull request #1021 from omnivore-app/feature/save-from-email
Save articles by sending emails to omnivore inbox
2022-07-27 20:10:31 +08:00
Hongbo Wu
6f11ccacb1 Save article from forwarding emails 2022-07-27 12:15:28 +08:00
Hongbo Wu
d184ca8d04 Add function isProbablyArticle to test if a forwarded email contains an article to save 2022-07-27 12:15:26 +08:00
Jackson Harper
779ff1f020 Reset password is a directory now 2022-07-26 15:57:40 -07:00
Jackson Harper
65689ca538 Remove extra /auth in paths 2022-07-26 15:57:18 -07:00
Jackson Harper
3c442c06ba Set auth token cookie on success login 2022-07-26 15:56:40 -07:00
Jackson Harper
6cad41ec1e Linting fixes 2022-07-26 15:00:31 -07:00
Jackson Harper
769c9b23b0 Use SSO redirection to set both client and server cookies with email login 2022-07-26 14:48:24 -07:00
Jackson Harper
e939f12eb1 Remove unneeded branches 2022-07-26 14:28:39 -07:00
Jackson Harper
074ec781a2 Set auth cookie after reseting password 2022-07-26 12:46:13 -07:00
Jackson Harper
dc268a2216 Handle resetting passwords 2022-07-26 12:33:56 -07:00
Jackson Harper
acd36fe9af Move auth routes into /auth folder 2022-07-26 10:31:45 -07:00
Hongbo Wu
072b2dd9c5 Revert "Add Set-Cookie header"
This reverts commit cb23613cdc.
2022-07-26 14:12:37 +08:00
Jackson Harper
2d9f4a0194 Redirect to the verify-email informational page after sign up 2022-07-25 23:09:01 -07:00
Hongbo Wu
cb23613cdc Add Set-Cookie header 2022-07-26 14:06:11 +08:00
Hongbo Wu
dca9066f19 Continue fix RLS issue of updating user table 2022-07-26 13:41:02 +08:00
Hongbo Wu
29ed803ae5 Fix RLS issue of updating user table 2022-07-26 13:31:36 +08:00
Hongbo Wu
82da9e6ede use sendgrid template for confirmation and password-reset email 2022-07-25 15:14:01 -07:00
Hongbo Wu
8d5da15064 use template id stored in env 2022-07-25 15:14:01 -07:00
Hongbo Wu
fe180c5b50 add confirm-email and password-reset email template id in env 2022-07-25 15:14:01 -07:00
Hongbo Wu
bd77a7f8ee add test for reset password 2022-07-25 15:14:01 -07:00
Hongbo Wu
6699ec834d add router handler for reset password 2022-07-25 15:14:01 -07:00
Hongbo Wu
286d167769 add router handler for email reset password 2022-07-25 15:14:01 -07:00
Hongbo Wu
bab96aaa1e remove membership from user 2022-07-25 15:14:01 -07:00
Hongbo Wu
ea9d98aa95 make confirm-email a post api 2022-07-25 15:14:01 -07:00
Hongbo Wu
4c75260229 replace hard-coded email address with env var for the remaining files 2022-07-25 15:14:01 -07:00
Hongbo Wu
a87f75f319 add test for confirm-email router 2022-07-25 15:14:01 -07:00
Hongbo Wu
e4ea49c05f add confirm-email router 2022-07-25 15:14:01 -07:00
Hongbo Wu
9ea9bd9ea1 send confirmation email to pending user when login 2022-07-25 15:14:01 -07:00
Hongbo Wu
abb1a414c1 remove login gql resolver 2022-07-25 15:13:58 -07:00
Hongbo Wu
f7053622a5 remove signup gql resolver 2022-07-25 15:13:30 -07:00
Hongbo Wu
80639311d7 improve confirmation email format 2022-07-25 15:12:56 -07:00
Hongbo Wu
068684d16b add test for failing to send confirmation email when signup 2022-07-25 15:12:56 -07:00
Hongbo Wu
d284a3d302 fake sendMail in sign up test 2022-07-25 15:12:56 -07:00
Hongbo Wu
01c4bbad00 delete pending user if failed to send confirmation email 2022-07-25 15:12:56 -07:00
Hongbo Wu
b0a0020fc7 fix return false when sending failed 2022-07-25 15:12:56 -07:00
Hongbo Wu
4e11000ac0 add return type 2022-07-25 15:12:56 -07:00
Hongbo Wu
d187c6c993 use general sender for confirmation email 2022-07-25 15:12:55 -07:00
Hongbo Wu
d108806234 make sender address nullable env var 2022-07-25 15:12:55 -07:00
Hongbo Wu
b98f7c6ba2 reject with unknow reason if failed to send confirmation email 2022-07-25 15:12:55 -07:00
Hongbo Wu
1ea34bde62 send confirmation email to pending user 2022-07-25 15:12:55 -07:00
Hongbo Wu
7293469468 use sender email address in env 2022-07-25 15:12:55 -07:00
Hongbo Wu
bd5b289168 add verification token generation 2022-07-25 15:12:55 -07:00
Hongbo Wu
1346140a20 add sender email address in env 2022-07-25 15:12:55 -07:00
Hongbo Wu
ba73eec9e5 create pending user first 2022-07-25 15:12:55 -07:00
Hongbo Wu
35e060890e add status to user entity 2022-07-25 15:12:55 -07:00
Jackson Harper
c113c94567 Add param validation so we dont get undefined values passed to GQL 2022-07-21 17:43:15 -07:00
Jackson Harper
ff629b2fed
Merge pull request #992 from omnivore-app/fix/email-urls
Use email-signup instead of email-registration as path to match naming
2022-07-19 16:02:00 -07:00
Jackson Harper
e0a4478400
Merge pull request #954 from omnivore-app/feat/extension-commands
Extension: support right click saveurl and shortcut key to save current tab
2022-07-19 15:37:18 -07:00
Jackson Harper
d6a6b1de66 Use email-signup instead of email-registration as path to match naming 2022-07-19 13:02:28 -07:00
Hongbo Wu
65f28fe708 add revue.email to the revue newsletter attribute selectors 2022-07-18 10:44:39 +08:00
Hongbo Wu
345c020dea fix not saving loqseq weekly newsletter due to no url 2022-07-17 12:36:52 +08:00
Jackson Harper
4b8749ed43 Remove debug line 2022-07-16 12:40:54 -07:00
Jackson Harper
0bcb8a23c5 Use new API methods for saving 2022-07-16 12:17:58 -07:00
Jackson Harper
cb506fcf93 Remove extra quote from report string 2022-07-14 20:33:06 -07:00
Hongbo Wu
edd44fcafc fix get article test 2022-07-14 17:56:55 +08:00
Hongbo Wu
404798a01e use correct index name 2022-07-14 17:08:40 +08:00
Hongbo Wu
4eb55846fd create elastic index if not exists in testing 2022-07-14 16:53:23 +08:00
Hongbo Wu
5a8e2c40c7 fix delete users db permission error 2022-07-13 16:08:46 +08:00
Hongbo Wu
098771f566
Merge pull request #955 from omnivore-app/fix/duplicate-save
check if page saved by adding links before creating by extension
2022-07-13 11:57:20 +08:00
Hongbo Wu
01e95c3598 check if page saved by adding links before creating by extension 2022-07-13 11:34:20 +08:00
Hongbo Wu
cb1d64cd82 add siteName in api response 2022-07-13 10:57:54 +08:00
Hongbo Wu
970609c3b8 change size to first in query param 2022-07-13 10:46:03 +08:00
Hongbo Wu
931c519d44 typeahead searchs by siteName 2022-07-13 10:37:06 +08:00
Hongbo Wu
b68282fe97 rename typeahead to typeaheadSearch 2022-07-12 09:36:00 -07:00
Hongbo Wu
3a1f38a6f7 add typeahead api implementation 2022-07-12 09:36:00 -07:00
Hongbo Wu
dc9523e522 add searchAsYouType in elastic 2022-07-12 09:36:00 -07:00
Hongbo Wu
31ac511121 add typeahead gql schema 2022-07-12 09:36:00 -07:00
Jackson Harper
f7a023939d
Merge pull request #940 from omnivore-app/feature/allow-fetching-original 2022-07-11 22:08:27 -07:00
Hongbo Wu
c4a599d2ba support newsletters hosted on convertkit.com 2022-07-12 11:47:38 +08:00
Jackson Harper
27e39b396d Improve formatting for content display report emails
With the previous formatting the `:` could be appended
to the end of URLs.
2022-07-11 11:06:17 -07:00
Jackson Harper
e153966eee Linting 2022-07-09 15:38:09 -07:00
Jackson Harper
9feeb80cf3 Allow fetching original content
This is useful when debugging
2022-07-09 14:35:14 -07:00
Hongbo Wu
4fe81eaf92
Merge pull request #849 from omnivore-app/feature/delete-account
Delete account API
2022-07-09 08:54:57 +08:00
Jackson Harper
e63324c802
Merge pull request #934 from omnivore-app/fix/unsubscribe-email-not-saved
fix/unsubscribe email not saved
2022-07-08 13:47:16 -07:00
Jackson Harper
46d96b8f91
Merge pull request #932 from omnivore-app/newsletter-revue
Add support for newsletters hosted on getrevue.co
2022-07-08 13:36:10 -07:00
Hongbo Wu
de803ebbd5 fix auth error when deleting user in db 2022-07-08 11:59:55 +08:00
Hongbo Wu
ef0c2434fb Save unsubscribe email address or http url of newsletter emails 2022-07-07 17:14:12 +08:00
Hongbo Wu
322e135ead delete this user pages in elastic 2022-07-07 12:32:55 +08:00
Hongbo Wu
41f43b54ab Publish delete event 2022-07-07 12:31:46 +08:00
Hongbo Wu
efd47f3f83 add function to delete pages by param 2022-07-07 11:07:00 +08:00
Hongbo Wu
b898f55bb9 add delete account result in resolvers 2022-07-07 10:56:20 +08:00
Satindar Dhillon
e5d6386b96 return UserNotFound error if user does not exist in delete account trx 2022-07-06 09:49:01 -07:00
Satindar Dhillon
ddba50dee6 fix delete user resolver and map it to deleteAccount mutation 2022-07-06 09:38:24 -07:00
Satindar Dhillon
da76ae7aab attempt to write resolver functions 2022-07-06 09:38:24 -07:00
Satindar Dhillon
02411347a7 regenerate graphql files 2022-07-06 09:38:24 -07:00
Satindar Dhillon
d595bfb7f1 add delete account mutation to schema.ts 2022-07-06 09:38:24 -07:00
Hongbo Wu
9599edb9fb Add support for newsletters hosted on getrevue.co 2022-07-06 22:06:51 +08:00
Hongbo Wu
2e77241044 Check and get Revue newsletter url from email 2022-07-06 22:06:21 +08:00
Hongbo Wu
e5518e9f23 Reply to the original sender of the forwarded email 2022-07-06 21:16:55 +08:00
Hongbo Wu
c08afe6451 Update page updatedAt when updating labels 2022-06-28 12:03:37 +08:00
Hongbo Wu
00f38d1134 Update page updatedAt when updating highlights 2022-06-28 11:55:26 +08:00
Hongbo Wu
59efc5fea7 Add test 2022-06-28 10:14:15 +08:00
Hongbo Wu
bf1faaeea4 Include highlights in search page result in elastic 2022-06-28 09:56:39 +08:00
Hongbo Wu
6cae3dc9b5 Add highlights in search item 2022-06-28 09:53:48 +08:00
Hongbo Wu
c1855afc72 Update property unarchived=null instead of undefined in the page document in elastic 2022-06-26 18:36:54 +08:00
Jackson Harper
4c89323f0b Make the content fetch GCF URL nullable 2022-06-24 11:30:52 -07:00
Jackson Harper
92c8047a66 Update environment variable names in docker 2022-06-24 10:52:13 -07:00
Hongbo Wu
75d3372426 Use gcf for low priority task 2022-06-24 10:13:14 -07:00
Hongbo Wu
e47415cf69 Add new environment variable for content-fetch url in gcf 2022-06-24 10:13:14 -07:00
Hongbo Wu
5f0cb493f2 Allow filter search result by updatedAt 2022-06-24 13:09:13 +08:00
Hongbo Wu
e96d5552fa Fix search by is:read or is:unread getting empty result by using the correct property name 2022-06-23 12:35:48 +08:00
Hongbo Wu
9a2f4b300a Fix a script error by deleting both labels in pages and highlights 2022-06-20 19:06:50 +08:00
Hongbo Wu
f88083e535
Merge pull request #813 from omnivore-app/advanced-search
advanced search
2022-06-19 10:55:18 +08:00
Hongbo Wu
3f4b0f9b8c Update resolver 2022-06-17 17:09:08 +08:00
Hongbo Wu
26e7ab178e Fetch page savedAt, readingProgress from elastic 2022-06-17 17:08:26 +08:00
Hongbo Wu
2bcf97d2e8 Make updatedAt optional 2022-06-17 17:07:13 +08:00
Hongbo Wu
1be9c980e1 Add savedAt to searchItem and make readingProgress required in elastic 2022-06-17 16:03:49 +08:00
Hongbo Wu
e408143ea9 Add savedAt to searchItem and make readingProgress required 2022-06-17 16:02:46 +08:00
Hongbo Wu
e3c30dd076 Allow matching title, description, content keyword in elastic 2022-06-16 22:15:05 +08:00
Hongbo Wu
40bb49012a Allow match keyword 2022-06-16 22:15:01 +08:00
Hongbo Wu
9ec11cfc22 Add title, description, content as keyword in search.ts 2022-06-16 22:14:08 +08:00
Hongbo Wu
215078bcb3 Add logseq to the allowed cors origin 2022-06-16 10:46:06 +08:00
Hongbo Wu
c5c8763767 Add readAt to searchItem 2022-06-15 09:32:53 +08:00
Hongbo Wu
6189e85b2c Add readAt to article 2022-06-15 09:32:10 +08:00
Jackson Harper
ea4e4d6828 Use the Article type instead of Page in updatePage API
Despite the name we are still using Article in many
places.
2022-06-09 15:29:01 -07:00
Jackson Harper
3136705a75 Handle errors when creating a page save request on savePage 2022-06-09 13:52:49 -07:00
Jackson Harper
9baeb89742 Add more elastic debugging 2022-06-09 13:52:49 -07:00
Jackson Harper
85cbd4e9d0 Handle errors updating elastic when saving pages 2022-06-09 13:52:49 -07:00
Jackson Harper
05ea57f76f Linting 2022-06-09 12:08:42 -07:00
Jackson Harper
e23eada168 Use the public GCS URL for local uploaded files 2022-06-09 11:59:01 -07:00
Jackson Harper
ef072cb2c9 When creating pages from uploaded files use their signed URL as the page URL 2022-06-09 11:51:01 -07:00
Jackson Harper
cffb5088b4 If creating a request from a file URL, dont try fuzzy matching on URL 2022-06-09 11:37:14 -07:00
Hongbo Wu
ff613287b4
Merge pull request #775 from omnivore-app/fix/delete-label
Fix failure of lable deletion in highlight
2022-06-09 14:50:03 +08:00
Hongbo Wu
520ce0077b Add refresh index method 2022-06-09 12:34:22 +08:00
Hongbo Wu
4f4cc51a37 Delete label by name 2022-06-09 12:33:58 +08:00
Hongbo Wu
4cf45af669 Add debug log for deleting label 2022-06-09 12:33:42 +08:00
Hongbo Wu
85317df671
Merge pull request #774 from omnivore-app/fix/missing-title
Fallback to domain to url if no title
2022-06-09 11:48:49 +08:00
Hongbo Wu
d1d18315c8 Fallback to domain to url if no title 2022-06-09 11:30:13 +08:00
Jackson Harper
fa2b58eac0 When creating a page during an uploadfile request return its ID 2022-06-08 20:17:47 -07:00
Hongbo Wu
309c581cf5
Merge pull request #729 from omnivore-app/labels-in-highlights
Support labels in highlights
2022-06-09 09:28:43 +08:00
Hongbo Wu
2dcab66af2 Update labels for both pages and highlights 2022-06-08 17:39:38 +08:00
Hongbo Wu
7c840f5b1e Merge deleteLabel in page and highlight 2022-06-08 17:25:33 +08:00
Hongbo Wu
a981e13c86 Add test case for deleteLabel 2022-06-08 17:01:38 +08:00
Hongbo Wu
0d67d0fb90 Delete labels for highlights when label is deleted 2022-06-08 15:35:52 +08:00
Hongbo Wu
22c604c15b Add deleteLabelForHighlights 2022-06-08 15:33:43 +08:00
Hongbo Wu
145867fe05 Add test for setLabelsForHighlight resolver 2022-06-08 15:25:11 +08:00
Hongbo Wu
4894b3cfd9 Add setLabelsForHighlight in function_resolvers.ts 2022-06-08 15:00:05 +08:00
Hongbo Wu
e9f4149c62 Add setLabelsForHighlight resolver 2022-06-08 14:59:46 +08:00
Hongbo Wu
eef3ee4114 Add getLabelsByIds service method 2022-06-08 14:59:27 +08:00
Hongbo Wu
93c0e53d1d Generate setLabelsForHighlight graphql code 2022-06-08 14:59:11 +08:00
Hongbo Wu
427b58eedd Add set labels for highlight gql schema 2022-06-06 19:15:51 +08:00
Hongbo Wu
bdda54d54a Add set Labels For Highlight data access method 2022-06-06 19:15:03 +08:00
Hongbo Wu
aa15ef0282 Sort by expires at desc nulls last 2022-06-06 13:34:23 +08:00
Hongbo Wu
d00becc269 Add readAt to search API response 2022-06-04 22:12:59 +08:00
Hongbo Wu
fc68d51320 Support sort/filter by readAt 2022-06-04 22:12:03 +08:00
Hongbo Wu
b1d968ff23 Update readAt when saving reading progress 2022-06-04 22:11:44 +08:00
Hongbo Wu
577c6e84fb Add readAt to page type 2022-06-04 22:11:14 +08:00
Jackson Harper
b61a8f6015
Merge pull request #747 from omnivore-app/fix/ios-sorting
Disable sorting options that need API improvements
2022-06-03 14:04:19 -07:00
Jackson Harper
791e31d60f
Merge pull request #750 from omnivore-app/OMN-633
Reopening OMN-633 to rebase
2022-06-03 13:36:36 -07:00
Jackson Harper
b56c6dafa9 Disable sorting options that need API improvements 2022-06-03 12:47:43 -07:00
Jackson Harper
bf929db559 Add the updatedAt attribute to page items 2022-06-03 10:24:11 -07:00
Jackson Harper
975411d429
Merge pull request #719 from omnivore-app/fix/pdf-uploading-improvements 2022-06-02 16:47:03 -07:00
Hongbo Wu
89164a353f
Merge pull request #723 from omnivore-app/fix/tweet-not-saved
Fix tweet not saved
2022-06-02 11:20:40 +08:00
Hongbo Wu
4f031a579c
Merge pull request #721 from omnivore-app/search-highlights-second-index
When searching for highlights we should include document title, descr…
2022-06-02 11:05:30 +08:00
Hongbo Wu
04f7fdc31f Add labels in highlight type 2022-06-01 19:01:26 +08:00
Hongbo Wu
195074fa49 Update search query 2022-06-01 13:49:51 +08:00
Hongbo Wu
304fe70113 Fix tests 2022-06-01 10:30:23 +08:00
Jackson Harper
11f1b78c45 Remove changes to upload.ts 2022-05-31 15:26:33 -07:00
Jackson Harper
0e10d5630d Rebase and merge 2022-05-31 15:11:10 -07:00
Hongbo Wu
404805e0c0 Make async calls to parse() 2022-05-31 22:51:00 +08:00
Hongbo Wu
74054cbdbd
Merge pull request #716 from omnivore-app/api-token
Api tokens
2022-05-31 14:22:23 +08:00
Jackson Harper
6f35740272 Linting fixes 2022-05-30 22:38:24 -07:00
Jackson Harper
53c423b714 WIP: upload PDFs using background task 2022-05-30 22:30:43 -07:00
gitstart-omnivore
d42b0c244c fixed merge conflicts 2022-05-30 12:29:49 +00:00
Hongbo Wu
a04bfbb83e When searching for highlights we should include document title, description, content as secondary indexes 2022-05-29 22:43:21 +08:00
Hongbo Wu
c0bb67a6b5 Verify api key for routers too 2022-05-28 22:00:01 +08:00
Jackson Harper
987336f438
Merge pull request #712 from omnivore-app/fix/ios-pdf-handling
Better PDF upload handling on iOS
2022-05-27 08:43:07 -07:00
Hongbo Wu
6e16631f3b Resolve conflicts 2022-05-27 18:37:10 +08:00
Hongbo Wu
fa9c5b3efe Add test for list api keys 2022-05-27 18:36:18 +08:00
Hongbo Wu
b7206457b4 Add test for revoke api key 2022-05-27 18:36:17 +08:00
Hongbo Wu
0f2a55d274 Add list/delete api key resolver 2022-05-27 18:35:38 +08:00
Hongbo Wu
fd4fc8a4e7 Add list/delete api key in schema 2022-05-27 18:34:36 +08:00
Hongbo Wu
333b0259ba Fix tests 2022-05-27 18:33:49 +08:00
Hongbo Wu
9051a3f43a Update api key validation 2022-05-27 18:33:49 +08:00
Hongbo Wu
a09588d3a7 Update generateApiKey resolver 2022-05-27 18:33:49 +08:00
Hongbo Wu
849adf84d4 Add entity class 2022-05-27 18:33:49 +08:00
Jackson Harper
0cabd26344 Dont send the normalized URL to the content-fetch service
URLs need to be sent to contentFetch exactly as they
were received, this is because many apps will use signed URLs
for PDFs being served from GCP or AWS. A signed URL needs to
keep all its query params in the same order to validate.
2022-05-26 21:40:40 -07:00
Jackson Harper
93b095818d Linting fixes 2022-05-26 21:40:40 -07:00
Jackson Harper
cb98a9cf86 Make clients opt into creating a page when uploading a file 2022-05-26 21:40:40 -07:00
Hongbo Wu
26681e5ecd Add get/list/delete webhook resolver tests 2022-05-26 14:52:01 +08:00
Hongbo Wu
a75ce3c44d Add get/list/delete webhook resolver 2022-05-26 14:52:00 +08:00
Hongbo Wu
cc07c00a83 Add get/list/delete webhook gql schema 2022-05-26 14:51:11 +08:00
Hongbo Wu
c9c6f83e65 Add tests for trigger endpoint 2022-05-26 14:51:11 +08:00
Hongbo Wu
7b0ebb9dbf Add pubsub subscription to trigger webhook 2022-05-26 14:51:11 +08:00
Hongbo Wu
7157f38738 Add test 2022-05-26 14:51:11 +08:00
Hongbo Wu
6d0ce30a44 Add setWebhook resolver 2022-05-26 14:51:10 +08:00
Hongbo Wu
5528d1d349 Replace createWebhook with setWebhook 2022-05-26 14:50:38 +08:00
Hongbo Wu
f61f61312c Add webhook entity 2022-05-26 14:50:10 +08:00
Hongbo Wu
a655275754 Add unique constraint on user_id and event_types 2022-05-26 14:50:10 +08:00
Hongbo Wu
aaab02c9d8 Add createWebhook gql schema 2022-05-26 14:50:08 +08:00
Hongbo Wu
7d4d1d7b67 Parse language in readability 2022-05-26 10:55:21 +08:00
Hongbo Wu
0ef9bb3944 Allow search by language in elastic 2022-05-26 10:55:20 +08:00
Hongbo Wu
87b0f683e1 Add language term in search body 2022-05-26 10:55:04 +08:00
Hongbo Wu
6e06429636 Add language keyword in search query 2022-05-26 10:55:02 +08:00
Hongbo Wu
1eeb5617a5 Search by language 2022-05-26 10:54:04 +08:00
Hongbo Wu
dd394144cd Add language in schema 2022-05-26 10:52:19 +08:00
Hongbo Wu
a702993485 Add search by language query 2022-05-26 10:52:18 +08:00
Hongbo Wu
3e0e8b486f Add language in searchitem 2022-05-26 10:52:18 +08:00
Hongbo Wu
be91562ca1 Add language in page 2022-05-26 10:52:18 +08:00
Jackson Harper
d704fad2ff
Merge pull request #701 from omnivore-app/feature/add-popular-reads
API to add recommended (popular) reads to a users library
2022-05-24 21:09:24 -07:00
Hongbo Wu
f4c65d7fe1
Merge pull request #698 from omnivore-app/sort-by-publish-time
Support sort or filter by publish time
2022-05-25 10:41:49 +08:00
Jackson Harper
a20ba60053 Add popular reads for onboarding 2022-05-24 15:31:55 -07:00
Jackson Harper
ea50f51644 Update to use image proxy URLs in parsed content 2022-05-24 13:43:57 -07:00
Jackson Harper
ed5dfde1a8 Linting fixes, remove debug 2022-05-24 13:06:40 -07:00
Jackson Harper
2b14d51ec6 API to add recommended (popular) reads to a users library
This API is used in onboarding
2022-05-24 12:05:39 -07:00
Hongbo Wu
a35b096d73 Support sort and filter by published in resolver 2022-05-24 18:25:32 +08:00
Hongbo Wu
61065efd2b Add published sort param in elastic query 2022-05-24 18:24:30 +08:00
Hongbo Wu
641f191fcd Add published sort param in schema 2022-05-24 18:23:30 +08:00
gitstart-omnivore
75728cc144 fixing diff 2022-05-24 07:04:54 +00:00
Jackson Harper
2d2495a10e
Merge pull request #685 from omnivore-app/fix/pdf-api-simplification
Simplify the API to create pages from PDFs
2022-05-21 21:19:30 -07:00
Jackson Harper
e5bc68ca9e Simplify the API to create pages from PDFs
This creates a stub page when an upload is initiated, so the
SaveFile (or create article from file) APIs do not need to be
called.

The PDF uploaded trigger fired by GCS will mark the upload
as completed and update the page status.
2022-05-21 12:05:45 -07:00
Jackson Harper
17e6f4091d
Merge pull request #638 from omnivore-app/feature/subscription-api
Feature/subscription api
2022-05-20 15:34:48 -07:00
Hongbo Wu
2ee95a1c14 Fix cannot convert null to object error message 2022-05-20 20:38:30 +08:00
Hongbo Wu
444c21ad09 Fix labels test 2022-05-19 18:12:14 +08:00
Hongbo Wu
34349e925c Add unit test 2022-05-19 16:36:35 +08:00
Hongbo Wu
b8225fc8c8 Fix labels not being updated in elastic 2022-05-19 12:08:50 +08:00
Jackson Harper
eadeccce81 Linting fixes 2022-05-18 11:31:42 -07:00
Jackson Harper
004c766588 If parsing fails, attempt adding <html> wrappers to a document
LinkedDom seems less forgiving and expects the outerHTML of a
document, however older extension versions still send innerHTML.
2022-05-18 10:55:31 -07:00
Hongbo Wu
d68549bcb7 Remove unused code 2022-05-18 15:52:31 +08:00
Hongbo Wu
d9d4deb14c Update Money Stuff sign up url 2022-05-18 11:50:43 +08:00
Hongbo Wu
5b36f9270e Update milk road query params 2022-05-17 22:43:00 +08:00
Hongbo Wu
13453e7b7f Register subscribe resolver 2022-05-17 21:26:46 +08:00
Hongbo Wu
568472cc3c Calling HTTP requests to subscribe to these newsletters 2022-05-17 21:15:25 +08:00
Hongbo Wu
4699458457 Implement subscribe api 2022-05-17 18:46:57 +08:00
Hongbo Wu
1da8b75c81 Add a subscribeHandler 2022-05-17 18:46:44 +08:00
Hongbo Wu
51dd9a5733 Return a list of subscriptions 2022-05-17 18:45:52 +08:00
Hongbo Wu
c30ef093b8 Update unsubscribe api 2022-05-17 16:47:34 +08:00
Hongbo Wu
906b2d28a0 Add subscribe API schema 2022-05-17 16:23:36 +08:00
Hongbo Wu
e76fb02f43 Fix window is not defined for parsing code blocks 2022-05-17 11:01:55 +08:00
Jackson Harper
7bfb8cfee4
Merge pull request #597 from omnivore-app/remove-chrome-aws-lambda
Optimize puppeteer and remove chrome-aws-lambda dependencies
2022-05-13 16:12:24 -07:00
Jackson Harper
8b37a475c8
Merge pull request #612 from omnivore-app/fix/reminder-id-type
Use pageId instead of articleSavingRequestId in reminders
2022-05-13 10:47:46 -07:00
Jackson Harper
d3b65c0ff8
Merge pull request #611 from omnivore-app/fix/elastic-exception
Stop throwing document not found exception to sentry
2022-05-13 09:05:01 -07:00
Hongbo Wu
b306ca6e2e Fix UpdateLabelResult undefined 2022-05-13 17:38:51 +08:00
Hongbo Wu
45213e7b54 Fix reminder trigger 2022-05-13 17:07:10 +08:00
Hongbo Wu
a51eba67ba get reminder by page id 2022-05-13 16:17:25 +08:00
Hongbo Wu
d821f26440 create reminder with page id 2022-05-13 16:12:08 +08:00
Hongbo Wu
40cbfc9058 Use reminder by elasticPageId 2022-05-13 16:01:23 +08:00
Hongbo Wu
f51dbafdfc Stop throwing document not found exception to sentry 2022-05-13 11:40:08 +08:00
Jackson Harper
eee116e71d Add an analytics event when links are removed 2022-05-12 10:55:12 -07:00
Hongbo Wu
adfaf6b8ce Use newsletter's title and author as page's ones 2022-05-12 18:08:38 +08:00
Hongbo Wu
1b8850ed33 Fix tests 2022-05-12 17:41:11 +08:00
Hongbo Wu
e1e0ddf7fc
Merge pull request #582 from omnivore-app/optimize-parsing
Optimize parsing
2022-05-12 11:07:52 +08:00
Hongbo Wu
602d141dec Rename doc to dom 2022-05-12 11:00:32 +08:00
Hongbo Wu
5dca02873d Revert originalArticleUrl change 2022-05-12 10:45:13 +08:00
Hongbo Wu
8f75c43658 Add siteName in search result 2022-05-12 10:30:47 +08:00
Hongbo Wu
76aef35423 Remove www. from the siteName in the search api response 2022-05-11 23:07:34 +08:00
Hongbo Wu
a78a6c6ba4 Replace DomWindow with Document in handlers 2022-05-10 17:01:23 +08:00
Hongbo Wu
6a57281e74 Remove DomWindow usage 2022-05-10 17:00:56 +08:00
Hongbo Wu
acc7654a2f Replace jsdom with linkedom 2022-05-10 16:59:09 +08:00
Hongbo Wu
5698790288 Pass url to readability 2022-05-10 16:53:45 +08:00
Hongbo Wu
5007b11a3c Add url to readability option 2022-05-10 16:52:10 +08:00
Hongbo Wu
59a2639b7d Reduce http call to get jsonld data if title or content or sitename or byline exists 2022-05-09 13:45:45 +08:00
Hongbo Wu
a457c9d128 Update article content only when code blocks exist 2022-05-09 13:45:45 +08:00
Hongbo Wu
eaad96acdd Return parsed dom back to backend 2022-05-06 12:29:08 +08:00
Hongbo Wu
5f5076e864 Highlight code element without reinitialize jsdom 2022-05-06 12:20:54 +08:00
Hongbo Wu
7c6b810522 Remove redundant JSDOM 2022-05-06 10:53:36 +08:00
Hongbo Wu
93ab6bc87a Add includePending=true in search API 2022-05-04 21:28:06 +08:00
Hongbo Wu
bc1ed3f054 Check state in articleSavingRequest 2022-05-04 19:33:13 +08:00
Hongbo Wu
9e3db0e053 Fix a bug to have multiple pages with the same url in lib 2022-05-04 19:12:22 +08:00
Hongbo Wu
afe8b6e948 make savedAt a required field in page 2022-05-04 17:54:59 +08:00
Hongbo Wu
a42bb7ab38 Replace createdAt with savedAt 2022-05-04 12:59:07 +08:00
Hongbo Wu
98ea1016d5 Remove <p> tag in description 2022-05-04 12:50:22 +08:00
Hongbo Wu
9048ccbab3 Show failed pages in library 2022-05-04 12:46:57 +08:00
Hongbo Wu
ca0f58ee22 Update page content and state if failed to parse 2022-05-04 12:21:41 +08:00
Hongbo Wu
80d0146f72 Show unable to parse if page is failed to save within 30 seconds 2022-05-04 11:55:16 +08:00
Jackson Harper
c8c4377346
Merge pull request #531 from omnivore-app/fix/saving-analytics
Add more detailed analytics for saving. Remove intercom events
2022-05-02 21:14:18 -07:00
Jackson Harper
95b163a437 Prettier clean up 2022-05-02 20:58:05 -07:00
Jackson Harper
ab96bb09ab Add more detailed analytics for saving. Remove intercom events 2022-05-02 20:41:10 -07:00
Jackson Harper
b649d583b7 Linting changes 2022-05-02 15:58:40 -07:00
Jackson Harper
453b301e74 Allow looking up articles by ID
iOS needs to be able to lookup an article by its ID not its
slug, because the slug can change once saved.
2022-05-02 15:48:21 -07:00
Jackson Harper
61b7ac3cb2 Enable graphql introspection when running locally 2022-05-02 09:44:13 -07:00
Hongbo Wu
77ca0ceb59 Show empty description if not exist 2022-04-29 15:50:39 +08:00
Hongbo Wu
2b70d480d2
Remove article saving request (#493)
* Add state and taskName in elastic page mappings

* Add state and taskName in elastic page interface

* Create page with PROCESSING state before scrapping

* Update createArticleRequest API

* Fix tests

* Add default state for pages

* Update createArticle API

* Update save page

* Update save file

* Update saving item description

* Show unable to parse content for failed page

* Fix date parsing

* Search for not failed pages

* Fix tests

* Add test for saveUrl

* Update get article saving request api

* Update get article test

* Add test for articleSavingRequest API

* Add test for failure

* Return new page id if clientRequestId empty

* Update clientRequestId in savePage

* Update clientRequestId in saveFile

* Replace article with slug in articleSavingRequest

* Add slug in articleSavingRequest response

* Depreciate article

* Use slug in web

* Remove article and highlight fragments

* Query article.slug on Prod

* Show unable to parse description for failed page

* Fix a bug having duplicate pages when saving the same url multiple times

* Add state in response

* Rename variables in removeArticle API

* Rename state

* Add state in response in web

* Make state an enum

* Open temporary page by link id

* Use an empty reader view as the background for loading pages

* Progressively load the article page as content is loaded

* Add includePending flag in getArticles API

* Set includePending = true in web

* Add elastic update mappings in migration script

* Add elastic mappings in docker image

* Move index_settings.json to migrate package

* Remove elastic index creation in api

* Move elastic migrations to a separate directory

* Remove index_settings from api docker image

Co-authored-by: Jackson Harper <jacksonh@gmail.com>
2022-04-29 13:41:06 +08:00
Hongbo Wu
ccb79845bc
Fix subscriptions issues (#501)
* Replace fetch with axios

* Add url in subscription

* Remove url in subscription

* Unsubscribe all newsletters before deleting that email

* Continue unsubscribing others if one got error
2022-04-29 11:16:46 +08:00
Hongbo Wu
d1c2721b95
Add expiration date to api key generation (#495)
* Add exp to jwt token

* Add expiredAt in generate api key input

* Check exp in claim

* Add tests
2022-04-28 09:09:40 +08:00
Hongbo Wu
bcbda50daa Add basic UI for subscriptions 2022-04-22 12:17:09 -07:00
Hongbo Wu
3e35fb1aca Email content display report 2022-04-22 19:14:59 +08:00
Hongbo Wu
71aa66ea9c
Allow search for subscription:name (#461) 2022-04-22 08:47:41 +08:00
Jackson Harper
0a4d55ef15 Increase the rate limit
Turns out 10 is very low because we make CORs requests from the
browser and SWR will make background requests for some objects
like viewer. I was hitting the limit while testing search.
2022-04-21 14:59:57 -07:00
Hongbo Wu
dca6461b62
Add unsubscribe resolver (#453)
* add unsubscribe resolver

* add subscription to articles api response

* revert yarn.lock changes
2022-04-21 13:18:15 +08:00
Hongbo Wu
83cdec42f7
Add rate limiter for api request (#454)
* Add rate limiter for api request

* apply rate limit on Demo/Prod
2022-04-21 09:41:33 +08:00
Hongbo Wu
5c7f4a22bf
Save subscriptions when saving newsletters (#447)
* parse unsub mailTo or httpUrl and send to pubsub

* save subscription from newsletter

* fix tests
2022-04-20 09:24:40 +08:00
Jackson Harper
48e36c8635
Merge pull request #393 from omnivore-app/OMN-382
[Omn-382] - Updated landing page
2022-04-19 11:15:31 -07:00
Hongbo Wu
d7a2659fc4
fix searching for multiple labels (#444) 2022-04-19 12:13:47 +08:00
Hongbo Wu
1117a0c575
Feature/subscription list resolver (#432)
* add subscriptions table

* add listSubscriptions schema

* add listSubscriptions resolver
2022-04-19 11:08:43 +08:00
Jackson Harper
c2fd58a809 Make landing a restricted username page 2022-04-18 15:22:59 -07:00
Hongbo Wu
0b2b93384f fix return undefined as updateLabelResult 2022-04-18 20:45:06 +08:00
Jackson Harper
d33d383891
Merge pull request #422 from omnivore-app/fix/reminder-data-model-error
Fix reminders resolver getting pages from postgres
2022-04-14 14:10:48 -07:00
Jackson Harper
c80ce4da10 Consistent naming convention for events 2022-04-14 10:31:10 -07:00
Jackson Harper
2c9c2a2adf
Merge pull request #394 from omnivore-app/header-and-reader-improvements
Add margins on wider screens, keyboard commands to adjust
2022-04-13 21:26:24 -07:00
Hongbo Wu
c0966d908f
upload highlight and label to gcs if successfully updated in elastic (#420) 2022-04-14 12:14:15 +08:00
Hongbo Wu
88d8ca7b7d fix reminders resolver getting page from postgres 2022-04-14 12:09:17 +08:00
Jackson Harper
e282fc8316
Merge pull request #417 from omnivore-app/feature/upload-highlight-gcs
Upload highlights and labels data to GCS
2022-04-13 13:41:29 -07:00
Hongbo Wu
0b0b521fab use generic method for uploading 2022-04-13 22:21:20 +08:00
Hongbo Wu
a806f55233 upload highlight to gcs 2022-04-13 21:18:58 +08:00
Hongbo Wu
8ba1be456c fix sanitizer invalid name 2022-04-13 13:23:21 +08:00
Hongbo Wu
3b831fecb8 test both max length and pattern if declared 2022-04-13 12:20:41 +08:00
Hongbo Wu
928ddd69a9 validate color input in label as rgb hex value 2022-04-13 12:17:12 +08:00
Jackson Harper
73ef8fef09 Rename linkId to pageId in SetLabelsInput 2022-04-12 12:46:32 -07:00
Jackson Harper
d05f091876 Add debug logging for GQL errors 2022-04-12 12:23:55 -07:00
Jackson Harper
6c5e88cf12
Merge pull request #405 from omnivore-app/feature/label-max-length
Set label name max length = 64 char
2022-04-12 11:14:20 -07:00
Hongbo Wu
ae0d1dd2ee
Feature/search highlights backend (#395)
* add highlight mappings

* return highlight in resolvers

* temporarily skip highlight tests

* add test for getting highlights

* update merge highlight

* separate elastic methods

* roll back merge highlight test

* add highlight to elastic script

* update delete highlight in elastic

* migrate highlight data from postgres to elastic

* rescue not found exception when page is not found in the migration script

* exclude highlights in searching pages results

* search pages with highlights only with has:highlight query

* add search endpoint to search pages or highlights

* reduce code smell in search api

* fix rebase error

* fix tests

* add test for search highlight

* add test for new search endpoint

* add labels to search results

* update schema

* update search query

* fix update/share highlights

* fix rebase error

* fix tests

* add highlight model in elastic

* add savedAt and publishedAt date range in search query

* add sort by updated and recently read

* fix tests

* close db connection when tests are done

* test github action

* revert github action test

* fix rebase error

* add docker-compose for api-test

* remove unused env

* remove highlights with no page attached to

* allow get_articles resolver to search for query so we can merge it without web changes
2022-04-12 12:31:08 +08:00
Hongbo Wu
2ebdaba780
add generate api key api and test (#392)
* add generate api key api and test

* test if user can make api call with the api key
2022-04-12 12:11:45 +08:00
Hongbo Wu
bb665a704b make label name <= 64 char length 2022-04-12 12:08:02 +08:00
Hongbo Wu
b4420839bd
fix: fail to search by excluding labels with capital letter (#400)
* fix: fail to search by excluding labels with capital letter

* make all the excluded labels lowcased

* Revert "make all the excluded labels lowcased"

This reverts commit 866bed4080.
2022-04-11 14:05:21 +08:00
Jackson Harper
48ca13818f Prettier fixes 2022-04-06 10:45:01 -07:00
Jackson Harper
57f865c9a2 Update to typeorm 0.3 2022-04-06 10:37:13 -07:00
Jackson Harper
1cdb7753c3 Update typeorm usage 2022-04-06 09:56:32 -07:00
Jackson Harper
06360a5993
Merge branch 'main' into OMN-190 2022-04-06 09:24:49 -07:00
Hongbo Wu
d1269f815e identify a newsletter by checking both list-url and unsubscribe-url in headers and email sender address 2022-04-06 20:59:14 +08:00
Hongbo Wu
7569e988bf
upgrade typeorm to 3.0 (#359)
* upgrade typeorm to 3.0

* use new datasource object in typeorm 3

* fix tests

* fix tests

* migrate before creating connection

* fail the test if migration failed
2022-04-06 10:32:41 +08:00
Jackson Harper
9845a49040 Remove semicolon 2022-04-04 08:17:46 -07:00
Jackson Harper
c8ec7d636e Use require to import address parser function 2022-04-04 08:11:26 -07:00
Jackson Harper
92925b6808 Prettier fixes 2022-04-03 10:21:16 -07:00
Jackson Harper
da28998130 Pull ul list out of newsletter blurb
next/react doesnt want child elements of the paragraphs

Improve formatting

Improve wording

Use buttons in the subscribe directly blocks

Simplify docs on setting up forwarding rules

Add extra padding on bottom of help docs

Remove unused style

Add emails help page

Improve formatting

Prefetch page content on iOS

Reduce the reader overly length now that items are precached

Add invalidation when highlights are added to items

fix missing index_settings.json file in api dockerfile for creating elastic index (#363)

Handle full email address objects in the to param from sendgrid

These come in a format like:

"jacksonh-dfdf@inbox.omnivore.app" <jacksonh-dfdf@inbox-demo.omnivore.app>

New IDs for short highlights because they dont cascade delete now

Testing CI issues

Simplify test

CI test

Use promises for async tests

Temporarily remove test to debug CI

Re-enable

re-enable test, return error

Specify a userId when looking up saved email pages

create a unique url for newsletters without a URL

Use 500ms on page test timeouts

Increase timeout

Dont use deep equal to match newsletter label

Run just the labels API

Run against just the newsletter emails

Run without the page tests

Fix

Set the allow uncaught flag

Remove highlight tests

Remove newsletters tests

more resolver tests

Remove newsetter tests

Comment out resolver tests

Use nock for external requests in tests

Specify puppeteer url for tests

Comment out more tests

uncomment tests

re-enable

re-enable email test

Re-disable

Re-enable one pdf attachment test

Re-disable pdf attachment test

Use promises on setTimeout tests

rm label tests

mv label tests into a context

Comment out pdf tests

Comment out pdf tests

Async test

Async wrappers

Delay when creating test pages

More debugging

Unique short ids

Remove potentially problematic test

Fetch page before returning for test

handler in before block

more debugging

More debugging

Move errors checks into contexts

Use a context when saving newsletters to force index refresh

Prettier fix

Fix newsletter label check, remove setTimeout

Re-enable test

timeout on pdf router handler

Fix method call

comment out PDF test

Unique fake username

Comment out PDF test

Debugging signed urls

Re-enable

New email

pdf test

PDF tests

Comment out pdf test

Add nock stubs for email URLs

Use full address for PDF test

Remove debug

Use full email addresses
2022-04-02 16:56:24 -07:00
gitstart-omnivore
1978a92a1b Effected review corrections 2022-03-31 13:03:50 +00:00
Jackson Harper
a8faaf835c Remove debug sort on labels 2022-03-30 14:13:26 -07:00
Jackson Harper
2c15516d96 Order labels by createdAt so they maintain a consistent order 2022-03-30 13:28:37 -07:00
gitstart-omnivore
11db7be473 [Omn-190] - [Settings View] - Labels 2022-03-30 12:24:29 +00:00
Hongbo Wu
6d405432af
add site_name and site_icon to page model and return in resolver (#341)
* add site_name and site_icon to page model and return in resolver

* fix tests
2022-03-30 10:43:10 +08:00
Jackson Harper
2bada0b9df
Merge pull request #293 from omnivore-app/feature/priority-by-rate-limit
Use lower priority queue for large imports
2022-03-28 13:19:35 -07:00
Jackson Harper
d9af397b9c
Merge pull request #331 from omnivore-app/fix/update-page-after-deletion
fix document_missing_exception being thrown to sentry when updating page in elastic
2022-03-28 10:30:31 -07:00
Hongbo Wu
fd18affaec fix document_missing_exception being thrown to sentry when updating page in elastic 2022-03-28 21:16:33 +08:00
Hongbo Wu
b6c04f3508 fix saving report item by linking to elastic page 2022-03-28 20:38:54 +08:00
Jackson Harper
1cdbfaca26
Merge pull request #294 from omnivore-app/feature/add-created-or-updated_at-to-newsletter_email
add created_at and updated_at to newsletter emails and sort by create…
2022-03-25 09:10:54 -07:00
Hongbo Wu
27735f7310
add page id in updated page json file in gcs (#319) 2022-03-25 13:50:43 +08:00
Hongbo Wu
e7203bebb5
add a function_resolver to return originalArticleUrl from article.url (#317)
* add a function_resolver to return originalArticleUrl from article.url

* add a test
2022-03-25 11:25:30 +08:00
Hongbo Wu
6597cc37b6 add created_at and updated_at to newsletter emails and sort by created_at desc 2022-03-22 18:43:47 +08:00
Hongbo Wu
acec3b1acb Use lower priority queue for large imports
* add a count query in elastic
  * if priority is not set, check the rate limit of user's libary
    - if 5 articles added in the last minute: use low queue
    - default: use normal queue
2022-03-22 18:08:08 +08:00
Hongbo Wu
1893e36375
Fix uploading endpoint returns 504 (#289)
* add timeout = 60s for uploading to private bucket

* add debug logs

* send response to client to close connection

* add tests for upload

* add PUBSUB_VERIFICATION_TOKEN in .env.test
2022-03-22 14:20:40 +08:00
Hongbo Wu
3e9063c145
return empty content instead of null in search result (#291) 2022-03-22 13:34:44 +08:00
Hongbo Wu
bee3b3c6fa
fix article_id type mismatch (uuid => varchar) when saving highlights in postgres by setting article_id to be undefined (#285) 2022-03-22 11:48:01 +08:00
Hongbo Wu
4ca7c89622
format date string as yyyy-mm-dd (#288) 2022-03-22 11:46:39 +08:00
Hongbo Wu
c15efe6aad
Fix sentry log size error (#287)
* reduce sentry log size error by partially logging page created in elastic

* remove some debugging logs

* remove more debugging logs
2022-03-22 11:45:58 +08:00
Jackson Harper
f9bce1932c Print the logging level on startup 2022-03-21 09:31:05 -07:00
Hongbo Wu
77050905a5 retry max three times if update labels is conflicted 2022-03-18 10:39:11 +08:00
Hongbo Wu
9d8d2e40d7 reduce time to save reading progress in elastic update 2022-03-18 10:29:01 +08:00
Hongbo Wu
ac567f7e71 retry max three times if update is conflicted 2022-03-18 10:17:20 +08:00
Jackson Harper
7910565dbf
Merge pull request #251 from omnivore-app/fix/jsonld-encoding
Use html decoding when getting values from fetched oembed
2022-03-17 16:53:21 -07:00
Hongbo Wu
563131ea23
Fix/newsletter label not add (#256)
* default sort by savedAt to avoid recent read page to appear on top of the list

* revert lint on generated code

* fix elastic update script syntax error
2022-03-17 13:22:38 +08:00
Hongbo Wu
a2ce98229e
default sort by savedAt to avoid recent read page to appear on top of… (#254)
* default sort by savedAt to avoid recent read page to appear on top of the list

* revert lint on generated code
2022-03-17 10:54:00 +08:00
Hongbo Wu
af037a2837
make readingProgress required in the elastic page data (#253)
* make readingProgress required in the elastic page data

* delete readingProgress from function_resolvers because we have stored them in elastic
2022-03-17 10:06:21 +08:00
Jackson Harper
ff1200f3a1 Use html decoding when getting values from fetched oembed
If we fetch oembed data from an external source, instead of
handling it in readabilityjs we need to html decode it.
2022-03-16 15:29:42 -07:00
Jackson Harper
89f3719ba3 Fix linting 2022-03-16 14:23:39 -07:00
Jackson Harper
0314d8cf17 Add some extra logging 2022-03-16 13:53:55 -07:00
Jackson Harper
dc27c0c7a4 Return 0 if looking up page reading progress fails 2022-03-16 13:33:36 -07:00
Jackson Harper
27143cbedf Remove function handlers for reading progress
These shouldn't be needed anymore because the values are stored
in elastic.
2022-03-16 13:11:36 -07:00
Hongbo Wu
07dcd5da26 add label to page only if not exists 2022-03-16 23:00:37 +08:00
Hongbo Wu
1c4dcd7b00 automatically update updatedAt when page is updated in elastic 2022-03-16 22:28:39 +08:00
Hongbo Wu
f412758040 add Newsletter label to the page created by newsletters email 2022-03-16 18:40:05 +08:00
Hongbo Wu
27157006c1
use private bucket to upload page events (#244)
* use private bucket to upload page events

* fix tests

* add GCS_UPLOAD_PRIVATE_BUCKET in test env

* allow GCS_UPLOAD_PRIVATE_BUCKET to be empty
2022-03-16 14:39:07 +08:00
Jackson Harper
e652a6ea8c
Rebased version of the elastic PR (#225)
* Add elastic to our docker compose

* add AND/OR/NOT search operations

* add elastic and create article in elastic

* change error code when elastic throws error

* add search pages in elastic

* add search by labels

* Add elastic to GitHub Action

* Update elastic version

* Fix port for elastic

* add url in search query

* Set elastic features when running tests

* add debug logs

* Use localhost instead of service hostname

* refresh elastic after create/update

* update search labels query

* add typescript support

* search pages in elastic

* fix search queries

* use elastic for saving page

* fix test failure

* update getArticle api to use elastic

* use generic get page function

* add elastic migration python script

* fix bulk helper param

* save elastic page id in article_saving_request instead of postgres article_id

* fix page archiving and deleting

* add tests for deleteArticle

* remove custom date type in elastic mappings which not exist in older version of elastic

* fix timestamp format issue

* add tests for save reading progress

* add tests for save file

* optimize search results

* add alias to index

* update migration script to receive env var as params

* Add failing test to validate we don't decrease reading progress

This test is failing with Elastic because we aren't fetching
the reading progress from elastic here, and are fetching it
from postgres.

* Rename readingProgress to readingProgressPercent

This is the name stored in elastic, so fixes issues pulling the
value out.

* Linting

* Add failing test for creating highlights w/elastic

This test fails because the highlight can't be looked up. Is there
a different ID we should be passing in to query for highlights,
or do we need to update the query to look for elastic_id?

* add tests code coverage threshold

* update nyc config

* include more files in test coverage

* change alias name

* update updateContent to update pages in elastic

* remove debug log

* fix createhighlight test

* search pages by alias in elastic

* update set labels and delete labels in elastic

* migration script enumeration

* make BULK_SIZE an env var

* fix pdf search indexing

* debug github action exit issue

* call pubsub when create/update/delete page in elastic

* fix json parsing bug and reduce reading data from file

* replace a depreciated pubsub api call

* debug github action exit issue

* debug github action exit issue

* add handler to upload elastic page data to GCS

* fix tests

* Use http_auth instead of basic_auth

* add index creation and existing postgres tables update in migration script

* fix a typo to connect to elastic

* rename readingProgress to readingProgressPercent

* migrate elastic_page_id in highlights and article_saving_request tables

* update migration script to include number of updated rows

* update db migration query

* read index mappings from file

* fix upload pages to gcs

* fix tests failure due to pageContext

* fix upload file id not exist error

* Handle savedAt & isArchived attributes w/out quering elastic

* Fix prettier issues

* fix content-type mismatching

* revert pageId to linkId because frontend was not deployed yet

* fix newsletters and attachment not saved in elastic

* put linkId in article for setting labels

* exclude orginalHtml in the result of searching to improve performace

* exclude content in the result of searching to improve performace

* remove score sorting

* do not refresh immediately to reduce searching and indexing time

* do not replace the backup data in gcs

* fix no article id defined in articleSavingRequest

* add logging of elastic api running time

* reduce home feed pagination size to 15

* reduce home feed pagination size to 10

* stop revalidating first page

* do not use a separate api to fetch reading progress

* Remove unused comment

* get reading progress if not exists

* replace ngram tokenizer with standard tokenizer

* fix tests

* remove .env.local

* add sort keyword in searching to sort by score

Co-authored-by: Hongbo Wu <hongbo@omnivore.app>
2022-03-16 12:08:59 +08:00