|
13 | 13 | import { System } from './snort';
|
14 | 14 | import { updateRepliesInPlace } from '@/snort_workers/utils';
|
15 | 15 | import Login from '@/ndk/Login.svelte';
|
16 |
| - import { currentUser } from '@/ndk/ndk'; |
| 16 | + import { currentUser, ndk } from '@/ndk/ndk'; |
17 | 17 | import Input from '@/components/ui/input/input.svelte';
|
18 | 18 | import { BloomFilter } from 'bloomfilter';
|
| 19 | + import { NDKEvent } from '@nostr-dev-kit/ndk'; |
19 | 20 |
|
20 | 21 | let localEvents = writable(new Map<string, NostrEvent>());
|
21 | 22 |
|
|
152 | 153 | return inSet.has(id);
|
153 | 154 | }
|
154 | 155 |
|
155 |
| - let eventID:string; |
| 156 | + let eventID: string; |
156 | 157 | </script>
|
| 158 | + |
157 | 159 | <div class=" hidden">{$shortListLength}</div>
|
158 | 160 | <ChatLayout hideFaucet={$threadParentID != 'root'}>
|
159 | 161 | <div slot="buttons">
|
|
195 | 197 | <div slot="right">
|
196 | 198 | <div class=" ml-2">
|
197 | 199 | <h3>HUMBLE HORSE</h3>
|
198 |
| - events |
199 | 200 | <h6>Release Name: "Giddy Up"</h6>
|
| 201 | + <div class="mt-4"></div> |
200 | 202 | Events in memory: {$FrontendDataStore.events.size}<br />
|
201 | 203 | <Button
|
202 | 204 | onClick={() => {
|
203 | 205 | console.log($threadParentID, $FrontendDataStore.replies.get($threadParentID));
|
204 | 206 | }}>Print root event data</Button
|
205 | 207 | ><br />
|
206 |
| - LOGGED IN AS: {$currentUser?.pubkey} <br /> |
207 |
| - <Input bind:value={eventID} class="w-64" /><Button onClick={()=>{ |
208 |
| - let bloom = new BloomFilter(32 * 256, 32) |
209 |
| - bloom.add("12345") |
210 |
| - console.log(bloom.test("12345")) |
211 |
| - let testbloom = new BloomFilter(JSON.parse($FrontendDataStore._bloomString), 32) |
212 |
| - console.log(testbloom) |
213 |
| - for (let e of $stableShortList) { |
214 |
| - console.log(testbloom.test(e.id)) |
215 |
| - } |
216 |
| - console.log(216, testbloom.test(eventID)) |
217 |
| - // console.log($FrontendDataStore.ourBloom) |
218 |
| - // if ($FrontendDataStore.ourBloom) { |
219 |
| - // console.log(210) |
220 |
| - // console.log(eventID) |
221 |
| - // $FrontendDataStore.ourBloom.add("t") |
222 |
| - // let result = $FrontendDataStore.ourBloom.test(eventID) |
223 |
| - // console.log(213) |
224 |
| - // console.log(214, result) |
225 |
| - // } |
226 |
| - }}>Check if event is in bloom filter</Button><br /> |
227 |
| - {$FrontendDataStore.ourBloom?.buckets.byteLength} |
| 208 | + <p>LOGGED IN AS: {$currentUser?.pubkey}</p> |
| 209 | + <h3 class=" mt-4">Bloom Filter Metrics</h3> |
| 210 | + |
| 211 | + Bits/Elem: {$FrontendDataStore.ourBloom?.buckets.BYTES_PER_ELEMENT * 8}<br /> |
| 212 | + Array Length (bits): {$FrontendDataStore.ourBloom?.buckets.byteLength * 8}<br /> |
| 213 | + <Input placeholder="event ID" class="mt-6 w-96" bind:value={eventID} /><Button |
| 214 | + onClick={() => { |
| 215 | + let testbloom = new BloomFilter(JSON.parse($FrontendDataStore._bloomString), 32); |
| 216 | + for (let e of $stableShortList) { |
| 217 | + console.log(testbloom.test(e.id)); |
| 218 | + } |
| 219 | + console.log(216, testbloom.test(eventID)); |
| 220 | + }} |
| 221 | + >Query bloom filter |
| 222 | + </Button><br /> |
| 223 | + <Button onClick={()=>{ |
| 224 | + let bloom = $FrontendDataStore.ourBloom |
| 225 | + console.log(1) |
| 226 | + if (!bloom) {throw new Error("invalid bloom filter")} |
| 227 | + if (!$currentUser) {throw new Error("invalid user")} |
| 228 | + console.log(2) |
| 229 | + let e = new NDKEvent($ndk) |
| 230 | + console.log(3) |
| 231 | + e.kind = 18100; |
| 232 | + e.created_at = Math.floor(new Date().getTime() / 1000); |
| 233 | + e.content = "Bloom filter test" |
| 234 | + e.tags.push(["bloom", "32", JSON.stringify([].slice.call(bloom.buckets))]) |
| 235 | + e.author = $currentUser |
| 236 | + console.log(4) |
| 237 | + e.publish().then(r=>{ |
| 238 | + console.log(r) |
| 239 | + console.log(e) |
| 240 | + }) |
| 241 | + console.log(5) |
| 242 | + }}>Publish bloom filter</Button> |
| 243 | + <div> |
| 244 | + <h3>TODO</h3> |
| 245 | + <ul> |
| 246 | + <li>Simple lndhub & cashu interface</li> |
| 247 | + <li>Nostrocket problem tracker</li> |
| 248 | + <li>Help thread</li> |
| 249 | + <li>DVM requests</li> |
| 250 | + <li>Latest stuff from highlighter</li> |
| 251 | + <li>Tiks (highlights of podcasts/videos using ffmpeg segmented blossom server)</li> |
| 252 | + <li></li> |
| 253 | + </ul> |
| 254 | + </div> |
228 | 255 | </div>
|
229 | 256 | </div>
|
230 | 257 | </ChatLayout>
|
0 commit comments