This commit is contained in:
Andrea Vos 2024-11-20 23:11:24 +01:00
parent a2208a2509
commit 215e859da6
3 changed files with 97 additions and 10 deletions

View File

@ -15,6 +15,7 @@
"test": "vitest"
},
"dependencies": {
"@atproto/api": "^0.13.16",
"@aws-sdk/client-polly": "^3.525.0",
"@aws-sdk/client-s3": "^3.525.0",
"@floating-ui/vue": "^1.1.5",

84
pnpm-lock.yaml generated
View File

@ -8,6 +8,9 @@ importers:
.:
dependencies:
'@atproto/api':
specifier: ^0.13.16
version: 0.13.16
'@aws-sdk/client-polly':
specifier: ^3.525.0
version: 3.654.0
@ -389,6 +392,21 @@ packages:
resolution: {integrity: sha512-4gY54eEGEstClvEkGnwVkTkrx0sqwemEFG5OSRRn3tD91XH0+Q8XIkYIfo7IwEWPpJZwILb9GUXeShtplRc/eA==}
engines: {node: '>= 16'}
'@atproto/api@0.13.16':
resolution: {integrity: sha512-fWWPifh7DTiKs7v2n/trZSeqvHMQckJACbA0KjZuLksgAaQWJCO+X9rsegrAUmE2aPenvLLnK2NaPaYnj5WJBw==}
'@atproto/common-web@0.3.1':
resolution: {integrity: sha512-N7wiTnus5vAr+lT//0y8m/FaHHLJ9LpGuEwkwDAeV3LCiPif4m/FS8x/QOYrx1PdZQwKso95RAPzCGWQBH5j6Q==}
'@atproto/lexicon@0.4.3':
resolution: {integrity: sha512-lFVZXe1S1pJP0dcxvJuHP3r/a+EAIBwwU7jUK+r8iLhIja+ml6NmYv8KeFHmIJATh03spEQ9s02duDmFVdCoXg==}
'@atproto/syntax@0.3.1':
resolution: {integrity: sha512-fzW0Mg1QUOVCWUD3RgEsDt6d1OZ6DdFmbKcDdbzUfh0t4rhtRAC05KbZYmxuMPWDAiJ4BbbQ5dkAc/mNypMXkw==}
'@atproto/xrpc@0.6.4':
resolution: {integrity: sha512-9ZAJ8nsXTqC4XFyS0E1Wlg7bAvonhXQNQ3Ocs1L1LIwFLXvsw/4fNpIHXxvXvqTCVeyHLbImOnE9UiO1c/qIYA==}
'@aws-crypto/crc32@5.2.0':
resolution: {integrity: sha512-nLbCWqQNgUiwwtFsen1AdzAtvuLRsQS8rYgMuxCrdKf9kOssamGLuPwyTY9wyYblNr9+1XM8v6zoDTPPSIeANg==}
engines: {node: '>=16.0.0'}
@ -3408,6 +3426,9 @@ packages:
avris-sorter@0.0.3:
resolution: {integrity: sha512-6WnoYWutNNRKEP5EL5nc+uSwu0keuiM3n6gQqCSEx2CK1KIrBL2r3CGle21pQxI4qtd3cogxvXPKsU/2/lliUw==}
await-lock@2.2.2:
resolution: {integrity: sha512-aDczADvlvTGajTDjcjpJMqRkOF6Qdz3YbPZm/PyW6tKPkx2hlYBzxMhEywM/tU72HrVZjgl5VCdRuMlA7pZ8Gw==}
aws-sign2@0.7.0:
resolution: {integrity: sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==}
@ -5413,6 +5434,9 @@ packages:
isexe@2.0.0:
resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
iso-datestring-validator@2.2.2:
resolution: {integrity: sha512-yLEMkBbLZTlVQqOnQ4FiMujR6T4DEcCb1xizmvXS+OxuhwcbtynoosRzdMA69zZCShCNAbi+gJ71FxZBBXx1SA==}
isstream@0.1.2:
resolution: {integrity: sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==}
@ -6015,6 +6039,9 @@ packages:
muggle-string@0.4.1:
resolution: {integrity: sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==}
multiformats@9.9.0:
resolution: {integrity: sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg==}
nan@2.20.0:
resolution: {integrity: sha512-bk3gXBZDGILuuo/6sKtr0DQmSThYHLtNCdSdXk9YkxD/jK6X2vmCyyXBBxyqZ4XcnzTyYEAThfX3DCEnLf6igw==}
@ -7595,6 +7622,10 @@ packages:
tldts-experimental@6.1.61:
resolution: {integrity: sha512-1plwEyCpyYtVsZVtC169C5bStRlDk3cIniMHUeNmAJOjmQGx7SnLM8kS06PQAHx9PPY4Jm1VS6IXZzPC53XpbQ==}
tlds@1.255.0:
resolution: {integrity: sha512-tcwMRIioTcF/FcxLev8MJWxCp+GUALRhFEqbDoZrnowmKSGqPrl5pqS+Sut2m8BgJ6S4FExCSSpGffZ0Tks6Aw==}
hasBin: true
to-fast-properties@2.0.0:
resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==}
engines: {node: '>=4'}
@ -7764,6 +7795,9 @@ packages:
resolution: {integrity: sha512-KPHm4VL5dDXKz01UuEd88Df+KzynaohSL9fBh096KWAxSKZQDI2uBrVqtvRM4rwrIrRRKsdLNML/lnaaVSRioA==}
engines: {node: '>= 0.8'}
uint8arrays@3.0.0:
resolution: {integrity: sha512-HRCx0q6O9Bfbp+HHSfQQKD7wU70+lydKVt4EghkdOvlK/NlrF90z+eXV34mUd48rNvVJXwkrMSPpCATkct8fJA==}
ulid@2.3.0:
resolution: {integrity: sha512-keqHubrlpvT6G2wH0OEfSW4mquYRcbe/J8NMmveoQOjUqmo+hXtO+ORCpWhdbZ7k72UtY61BL7haGxW6enBnjw==}
hasBin: true
@ -8522,6 +8556,9 @@ packages:
resolution: {integrity: sha512-zK7YHHz4ZXpW89AHXUPbQVGKI7uvkd3hzusTdotCg1UxyaVtg0zFJSTfW/Dq5f7OBBVnq6cZIaC8Ti4hb6dtCA==}
engines: {node: '>= 14'}
zod@3.23.8:
resolution: {integrity: sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==}
snapshots:
'@ampproject/remapping@2.3.0':
@ -8544,6 +8581,39 @@ snapshots:
'@types/json-schema': 7.0.15
js-yaml: 4.1.0
'@atproto/api@0.13.16':
dependencies:
'@atproto/common-web': 0.3.1
'@atproto/lexicon': 0.4.3
'@atproto/syntax': 0.3.1
'@atproto/xrpc': 0.6.4
await-lock: 2.2.2
multiformats: 9.9.0
tlds: 1.255.0
zod: 3.23.8
'@atproto/common-web@0.3.1':
dependencies:
graphemer: 1.4.0
multiformats: 9.9.0
uint8arrays: 3.0.0
zod: 3.23.8
'@atproto/lexicon@0.4.3':
dependencies:
'@atproto/common-web': 0.3.1
'@atproto/syntax': 0.3.1
iso-datestring-validator: 2.2.2
multiformats: 9.9.0
zod: 3.23.8
'@atproto/syntax@0.3.1': {}
'@atproto/xrpc@0.6.4':
dependencies:
'@atproto/lexicon': 0.4.3
zod: 3.23.8
'@aws-crypto/crc32@5.2.0':
dependencies:
'@aws-crypto/util': 5.2.0
@ -12673,6 +12743,8 @@ snapshots:
avris-sorter@0.0.3: {}
await-lock@2.2.2: {}
aws-sign2@0.7.0: {}
aws4@1.13.2: {}
@ -14967,6 +15039,8 @@ snapshots:
isexe@2.0.0: {}
iso-datestring-validator@2.2.2: {}
isstream@0.1.2: {}
istanbul-lib-coverage@3.2.2: {}
@ -15599,6 +15673,8 @@ snapshots:
muggle-string@0.4.1: {}
multiformats@9.9.0: {}
nan@2.20.0: {}
nanoid@3.3.7: {}
@ -17520,6 +17596,8 @@ snapshots:
dependencies:
tldts-core: 6.1.61
tlds@1.255.0: {}
to-fast-properties@2.0.0: {}
to-regex-range@5.0.1:
@ -17687,6 +17765,10 @@ snapshots:
dependencies:
random-bytes: 1.0.0
uint8arrays@3.0.0:
dependencies:
multiformats: 9.9.0
ulid@2.3.0: {}
ultrahtml@1.5.3: {}
@ -18575,3 +18657,5 @@ snapshots:
archiver-utils: 5.0.2
compress-commons: 6.0.2
readable-stream: 4.5.2
zod@3.23.8: {}

View File

@ -2,11 +2,11 @@ import './setup.ts';
import fs from 'fs';
import { AtpAgent, RichText } from '@atproto/api';
import * as Sentry from '@sentry/node';
import Mastodon from 'mastodon';
import fetch from 'node-fetch';
import Twitter from 'twitter';
import {AtpAgent, RichText} from '@atproto/api';
import buildLocaleList from '../src/buildLocaleList.ts';
@ -90,7 +90,7 @@ const publishers = {
try {
const rt = new RichText({
text: tweet,
})
});
await rt.detectFacets(agent);
const postResponse = await agent.post({
@ -99,14 +99,16 @@ const publishers = {
facets: rt.facets,
embed: {
$type: 'app.bsky.embed.images',
images: media.map(blob => ({ image: blob, alt: '' })),
images: media.map((blob) => ({ image: blob, alt: '' })),
},
...previousId ? {
reply: {
root: rootId,
parent: previousId,
}
} : {},
...previousId
? {
reply: {
root: rootId,
parent: previousId,
},
}
: {},
langs: [locale],
createdAt: new Date().toISOString(),
});
@ -114,7 +116,7 @@ const publishers = {
return {
uri: postResponse.uri,
cid: postResponse.cid,
}
};
} catch (error) {
Sentry.captureException(error);
}