* feat(share): add Open Graph preview for social media crawlers
Add middleware to intercept social media bot requests and return
OG meta tags for share links, enabling rich previews on platforms
like Facebook, Twitter, Discord, etc.
* feat(og): reuse existing share service and show thumbnail if possible
* resolve comments
---------
Co-authored-by: Aaron Liu <abslant.liu@gmail.com>
* refactor(captcha): update Cap backend to 2.0.0 API format
* feat(captcha): add Cap version config for 1.x/2.x compatibility
* fix(captcha): change Cap default version to 1.x for backward compatibility
* refactor(captcha): remove Cap 1.x compatibility, keep only 2.x support
* feat(captcha): update field names to Cap 2.0 standard - Site Key and Secret Key
* fix(captcha): update Cap field names in defaults configuration
* Add Cap Captcha support
- Add CaptchaCap type constant in types.go
- Add Cap struct with InstanceURL, KeyID, and KeySecret fields
- Add CapCaptcha method in provider.go to return Cap settings
- Add default settings for Cap captcha in setting.go
- Implement Cap captcha verification logic in middleware
- Expose Cap captcha settings in site API
This adds support for Cap captcha service as an alternative
captcha option alongside existing reCAPTCHA, Turnstile and
built-in captcha options.
* update cap json tags
* Feat: added same-site policy for session options
* Feat: configurations in conf package to control the `SameSite` mode and `Secure` value of the session.
Co-authored-by: AaronLiu <abslant@126.com>
* Feat: retrieve nodes from data table
* Feat: master node ping slave node in REST API
* Feat: master send scheduled ping request
* Feat: inactive nodes recover loop
* Modify: remove database operations from aria2 RPC caller implementation
* Feat: init aria2 client in master node
* Feat: Round Robin load balancer
* Feat: create and monitor aria2 task in master node
* Feat: salve receive and handle heartbeat
* Fix: Node ID will be 0 in download record generated in older version
* Feat: sign request headers with all `X-` prefix
* Feat: API call to slave node will carry meta data in headers
* Feat: call slave aria2 rpc method from master
* Feat: get slave aria2 task status
Feat: encode slave response data using gob
* Feat: aria2 callback to master node / cancel or select task to slave node
* Fix: use dummy aria2 client when caller initialize failed in master node
* Feat: slave aria2 status event callback / salve RPC auth
* Feat: prototype for slave driven filesystem
* Feat: retry for init aria2 client in master node
* Feat: init request client with global options
* Feat: slave receive async task from master
* Fix: competition write in request header
* Refactor: dependency initialize order
* Feat: generic message queue implementation
* Feat: message queue implementation
* Feat: master waiting slave transfer result
* Feat: slave transfer file in stateless policy
* Feat: slave transfer file in slave policy
* Feat: slave transfer file in local policy
* Feat: slave transfer file in OneDrive policy
* Fix: failed to initialize update checker http client
* Feat: list slave nodes for dashboard
* Feat: test aria2 rpc connection in slave
* Feat: add and save node
* Feat: add and delete node in node pool
* Fix: temp file cannot be removed when aria2 task fails
* Fix: delete node in admin panel
* Feat: edit node and get node info
* Modify: delete unused settings