1
1
import Toucan from "toucan-js" ;
2
- import { POCKET_ADD_URL } from "../constants" ;
2
+ import { POCKET_ADD_URL , IPocketLetterEnv } from "../constants" ;
3
3
import { signature , decrypt } from "../crypto" ;
4
4
5
5
// Adapted from https://stackoverflow.com/a/66481918/90297
@@ -13,14 +13,6 @@ const makeHTML = (title: string, body: string) =>
13
13
`<!DOCTYPE html>\n<html><head><meta charset="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><title>${ title } </title></head><body>${ body } </body></html>` ;
14
14
const SUBJECT_CLEANER = / ^ ( ( R e | F w d ? ) : \s * ) + / i;
15
15
16
- type IPocketLetterEnv = {
17
- POCKET_CONSUMER_KEY : string ;
18
- POCKET_TOKEN_KEY : string ;
19
- SIGNING_SECRET : string ;
20
- DATA : KVNamespace ;
21
- ALIASES : KVNamespace ;
22
- } ;
23
-
24
16
class LinkFinder {
25
17
textMatcher =
26
18
/ (?: r e a d | v i e w ) (?: \w + ) * (?: b r o w s e r | o n l i n e | w e b (?: ? p a g e ) ? ) | w e b p a g e | S h a r e / i;
@@ -123,9 +115,10 @@ export const onRequest: PagesFunction<IPocketLetterEnv> = async ({
123
115
] [ 0 ] . split ( "@" , 1 ) ;
124
116
sentry . setUser ( { id : fromName } ) ;
125
117
126
- const resolvedName = ( await env . ALIASES . get ( fromName ) ) || fromName ;
118
+ const access_token =
119
+ ( await env . ALIASES . get ( fromName ) ) ||
120
+ decrypt ( fromName , env . POCKET_TOKEN_KEY ) ;
127
121
128
- const pocketToken = decrypt ( resolvedName , env . POCKET_TOKEN_KEY ) ;
129
122
const { html, directLink} = await processHTML ( rawHtml ) ;
130
123
131
124
const url = directLink || ( await storeLetter ( { env, request} , html ) ) ;
@@ -134,8 +127,8 @@ export const onRequest: PagesFunction<IPocketLetterEnv> = async ({
134
127
const postData = {
135
128
url,
136
129
title,
130
+ access_token,
137
131
tags : "pocketletter" ,
138
- access_token : pocketToken ,
139
132
consumer_key : env . POCKET_CONSUMER_KEY ,
140
133
} ;
141
134
0 commit comments