Saber
ad764648dd
feature: display total size by tag or tracker of torrents on sidebar ( #369 )
...
Bug: #244
2021-07-14 16:28:15 +00:00
Jesse Chan
59a3fc74fd
API: add a "dateActive" field to TorrentProperties
...
Last time the torrent is active, -1 means currently active, 0 means data unavailable
2021-05-26 22:19:40 +08:00
Jesse Chan
2b6ca5ff66
API: ditch inefficient "TRANSFER_SUMMARY_DIFF_CHANGE", always full update
...
TRANSFER_SUMMARY_DIFF_CHANGE is almost always full update:
```
[
{"op":"replace","path":"/downTotal","value":851320719382},
{"op":"replace","path":"/downRate","value":6139},
{"op":"replace","path":"/upTotal","value":1826972572184},
{"op":"replace","path":"/upRate","value":5480521}
]
```
which is generally less efficient than full object (TRANSFER_SUMMARY_FULL_UPDATE):
```
{
"upRate":5430724,
"upTotal":1827320521117,
"downRate":6062,
"downTotal":851321106383
}
```
2021-05-22 21:31:32 +08:00
Jesse Chan
abf99ba52b
shared: schema: explicitly use "strictObject"
2021-05-20 23:17:53 +08:00
Jesse Chan
4e6d4136cb
API: add a "dateFinished" field to TorrentProperties
2021-05-17 21:46:08 +08:00
Jesse Chan
7c992bc2f2
client: add support for Deluge
2021-05-17 07:05:36 +01:00
Jesse Chan
69a9c667a5
server: Deluge: create empty services
2021-05-17 07:05:36 +01:00
Jesse Chan
d84c8aacb8
client: add "Reannounce" action
2021-02-21 23:47:45 +08:00
Jesse Chan
00ab541701
API: torrents: add /reannounce
2021-02-21 23:47:45 +08:00
Jesse Chan
04a8573511
server: replace domain from URL RegEx with plain split, slice and join
2021-02-04 08:33:44 +08:00
Jesse Chan
6c858dfc0e
config: move floodServerProxy to client DevServer script
2021-01-30 19:19:24 +08:00
Jesse Chan
5afa79b274
config.cli: migrate to TypeScript
2021-01-30 19:11:28 +08:00
Jesse Chan
1d1a478391
server: redirect to a portable link for /data endpoint
2021-01-28 17:17:25 +08:00
Jesse Chan
402a5b8a69
server: invalidate previous tokens when user changed
2021-01-26 09:06:41 +08:00
Jesse Chan
53c0b3f863
server: strictly validate auth token payload
2021-01-26 08:34:13 +08:00
Jesse Chan
f3ebdece95
server: use "/usr/share/flood/assets" as a location of assets
2021-01-19 10:40:08 +08:00
Jesse Chan
703978b1f3
server: qBittorrent, Transmission: normalize hash to upper case
2020-12-29 22:08:52 +08:00
Jesse Chan
4239ecf80e
server: notificationService: replace callbacks with promises
2020-12-28 23:19:52 +08:00
Jesse Chan
a9e85ee7d7
client: add "Download .torrent" context menu item
2020-12-28 17:32:18 +08:00
Jesse Chan
5f0bb16a1c
client: add "Initial Seeding" context menu item
2020-12-26 13:49:55 +08:00
Jesse Chan
26c9987355
server: support initial seeding (aka superseeding)
...
https://www.bittorrent.org/beps/bep_0016.html
2020-12-26 13:49:55 +08:00
Jesse Chan
c978d658cc
client: add "Sequential" context menu item
2020-12-26 11:07:30 +08:00
Jesse Chan
61b6b61569
API: torrents: add "isSequential" torrent property
2020-12-26 11:07:30 +08:00
Jesse Chan
20fc3ac6a8
server: torrents: disallow comma in tag
2020-12-15 20:57:36 +08:00
Jesse Chan
559ecaa0d8
server: allow Flood not to serve static assets
2020-12-10 23:48:58 +08:00
Jesse Chan
00cbc6537c
feature: generate magnet links
2020-12-01 23:05:47 +08:00
Jesse Chan
281f9317e1
feature: store tag-specific destination and use it as fallback
2020-11-17 21:34:42 +08:00
Jesse Chan
929141912a
schema: api: torrents: add-urls: remove URL validation
...
"Add by URLs" also accepts local file path.
2020-11-17 00:33:14 +08:00
Jesse Chan
3b573e59e9
feature: allow to prefer single tag selection
2020-11-16 21:39:45 +08:00
Jesse Chan
1a878d5423
flood: rearrange, remove misc files and reformat
2020-11-15 23:03:47 +08:00
Jesse Chan
ca9890a69c
schema: config: make floodServerProxy and ssl properties optional
2020-11-14 15:31:59 +08:00
Jesse Chan
ed98e210f4
server: schema validate configurations
...
Unfortunately there are still many people who prefer static config
file. As such, schema validate the configurations to ensure that
the failure happens loud and early when the config.js is broken.
Also enforces that the length of secret must be larger than 30 as
the JWT secret can be brute forced locally without interaction with
the server.
This ensures that we always have proper configurations and avoids
unnecessary and bad defensive programming practices.
2020-11-14 15:20:23 +08:00
Jesse Chan
9038177630
feature: store the last used "Add Torrents" tab
...
Bug: Flood-UI/flood#329
2020-11-14 00:28:53 +08:00
Jesse Chan
aeefd6954d
server: allow fallback to default or last destination
2020-11-13 13:28:11 +08:00
Jesse Chan
80ffb24d8d
API: torrents: schema validate add-urls and add-files endpoints
...
Those endpoints use extensive amount of user-provided properties
and will be frequently used by third party developers. With Node
15, unhandled promise rejections directly crash the server, as
such, it is safer to schema validate the request before processing
it.
This change also prepares the code paths for later change that adds
destination fallbacks.
2020-11-13 13:27:31 +08:00
Jesse Chan
8efad15d5b
API: client: "throttle" means "Max"
...
There is no need for both. So use "Speed" for better clarity.
Also switch to B/s as that's more native for everything.
2020-11-08 23:45:51 +08:00
Jesse Chan
d592152967
API: client: remove [down/up]Throttle, clarify throttleGlobal[Down/Up]Max unit
2020-11-08 01:57:50 +08:00
Jesse Chan
7a146396b1
feature: support Transmission
2020-11-05 23:01:41 +08:00
Jesse Chan
8261d71eb5
API: torrents: remove unused props in TorrentPeer, TorrentTracker
2020-11-05 21:54:01 +08:00
Jesse Chan
448075a7d6
API: torrents: remove confusing baseDirectory, baseFilename and basePath props
2020-11-03 20:41:56 +08:00
Jesse Chan
29c6fbeb3b
API: torrents: remove useless isMultiFile property
...
It is only used to determine whether to use .tar extension when
download is requested. However, server sent Content-Disposition
header which already tells the browser the filename and it is
more accurate.
As such, remove this useless property.
2020-11-03 18:15:00 +08:00
Jesse Chan
5e7e5f4cbf
API: torrent: remove unused "paused" status
2020-11-02 19:42:23 +08:00
Jesse Chan
08a95253bc
API: torrents: remove dhtStats, throttleMaxDownloadsDiv and throttleMaxUploadsDiv
...
No one knows what throttleMaxDownloadsDiv and throttleMaxUploadsDiv do. dhtStats
is not used. Let's remove them first to see how things go.
2020-11-01 22:55:32 +08:00
Jesse Chan
01dcf81b48
API: torrents: calculate the Duration object in frontend
2020-11-01 22:21:54 +08:00
Jesse Chan
790f8213ae
API: torrents: remove unneccessary activelyDownloading and activelyUploading statuses
2020-11-01 22:11:31 +08:00
Jesse Chan
ccb410d2e5
config: switch to authMethod config for auth method selection
2020-10-31 20:48:55 +08:00
Jesse Chan
9e03d2a385
shared: schema: split enums from schemas
...
Otherwise zod will be included in client dependency graph and
increase the bundle size by 10kB unnecessarily.
2020-10-28 12:34:52 +08:00
Jesse Chan
6c41c764f1
API: auth: preload server configs along with /verify response
...
Get rid of last build-time config dependency and allows easier
switching of client modes.
2020-10-26 20:40:59 +08:00
Jesse Chan
306ff79182
API: auth: don't include token in JSON objects
...
Token is already sent by Set-Cookie. It is unneccessary and
insecure to include them in JSON response. Doing so also
introduce the token into Javascript VM which is not protected
as well as the httpOnly cookies.
2020-10-26 20:40:59 +08:00
Jesse Chan
6e866445ea
EXPERIMENTAL: feature: support qBittorrent
2020-10-25 08:27:52 -05:00