Commit Graph

760 Commits

Author SHA1 Message Date
keyan 781d034422 fix top cowboy nulls 2023-08-28 20:12:33 -05:00
keyan 7bbcc86270 redirect to login on pages that require auth (#269) 2023-08-28 12:52:15 -05:00
keyan 88da287a87 hide zap bolt for forward users (#445) 2023-08-28 09:40:29 -05:00
ekzyis 4a0e615d7d
Fix TypeError during push notifications (#448)
Without this, following error is thrown when notifying users about new replies:

[webPush] error sending user notification:  TypeError: Cannot read properties of undefined (reading 'id')
app  |     at createItemUrl (webpack-internal:///(api)/./api/webPush/index.js:76:29)
app  |     at async sendUserNotification (webpack-internal:///(api)/./api/webPush/index.js:125:33)
app  |     at async Promise.allSettled (index 0)

Co-authored-by: ekzyis <ek@stacker.news>
2023-08-28 07:16:34 -05:00
ekzyis 107a7f9e77
Fix expireSecs ignored for anons (#447)
Co-authored-by: ekzyis <ek@stacker.news>
2023-08-28 07:08:29 -05:00
keyan 2e846af737 fix bio 2023-08-27 17:48:46 -05:00
keyan fda7b1b140 isimage fetch timeout 2023-08-27 13:28:33 -05:00
keyan 61c7bb28c2 allow name checking if you aren't logged in 2023-08-25 14:22:02 -05:00
keyan a847b16b2c make item creation easier 2023-08-25 13:42:55 -05:00
SatsAllDay 3da395a792
multiple forwards on a post (#403)
* multiple forwards on a post

first phase of the multi-forward support

* update the graphql mutation for discussion posts to accept and validate multiple forwards

* update the discussion form to allow multiple forwards in the UI

* start working on db schema changes

* uncomment db schema, add migration to create the new model, and update create_item, update_item
stored procedures

* Propagate updates from discussion to poll, link, and bounty forms

Update the create, update poll sql functions for multi forward support

* Update gql, typedefs, and resolver to return forwarded users in items responses

* UI changes to show multiple forward recipients, and conditional upvote logic changes

* Update notification text to reflect multiple forwards upon vote action

* Disallow duplicate stacker entries

* reduce duplication in populating adv-post-form initial values

* Update item_act sql function to implement multi-way forwarding

* Update referral functions to scale referral bonuses for forwarded users

* Update notification text to reflect non-100% forwarded sats cases

* Update wallet history sql queries to accommodate multi-forward use cases

* Block zaps for posts you are forwarded zaps at the API layer, in addition
to in the UI

* Delete fwdUserId column from Item table as part of migration

* Fix how we calculate stacked sats after partial forwards in wallet history

* Exclude entries from wallet history that are 0 stacked sats from posts with 100% forwarded to other users

* Fix wallet history query for forwarded stacked sats to be scaled by the fwd pct

* Reduce duplication in adv post form, and do some style tweaks for better layout

* Use MAX_FORWARDS constants

* Address various PR feedback

* first enhancement pass

* enhancement pass too

---------

Co-authored-by: keyan <keyan.kousha+huumn@gmail.com>
Co-authored-by: Keyan <34140557+huumn@users.noreply.github.com>
2023-08-23 17:44:17 -05:00
SatsAllDay ee3f892053
Add new user setting to hide bookmarks from other users (and anon) (#424)
* Add new setting to hide bookmarks from other users (and anon)

* Optional chaining in case user doesnt exist, and avoid duplicate sql query in some cases
2023-08-23 15:29:55 -05:00
keyan df6575d701 remove slashtags completely 2023-08-17 13:40:21 -05:00
keyan ddb69b5d9b remove slashtags temporarily 2023-08-16 19:49:00 -05:00
keyan c9a409845c configurable ranking 2023-08-16 17:53:22 -05:00
keyan 7e4a874068 update packages 2023-08-15 19:52:55 -05:00
ekzyis 7c426aa420
Enhance logging related to web push (#412)
Co-authored-by: ekzyis <ek@stacker.news>
2023-08-15 12:59:58 -05:00
ekzyis 670c567bff
Configure imgproxy timeouts + add click to load on imgproxy errors (#404)
* Configure imgproxy timeouts

* Use click to load on imgproxy errors

* Add setting for click to load

---------

Co-authored-by: ekzyis <ek@stacker.news>
2023-08-15 12:55:16 -05:00
keyan e4831e65d5 show sources and history of rewards 2023-08-15 12:41:51 -05:00
keyan 679f766f07 add average comments per post to items analytics 2023-08-14 15:36:54 -05:00
keyan 15c11efc0a add anon's earnings to reward pool 2023-08-14 14:37:09 -05:00
ekzyis b9461b7eb3
Allow zapping, posting and commenting without funds or an account (#336)
* Add anon zaps

* Add anon comments and posts (link, discussion, poll)

* Use payment hash instead of invoice id as proof of payment

Our invoice IDs can be enumerated.
So there is a - even though very rare - chance that an attacker could find a paid invoice which is not used yet and use it for himself.
Random payment hashes prevent this.

Also, since we delete invoices after use, using database IDs as proof of payments are not suitable.
If a user tells us an invoice ID after we deleted it, we can no longer tell if the invoice was paid or not since the LN node only knows about payment hashes but nothing about the database IDs.

* Allow pay per invoice for stackers

The modal which pops up if the stacker does not have enough sats now has two options: "fund wallet" and "pay invoice"

* Fix onSuccess called twice

For some reason, when calling `showModal`, `useMemo` in modal.js and the code for the modal component (here: <Invoice>) is called twice.

This leads to the `onSuccess` callback being called twice and one failing since the first one deletes the invoice.

* Keep invoice modal open if focus is lost

* Skip anon user during trust calculation

* Add error handling

* Skip 'invoice not found' errors

* Remove duplicate insufficient funds handling

* Fix insufficient funds error detection

* Fix invoice amount for comments

* Allow pay per invoice for bounty and job posts

* Also strike on payment after short press

* Fix unexpected token 'export'

* Fix eslint

* Remove unused id param

* Fix comment copy-paste error

* Rename to useInvoiceable

* Fix unexpected token 'export'

* Fix onConfirmation called at every render

* Add invoice HMAC

This prevents entities which know the invoice hash (like all LN nodes on the payment path) from using the invoice hash on SN.

Only the user which created the invoice knows the HMAC and thus can use the invoice hash.

* make anon posting less hidden, add anon info button explainer

* Fix anon users can't zap other anon users

* Always show repeat and contacts on action error

* Keep track of modal stack

* give anon an icon

* add generic date pivot helper

* make anon user's invoices expire in 5 minutes

* fix forgotten find and replace

* use datePivot more places

* add sat amounts to invoices

* reduce anon invoice expiration to 3 minutes

* don't abbreviate

* Fix [object Object] as error message

Any errors thrown here are already objects of shape { message: string }

* Fix empty invoice creation attempts

I stumbled across this while checking if anons can edit their items.

I monkey patched the code to make it possible (so they can see the 'edit' button) and tried to edit an item but I got this error:

  Variable "$amount" of required type "Int!" was not provided.

I fixed this even though this function should never be called without an amount anyway. It will return a sane error in that case now.

* anon func mods, e.g. inv limits

* anon tips should be denormalized

* remove redundant meTotalSats

* correct overlay zap text for anon

* exclude anon from trust graph before algo runs

* remove balance limit on anon

* give anon a bio and remove cowboy hat/top stackers;

* make anon hat appear on profile

* concat hash and hmac and call it a token

* Fix localStorage cleared because error were swallowed

* fix qr layout shift

* restyle fund error modal

* Catch invoice errors in fund error modal

* invoice check backoff

* anon info typo

* make invoice expiration times have saner defaults

* add comma to anon info

* use builtin copy input label

---------

Co-authored-by: ekzyis <ek@stacker.news>
Co-authored-by: keyan <keyan.kousha+huumn@gmail.com>
2023-08-11 18:50:57 -05:00
keyan e913ab71ad more even rewards 2023-08-09 22:27:03 -05:00
SatsAllDay 6e05cd38f9
Singular/Plural "Sats" labels (#380)
Co-authored-by: keyan <keyan.kousha+huumn@gmail.com>
2023-08-08 16:04:06 -05:00
ekzyis 67a0de3ea5
Notifications with nostr info (#368)
* Show zap message and pubkey in notifications

+ show zap request event in invoice view

* enhance ui

---------

Co-authored-by: ekzyis <ek@stacker.news>
Co-authored-by: keyan <keyan.kousha+huumn@gmail.com>
2023-08-08 13:19:31 -05:00
ekzyis 4094adfa4f
Remove markdown from body in push notifications (#374)
Co-authored-by: ekzyis <ek@stacker.news>
2023-08-07 20:03:50 -05:00
ekzyis 49867f5dd5
Make web push & imgproxy setup optional for local dev (#373)
* Make web push setup optional for local dev

* Make imgproxy setup optional for local dev

---------

Co-authored-by: ekzyis <ek@stacker.news>
2023-08-07 19:53:21 -05:00
ekzyis 7369bd819d
Add nostr login (#367)
Co-authored-by: keyan <keyan.kousha+huumn@gmail.com>
2023-08-07 19:50:01 -05:00
keyan ffb856ae88 fix oauth signup 2023-08-07 15:05:55 -05:00
keyan e4aaaac20f don't use cache for SSR 2023-08-05 14:46:29 -05:00
keyan f7bf77ebd4 fix BigInt Int mix in satistics 2023-07-31 12:47:41 -05:00
keyan c909efb7b7 update wallet code to prisma 5, handle prisma 5 errors on serialization 2023-07-31 08:31:40 -05:00
keyan 9745b82d63 fix viewing stacker's bookmarks 2023-07-29 18:27:32 -05:00
keyan 5232b59625 upgrade to next-auth 4 (bonus: improve error pages) 2023-07-29 14:38:20 -05:00
keyan 7542dd6cc4 upgrade to prisma 4 2023-07-26 19:18:42 -05:00
keyan 672853a7ea upgrade to prisma 3 2023-07-26 11:01:31 -05:00
keyan 8ab018af88 fix nested comment sorting 2023-07-25 19:45:35 -05:00
keyan ab2046ab0b fix issues with new linting 2023-07-25 09:14:45 -05:00
keyan e87610c45b update packages and reduce bundle size 2023-07-24 17:50:12 -05:00
keyan 54d69489b9 Revert "Revert "try to store slashtags in cwd""
This reverts commit bbedec853f.
2023-07-23 10:09:00 -05:00
keyan 437faca197 Revert "Revert "prevent slashtags from accessing disk""
This reverts commit 391773be5e.
2023-07-23 10:08:56 -05:00
keyan 59f7b6ff26 Revert "Revert "shield your eyes; massive, squashed refactor; nextjs/react/react-dom/apollo upgrades""
This reverts commit 18910fa2ed.
2023-07-23 10:08:43 -05:00
keyan 18910fa2ed Revert "shield your eyes; massive, squashed refactor; nextjs/react/react-dom/apollo upgrades"
This reverts commit d0314ab73c.
2023-07-23 09:16:12 -05:00
keyan 391773be5e Revert "prevent slashtags from accessing disk"
This reverts commit 3c6c2a72b2.
2023-07-23 09:16:02 -05:00
keyan bbedec853f Revert "try to store slashtags in cwd"
This reverts commit 589d1ec190.
2023-07-23 09:15:40 -05:00
keyan 589d1ec190 try to store slashtags in cwd 2023-07-21 20:14:37 -05:00
keyan 3c6c2a72b2 prevent slashtags from accessing disk 2023-07-21 20:05:04 -05:00
keyan d0314ab73c shield your eyes; massive, squashed refactor; nextjs/react/react-dom/apollo upgrades 2023-07-21 17:33:11 -05:00
ekzyis 8536660580
Fix maxStreak for users with running best streak (#356)
Co-authored-by: ekzyis <ek@stacker.news>
2023-07-14 10:49:16 -05:00
keyan 3c711b6083 enhance image detection and proxy 2023-07-13 15:18:04 -05:00
ekzyis 0d3328e509
Show longest cowboy streak in profile (#353)
* Show longest cowboy streak in profile

* Fix image offset

* Initialize maxStreak for every user

* Use resolver instead of denormalization for maxStreak

---------

Co-authored-by: ekzyis <ek@stacker.news>
2023-07-12 19:10:29 -05:00
Jo Wo bf4b8714fe
Render images without markdown and use image proxy (#245)
* Parse image links during markdown rendering

* Use imgproxy to replace links

* Add healthcheck

See https://docs.imgproxy.net/healthcheck

* Enable WebP and animation support

* Only replace image URLs

* Replace all occurrences

* Fix creating posts with no text

* Embed image on link posts where link is image

---------

Co-authored-by: ekzyis <ek@stacker.news>
2023-07-12 19:10:01 -05:00
keyan 4e9138dfdc show more info on where zap rewards came from 2023-07-09 12:21:11 -05:00
ekzyis 5e4dedad28
Add nym in reply notification (#349)
Co-authored-by: ekzyis <ek@stacker.news>
2023-07-07 08:45:44 -05:00
ekzyis 46014d0de4
Fix query for items with less than 11 parents (#346)
Co-authored-by: ekzyis <ek@stacker.news>
2023-07-06 20:17:12 -05:00
keyan 0c51309520 enhance pwa presentation 2023-07-06 16:53:48 -05:00
ekzyis 37e70f9791
Scroll to items on push notification click (#345)
* Scroll from root item in reach on notification click

Instead of going directly to the item of the notification, we now scroll from the root item which is still in reach to the comment.

This should provide more context to the user in most cases.

* Also scroll from root item in reach in /notifications

---------

Co-authored-by: ekzyis <ek@stacker.news>
2023-07-06 10:00:38 -05:00
keyan a17b4d1f1a refine push notification ui and catch promises 2023-07-04 17:19:59 -05:00
ekzyis 388e00dd04
Service worker rework, Web Target Share API & Web Push API (#324)
* npm uninstall next-pwa

next-pwa was last updated in August 2022.
There is also an issue which mentions that next-pwa is abandoned (?): https://github.com/shadowwalker/next-pwa/issues/482

But the main reason for me uninstalling it is that it adds a lot of preconfigured stuff which is not necessary for us.
It even lead to a bug since pages were cached without our knowledge.

So I will go with a different PWA approach. This different approach should do the following:
- make it more transparent what the service worker is doing
- gives us more control to configure the service worker and thus making it easier

* Use workbox-webpack-plugin

Every other plugin (`next-offline`, `next-workbox-webpack-plugin`, `next-with-workbox`, ...) added unnecessary configuration which felt contrary to how PWAs should be built.
(PWAs should progressivly enhance the website in small steps, see https://web.dev/learn/pwa/getting-started/#focus-on-a-feature)

These default configurations even lead to worse UX since they made invalid assumptions about stacker.news:
We _do not_ want to cache our start url and we _do not_ want to cache anything unless explicitly told to.
Almost every page on SN should be fresh for the best UX.

To achieve this, by default, the service worker falls back to the network (as if the service worker wasn't there).

Therefore, this should be the simplest configuration with a valid precache and cache busting support.

In the future, we can try to use prefetching to improve performance of navigation requests.

* Add support for Web Share Target API

See https://developer.chrome.com/articles/web-share-target/

* Use Web Push API for push notifications

I followed this (very good!) guide: https://web.dev/notifications/

* Refactor code related to Web Push

* Send push notification to users on events

* Merge notifications

* Send notification to author of every parent recursively

* Remove unused userId param in savePushSubscription

As it should be, the user id is retrieved from the authenticated user in the backend.

* Resubscribe user if push subscription changed

* Update old subscription if oldEndpoint was given

* Allow users to unsubscribe

* Use LTREE operator instead of recursive query

* Always show checkbox for push notifications

* Justify checkbox to end

* Update title of first push notification

* Fix warning from uncontrolled to controlled

* Add comment about Notification.requestPermission

* Fix timestamp

* Catch error on push subscription toggle

* Wrap function bodies in try/catch

* Use Promise.allSettled

* Filter subscriptions by user notification settings

* Fix user notification filter

* Use skipWaiting

---------

Co-authored-by: ekzyis <ek@stacker.news>
2023-07-04 14:36:07 -05:00
keyan 747371a4e4 snl live banner 2023-06-20 09:57:06 -05:00
keyan 3e4161ae8c tip -> zap 2023-06-19 13:21:55 -05:00
keyan f0f51438c4 add top posts/comments to subs 2023-06-12 19:40:18 -05:00
keyan 369bd82a84 make freebie comments visible case by case 2023-06-03 20:01:50 -05:00
keyan d815cae715 add 'stacking since' to profile 2023-06-02 19:55:45 -05:00
keyan 8ac570d403 fixing subscribe and child reply duplicates 2023-06-02 16:48:39 -05:00
keyan c93ae90578 remove extra note checking condition 2023-06-01 14:54:44 -05:00
ekzyis ace2a4df3b
Match any port in dupe check (#297)
Co-authored-by: ekzyis <ek@stacker.news>
2023-05-31 19:49:28 -05:00
ekzyis 36d5478e74
Redirect to /login on /settings 401 (#295)
Co-authored-by: ekzyis <ek@stacker.news>
2023-05-31 19:47:03 -05:00
ekzyis 0c251ca376
Add thread subscriptions (#293)
* Add thread subscriptions

* remove dead code: reply only notifications

* break out thread subscription queries to reduce search space

* one db dip for item lists/threads re:meSubscription

---------

Co-authored-by: ekzyis <ek@stacker.news>
Co-authored-by: keyan <keyan.kousha+huumn@gmail.com>
2023-05-31 19:44:06 -05:00
keyan 0de134309c improve perf of rank view perf 2023-05-24 02:35:39 -05:00
keyan 28263bc6c7 rank views 2023-05-23 09:21:04 -05:00
ekzyis a4e6ec0fba Add docs for local LND setup 2023-05-19 18:28:46 -05:00
keyan 31ce8cec93 truncate time to proper interval 2023-05-19 18:22:28 -05:00
keyan 4aee2c745f stats are averages now 2023-05-19 18:12:48 -05:00
keyan f6ab939bcc use mat views (tm) for historicals (tm) 2023-05-19 17:38:39 -05:00
keyan 0a3f5fd201 materialize dashboard in views 2023-05-19 17:38:39 -05:00
keyan 236dcae13b remove user analytics dos vector 2023-05-17 17:56:34 -05:00
keyan df1f1a483a require sub selection, allow editting 2023-05-10 19:30:51 -05:00
keyan 2579a6b51c fix ranking function order operation in wild west mode 2023-05-09 15:07:23 -05:00
keyan 80968d7b35 let comments influence ranking 2023-05-09 13:52:35 -05:00
keyan d948a653c9 add earned sats to items 2023-05-08 18:10:41 -05:00
keyan fbd746b023 fix auction ranking with query layers 2023-05-08 17:32:37 -05:00
keyan 67b815d9d6 preserve ordering in new layered item query 2023-05-08 15:06:42 -05:00
keyan 7b60dc5e9f use getItem meta helper more places 2023-05-07 15:21:58 -05:00
keyan 3c8ea0db22 reduce io blocking ssr 2023-05-07 10:44:57 -05:00
keyan 3465eb7aba handle application uris in invoices 2023-05-07 10:02:59 -05:00
keyan 61d57056ed I dip you dip one db dip 2023-05-06 20:27:51 -05:00
keyan 1c608d42f4 denormalize votes 2023-05-06 18:53:10 -05:00
keyan a97f8229b0 avoid extra dip when getting users 2023-05-06 18:18:18 -05:00
keyan 347a6a54d2 improve comment performance 2023-05-06 16:51:17 -05:00
keyan 3d4d86a40a simplify item queries with subs 2023-05-05 13:06:53 -05:00
keyan b406f0c340 avoid db dip for sub 2023-05-05 12:39:57 -05:00
keyan abd9555792 fix recent comments 2023-05-04 19:20:48 -05:00
keyan b59f277a3b fix job count on analytics 2023-05-04 13:44:00 -05:00
keyan cd9c0086ef fix top users missing return field 2023-05-02 17:02:08 -05:00
keyan 4be5286122 hide cowboy hat setting 2023-05-01 16:52:02 -05:00
keyan a241d683d8 nostr sub 2023-05-01 15:58:30 -05:00
keyan d08d593f69 undo april fools 2023-04-03 09:08:15 -05:00
keyan 9cbc895e29 april fools 2023-04-01 16:59:37 -05:00
keyan e4a3095cb4 give pinned item recent sort by default 2023-03-19 10:43:33 -05:00
keyan 9afbe0abd8 enhance item related query perf 2023-02-24 10:35:05 -06:00
ekzyis 7b838cdeb2
Implement bookmarking of posts and comments (#235) 2023-02-16 16:23:59 -06:00
keyan 30cde2ea38 fix nip57? 2023-02-15 11:20:43 -06:00
ekzyis c941c76292 Mention slashtags auth in README
This also makes SLASHTAGS_SECRET optional.
If none is set, random bytes will be generated. This is useful for local development.
2023-02-10 16:12:18 -06:00
keyan 97f74da0fd top cowboys 2023-02-09 12:41:28 -06:00
keyan a5b2de64d3 remove bolt on posts forwarding to self 2023-02-08 18:11:28 -06:00
keyan 4cae1ae230 reuse validation on server 2023-02-08 13:39:53 -06:00
keyan 36ddb25b46 remove extra queries 2023-02-03 18:08:08 -06:00
keyan 3a9994a9a6 denormalize user streak to avoid extra dip 2023-02-03 14:40:30 -06:00
keyan d24b0727ea fix streak length time zone 2023-02-01 18:09:28 -06:00
keyan 072e60c954 streaks 2023-02-01 17:40:49 -06:00
keyan 816361bd96 remove semicolons from last merge 2023-01-27 18:08:58 -06:00
ekzyis 4ab66a67ae
Add proxy with cache for coinbase API requests (#226) 2023-01-27 17:20:33 -06:00
keyan 291fe24363 denormalize bountyPaidTo 2023-01-26 17:28:10 -06:00
keyan 80f04b5a28 remove expensive query 2023-01-26 15:00:45 -06:00
keyan d8e3e73def check for rootId 2023-01-26 13:37:51 -06:00
keyan 5306b11157 improve bounty performance 2023-01-26 13:09:57 -06:00
Austin Kelsay e13e37744e
stackernews bounties (#227)
bounties
2023-01-26 10:11:55 -06:00
keyan ceac96e149 dup /live variation of youtube link 2023-01-24 08:37:33 -06:00
keyan 29c59d93ea open timestamps 2023-01-22 14:17:50 -06:00
keyan 9644a9f867 slashtags auth 2023-01-18 12:49:20 -06:00
keyan 71e61e51e8 fix youtube dupe regex 2023-01-13 17:42:40 -06:00
keyan 9c0ead308b remove debug logging 2023-01-13 13:19:42 -06:00
keyan 10ff3fa1c3 delete 2023-01-13 11:52:18 -06:00
keyan ed153b5199 add similar section to posts 2023-01-12 14:30:17 -06:00
keyan 9823969418 unshorten links 2023-01-12 12:05:47 -06:00
keyan afc9a70a02 ignore subdomains on dupe detection 2023-01-11 16:20:14 -06:00
keyan 2b878e1a19 more youtube dupe detection 2023-01-11 16:04:50 -06:00
keyan b7830261d8 ignore case on url dupe detection 2023-01-11 15:05:30 -06:00
keyan 15c76aa134 recognize all youtube links 2023-01-11 14:58:52 -06:00
Keyan 10e5257375
Merge branch 'master' into 190-strip-tracking-info 2023-01-11 12:17:25 -06:00
keyan 2d012ba7fe allow nip05 for users 2023-01-06 18:53:29 -06:00
keyan 2080cb896d lexical beta test url 2023-01-05 13:24:09 -06:00
keyan ee17518abf add referrer stats to top 2022-12-19 17:00:53 -06:00
keyan 41226245c5 referrals 2022-12-19 16:27:52 -06:00
keyan 4282f6724f fix rewards query 2022-12-09 15:37:13 -06:00
keyan 7b7ed0047c turbo tipping 2022-12-09 13:25:38 -06:00
keyan e1bdb9c769 donations to rewards 2022-12-07 18:04:02 -06:00
keyan 439c83f975 all things being equal, sort comments by sats 2022-12-06 15:23:45 -06:00
keyan f6a95c81eb add spender/stacker types 2022-12-06 13:26:33 -06:00
keyan c3892d8a25 use indices to query growth 2022-12-01 17:14:16 -06:00
keyan 2a4e5a0617 add more filters to recent 2022-12-01 16:42:49 -06:00
keyan a2db3e18b4 better user analytics mostly 2022-12-01 15:31:04 -06:00
keyan 7df375e752 improvements to jobs 2022-11-29 11:29:43 -06:00
keyan de863021f9 prevent apollo caching on the server 2022-11-24 13:22:58 -06:00
keyan 5746160893 let tips affect ranking 2022-11-23 12:12:09 -06:00
keyan 1bf747c7c0 sats to msats 2022-11-16 10:57:03 -06:00
keyan 8de00c741d poll for notifications less, don't retry gql 2022-11-16 10:57:03 -06:00
ekzyis 3a36a211af Remove tracking from twitter URLs 2022-11-16 00:58:02 +01:00
keyan 525cab2573 upgrade deps 2022-11-06 11:28:58 -06:00
keyan 368f74a7c5 3 hour cliff for all items 2022-10-31 12:56:48 -05:00
keyan 60d84e2ddd make related matching less strict 2022-10-29 10:13:57 -05:00
keyan 6d2b88fa7b use votes in es queries 2022-10-28 12:25:26 -05:00
keyan ba5c40d165 use votes in es queries 2022-10-28 11:21:36 -05:00
keyan cb7f68e0e5 index wvotes for search 2022-10-28 10:58:31 -05:00
keyan 760b6b6e10 related items 2022-10-27 15:25:42 -05:00
keyan 6c9f4f1c3a for top users constrain other stats 2022-10-26 09:56:22 -05:00
keyan ec133e8ea2 handle empty search query 2022-10-25 17:30:54 -05:00
keyan a398784f26 improved top 2022-10-25 16:35:32 -05:00
keyan 30b1ee33aa user search 2022-10-25 12:13:06 -05:00
keyan 032c04959a add url and nym search 2022-10-24 16:32:16 -05:00
keyan 79af550168 add guide to footer 2022-10-23 10:43:39 -05:00
keyan e4d150413b search filters 2022-10-20 17:44:44 -05:00
keyan 1bcfb787a6 add changelog to footer 2022-10-10 16:58:50 -05:00
keyan aed7e0f667 fix auction position query 2022-10-05 13:55:30 -05:00
ekzyis 2dd4b1ce98
Merge branch 'master' into 103-add-other-currencies 2022-10-04 01:01:43 +02:00
keyan 46ea2f661c make jobs great again 2022-09-29 15:42:33 -05:00
keyan 52fab60cda fix missing search fields 2022-09-28 11:28:53 -05:00
keyan d9d426e5c3 add freebies 2022-09-27 16:19:15 -05:00
keyan 9c4d74888f add borderland 2022-09-22 15:42:04 -05:00
keyan 2c7c237fc7 show when items are outlawed 2022-09-22 13:44:50 -05:00
keyan 7faae425b3 wild west mode 2022-09-21 14:57:36 -05:00
ekzyis 22e07a4318 Fix errors if me null 2022-09-18 03:07:14 +02:00
keyan 08893d020c improved earning: more detail, longer top tail 2022-09-14 17:01:30 -05:00
ekzyis 7d49b686aa Fix fiatCurrency gql type 2022-09-13 02:24:31 +02:00
ekzyis f66a8162da Fix rebase 2022-09-13 02:08:24 +02:00
ekzyis 5d4abecf3c Add input for fiat currency in settings 2022-09-13 02:02:55 +02:00
keyan 48990d5987 when linking email store as lowercase 2022-09-12 14:10:15 -05:00
keyan 69b5aed85d fix 'me' on refresh 2022-09-06 10:08:53 -05:00
keyan 7efc86427d maintage pagination and other state on back button 2022-09-06 08:32:00 -05:00
keyan 89a57749d4 fix ambiguous sats reference 2022-09-02 14:05:44 -05:00
keyan f65f6c1b28 remove meComments and clean up sats title 2022-09-01 16:20:20 -05:00
keyan 4be5cfa5c7 display earned sats in comments 2022-09-01 16:06:11 -05:00
keyan a5d1d8dc0f user suggestions on forward 2022-08-31 14:09:49 -05:00
keyan 172d6c3c2f optionally hide invoice descriptions 2022-08-30 16:50:47 -05:00
keyan 0ad886ffc0 constrain invoice quantity and amount 2022-08-30 15:33:39 -05:00
keyan 065cf284b3 add integer constraints 2022-08-27 10:48:59 -05:00
keyan ec2ac6e698 fix comment editing validation 2022-08-26 21:57:41 -05:00
keyan 863e717c05 fix broken comments 2022-08-26 20:27:57 -05:00
keyan 5b2cfd11cc server side validate title length 2022-08-26 18:31:51 -05:00
keyan 04d9c45156 server side validate nym 2022-08-26 17:26:42 -05:00
keyan ccb5a81dd5 add recent comments 2022-08-18 17:05:58 -05:00
keyan 388c7d0240 full powered editing 2022-08-18 13:15:24 -05:00
keyan 69d0082839 fix null boolean 2022-08-11 16:42:52 -05:00
keyan ddb4a30c4b spam fees 2022-08-11 15:38:10 -05:00
keyan 82280b0966 add polls 2022-07-30 08:51:04 -05:00
keyan 5ac894baed more expensive boost + explainer 2022-07-24 11:55:22 -05:00
keyan cb313429d5 job board enhancements 2022-07-21 17:55:05 -05:00
keyan 93a19839cf add earning to top stacking users 2022-07-13 19:55:10 -05:00
keyan 9581160944 better reward notifications 2022-07-05 15:18:59 -05:00
keyan 9d3c52ed00 improve trust 2022-07-05 14:51:13 -05:00
keyan d86bf302ee make upvoted items sticker posts/comments 2022-07-01 13:38:47 -05:00
keyan 4c7a6e4998 fixes/enhancements to users dashboard 2022-07-01 13:26:34 -05:00
keyan 6dd3bd9ed3 make highly upvoted items stickier 2022-07-01 13:26:05 -05:00
keyan 86af5a46ec fix weekly stat typos 2022-06-24 13:59:02 -05:00
keyan 0b3b690c10 user stats 2022-06-24 10:38:00 -05:00
keyan 2c749dd07f monthly earning users 2022-06-22 16:13:51 -05:00
keyan f024cd39a2 add usage mvp usage charts 2022-06-10 14:20:33 -05:00
keyan 1df49e03d9 account linking 2022-06-08 16:26:44 -05:00
keyan 8713bf178a show dead jobs 2022-06-02 18:25:21 -05:00
keyan c061f4a6f0 limit pending invoices 2022-05-31 17:17:48 -05:00
keyan ba4644463f allow lightning address send callback to have query params 2022-05-24 16:15:51 -05:00
keyan 6a8fba14eb check invoice description hash against lnurl pay metadata 2022-05-19 09:22:25 -05:00
keyan 6cc7288e99 ignore hashtag in url dupe detection 2022-05-18 13:21:24 -05:00
keyan 4d8ff46574 better error message with 0 invoice 2022-05-18 13:13:13 -05:00
keyan f7d3f281b8 set cache control on uploads 2022-05-18 11:59:59 -05:00
keyan dea34e0b93 only check tips and votes for notifications 2022-05-18 11:43:37 -05:00
keyan 35b533c572 denormalize ranking metrics 2022-05-17 14:54:12 -05:00
keyan efa267f128 use act index in item queries 2022-05-16 17:18:11 -05:00
keyan 29fb37b763 profile photos 2022-05-16 15:51:22 -05:00
keyan 9abc41b7b2 image uploading backend 2022-05-12 13:44:21 -05:00
keyan e2409efbaf indicate to user when there are new jobs 2022-05-09 13:01:23 -05:00
keyan 222335ca5e increase boost gravity 2022-05-08 09:09:53 -05:00
keyan aa4ac2ecc9 add ln addr + lnurl pay qr code to profile pages 2022-05-06 14:34:35 -05:00
keyan 9f48daecc3 decay ranking slower 2022-05-05 12:43:58 -05:00
keyan 771978d562 sub to newsletter on sign up 2022-05-04 13:29:30 -05:00
keyan 798b055fb9 remove unecessary queries on resp critical path 2022-05-01 20:01:33 -05:00
keyan dc44764008 limit related queries in me query for SSR 2022-04-28 17:00:09 -05:00
keyan 934c5021a9 a few perf enhancements + gql slowlogs 2022-04-28 13:11:05 -05:00
keyan 8e0aaab161 refine module instantiation 2022-04-27 17:06:42 -05:00
keyan b68fadc63d allow daily discussion to appear in recent 2022-04-25 12:03:21 -05:00
keyan cef122141f only one earn notification at a time 2022-04-24 11:16:51 -05:00
keyan 188230c37c add notification settings 2022-04-21 17:50:02 -05:00
keyan 74b191837e refine reply-only notifications 2022-04-21 12:48:27 -05:00
keyan e1ffef8308 allow just showing replies in notifications 2022-04-20 16:35:30 -05:00
keyan d978ff5ea5 forward tips from posts 2022-04-19 13:32:39 -05:00
keyan 822fa9113a refactor link/dicussion to upserts and reuse more code 2022-04-18 17:10:26 -05:00
keyan 2b594109ea WIP forward 2022-04-18 15:19:07 -05:00
keyan ae916ecb97 add notFound function to SSR HOF, 404 inactive jobs 2022-04-18 11:40:08 -05:00
keyan 89fb68f746 multiple comments with the same parent are exp in cost 2022-04-17 08:13:52 -05:00
keyan a49cd8500c add nComments resolver 2022-04-15 11:51:49 -05:00
keyan 3d6a7dc286 re-simplify notifications 2022-04-13 15:48:16 -05:00
keyan c284e18278 denormalize stacked count 2022-04-04 16:54:31 -05:00
keyan becc69250e make comments faster using a lateral join 2022-04-03 12:25:39 -05:00
keyan 188a216313 speed up front page query 2022-04-02 17:39:15 -05:00
keyan d938596efe log query performance and reduce full item resolver calls 2022-03-31 13:05:11 -05:00
keyan 987a5ed3a3 notify user when invoice is paid 2022-03-23 13:54:39 -05:00
keyan 7dda1748cb hack notifications to be faster 2022-03-22 14:53:48 -05:00
keyan 7a78210cb6 improvements to earning 2022-03-18 07:29:02 -05:00
keyan 5ff856d061 earning 2022-03-17 15:13:19 -05:00
keyan 4a43a9b864 don't group by more than id in notifications 2022-03-15 11:30:11 -05:00
keyan 46f552b803 store last time user visited so we can guage retention 2022-03-14 11:43:21 -05:00
keyan 8ca33b1bb7 detect dupes between both youtube url types 2022-03-10 15:44:46 -06:00
keyan 8b1a923ac1 make boost more expensive 2022-03-09 13:44:50 -06:00
keyan a627322220 add job company and location 2022-03-07 15:50:13 -06:00
keyan 1472de0f91 sats/mo -> sats/min on jobs 2022-03-07 13:30:21 -06:00
keyan 7b0ce0c31b don't be an idiot and fetch comments when we don't need them 2022-03-04 12:05:16 -06:00
keyan 1b84f76a27 make jobs expensive, priced based ranking rather than auction 2022-03-03 12:56:02 -06:00
keyan cd3125954e make sure it's the user's job 2022-03-01 11:08:44 -06:00
keyan 50f10550b8 fix checkedNotesAt issue 2022-03-01 11:04:44 -06:00
keyan 9eced2b334 remove extra log statement 2022-02-28 17:29:20 -06:00
keyan 022c72b95b remove extra migrations, refine jobs 2022-02-28 14:09:21 -06:00
keyan 3fb7ab9cd7 fix integer overflow 2022-02-26 15:42:38 -06:00
keyan bc1c45e7bf account for job payment status 2022-02-26 10:41:30 -06:00
keyan b954186d31 jobs w/o payments yet 2022-02-24 13:05:57 -06:00
keyan 0954da18b8 prevent top item/comment gaming with WoT 2022-02-12 09:08:39 -06:00
keyan 0aee683f0f only allow one comment from a given user on the same parent 2022-02-09 13:42:13 -06:00
keyan 7d088cdd0b refine search 2022-02-03 16:29:48 -06:00
keyan e18ca2fee8 comment exact matches should rank higher than title fuzz matches 2022-02-03 16:04:20 -06:00
keyan 66d2c4f9a9 search highlighting 2022-02-03 16:01:42 -06:00
keyan 075d147f63 delay capture because font isn't loading 2022-02-03 13:41:09 -06:00
keyan 8829fccdef add top spenders to top page 2022-02-02 16:01:48 -06:00
keyan 48c72fc0c1 rank exact search matches higher 2022-02-02 16:01:48 -06:00
keyan dce189703c make wot ranking live + wot ranked comments 2022-02-02 16:01:48 -06:00
keyan 15cf95fa01 make notifications faster distinct -> group by 2022-02-02 16:01:48 -06:00
keyan ebb3da07d1 fix duplicate notifications to your own descendant of a descendant 2022-01-31 09:56:21 -06:00
keyan e97951dd18 notify on any descendant replies 2022-01-30 09:35:57 -06:00
keyan d0d2d4d1e3 index item path in search 2022-01-28 13:19:56 -06:00
keyan e613ea5816 check for dev env 2022-01-28 12:58:38 -06:00
keyan af2c990a51 add production search config 2022-01-28 12:37:23 -06:00
keyan f1fd1f3c9c not found on empty search 2022-01-27 14:15:18 -06:00
keyan afed19430c working search 2022-01-27 13:18:48 -06:00
keyan 28b86af898 basic search query api 2022-01-26 09:35:14 -06:00
keyan d413b49e24 search index functions 2022-01-25 14:57:40 -06:00
keyan 6373767ad5 remove unused gql type 2022-01-24 12:39:14 -06:00
keyan a9844f0c38 better message on failed intiation of protocol 2022-01-24 12:36:08 -06:00
keyan e37475f927 send to lightning address 2022-01-24 11:25:15 -06:00
keyan 5d49ecc536 refine tipping experience, removing notion of upvote from UX 2022-01-20 17:04:12 -06:00
keyan 6b19b10bb2 invite notifications 2022-01-19 15:02:38 -06:00
keyan 7d4324eb33 exclude users spent sats from their stacked count 2022-01-19 10:36:00 -06:00
keyan 129ec89b68 make WoT source configurable, remove logging, prevent negative ranks 2022-01-18 11:26:42 -06:00
keyan cdfe973a65 add wot page 2022-01-17 16:38:40 -06:00
keyan ccc1251f7e drop theme from users table 2022-01-14 11:42:45 -06:00
keyan 5a4c249a74 add link to yesterday's daily discussion 2022-01-13 13:05:43 -06:00
keyan c3e6627cea support pinned posts + recurring pins 2022-01-07 10:32:31 -06:00
keyan e950b0df7f add job queue 2022-01-05 14:37:34 -06:00
keyan 01ee9cdd1c don't ever reveal user wallet balances to other users 2021-12-30 16:02:18 -06:00
keyan 0dfda596b0 comment sorting 2021-12-21 15:35:25 -06:00
keyan 05301d822f better dupe protection with GET param whitelist 2021-12-20 16:26:22 -06:00
keyan 3e17eb1688 top users query 2021-12-16 18:01:02 -06:00
keyan 8e5327022d WIP top comments and users 2021-12-16 17:05:31 -06:00
keyan 54c1c8c41b wallet history link on wallet pages 2021-12-16 14:17:50 -06:00
keyan bbc34edf51 satistics done 2021-12-16 14:02:17 -06:00
keyan d92f58aaf4 inv & with satistics + filtering 2021-12-16 11:27:12 -06:00
keyan 06f5ed731e satisitics with invoice & withdrawal 2021-12-15 10:50:11 -06:00
keyan 8cdeb18216 WIP wallet history, inv/with graphql query 2021-12-14 10:42:54 -06:00
keyan ca54abcf09 WIP wallet history 2021-12-13 14:48:19 -06:00
keyan 4d3ab603da tip walkthrough 2021-12-09 14:41:09 -06:00
keyan 1a3fdda382 new bolt 2021-12-05 11:37:55 -06:00
keyan c7ae5dc8ac ssr me and price 2021-11-28 11:29:17 -06:00
keyan 996d0a9352 click to comment goes to root thread 2021-11-27 12:01:02 -06:00
keyan 3bbf3f7470 add dark mode 2021-11-04 19:07:41 -04:00
keyan 725c05dd69 allow faq to avoid editting time limit 2021-10-30 14:59:21 -05:00
keyan 2eaf407f17 add settings page 2021-10-30 11:20:11 -05:00
keyan 0f3db83ebc make notifications slightly more concise 2021-10-28 17:22:19 -05:00
keyan c80e4d107c dupe alerts on link posts 2021-10-28 15:49:51 -05:00
keyan b8080137a8 lnurl-withdrawal support 2021-10-28 14:59:53 -05:00
keyan 945225d205 return 404 for nonexistant users and items 2021-10-26 16:31:39 -05:00
keyan 07b9da353b smarter use of SSR and caching 2021-10-26 15:49:37 -05:00
keyan 68ddd0f86b sort by top posts 2021-10-21 17:05:06 -05:00
keyan 955d1aa1b2 finish up invites 2021-10-15 18:07:51 -05:00
keyan 7107d329ba invites page 2021-10-14 16:05:37 -05:00
keyan 4935c7dc1c invite graphql + basic frontend 2021-10-12 18:49:04 -05:00
keyan 75a8ca2163 fix notification subsorts to desc 2021-10-06 20:45:38 -07:00
keyan 782dc78652 speed hack notification query 2021-10-06 20:20:59 -07:00
keyan 5bd8025b2b speed hack hot page 2021-10-06 18:50:18 -07:00
keyan ca1a95094c ssr everything 2021-09-30 10:46:58 -05:00
keyan 00fff8a67d remove logging 2021-09-24 18:06:32 -05:00
keyan 77514575f4 fix mention notifications in root posts 2021-09-24 18:05:29 -05:00
keyan a339516a54 user bios mostly working 2021-09-24 16:28:21 -05:00
keyan 027ba6a048 WIP user bio 2021-09-23 17:18:48 -05:00
keyan 56a3dc9793 make bio form just a textarea 2021-09-23 15:25:38 -05:00
keyan e7787e3e67 WIP bios 2021-09-23 12:42:00 -05:00
keyan af2797f12a make post boost transactional 2021-09-14 12:55:59 -05:00
keyan e4c1c2f1e1 refine tipping 2021-09-12 11:55:38 -05:00
keyan 650ad03de5 move boost to post creation 2021-09-11 16:52:19 -05:00
keyan 2dd49171e2 complete tips 2021-09-10 16:13:52 -05:00
keyan 3f8b5894cb small clean up 2021-09-09 14:10:15 -05:00
keyan f23da4397f fix for overloaded pgpsql function 2021-09-09 10:46:20 -05:00
keyan 93428e3183 tips WIP 2021-09-08 16:51:23 -05:00
keyan 28d684da73 workout tips functions etc 2021-09-08 16:15:06 -05:00
keyan 91a2061342 cache magic - use cache and network except when a result of popstate 2021-09-06 17:36:08 -05:00
keyan 38ba31f2b4 case insensitive names 2021-09-02 17:22:00 -05:00
keyan ce0e3dac45 auto-populate link title 2021-08-22 10:25:17 -05:00
keyan 09b358397a highlight new notifications 2021-08-19 19:13:32 -05:00
keyan 79cb2d5c27 withdrawl => withdrawal/withdraw 2021-08-19 16:42:21 -05:00
keyan 81d5647cd9 remove withdrawal event listeners 2021-08-19 15:13:04 -05:00
keyan 099a578a1b protect from null mentions 2021-08-19 15:13:04 -05:00
keyan d97608a710 don't double notify when mentioned in reply to your own content 2021-08-18 18:14:18 -05:00
keyan 4b64912333 mention notifications are functional 2021-08-18 18:00:54 -05:00
keyan 3370675d61 db portion of mentions 2021-08-18 17:20:33 -05:00
keyan 0afe46c030 continued notification work 2021-08-17 18:59:22 -05:00
keyan c8df41bfa5 fix clickToContext issue for comments, fix non-inner joins, make notification query work 2021-08-17 18:07:52 -05:00
keyan 96a18e6c9d query is working 2021-08-17 13:15:24 -05:00
keyan ed6a683b79 reject 0 amount withdrawals 2021-08-12 18:25:19 -05:00
keyan 1d6e301b10 fix crashes and report which object failed in walletd 2021-08-12 16:21:56 -05:00
keyan a48cd33db3 edit posts - links and discussions 2021-08-11 15:13:10 -05:00
keyan b4be2c613b comment edit spagetti 2021-08-10 17:59:06 -05:00
keyan 14e929b3f0 allow retries of failed withdraw invoice while enforcing uniqueness of pending/confirmed 2021-07-10 09:16:40 -05:00
keyan 9b5f6a871d make boost decay less agro 2021-07-10 08:03:37 -05:00
keyan 55f5460116 remove test cursor time 2021-07-09 14:16:26 -05:00
keyan 676a912974 decay boost a lot more 2021-07-09 14:12:35 -05:00
keyan 68e80b615c working previews 2021-07-07 19:15:27 -05:00
keyan 9a15c228dc add forgetten lnurl-auth files 2021-06-26 22:18:32 -05:00
keyan 2e26e421e7 lnurl-auth 2021-06-26 22:09:39 -05:00
keyan 01922e4b88 notifications done 2021-06-24 18:56:01 -05:00
keyan f7b4618b4a on user profile sort create_at desc 2021-06-22 13:53:05 -05:00
keyan a77d224c09 increase stories limit 2021-06-22 13:14:08 -05:00
keyan f968ab7954 paginate stories 2021-06-22 12:47:49 -05:00
keyan 76eb1fe288 get logged in user id 2021-06-11 18:12:39 -05:00
keyan 9f6b669e42 fix stacked and spacing on discussion text 2021-06-11 17:38:21 -05:00
keyan 80c5cff3cf remove lndcert ... using unsafe tls instead 2021-06-10 19:49:20 -05:00
keyan 36bf925f2d remove cert from auth'd lnd grpc 2021-06-10 18:35:11 -05:00
keyan 54e31b6e8c add logging to tor 2021-06-10 15:54:22 -05:00
keyan 01097321f8 print metadata for insights 2021-06-10 14:28:17 -05:00
keyan e90cc1e941 print metadata for insights 2021-06-10 14:24:44 -05:00
keyan 876ac52a95 try not globally storing lnd and create fresh on include 2021-06-09 16:29:15 -05:00
keyan 10b2c85db1 log invoice creation error 2021-06-09 15:07:32 -05:00
keyan fc47d1c0e0 added eb config 2021-06-03 18:08:00 -04:00
keyan f535dc134c small improvements 2021-06-03 16:36:02 -04:00
keyan 4d161a8092 add sticky footer 2021-06-02 19:15:28 -04:00
keyan 80ff13abd6 finish mvp 2021-05-24 19:08:56 -05:00
keyan a9ea341a7b create reserved usernames 2021-05-21 19:09:11 -05:00
keyan 4f627e2a5c check for usernames on typing 2021-05-21 17:32:21 -05:00
keyan a68da87382 be more permissible with links and nofollow when low sats 2021-05-20 14:11:58 -05:00
keyan 57e96ac02b retry on serialization errors 2021-05-20 12:21:11 -05:00
keyan 0eabe1463d attempts at serializable transactions 2021-05-19 20:09:32 -05:00
keyan 208980f302 walletd supporting withdrawls 2021-05-13 19:11:22 -05:00
keyan 157488ea5d make withdrawls mostly work 2021-05-13 16:19:51 -05:00
keyan ce55fdfe9c withdrawl page 2021-05-13 08:28:38 -05:00
keyan 7a8afd56c3 partial withdrawl 2021-05-12 20:51:37 -05:00
keyan d92fc12187 half done with wallets 2021-05-12 18:04:19 -05:00
keyan 67d1605666 transactional wallet management in plpgsql 2021-05-11 15:29:44 -05:00
keyan bc0389e622 invoiced ... WIP transactions 2021-05-11 10:52:50 -05:00
keyan 4b07edf6f5 ready for invoices 2021-05-06 16:15:22 -05:00
keyan 10d848b5bd collapse 'em 2021-04-30 16:42:51 -05:00
keyan bf73e98425 add lightning 2021-04-29 16:58:43 -05:00
keyan f7b92d64c3 improve resolver and provide sats/$ 2021-04-29 10:56:28 -05:00
keyan d2c84dbacc navbar layout 2021-04-28 11:30:02 -05:00
keyan 84b69fc481 ranking mostly 2021-04-27 16:30:58 -05:00
keyan c82c82bb7b mostly clientside render 2021-04-26 19:55:48 -05:00