├── src ├── assets │ ├── .gitkeep │ ├── blur1.png │ ├── blur2.png │ ├── blur3.png │ ├── blur4.png │ ├── blur5.png │ ├── youtubeplay.png │ ├── community-banner-1.png │ ├── icons │ │ └── logo-without-text-zapddit.svg │ └── loader.svg ├── app │ ├── app.component.scss │ ├── component │ │ ├── hashtag │ │ │ ├── hashtag.component.scss │ │ │ ├── hashtag.component.html │ │ │ ├── hashtag.component.spec.ts │ │ │ └── hashtag.component.ts │ │ ├── event-feed │ │ │ ├── event-feed.component.scss │ │ │ ├── home-feed.component.ts │ │ │ └── event-feed.component.spec.ts │ │ ├── quoted-event │ │ │ ├── quoted-event.component.scss │ │ │ ├── quoted-event.component.html │ │ │ ├── quoted-event.component.spec.ts │ │ │ └── quoted-event.component.ts │ │ ├── single-post │ │ │ ├── single-post.component.scss │ │ │ ├── single-post.component.html │ │ │ ├── single-post.component.ts │ │ │ └── single-post.component.spec.ts │ │ ├── user-mention │ │ │ ├── user-mention.component.scss │ │ │ ├── user-mention.component.html │ │ │ ├── user-mention.component.spec.ts │ │ │ └── user-mention.component.ts │ │ ├── userprofile │ │ │ ├── userprofile.component.scss │ │ │ ├── userprofile.component.html │ │ │ ├── userprofile.component.spec.ts │ │ │ └── userprofile.component.ts │ │ ├── community-card │ │ │ ├── community-card.component.scss │ │ │ ├── community-card.component.spec.ts │ │ │ ├── community-card.component.ts │ │ │ └── community-card.component.html │ │ ├── note-composer │ │ │ ├── note-composer.component.scss │ │ │ ├── note-composer.component.spec.ts │ │ │ ├── note-composer.component.html │ │ │ └── note-composer.component.ts │ │ ├── peopleifollow │ │ │ ├── peopleifollow.component.scss │ │ │ ├── peopleifollow.component.spec.ts │ │ │ ├── peopleifollow.component.ts │ │ │ └── peopleifollow.component.html │ │ ├── onboarding-wizard │ │ │ ├── onboarding-wizard.component.scss │ │ │ ├── onboarding-wizard.component.spec.ts │ │ │ └── onboarding-wizard.component.ts │ │ ├── preferences-page │ │ │ ├── preferences-page.component.scss │ │ │ └── preferences-page.component.spec.ts │ │ ├── user-pic-and-name │ │ │ ├── user-pic-and-name.component.scss │ │ │ ├── user-pic-and-name.component.spec.ts │ │ │ ├── user-pic-and-name.component.html │ │ │ └── user-pic-and-name.component.ts │ │ ├── contact-card │ │ │ ├── contact-card.component.scss │ │ │ ├── contact-card.component.spec.ts │ │ │ ├── contact-card.component.html │ │ │ └── contact-card.component.ts │ │ ├── topic │ │ │ ├── topic.component.scss │ │ │ ├── topic.component.html │ │ │ ├── topic.component.spec.ts │ │ │ └── topic.component.ts │ │ ├── create-community │ │ │ ├── create-community.component.scss │ │ │ ├── create-community.component.spec.ts │ │ │ ├── create-community.component.ts │ │ │ └── create-community.component.html │ │ ├── zapdialog │ │ │ ├── zapdialog.component.scss │ │ │ ├── zapdialog.component.spec.ts │ │ │ ├── zapdialog.component.html │ │ │ └── zapdialog.component.ts │ │ ├── profile │ │ │ ├── profile.component.spec.ts │ │ │ └── profile.component.scss │ │ └── event-card │ │ │ ├── event-card.component.scss │ │ │ └── event-card.component.spec.ts │ ├── model │ │ ├── index.ts │ │ ├── NDKUserProfileWithNpub.ts │ │ ├── user.ts │ │ ├── ZapSplitConfig.ts │ │ ├── community.ts │ │ └── relay.ts │ ├── page │ │ ├── login-page │ │ │ ├── login-page.component.scss │ │ │ ├── login-page.component.spec.ts │ │ │ ├── login-page.component.ts │ │ │ └── login-page.component.html │ │ └── community-list │ │ │ ├── community-list.component.scss │ │ │ ├── community-list.component.spec.ts │ │ │ ├── community-list.component.ts │ │ │ └── community-list.component.html │ ├── enum │ │ └── FeedType.ts │ ├── sortlogic │ │ ├── SortLogic.ts │ │ └── ReverseChrono.ts │ ├── custom.d.ts │ ├── pipe │ │ ├── newLineToBr.pipe.ts │ │ ├── abbreviateId.pipe.ts │ │ ├── formatTimeStamp.pipe.ts │ │ └── short-number.pipe.ts │ ├── directive │ │ ├── ClickStopPropagation.ts │ │ └── ImageLoaderDirective.ts │ ├── service │ │ ├── relay.service.spec.ts │ │ ├── topic.service.spec.ts │ │ ├── community.service.spec.ts │ │ ├── btc-connect.service.spec.ts │ │ ├── zappeditdb.service.spec.ts │ │ ├── ndkprovider.service.spec.ts │ │ ├── object-cache.service.spec.ts │ │ ├── community-page.service.spec.ts │ │ ├── community-cache.service.spec.ts │ │ ├── btc-connect.service.ts │ │ ├── zappeditdb.service.ts │ │ ├── community-cache.service.ts │ │ ├── relay.service.ts │ │ ├── community-page.service.ts │ │ ├── object-cache.service.ts │ │ └── community.service.ts │ ├── observable-service │ │ ├── community-event.service.spec.ts │ │ └── community-event.service.ts │ ├── util │ │ ├── Util.ts │ │ ├── Uploader.ts │ │ ├── IntlHashtagLinkifyPlugin.ts │ │ ├── Constants.ts │ │ ├── Translators.ts │ │ ├── ZapdditRouteReuseStrategy.ts │ │ ├── ZapSplitUtil.ts │ │ └── LoginUtil.ts │ ├── filter │ │ ├── HashTagFilter.ts │ │ └── HashTagFilter.spec.ts │ ├── testing │ │ ├── mock-active-router.ts │ │ └── CommonTestingModule.ts │ ├── buffer │ │ ├── EventBuffer.ts │ │ └── EventBuffer.spec.ts │ ├── app.component.spec.ts │ ├── app-routing.module.ts │ ├── app.module.ts │ └── app.component.html ├── favicon.ico ├── .well-known │ └── nostr.json ├── main.ts ├── manifest.webmanifest ├── snow.scss └── index.html ├── screenshot.png ├── .prettierrc ├── .prettierignore ├── crowdin.yml ├── .vscode ├── extensions.json ├── launch.json └── tasks.json ├── tsconfig.spec.json ├── tsconfig.app.json ├── .editorconfig ├── .gitignore ├── ngsw-config.json ├── tsconfig.json ├── LICENSE ├── .github └── workflows │ └── gh-pages.yml ├── README.md ├── package.json └── angular.json /src/assets/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/app/app.component.scss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/app/component/hashtag/hashtag.component.scss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/app/model/index.ts: -------------------------------------------------------------------------------- 1 | export * from './relay'; 2 | -------------------------------------------------------------------------------- /src/app/page/login-page/login-page.component.scss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/app/component/event-feed/event-feed.component.scss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/app/component/quoted-event/quoted-event.component.scss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/app/component/single-post/single-post.component.scss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/app/component/user-mention/user-mention.component.scss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/app/component/userprofile/userprofile.component.scss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/app/page/community-list/community-list.component.scss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/app/component/community-card/community-card.component.scss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/app/component/note-composer/note-composer.component.scss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/app/component/peopleifollow/peopleifollow.component.scss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/app/component/onboarding-wizard/onboarding-wizard.component.scss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/app/component/preferences-page/preferences-page.component.scss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/app/component/user-pic-and-name/user-pic-and-name.component.scss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vivganes/zapddit/HEAD/screenshot.png -------------------------------------------------------------------------------- /src/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vivganes/zapddit/HEAD/src/favicon.ico -------------------------------------------------------------------------------- /src/assets/blur1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vivganes/zapddit/HEAD/src/assets/blur1.png -------------------------------------------------------------------------------- /src/assets/blur2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vivganes/zapddit/HEAD/src/assets/blur2.png -------------------------------------------------------------------------------- /src/assets/blur3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vivganes/zapddit/HEAD/src/assets/blur3.png -------------------------------------------------------------------------------- /src/assets/blur4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vivganes/zapddit/HEAD/src/assets/blur4.png -------------------------------------------------------------------------------- /src/assets/blur5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vivganes/zapddit/HEAD/src/assets/blur5.png -------------------------------------------------------------------------------- /src/app/component/contact-card/contact-card.component.scss: -------------------------------------------------------------------------------- 1 | .ml-10{ 2 | margin-left: 10px; 3 | } 4 | -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "printWidth": 120, 3 | "bracketSameLine": true, 4 | "arrowParens": "avoid" 5 | } 6 | -------------------------------------------------------------------------------- /src/assets/youtubeplay.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vivganes/zapddit/HEAD/src/assets/youtubeplay.png -------------------------------------------------------------------------------- /src/assets/community-banner-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vivganes/zapddit/HEAD/src/assets/community-banner-1.png -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- 1 | .angular/cache 2 | .vscode 3 | 4 | node_modules 5 | angular.json 6 | tsconfig.json 7 | tsconfig.app.json -------------------------------------------------------------------------------- /crowdin.yml: -------------------------------------------------------------------------------- 1 | files: 2 | - source: /src/assets/i18n/en.json 3 | translation: /src/assets/i18n/%two_letters_code%.json 4 | -------------------------------------------------------------------------------- /src/app/component/topic/topic.component.scss: -------------------------------------------------------------------------------- 1 | .pl-10{ 2 | margin-left: 10px; 3 | } 4 | 5 | .p-2{ 6 | margin: 2px; 7 | } 8 | -------------------------------------------------------------------------------- /src/app/component/create-community/create-community.component.scss: -------------------------------------------------------------------------------- 1 | .ptb-3{ 2 | padding-top: 3px; 3 | padding-bottom: 3px; 4 | } 5 | -------------------------------------------------------------------------------- /src/app/component/user-mention/user-mention.component.html: -------------------------------------------------------------------------------- 1 | @{{displayName}} -------------------------------------------------------------------------------- /src/app/component/userprofile/userprofile.component.html: -------------------------------------------------------------------------------- 1 | {{ getCurrentUserProfile()?.name }} 2 | -------------------------------------------------------------------------------- /src/app/enum/FeedType.ts: -------------------------------------------------------------------------------- 1 | export enum FeedType{ 2 | TOPICS_FEED = "TOPICS_FEED", 3 | COMMUNITIES_FEED = "COMMUNITIES_FEED" 4 | } -------------------------------------------------------------------------------- /src/.well-known/nostr.json: -------------------------------------------------------------------------------- 1 | { 2 | "names": { 3 | "zapddit": "748bfa87c437b294164d1784b324a0d2e9495c8268e0044e3c7796a3b158c9d8" 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | // For more information, visit: https://go.microsoft.com/fwlink/?linkid=827846 3 | "recommendations": ["angular.ng-template"] 4 | } 5 | -------------------------------------------------------------------------------- /src/app/sortlogic/SortLogic.ts: -------------------------------------------------------------------------------- 1 | import { NDKEvent } from "@nostr-dev-kit/ndk"; 2 | 3 | export interface SortLogic{ 4 | compare(event1:NDKEvent, event2:NDKEvent): number 5 | } -------------------------------------------------------------------------------- /src/app/component/hashtag/hashtag.component.html: -------------------------------------------------------------------------------- 1 | #{{topic}} 2 | -------------------------------------------------------------------------------- /src/app/model/NDKUserProfileWithNpub.ts: -------------------------------------------------------------------------------- 1 | import { NDKUserProfile } from '@nostr-dev-kit/ndk'; 2 | 3 | export type NDKUserProfileWithNpub = { 4 | profile:NDKUserProfile | undefined, 5 | npub:string, 6 | hexPubKey:string 7 | } 8 | -------------------------------------------------------------------------------- /src/app/component/single-post/single-post.component.html: -------------------------------------------------------------------------------- 1 |
{{'You can see the people you follow here'|translate}} 👇
6 |
11 |
12 | {{ (user?.profile?.displayName) ?
13 | user?.profile?.displayName:((user?.profile?.name)? user?.profile?.name : user?.pubkey|abbreviateId) }}
14 |
15 |
16 |
10 |
12 |
21 | {{community.creatorProfile?.displayName ? community.creatorProfile?.displayName :
22 | (community.creatorProfile?.name ? community.creatorProfile?.name : (community.creatorHexKey | abbreviateId))}}
23 | 26 | {{'Secure login to zapddit requires a Nostr extension to work. Don\'t have a Nostr extension?'|translate}} {{'Refer'|translate}} 27 | {{'this page'|translate}} 28 |
29 | 32 |78 | Zapddit runs on top of nostr. Click the button below to create a new user on the nostr ecosystem. 79 |
80 |81 | You can use the same account in all the nostr clients. 82 |
83 | 86 |98 | You can have a clean lurker experience using this option. 99 |
100 |101 | All your settings are saved within browser's local storage and cleared when you logout. 102 |
103 | 106 |116 | {{'Find zapddit on'|translate}} {{'Github'|translate}}. {{'Found bugs? Raise them'|translate}} here. 117 |
118 |