1156 Commits

Author SHA1 Message Date
Barış Soner Uşaklı
20e751f0e8 fix: remove optional 2026-04-03 22:04:59 -04:00
Barış Soner Uşaklı
0568ef4310 fix: #14147, dont create wrong backlinks
syncBacklinks expects raw post content, html was passed to it from onNewPost since it was switched to use getPostSummary
backlinkRegex was matching  ${nconf.get('url')}/topic/1aef954c-d0dc-45cf-acf2-e3a59f6cc134/foo and return tid=1 instead of the uuid

remove useless if check in syncBacklinks
fixed parseInts on tids
current - remove are both arrays use .length
2026-04-03 21:54:18 -04:00
Julian Lam
1af835641e fix: restored popular calculation behaviour that was broken by e2131d1d2e, removed followingOnly arg passing for popular 2026-03-13 13:19:32 -04:00
Julian Lam
e2131d1d2e refactor: /world sorting logic to always use topics/sorted logic
- New params for getSortedTopics (includeRemote, followingOnly)
- Ability to show latest (followers only) or latest (all), ?all query param to discriminate
- World now always shows posts from the local forum
- Popular sort will be followers-only + local
2026-03-13 12:41:55 -04:00
Barış Soner Uşaklı
dcdb73c303 Merge branch 'master' into develop 2026-03-11 17:21:38 -04:00
Barış Soner Uşaklı
0a94cecb0d fix: #14084, fix tags not getting properly removed from topics
this was happening because the same topic was passed to setObject bulk multiple times with different tag data.
the fix is to find the uniq tids first and then only call setObjectBulk once per topic
2026-03-11 17:21:06 -04:00
Julian Lam
c2d190e107 fix: update thumbs loading logic to always include post attachments as part of thumbs (prior: was controlled by thumbsOnly flag orshowPostUploadsAsThumbnail setting) 2026-03-09 14:34:42 -04:00
Barış Uşaklı
3c0a654012 feat: show cronjobs in acp (#14068)
* feat: show cronjobs in acp

add a wrapper for cronjobs and display in acp

* test: add running to spec

* test: fix running, simplify calls

* test: prevent crash on stopJob
2026-03-06 20:42:38 -05:00
Barış Soner Uşaklı
0be4081049 fix: #14062 recipients is normal set 2026-03-05 14:01:57 -05:00
Barış Soner Uşaklı
1fc3edf764 fix: closes #14062
on topic purge remove them from uid:<uid>:inboxes
upgrade script to cleanup inboxes
2026-03-05 13:44:10 -05:00
Barış Soner Uşaklı
88b91c20d9 refactor: move resolve flags and activitypub.out.remove.context
after topic deletion
2026-03-03 12:54:14 -05:00
Barış Soner Uşaklı
92c0bd8f41 feat: allow callers to parse topic teasers
in different types
2026-02-28 21:00:05 -05:00
Julian Lam
6472462924 fix: remove allowed check from notes.assert as it is already done downstream in topics.(post|reply), update privilege check to inherit world privs if passed-in cid is remote cid 2026-02-26 22:40:19 -05:00
Barış Uşaklı
e4c945f636 refactor: allow passing an array to topics.purge and topics.purgePost… (#14018)
* refactor: allow passing an array to topics.purge and topics.purgePostsAndTopic

deprecate action:topic.purge, add action:topics.purge with array of deleted topics
update usage of topics.purge to pass in an array
fix an issue in posts/delete where cids were passed to parseInt, caused AP cids to get saved into category:NaN

* lint

* refactor: change style

* use array of tids
2026-02-26 13:09:42 -05:00
Barış Soner Uşaklı
de1f04d9d8 refactor: dont store ap pids in posts:pid
new zset postsRemote:pid
in topic purge only make 1 db call to reduce counters
2026-02-24 17:36:17 -05:00
Barış Soner Uşaklı
e484899db2 fix: topic purge 2026-02-24 10:52:30 -05:00
Barış Soner Uşaklı
e8ef2e5c55 fix: dont store ap tids in topics:tid
create new zset topicsRemote:tid
upgrade script to copy over ap tids
2026-02-24 10:47:59 -05:00
Barış Soner Uşaklı
a1c425ceab dont call pushCount if there are no nids 2026-02-22 21:39:55 -05:00
Barış Soner Uşaklı
0424728f7e refactor: pass options to thumbs.load
so we can control thumbsOnly
2026-02-20 08:07:21 -05:00
Julian Lam
45d2e628dd fix: only call syncUserInboxes on post create if local uid creates post in cid -1 2026-02-17 11:26:13 -05:00
Julian Lam
5da35bdadd fix: call syncUserInboxes asyncronously 2026-02-17 11:26:13 -05:00
Julian Lam
5df2b8b785 feat: quick create on world page
This commit removes title requirement checks in NodeBB and updates the
topic creation logic so that incoming topic creation API requests
without a title just generate a title (like they already do for incoming
AP content.)
2026-02-17 11:26:13 -05:00
Barış Soner Uşaklı
8c6ce198e1 feat: allow configuring unreadCutoff per user, closes #6811 2026-02-16 22:57:00 -05:00
Barış Soner Uşaklı
a8a85bcb0b refactor: shorter hook 2026-02-16 12:04:11 -05:00
Barış Soner Uşaklı
1ca9841ce5 fix: dont call getInbox for /recent
make sure there are no dupes if called
2026-02-13 12:26:54 -05:00
Julian Lam
fe8fd9d6e5 fix: gate crossposting behind new topics:crosspost privilege 2026-02-12 15:13:59 -05:00
Barış Uşaklı
c65af19985 refactor: add createFieldChecker (#13973)
* refactor: add createFieldChecker

* refactor: use hasField in topic/data.js

* refactor: use hasField in categories/data.js

* test: fix category nickname logic

* test: fix spec
2026-02-11 11:38:03 -05:00
Barış Uşaklı
62d88555ae feat: eslint10 (#13967)
* feat: eslint10

* lint: no-useless-assignment
2026-02-10 12:39:11 -05:00
Barış Soner Uşaklı
52f1c7372c remove generatedTitle from hash, its added later 2026-02-09 14:01:59 -05:00
Julian Lam
0fbaa937e4 Refactor /world page, closes #13927 (#13954)
* refactor: wholesale UI/data refactor of world to display in feed-like format

* fix: openapi schema

* fix: remove console log

* fix: restrict 'generatedTitle' from being passed-in via topics API

* fix(deps): bumping themes for world refactor support

* fix: /world title and description update

* fix: missing handleIgnoreWatch in world client side js
2026-02-06 14:07:25 -05:00
Barış Soner Uşaklı
065abbf249 refactor: get rid of cache for tid posters, was never cleared 2026-02-03 20:20:30 -05:00
Barış Soner Uşaklı
5c15a0db7d Merge branch 'master' into develop 2026-01-25 19:45:31 -05:00
Barış Soner Uşaklı
f98de3e985 fix: closes #13899 2026-01-25 19:45:23 -05:00
Barış Soner Uşaklı
fe081ebd7b Merge branch 'master' into develop 2026-01-23 12:35:35 -05:00
Julian Lam
eb27b96430 fix: notes announce cache, use cache when retrieving tid posters 2026-01-21 12:53:41 -05:00
Barış Soner Uşaklı
7bc9fe3b75 refactor: dont include scheduled topics in unread 2026-01-20 21:08:38 -05:00
Barış Soner Uşaklı
beb3f8ff94 Merge branch 'master' into develop 2026-01-20 20:15:07 -05:00
Barış Soner Uşaklı
2ba8907ac8 refactor: tags were moved into topic hash a while ago 2026-01-20 11:57:22 -05:00
Julian Lam
0c79eaa529 feat: topic crossposts generate topic events, #13908 2026-01-19 19:06:29 -05:00
Barış Soner Uşaklı
57a73c4854 refactor: crossposts.get to support multiple tids 2026-01-14 18:47:52 -05:00
Julian Lam
bcc204fa93 fix: derp 2026-01-12 15:42:33 -05:00
Julian Lam
2f96eed4af fix: guard against negative uids crossposting 2026-01-12 14:07:45 -05:00
Julian Lam
82507c0fb1 fix: calling sortedSetRemove to remove multiple values, instead of baking it into sortedSetRemoveBulk 2026-01-12 12:55:18 -05:00
Julian Lam
b9b33f9f8d fix: unused values 2026-01-12 12:55:18 -05:00
Julian Lam
47e37ed571 test: intify uid/cid if they are numbers (when getting crossposts) 2026-01-12 12:55:18 -05:00
Julian Lam
148663c536 fix: update auto-categorization rules to also handle already-categorized topics via crosspost 2026-01-12 12:55:18 -05:00
Julian Lam
f6cc556d37 fix: topic crosspost delete and purge handling 2026-01-12 12:55:18 -05:00
Julian Lam
0a0a7da9ba fix: bug where privileges users could not uncrosspost others' crossposts. Tests 2026-01-12 12:55:18 -05:00
Julian Lam
b981082dd7 fix: removed ajaxify refresh on crosspost commit, dynamically update post stats in template, logic fix 2026-01-12 12:55:18 -05:00
Julian Lam
349b087502 refactor: crossposts.get to return limited category data (name, icon, etc.), fixed up crosspost modal to hide uncategorized and all categories options 2026-01-12 12:55:18 -05:00