✨ New Features
ec7778d
- expect subject old state (PR #700 by @trim21)642133d
- allow edit non-sandbox subject (PR #701 by @trim21)3e4602f
- add subject topic and replies create api (PR #688 by @MisakaTAT)a189022
- added api for manage user blocklist (PR #705 by @MisakaTAT)44ba2f6
- new api to get recent wiki update (commit by @trim21)e3c895d
- add script to fix wrong date (commit by @trim21)1e681f9
- graphql: add Character & Person & Subject relations (PR #677 by @everpcpc)a1db2ce
- graphql: add subject topics (PR #718 by @everpcpc)cdce372
- new api to create subject (PR #719 by @trim21)ed6c57b
- subject lock/unlock api (PR #720 by @trim21)3d0a0cb
- make it run as federation (commit by @trim21)bd24b0d
- support person edit (PR #725 by @trim21)72ae718
- recent person change list (PR #726 by @trim21)8aa68ca
- enable graphql jit (commit by @trim21)0bd573b
- support new subject metaTag (commit by @trim21)c43e074
- support update new metaTags (PR #749 by @trim21)a0d96c6
- add meta tag to api (commit by @trim21)1ecd140
- add api for user collections summary (PR #753 by @everpcpc)5048f91
- api for user collection subjects (PR #761 by @everpcpc)b72c53c
- cloudflare turnstile verify page (PR #767 by @MisakaTAT)9228000
- add character & person & index to user collection summary (PR #762 by @everpcpc)
🐛 Bug Fixes
be8a4e5
- set content-type header on error (commit by @trim21)c34ec88
- set content-type header on error (commit by @trim21)a637800
- set content-type header on error (commit by @trim21)57495f8
- set content-type header on error (commit by @trim21)483ba9b
- only validate wiki platform when changed (commit by @trim21)aaa558f
- format episode duration (commit by @trim21)6c9ae77
- episode edit (commit by @trim21)e029e3d
- episode wiki xss (commit by @trim21)0a6f4fa
- episode wiki xss (commit by @trim21)190cf67
- episode wiki xss (commit by @trim21)d62f629
- add subjectID to ep wiki response (commit by @trim21)ff420ae
- remove duration formatter (commit by @trim21)25eddf4
- subject summary escape (commit by @trim21)dc39d5f
- book date parsing (PR #713 by @trim21)a9a22f0
- subject date parsing (PR #714 by @trim21)55ea0e4
- movie sort (commit by @trim21)c7e4611
- book sort (commit by @trim21)420faf7
- fix date script (commit by @trim21)4fd3e4b
- avoid override same subject cover file (commit by @trim21)c953f24
- new subject nsfw (commit by @trim21)09c9210
- avoid create too many episodes (commit by @trim21)de8e6b2
- duplicated operator name (commit by @trim21)883d9e1
- enable template escape by default (commit by @trim21)1914e17
- adjust oauth token expires (PR #743 by @everpcpc)e078740
- oauth view (commit by @trim21)37639de
- oauth page avatar (commit by @trim21)4db6c2a
- oauth app description and developer avatar (commit by @trim21)32fd040
- oauth: error icon (commit by @trim21)3a0a746
- add csrf token in oauth page (commit by @trim21)68adecb
- sign csrf secret as cookies (commit by @trim21)fa10bd6
- use signed cookies as csrf token only (commit by @trim21)79dc815
- pull new db (commit by @trim21)2f12333
- support public meta tags (commit by @trim21)dbbf784
- set graphql jit threshold to 200 (commit by @trim21)cebae35
- show more detail on out-dated error (commit by @trim21)2141a75
- some column should be saved as escaped (commit by @trim21)61bff92
- return resUser for comments (PR #752 by @everpcpc)2630499
- return type for SubjectInterestComment (PR #754 by @everpcpc)e05e49d
- get subject comments order by lastTouch desc (PR #755 by @everpcpc)48becde
- book vol/chap count (commit by @trim21)bd99fad
- more restrict for collection summary (PR #757 by @everpcpc)6f8fa43
- log more error (commit by @trim21)9b703d0
- subject with no score (commit by @trim21)47ba7d9
- check access token by case sensitive (commit by @trim21)