Zum Inhalt springen
Bereich

Speicher

19 Adressen. Ohne Zusage — sie gehören zum Innenteil der Anwendung und können sich mit jeder Fassung ändern. Wer sich auf etwas verlassen muss, nimmt die zugesagten dreizehn.

19 Adressen

POST /api/storage/abgleich may change

Measure storage now

Run the storage measurement immediately instead of waiting for the hourly pass. Built for one moment in particular: the first start after an update. The cleanup suggestion needs the file date from Radarr/Sonarr, and until the first pass has run there is nothing to suggest from.

Felder und Aufbau

Antwort

FeldArt
neuZahl Pflicht
aktualisiertZahl Pflicht
entferntZahl Pflicht
mit_datumZahl Pflicht
posten_gesamtZahl Pflicht

Aufbau der Antwort

{
  "neu": "number",
  "aktualisiert": "number",
  "entfernt": "number",
  "mit_datum": "number",
  "posten_gesamt": "number"
}

POST /api/storage/entries/{posten_id}/abgeben may change

Offer an item up

"I do not need this any more" - puts one of your own items up for a decision. Nothing happens to the file, and the item still counts against your quota until somebody decides. Anything else would let people free their quota by offering everything up and never following through.

Felder und Aufbau

Parameter

posten_idZahl path Pflicht

Anfragekörper

FeldArt
wishText oder null

Antwort

FeldArt
idZahl Pflicht
media_typeText Pflicht
tierText Pflicht
tmdb_idZahl oder null Pflicht
tvdb_idZahl oder null Pflicht
seasonZahl oder null Pflicht
titleText Pflicht
size_bytesZahl Pflicht
stateText Pflicht
measured_atZeitpunkt (ISO 8601) Pflicht
pathText
released_atZeitpunkt (ISO 8601) oder null
release_wishText oder null
watchedja/nein oder null
managedja/nein

Aufbau der Antwort

{
  "id": "number",
  "media_type": "string",
  "tier": "string",
  "tmdb_id": "number | null",
  "tvdb_id": "number | null",
  "season": "number | null",
  "title": "string",
  "size_bytes": "number",
  "state": "string",
  "measured_at": "ISO 8601",
  "path": "string",
  "released_at": "ISO 8601 | null",
  "release_wish": "string | null",
  "watched": "boolean | null"
}

POST /api/storage/entries/{posten_id}/behalten may change

Withdraw an offer

Take back an offer - "actually, no". Stops an accidental click from standing until the next decision. Nothing changes on the quota: the item counted the whole time.

Felder und Aufbau

Parameter

posten_idZahl path Pflicht

Antwort

FeldArt
idZahl Pflicht
media_typeText Pflicht
tierText Pflicht
tmdb_idZahl oder null Pflicht
tvdb_idZahl oder null Pflicht
seasonZahl oder null Pflicht
titleText Pflicht
size_bytesZahl Pflicht
stateText Pflicht
measured_atZeitpunkt (ISO 8601) Pflicht
pathText
released_atZeitpunkt (ISO 8601) oder null
release_wishText oder null
watchedja/nein oder null
managedja/nein

Aufbau der Antwort

{
  "id": "number",
  "media_type": "string",
  "tier": "string",
  "tmdb_id": "number | null",
  "tvdb_id": "number | null",
  "season": "number | null",
  "title": "string",
  "size_bytes": "number",
  "state": "string",
  "measured_at": "ISO 8601",
  "path": "string",
  "released_at": "ISO 8601 | null",
  "release_wish": "string | null",
  "watched": "boolean | null"
}

GET /api/storage/entries/{posten_id}/dateien may change

Which files would go

The dry run: exactly which files a deletion would remove. Nothing is touched. An administrator confirms later with this list in front of them rather than with a number - a mistake when deleting season by season is expensive, and a count does not show which season it would hit.

Felder und Aufbau

Parameter

posten_idZahl path Pflicht

Antwort

FeldArt
filesListe von StorageDatei Pflicht
total_bytesZahl Pflicht
deletableja/nein Pflicht
reasonText

Aufbau der Antwort

{
  "files": [
    {
      "path": "string",
      "size_bytes": "number"
    }
  ],
  "total_bytes": "number",
  "deletable": "boolean",
  "reason": "string"
}

POST /api/storage/entries/{posten_id}/entfolgen may change

Keep it, stop following

Carries out the third possible outcome of an offer: the files stay, the monitoring stops. It is the only outcome where the item stays charged to its owner - the files are still there, and somebody wanted them kept.

Felder und Aufbau

Parameter

posten_idZahl path Pflicht

Antwort

FeldArt
idZahl Pflicht
media_typeText Pflicht
tierText Pflicht
tmdb_idZahl oder null Pflicht
tvdb_idZahl oder null Pflicht
seasonZahl oder null Pflicht
titleText Pflicht
size_bytesZahl Pflicht
stateText Pflicht
measured_atZeitpunkt (ISO 8601) Pflicht
pathText
released_atZeitpunkt (ISO 8601) oder null
release_wishText oder null
watchedja/nein oder null
managedja/nein

Aufbau der Antwort

{
  "id": "number",
  "media_type": "string",
  "tier": "string",
  "tmdb_id": "number | null",
  "tvdb_id": "number | null",
  "season": "number | null",
  "title": "string",
  "size_bytes": "number",
  "state": "string",
  "measured_at": "ISO 8601",
  "path": "string",
  "released_at": "ISO 8601 | null",
  "release_wish": "string | null",
  "watched": "boolean | null"
}

POST /api/storage/entries/{posten_id}/haus may change

Move an item to the house

Attribute an item to the house instead of a person, freeing that person's quota. No file is touched. The title stays exactly where it is; only who it is charged to changes. That is the point: an administrator can relieve someone without anybody losing anything.

Felder und Aufbau

Parameter

posten_idZahl path Pflicht

Antwort

FeldArt
idZahl Pflicht
media_typeText Pflicht
tierText Pflicht
tmdb_idZahl oder null Pflicht
tvdb_idZahl oder null Pflicht
seasonZahl oder null Pflicht
titleText Pflicht
size_bytesZahl Pflicht
stateText Pflicht
measured_atZeitpunkt (ISO 8601) Pflicht
pathText
released_atZeitpunkt (ISO 8601) oder null
release_wishText oder null
watchedja/nein oder null
managedja/nein

Aufbau der Antwort

{
  "id": "number",
  "media_type": "string",
  "tier": "string",
  "tmdb_id": "number | null",
  "tvdb_id": "number | null",
  "season": "number | null",
  "title": "string",
  "size_bytes": "number",
  "state": "string",
  "measured_at": "ISO 8601",
  "path": "string",
  "released_at": "ISO 8601 | null",
  "release_wish": "string | null",
  "watched": "boolean | null"
}

POST /api/storage/entries/{posten_id}/loeschen may change

Delete a title and its files

Removes the title including the file. ⚠️ The one operation in Nexview with no way back, apart from whatever recycle bin Radarr or Sonarr provide. If none is configured, the file is gone immediately and for good - so the caller is expected to have shown the file list first.

Felder und Aufbau

Parameter

posten_idZahl path Pflicht

POST /api/storage/entries/{posten_id}/vormerken may change

Mark for deletion, with a grace period

Sets a deletion date in the future instead of deleting now. Nothing happens to the file: the item stays where it is, keeps counting, and can be rescued until the last minute. Anyone who watches it in the meantime cancels the deletion without ever learning one was pending.

Felder und Aufbau

Parameter

posten_idZahl path Pflicht

Anfragekörper

FeldArt
tageZahl

Antwort

FeldArt
posten_idZahl Pflicht
media_typeText Pflicht
tmdb_idZahl oder null Pflicht
seasonZahl oder null Pflicht
titleText Pflicht
size_bytesZahl Pflicht
loescht_amZeitpunkt (ISO 8601) Pflicht
tage_uebrigZahl Pflicht
poster_urlText oder null

Aufbau der Antwort

{
  "posten_id": "number",
  "media_type": "string",
  "tmdb_id": "number | null",
  "season": "number | null",
  "title": "string",
  "size_bytes": "number",
  "loescht_am": "ISO 8601",
  "tage_uebrig": "number",
  "poster_url": "string | null"
}

POST /api/storage/entries/{posten_id}/vormerkung-aufheben may change

Cancel a pending deletion

Takes the deletion mark off again. Everyone who was told about the deletion is told about this too - an announcement only the person who made it can see is not an announcement.

Felder und Aufbau

Parameter

posten_idZahl path Pflicht

GET /api/storage/house may change

What the house holds

Everything attributed to the house, largest first, paged and searchable. Administrators only, for a concrete reason: the rows carry the path on the server, and an ordinary account has no business knowing the layout of the machine.

Felder und Aufbau

Parameter

qText query
pageZahl query

Antwort

FeldArt
used_bytesZahl Pflicht
itemsZahl Pflicht
matchesZahl Pflicht
free_bytesZahl
free_volumesZahl
per_pageZahl
entriesListe von StoragePosten Pflicht

Aufbau der Antwort

{
  "used_bytes": "number",
  "items": "number",
  "matches": "number",
  "free_bytes": "number",
  "free_volumes": "number",
  "per_page": "number",
  "entries": [
    {
      "id": "number",
      "media_type": "string",
      "tier": "string",
      "tmdb_id": "number | null",
      "tvdb_id": "number | null",
      "season": "number | null",
      "title": "string",
      "size_bytes": "number",
      "state": "string",
      "measured_at": "ISO 8601",
      "path": "string",
      "released_at": "ISO 8601 | null",
      "release_wish": "string | null",
      "watched": "boolean | null"
    }
  ]
}

GET /api/storage/me may change

Your own storage

What is attributed to the calling account, largest first, with the individual items. The order is the point of the list: anyone asked to free up space needs to see where the space actually is. Without paths - where a file sits on the server is none of a requester's business.

Felder und Aufbau

Parameter

qText query
pageZahl query
gesehenja/nein query

Antwort

FeldArt
used_bytesZahl Pflicht
itemsZahl Pflicht
limit_bytesZahl oder null
pending_bytesZahl Pflicht
watched_availableja/nein
matchesZahl
per_pageZahl
entriesListe von StoragePosten Pflicht

Aufbau der Antwort

{
  "used_bytes": "number",
  "items": "number",
  "limit_bytes": "number | null",
  "pending_bytes": "number",
  "watched_available": "boolean",
  "matches": "number",
  "per_page": "number",
  "entries": [
    {
      "id": "number",
      "media_type": "string",
      "tier": "string",
      "tmdb_id": "number | null",
      "tvdb_id": "number | null",
      "season": "number | null",
      "title": "string",
      "size_bytes": "number",
      "state": "string",
      "measured_at": "ISO 8601",
      "path": "string",
      "released_at": "ISO 8601 | null",
      "release_wish": "string | null",
      "watched": "boolean | null"
    }
  ]
}

GET /api/storage/me/aufraeumen may change

Your own unwatched titles

What is attributed to this account and has not been watched for a long time. The same service as the statistics view, but narrowed - and without the house collection, because you can only give up what is yours.

Felder und Aufbau

Parameter

monateZahl query
grenzeZahl query
sucheText query
artmovie | tv oder null query
nur_vorgemerktja/nein query

Antwort

FeldArt
postenListe von AufraeumPosten Pflicht
gesamt_anzahlZahl Pflicht
gesamt_bytesZahl Pflicht
monateZahl Pflicht
grundlageAufraeumGrundlage Pflicht
ohne_datumZahl Pflicht
gesehen_ohne_datumZahl

Aufbau der Antwort

{
  "posten": [
    {
      "posten_id": "number",
      "media_type": "string",
      "tmdb_id": "number | null",
      "tvdb_id": "number | null",
      "season": "number | null",
      "tier": "string",
      "title": "string",
      "size_bytes": "number",
      "state": "string",
      "besitzer": "string | null",
      "zuletzt_gesehen": "ISO 8601 | null",
      "gesehen_von": [
        "string"
      ],
      "bewertung": "number | null",
      "bewertungen": "number"
    }
  ],
  "gesamt_anzahl": "number",
  "gesamt_bytes": "number",
  "monate": "number",
  "grundlage": {
    "konten_gesamt": "number",
    "konten_verknuepft": "number",
    "ohne_verknuepfung": [
      "string"
    ],
    "vollstaendig": "boolean"
  },
  "ohne_datum": "number",
  "gesehen_ohne_datum": "number"
}

GET /api/storage/overview may change

Who uses how much

Storage use per account. Deliberately administrators only: how much space somebody takes up is a statement about a person. Approvers do not see it, for the same reason they do not see the ticket centre.

Felder und Aufbau

Antwort

FeldArt
total_bytesZahl Pflicht
house_bytesZahl Pflicht
house_itemsZahl Pflicht
sharesListe von StorageAnteil Pflicht

Aufbau der Antwort

{
  "total_bytes": "number",
  "house_bytes": "number",
  "house_items": "number",
  "shares": [
    {
      "user_id": "number | null",
      "username": "string | null",
      "display_name": "string | null",
      "used_bytes": "number",
      "items": "number",
      "limit_bytes": "number | null"
    }
  ]
}

GET /api/storage/recyclebin may change

What sits in the recycle bins

What Radarr and Sonarr are holding in their recycle bins - and therefore still occupying disk. A recycle bin is not free space. What sits there has not left the disk; it is only waiting for its retention period to run out.

Felder und Aufbau

Antwort

FeldArt
total_bytesZahl Pflicht
incompleteja/nein Pflicht
instancesListe von Objekt Pflicht

Aufbau der Antwort

{
  "total_bytes": "number",
  "incomplete": "boolean",
  "instances": [
    "object"
  ]
}

GET /api/storage/releases may change

Items awaiting a decision

Offers waiting to be decided, oldest first. Administrators only, and that is a safety rule: approvers have a quota of their own and standing auto-approval. Letting them decide offers would let them shift their own storage onto the house.

Felder und Aufbau

Antwort

FeldArt
entryStoragePosten Pflicht
user_idZahl oder null Pflicht
usernameText oder null Pflicht
display_nameText oder null Pflicht
released_atZeitpunkt (ISO 8601) oder null Pflicht

Aufbau der Antwort

[
  {
    "entry": {
      "id": "number",
      "media_type": "string",
      "tier": "string",
      "tmdb_id": "number | null",
      "tvdb_id": "number | null",
      "season": "number | null",
      "title": "string",
      "size_bytes": "number",
      "state": "string",
      "measured_at": "ISO 8601",
      "path": "string",
      "released_at": "ISO 8601 | null",
      "release_wish": "string | null",
      "watched": "boolean | null"
    },
    "user_id": "number | null",
    "username": "string | null",
    "display_name": "string | null",
    "released_at": "ISO 8601 | null"
  }
]

GET /api/storage/umbuchung may change

Preview: move everything to the house

The numbers behind "move all holdings to the house". The dialogue in front of it has to be able to say "X titles totalling Y GB will become house holdings" - a general warning gets clicked away, a number gets read.

Felder und Aufbau

Antwort

FeldArt
countZahl Pflicht
bytesZahl Pflicht

Aufbau der Antwort

{
  "count": "number",
  "bytes": "number"
}

POST /api/storage/umbuchung may change

Move everything to the house

Attributes every item to the house, so every account starts at zero. Until 0.19 this happened as a side effect of switching the accounting mode. The mode is gone; the operation remains, as the deliberate way to reset a household that has grown lopsided.

Felder und Aufbau

Antwort

FeldArt
countZahl Pflicht
bytesZahl Pflicht

Aufbau der Antwort

{
  "count": "number",
  "bytes": "number"
}

GET /api/storage/user/{user_id} may change

Storage of one account

What this one account occupies, largest first. Administrators only, for the same reason as the overview: how much space somebody takes up is a statement about a person.

Felder und Aufbau

Parameter

user_idZahl path Pflicht
qText query
pageZahl query

Antwort

FeldArt
user_idZahl Pflicht
usernameText Pflicht
display_nameText oder null Pflicht
used_bytesZahl Pflicht
itemsZahl Pflicht
limit_bytesZahl oder null
pending_bytesZahl Pflicht
matchesZahl Pflicht
per_pageZahl
entriesListe von StoragePosten Pflicht

Aufbau der Antwort

{
  "user_id": "number",
  "username": "string",
  "display_name": "string | null",
  "used_bytes": "number",
  "items": "number",
  "limit_bytes": "number | null",
  "pending_bytes": "number",
  "matches": "number",
  "per_page": "number",
  "entries": [
    {
      "id": "number",
      "media_type": "string",
      "tier": "string",
      "tmdb_id": "number | null",
      "tvdb_id": "number | null",
      "season": "number | null",
      "title": "string",
      "size_bytes": "number",
      "state": "string",
      "measured_at": "ISO 8601",
      "path": "string",
      "released_at": "ISO 8601 | null",
      "release_wish": "string | null",
      "watched": "boolean | null"
    }
  ]
}

GET /api/storage/vorgemerkt may change

What is about to disappear

Everything marked for deletion, visible to everyone. Deliberately not restricted to administrators: the whole purpose of a grace period is that the household notices it. An announcement only its author reads is not an announcement.

Felder und Aufbau

Antwort

FeldArt
posten_idZahl Pflicht
media_typeText Pflicht
tmdb_idZahl oder null Pflicht
seasonZahl oder null Pflicht
titleText Pflicht
size_bytesZahl Pflicht
loescht_amZeitpunkt (ISO 8601) Pflicht
tage_uebrigZahl Pflicht
poster_urlText oder null

Aufbau der Antwort

[
  {
    "posten_id": "number",
    "media_type": "string",
    "tmdb_id": "number | null",
    "season": "number | null",
    "title": "string",
    "size_bytes": "number",
    "loescht_am": "ISO 8601",
    "tage_uebrig": "number",
    "poster_url": "string | null"
  }
]

Nexview nutzt TMDB als Datenquelle, stammt aber nicht von TMDB und wird von TMDB nicht unterstützt. Die Bildschirmfotos stammen aus einer Testinstallation; die darin gezeigten Konten und Anfragen sind erfunden.

Nexview steht unter der AGPL-3.0-Lizenz. Radarr, Sonarr, Plex, Docker, Synology, IMDb, Rotten Tomatoes, Metacritic und JustWatch sind Marken der jeweiligen Rechteinhaber und werden hier ausschließlich beschreibend genannt. Ein Teil der Symbole auf dieser Seite beruht auf Lucide (ISC-Lizenz) — Rechte teils bei Cole Bemis 2013–2022 als Bestandteil von Feather (MIT-Lizenz), im Übrigen bei den Lucide-Mitwirkenden ab 2022.