diff --git a/.gitignore b/.gitignore index 75e0f84..a358c79 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,43 @@ .DS_Store **/.DS_Store + +.editorconfig + +# Bundler cache +.bundle +vendor +Gemfile.lock + +# Jekyll cache +.jekyll-cache +_site + +build dist -.editorconfig \ No newline at end of file +# RubyGems +*.gem + +# NPM dependencies +node_modules +package-lock.json + +# IDE configurations +.idea +.vscode + +# Misc +assets/js/dist +.editorconfig +.env.local +.env.development.local +.env.test.local +.env.production.local + +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +# netlify +.netlify + +.svelte-kit \ No newline at end of file diff --git a/nostr-followback/README.md b/nostr-followback/README.md new file mode 100644 index 0000000..eb9a694 --- /dev/null +++ b/nostr-followback/README.md @@ -0,0 +1,10 @@ +# Nostr Reciprocal Follow + +Check who does and does not follow you back on Nostr. + +## ToDo + +- Create this but without SvelteKit (just Vite + Svelte) +- Polish the proof-of-concept code +- Configure Vite for the miniapp to be loaded in the article's url as base +- Save followbackers and not followbackers in lists to see details diff --git a/nostr-followback/package.json b/nostr-followback/package.json new file mode 100644 index 0000000..0fee7e0 --- /dev/null +++ b/nostr-followback/package.json @@ -0,0 +1,21 @@ +{ + "name": "test-nostr-reciprocal", + "version": "0.0.1", + "private": true, + "scripts": { + "dev": "vite dev", + "build": "vite build", + "preview": "vite preview" + }, + "devDependencies": { + "@sveltejs/adapter-auto": "^3.0.0", + "@sveltejs/kit": "^2.0.0", + "@sveltejs/vite-plugin-svelte": "^3.0.0", + "svelte": "^4.2.7", + "vite": "^5.0.3" + }, + "type": "module", + "dependencies": { + "@nostr-dev-kit/ndk": "^2.7.1" + } +} diff --git a/nostr-followback/src/app.html b/nostr-followback/src/app.html new file mode 100644 index 0000000..77a5ff5 --- /dev/null +++ b/nostr-followback/src/app.html @@ -0,0 +1,12 @@ + + + + + + + %sveltekit.head% + + +
%sveltekit.body%
+ + diff --git a/nostr-followback/src/lib/index.js b/nostr-followback/src/lib/index.js new file mode 100644 index 0000000..856f2b6 --- /dev/null +++ b/nostr-followback/src/lib/index.js @@ -0,0 +1 @@ +// place files you want to import through the `$lib` alias in this folder. diff --git a/nostr-followback/src/routes/+page.svelte b/nostr-followback/src/routes/+page.svelte new file mode 100644 index 0000000..6943495 --- /dev/null +++ b/nostr-followback/src/routes/+page.svelte @@ -0,0 +1,121 @@ + + +

Who does not follows you on Nostr

+{#if !userThumb} + {npubToQuery} +{/if} +
+{#if userThumb} +
+ user-thumb + User: {userName} |  Follows: {followsCount} +
+ Unknown: {unknownFollowBack} | Follow_Back: {followBackCount} | Not_Follow_Back: {notFollowBackCount} +
+{:else} +
Loading data...
+{/if} diff --git a/nostr-followback/static/favicon.png b/nostr-followback/static/favicon.png new file mode 100644 index 0000000..825b9e6 Binary files /dev/null and b/nostr-followback/static/favicon.png differ diff --git a/nostr-followback/svelte.config.js b/nostr-followback/svelte.config.js new file mode 100644 index 0000000..348fa32 --- /dev/null +++ b/nostr-followback/svelte.config.js @@ -0,0 +1,13 @@ +import adapter from '@sveltejs/adapter-auto'; + +/** @type {import('@sveltejs/kit').Config} */ +const config = { + kit: { + // adapter-auto only supports some environments, see https://kit.svelte.dev/docs/adapter-auto for a list. + // If your environment is not supported or you settled on a specific environment, switch out the adapter. + // See https://kit.svelte.dev/docs/adapters for more information about adapters. + adapter: adapter() + } +}; + +export default config; diff --git a/nostr-followback/vite.config.js b/nostr-followback/vite.config.js new file mode 100644 index 0000000..bbf8c7d --- /dev/null +++ b/nostr-followback/vite.config.js @@ -0,0 +1,6 @@ +import { sveltekit } from '@sveltejs/kit/vite'; +import { defineConfig } from 'vite'; + +export default defineConfig({ + plugins: [sveltekit()] +});