Fix onboarding, move some stuff to env vars, fix cursor

This commit is contained in:
Jonathan Staab 2023-04-26 10:12:32 -05:00
parent ec040ce262
commit 51a90fe9a7
11 changed files with 45 additions and 39 deletions

1
.ackrc
View File

@ -1,4 +1,5 @@
--ignore-dir=node_modules
--ignore-dir=android
--ignore-dir=dist
--ignore-file=match:package-lock.json
--ignore-file=match:.svg

3
.env
View File

@ -1,3 +1,6 @@
VITE_THEME_DARK=transparent:transparent,black:#0f0f0e,white:#FFFFFF,accent:#EB5E28,accent-light:#FB652C,gray-1:#FFFFFF,gray-2:#FAF6F1,gray-3:#F2EBE1,gray-4:#E9E0D3,gray-5:#B3AA98,gray-6:#565249,gray-7:#393530,gray-8:#252422,danger:#ff0000,warning:#ebd112,success:#37ab51,input:#FAF6F1,input-hover:#F2EBE1
VITE_THEME_LIGHT=transparent:transparent,black:#0f0f0e,white:#FFFFFF,accent:#EB5E28,accent-light:#FB652C,gray-8:#FFFFFF,gray-7:#FAF6F1,gray-6:#F2EBE1,gray-5:#B3AA98,gray-4:#B3AA98,gray-3:#565249,gray-2:#393530,gray-1:#252422,danger:#ff0000,warning:#ebd112,success:#37ab51,input:#FAF6F1,input-hover:#F2EBE1
VITE_DUFFLEPUD_URL=https://dufflepud.onrender.com
VITE_DEFAULT_FOLLOWS=97c70a44366a6535c145b333f973ea86dfdc2d7a99da618c40c64705ad98e322,3bf0c63fcb93463407af97a5e5ee64fa883d107ef9e558472c4eb9aaaefa459d,82341f882b6eabcd2ba7f1ef90aad961cf074af15b9ef44a09f9d2a8fbfbe6a2,6e468422dfb74a5738702a8823b9b28168abab8655faacb6853cd0ee15deee93
VITE_FORCE_RELAYS=
VITE_LOGO_URL=

View File

@ -1 +0,0 @@
VITE_DUFFLEPUD_URL=https://dufflepud.onrender.com

View File

@ -1,15 +1,12 @@
# Current
- [ ] Fix multiplexing
- [ ] Extract libraries
- Cursor
- parseContent
- Tags
- [ ] Fix cursor
- [ ] Image classification
- https://github.com/bhky/opennsfw2
# Core
- [ ] Key login should accept bech32 and hex
- [ ] Make mutes private
- [ ] Write multi-relay pagination into paravel and open source it
- https://github.com/nostr-protocol/nips/pull/408

14
package-lock.json generated
View File

@ -25,7 +25,7 @@
"lru-cache": "^7.18.3",
"nostr-tools": "^1.7.4",
"npm-run-all": "^4.1.5",
"paravel": "^0.1.14",
"paravel": "^0.1.15",
"qr-scanner": "^1.4.2",
"qrcode": "^1.5.1",
"ramda": "^0.28.0",
@ -6597,9 +6597,9 @@
"integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw=="
},
"node_modules/paravel": {
"version": "0.1.14",
"resolved": "https://registry.npmjs.org/paravel/-/paravel-0.1.14.tgz",
"integrity": "sha512-vpQWZN8S9cCJNjrJcBiZ8puuIGQ9f+36+GYEu9Vtcr8XuK22FtcDlBzFmQ4pSlsIXBabdMhXJQQ9MDcJvDUEhg==",
"version": "0.1.15",
"resolved": "https://registry.npmjs.org/paravel/-/paravel-0.1.15.tgz",
"integrity": "sha512-AEkNSKVqCwhQ2NFoh95Y11e8pXwfUYydhBm7lcJRT/cAmigMJRQDIP98o93+aolbtIwgkI3h0chFf+C1igI25w==",
"dependencies": {
"husky": "^8.0.3",
"isomorphic-ws": "^5.0.0",
@ -13928,9 +13928,9 @@
"integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw=="
},
"paravel": {
"version": "0.1.14",
"resolved": "https://registry.npmjs.org/paravel/-/paravel-0.1.14.tgz",
"integrity": "sha512-vpQWZN8S9cCJNjrJcBiZ8puuIGQ9f+36+GYEu9Vtcr8XuK22FtcDlBzFmQ4pSlsIXBabdMhXJQQ9MDcJvDUEhg==",
"version": "0.1.15",
"resolved": "https://registry.npmjs.org/paravel/-/paravel-0.1.15.tgz",
"integrity": "sha512-AEkNSKVqCwhQ2NFoh95Y11e8pXwfUYydhBm7lcJRT/cAmigMJRQDIP98o93+aolbtIwgkI3h0chFf+C1igI25w==",
"requires": {
"husky": "^8.0.3",
"isomorphic-ws": "^5.0.0",

View File

@ -49,7 +49,7 @@
"lru-cache": "^7.18.3",
"nostr-tools": "^1.7.4",
"npm-run-all": "^4.1.5",
"paravel": "^0.1.14",
"paravel": "^0.1.15",
"qr-scanner": "^1.4.2",
"qrcode": "^1.5.1",
"ramda": "^0.28.0",

View File

@ -154,7 +154,9 @@ class Cursor {
return load({
relays: relays,
filter: ensurePlural(filter).map(mergeLeft({until, limit: this.limit})),
filter: ensurePlural(filter).map(
mergeLeft({until, limit: this.limit, since: this.since})
),
onChunk: events => {
for (const event of events) {
if (event.created_at < this.until[event.seen_on]) {

View File

@ -95,12 +95,17 @@ const Meta = {
const forceUrls = (import.meta.env.VITE_FORCE_RELAYS || "").split(",").filter(identity)
const defaultUrls = [
"wss://purplepag.es",
"wss://relay.damus.io",
"wss://relay.nostr.band",
"wss://nostr-pub.wellorder.net",
]
const countRelay = forceUrls[0] || "wss://rbr.bio"
const defaultUrls =
forceUrls.length > 0
? forceUrls
: [
"wss://purplepag.es",
"wss://relay.damus.io",
"wss://relay.nostr.band",
"wss://nostr-pub.wellorder.net",
]
const getUrls = relays => {
if (relays.length === 0) {
@ -378,7 +383,7 @@ async function subscribe({relays, filter, onEvent, onEose}: SubscribeOpts) {
async function count(filter) {
const filters = ensurePlural(filter)
const executor = await getExecutor(["wss://rbr.bio"])
const executor = await getExecutor([countRelay])
return new Promise(resolve => {
const sub = executor.count(filters, {

View File

@ -1,14 +1,11 @@
import {uniq, without} from "ramda"
import {uniq, identity, without} from "ramda"
import {Tags} from "src/util/nostr"
import {getPersonWithFallback} from "src/agent/db"
import user from "src/agent/user"
export const defaultFollows = [
"97c70a44366a6535c145b333f973ea86dfdc2d7a99da618c40c64705ad98e322", // hodlbod
"3bf0c63fcb93463407af97a5e5ee64fa883d107ef9e558472c4eb9aaaefa459d", // fiatjaf
"82341f882b6eabcd2ba7f1ef90aad961cf074af15b9ef44a09f9d2a8fbfbe6a2", // jack
"6e468422dfb74a5738702a8823b9b28168abab8655faacb6853cd0ee15deee93", // Gigi
]
export const defaultFollows = (import.meta.env.VITE_DEFAULT_FOLLOWS || "")
.split(",")
.filter(identity)
export const getFollows = pubkey =>
Tags.wrap(getPersonWithFallback(pubkey).petnames).type("p").values().all()

View File

@ -16,6 +16,7 @@
import {getPersonWithFallback} from "src/agent/db"
import network from "src/agent/network"
import user from "src/agent/user"
import pool from "src/agent/pool"
import keys from "src/agent/keys"
import {loadAppData} from "src/app/state"
import {modal} from "src/partials/state"
@ -24,6 +25,17 @@
const privkey = generatePrivateKey()
const {relays} = user
if ($relays.length === 0) {
user.updateRelays(() =>
(pool.forceUrls.length > 0 ? pool.forceUrls : pool.defaultUrls).map(url => ({
url,
write: true,
}))
)
}
const signup = async () => {
await keys.login("privkey", privkey)

View File

@ -8,20 +8,10 @@
import Content from "src/partials/Content.svelte"
import RelayCard from "src/app/shared/RelayCard.svelte"
import {watch} from "src/agent/db"
import pool from "src/agent/pool"
import user from "src/agent/user"
const {relays} = user
if ($relays.length === 0) {
user.updateRelays(() =>
(pool.forceUrls.length > 0 ? pool.forceUrls : pool.defaultUrls).map(url => ({
url,
write: true,
}))
)
}
let q = ""
let search