resolve ip

This commit is contained in:
Mateusz Gruszczyński
2026-05-20 21:59:25 +02:00
parent f4d8611240
commit af20e55539
11 changed files with 364 additions and 159 deletions

View File

@@ -139,22 +139,22 @@
"type": "object"
},
"AutoBackupSettings": {
"type": "object",
"additionalProperties": true,
"properties": {
"enabled": {
"type": "boolean"
},
"interval_hours": {
"type": "integer",
"minimum": 1
},
"retention_days": {
"type": "integer",
"minimum": 1
"minimum": 1,
"type": "integer"
},
"last_run_at": {
"type": "string",
"nullable": true
"nullable": true,
"type": "string"
},
"retention_days": {
"minimum": 1,
"type": "integer"
}
},
"required": [
@@ -162,28 +162,28 @@
"interval_hours",
"retention_days"
],
"additionalProperties": true
"type": "object"
},
"AutoBackupSettingsRequest": {
"type": "object",
"additionalProperties": true,
"properties": {
"enabled": {
"type": "boolean"
},
"interval_hours": {
"type": "integer",
"minimum": 1
},
"retention_days": {
"type": "integer",
"minimum": 1
"minimum": 1,
"type": "integer"
},
"last_run_at": {
"type": "string",
"nullable": true
"nullable": true,
"type": "string"
},
"retention_days": {
"minimum": 1,
"type": "integer"
}
},
"additionalProperties": true
"type": "object"
},
"AutoBackupSettingsResponse": {
"allOf": [
@@ -191,7 +191,6 @@
"$ref": "#/components/schemas/ApiOk"
},
{
"type": "object",
"properties": {
"settings": {
"$ref": "#/components/schemas/AutoBackupSettings"
@@ -199,7 +198,8 @@
},
"required": [
"settings"
]
],
"type": "object"
}
]
},
@@ -353,31 +353,31 @@
]
},
"BackupPreview": {
"type": "object",
"additionalProperties": true,
"properties": {
"version": {
"type": "integer",
"nullable": true
},
"created_at": {
"type": "string",
"nullable": true
},
"automatic": {
"type": "boolean"
},
"created_at": {
"nullable": true,
"type": "string"
},
"tables": {
"type": "array",
"items": {
"$ref": "#/components/schemas/BackupPreviewTable"
}
},
"type": "array"
},
"version": {
"nullable": true,
"type": "integer"
}
},
"required": [
"automatic",
"tables"
],
"additionalProperties": true
"type": "object"
},
"BackupPreviewResponse": {
"allOf": [
@@ -385,7 +385,6 @@
"$ref": "#/components/schemas/ApiOk"
},
{
"type": "object",
"properties": {
"preview": {
"$ref": "#/components/schemas/BackupPreview"
@@ -393,31 +392,31 @@
},
"required": [
"preview"
]
],
"type": "object"
}
]
},
"BackupPreviewTable": {
"type": "object",
"properties": {
"columns": {
"items": {
"type": "string"
},
"type": "array"
},
"name": {
"type": "string"
},
"rows": {
"type": "integer"
},
"columns": {
"type": "array",
"items": {
"type": "string"
}
},
"sample": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true
}
"additionalProperties": true,
"type": "object"
},
"type": "array"
}
},
"required": [
@@ -425,7 +424,8 @@
"rows",
"columns",
"sample"
]
],
"type": "object"
},
"CleanupCacheSummary": {
"properties": {
@@ -1129,11 +1129,22 @@
"font_family": {
"enum": [
"default",
"adwaita-mono",
"inter",
"system-ui",
"figtree",
"inter",
"geist",
"manrope",
"dm-sans",
"source-sans-3",
"jetbrains-mono"
"open-sans",
"roboto",
"lato",
"nunito-sans",
"poppins",
"montserrat",
"ibm-plex-sans",
"jetbrains-mono",
"adwaita-mono"
],
"type": "string"
},
@@ -1150,6 +1161,10 @@
"port_check_enabled": {
"type": "boolean"
},
"reverse_dns_enabled": {
"description": "Enables cached reverse DNS lookups for the Peers tab.",
"type": "boolean"
},
"table_columns_json": {
"description": "JSON-encoded TableColumnsPreference stored in user preferences.",
"type": "string"
@@ -1542,23 +1557,23 @@
"type": "object"
},
"TorrentChunkActionRequest": {
"type": "object",
"additionalProperties": true,
"properties": {
"first_chunk": {
"type": "integer",
"minimum": 0
"minimum": 0,
"type": "integer"
},
"last_chunk": {
"type": "integer",
"minimum": 0
"minimum": 0,
"type": "integer"
},
"priority": {
"type": "integer",
"maximum": 3,
"minimum": 0,
"maximum": 3
"type": "integer"
}
},
"additionalProperties": true
"type": "object"
},
"TorrentChunkActionResponse": {
"allOf": [
@@ -1566,59 +1581,58 @@
"$ref": "#/components/schemas/ApiOk"
},
{
"type": "object",
"properties": {
"result": {
"type": "object",
"additionalProperties": true
},
"message": {
"type": "string"
},
"result": {
"additionalProperties": true,
"type": "object"
}
},
"required": [
"result",
"message"
]
],
"type": "object"
}
]
},
"TorrentChunkCell": {
"type": "object",
"properties": {
"index": {
"completed": {
"type": "integer"
},
"first_chunk": {
"type": "integer"
},
"grouped": {
"type": "boolean"
},
"index": {
"type": "integer"
},
"last_chunk": {
"type": "integer"
},
"completed": {
"type": "integer"
},
"total": {
"type": "integer"
},
"percent": {
"type": "number",
"format": "float"
"format": "float",
"type": "number"
},
"seen": {
"type": "boolean"
},
"status": {
"type": "string",
"enum": [
"complete",
"partial",
"missing",
"seen"
]
],
"type": "string"
},
"grouped": {
"type": "boolean"
"total": {
"type": "integer"
},
"unit_count": {
"type": "integer"
@@ -1635,13 +1649,19 @@
"status",
"grouped",
"unit_count"
]
],
"type": "object"
},
"TorrentChunks": {
"type": "object",
"properties": {
"hash": {
"type": "string"
"bitfield_units": {
"type": "integer"
},
"cells": {
"items": {
"$ref": "#/components/schemas/TorrentChunkCell"
},
"type": "array"
},
"chunk_size": {
"type": "integer"
@@ -1649,49 +1669,43 @@
"chunk_size_h": {
"type": "string"
},
"size_chunks": {
"chunks_hashed": {
"type": "integer"
},
"completed_chunks": {
"type": "integer"
},
"chunks_hashed": {
"type": "integer"
},
"bitfield_units": {
"type": "integer"
},
"visual_cells": {
"type": "integer"
},
"grouped": {
"type": "boolean"
},
"cells": {
"type": "array",
"items": {
"$ref": "#/components/schemas/TorrentChunkCell"
}
"hash": {
"type": "string"
},
"size_chunks": {
"type": "integer"
},
"summary": {
"type": "object",
"additionalProperties": {
"type": "integer"
},
"properties": {
"complete": {
"type": "integer"
},
"partial": {
"missing": {
"type": "integer"
},
"missing": {
"partial": {
"type": "integer"
},
"seen": {
"type": "integer"
}
},
"additionalProperties": {
"type": "integer"
}
"type": "object"
},
"visual_cells": {
"type": "integer"
}
},
"required": [
@@ -1706,7 +1720,8 @@
"grouped",
"cells",
"summary"
]
],
"type": "object"
},
"TorrentChunksResponse": {
"allOf": [
@@ -1714,7 +1729,6 @@
"$ref": "#/components/schemas/ApiOk"
},
{
"type": "object",
"properties": {
"chunks": {
"$ref": "#/components/schemas/TorrentChunks"
@@ -1722,7 +1736,8 @@
},
"required": [
"chunks"
]
],
"type": "object"
}
]
},
@@ -1840,6 +1855,68 @@
}
]
},
"TorrentPeer": {
"additionalProperties": true,
"properties": {
"banned": {
"type": "boolean"
},
"city": {
"type": "string"
},
"client": {
"type": "string"
},
"completed": {
"type": "integer"
},
"country": {
"type": "string"
},
"country_iso": {
"type": "string"
},
"down_rate": {
"type": "integer"
},
"down_rate_h": {
"type": "string"
},
"encrypted": {
"type": "boolean"
},
"host": {
"description": "Reverse DNS PTR hostname when reverse_dns_enabled is enabled and a hostname is cached or resolved.",
"type": "string"
},
"host_pending": {
"description": "True when a lightweight background PTR lookup was started but did not finish within the request budget.",
"type": "boolean"
},
"incoming": {
"type": "boolean"
},
"index": {
"type": "integer"
},
"ip": {
"type": "string"
},
"port": {
"type": "integer"
},
"snubbed": {
"type": "boolean"
},
"up_rate": {
"type": "integer"
},
"up_rate_h": {
"type": "string"
}
},
"type": "object"
},
"TorrentPeersResponse": {
"allOf": [
{
@@ -1849,8 +1926,7 @@
"properties": {
"peers": {
"items": {
"additionalProperties": true,
"type": "object"
"$ref": "#/components/schemas/TorrentPeer"
},
"type": "array"
}
@@ -3082,64 +3158,64 @@
},
"/api/backup/settings": {
"get": {
"summary": "Get automatic backup settings",
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AutoBackupSettingsResponse"
}
}
}
},
"description": "OK"
}
},
"security": [
{
"sessionCookie": []
}
]
],
"summary": "Get automatic backup settings"
},
"post": {
"summary": "Save automatic backup settings",
"requestBody": {
"required": false,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AutoBackupSettingsRequest"
}
}
}
},
"required": false
},
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AutoBackupSettingsResponse"
}
}
}
},
"description": "OK"
},
"400": {
"description": "Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ApiError"
}
}
}
},
"description": "Error"
}
},
"security": [
{
"sessionCookie": []
}
]
],
"summary": "Save automatic backup settings"
}
},
"/api/backup/{backup_id}": {
@@ -3246,7 +3322,6 @@
},
"/api/backup/{backup_id}/preview": {
"get": {
"summary": "Preview backup",
"parameters": [
{
"in": "path",
@@ -3259,31 +3334,32 @@
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BackupPreviewResponse"
}
}
}
},
"description": "OK"
},
"400": {
"description": "Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ApiError"
}
}
}
},
"description": "Error"
}
},
"security": [
{
"sessionCookie": []
}
]
],
"summary": "Preview backup"
}
},
"/api/backup/{backup_id}/restore": {
@@ -5523,35 +5599,35 @@
},
"/api/rtorrent-config/reset": {
"post": {
"summary": "Reset startup rTorrent config overrides",
"description": "Clear pyTorrent-saved rTorrent config overrides and reload live rTorrent values.",
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/RtorrentConfigResponse"
}
}
}
},
"description": "OK"
},
"400": {
"description": "Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ApiError"
}
}
}
},
"description": "Error"
}
},
"security": [
{
"sessionCookie": []
}
]
],
"summary": "Reset startup rTorrent config overrides"
}
},
"/api/smart-queue": {
@@ -6291,7 +6367,6 @@
},
"/api/torrents/{torrent_hash}/chunks": {
"get": {
"summary": "Torrent chunks",
"parameters": [
{
"in": "path",
@@ -6306,45 +6381,45 @@
"name": "max_cells",
"required": false,
"schema": {
"type": "integer",
"minimum": 64,
"default": 2048,
"maximum": 10000,
"default": 2048
"minimum": 64,
"type": "integer"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/TorrentChunksResponse"
}
}
}
},
"description": "OK"
},
"400": {
"description": "Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ApiError"
}
}
}
},
"description": "Error"
}
},
"security": [
{
"sessionCookie": []
}
]
],
"summary": "Torrent chunks"
}
},
"/api/torrents/{torrent_hash}/chunks/{action_name}": {
"post": {
"summary": "Run torrent chunk action",
"parameters": [
{
"in": "path",
@@ -6359,51 +6434,52 @@
"name": "action_name",
"required": true,
"schema": {
"type": "string",
"enum": [
"recheck",
"prioritize_files"
]
],
"type": "string"
}
}
],
"requestBody": {
"required": false,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/TorrentChunkActionRequest"
}
}
}
},
"required": false
},
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/TorrentChunkActionResponse"
}
}
}
},
"description": "OK"
},
"400": {
"description": "Error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ApiError"
}
}
}
},
"description": "Error"
}
},
"security": [
{
"sessionCookie": []
}
]
],
"summary": "Run torrent chunk action"
}
},
"/api/torrents/{torrent_hash}/files": {
@@ -6685,7 +6761,7 @@
"sessionCookie": []
}
],
"summary": "Torrent peers with GeoIP"
"summary": "Torrent peers with GeoIP and optional reverse DNS"
}
},
"/api/torrents/{torrent_hash}/torrent-file": {