Command Palette

Search for a command to run...

Metadane

Poznaj każde wymagane i opcjonalne pole w pliku metadata.json obecności Nowly.

Wymagane Pola

Każda obecność potrzebuje:

PoleTypOpisDomyślny
name*stringNazwa wyświetlana usługi lub platformy.-
author*objectGłówny autor, wyświetlany jako pierwszy w bibliotece i obrazach OG.-
description*objectKrótkie zlokalizowane opisy, indeksowane według locale.-
url*string[]Obsługiwane domeny lub wzorce URL do dopasowywania stron.-
color*stringKolor marki w formacie hex, używany przez UI i osadzenia.-
category*stringJedna z: streaming, music, video, social, gaming, tools, ai, learning, creator lub other.-

Przykład

{
  "name": "YouTube",
  "author": {
    "name": "Nowly Developer",
    "github": "example"
  },
  "url": ["youtube.com", "www.youtube.com"],
  "color": "#FF0033",
  "category": "streaming",
  "description": {
    "en-US": "Watch and share videos on YouTube."
  }
}

Autor i Współtwórcy

  • author - Główny opiekun, wyświetlany jako pierwszy w bibliotece i obrazach OG.
  • contributors - Dodatkowe osoby, które pomogły przy obecności.

Nazwy użytkowników GitHub (klucz github) są używane do rozpoznawania awatarów.

Opisy i Funkcje

  • description - Krótki tekst marketplace, indeksowany według locale.
  • longDescription - Rozszerzony opis dla stron szczegółów.
  • features - Zlokalizowana lista obsługiwanych zachowań (np. obsługa przycisków, klawisze multimedialne).

Natywne wsparcie Discorda

Niektóre platformy już pojawiają się na Discordzie, gdy użytkownik połączy swoje konto (Spotify to typowy przykład). Ustaw tę opcjonalną flagę, aby biblioteka mogła wyjaśnić, że Nowly nadal jest przydatne bez tego połączenia.

PoleTypOpisDomyślny
discordNativebooleanTrue, gdy Discord już pokazuje tę platformę, jeśli użytkownik połączy swoje konto. Opcjonalne. Domyślnie false.-
{
  "name": "Spotify",
  "discordNative": true
}

To wyświetla jedynie informacyjną notatkę na stronie biblioteki i w rozszerzeniu (sklep i szczegóły zainstalowanej obecności). Nie blokuje instalacji.

Dopasowywanie URL

  • url - Obsługiwane domeny lub wzorce URL do dopasowywania stron.
  • regExp - Dopasowywanie oparte na wyrażeniach regularnych dla złożonych wzorców URL.

Używaj regExp tylko wtedy, gdy proste dopasowywanie url nie wystarcza. Preferuj jawne listy domen.

Kontekst Wykonania

Dwa opcjonalne pola kontrolują, jak i kiedy skrypt Twojej obecności działa w przeglądarce.

PoleTypOpisDomyślny
world"main" | "isolated"Świat wykonania. Domyślnie isolated.-
runAt"document_start" | "document_end" | "document_idle"Kiedy skrypt jest wstrzykiwany. Domyślnie document_idle.-

Domyślnie obecność działa w świecie isolated: współdzieli DOM strony, ale nie kontekst JavaScript strony. To bezpieczne ustawienie domyślne, które działa dla niemal każdej obecności.

Ustaw "world": "main", gdy Twoja obecność potrzebuje kontekstu strony, konkretnie do:

  • odczytywania globalnych zmiennych strony (np. obiektu odtwarzacza, który strona udostępnia w window);
  • wykonania uwierzytelnionego zapytania fetch tego samego pochodzenia, które musi przenosić pliki cookie sesji użytkownika (np. wewnętrzne API metadanych strony).
{
  "name": "Netflix",
  "url": ["netflix.com", "www.netflix.com"],
  "world": "main",
  "color": "#E50914",
  "category": "streaming",
  "description": {
    "en-US": "Watch movies and series on Netflix."
  }
}

fetch wykonany ze świata isolated nie jest traktowany jako żądanie pierwszej strony, więc uwierzytelnione wywołania kończą się niepowodzeniem po cichu. Jeśli Twoja obecność polega na zalogowanym API strony, musisz ustawić "world": "main".

Deklaracja znajduje się w całości w metadata.json - rozszerzenie odczytuje ją podczas rejestracji. Nie są potrzebne żadne zmiany w rozszerzeniu, aby dodać nową obecność w kontekście strony.

Kategoria

Dozwolone kategorie to streaming, music, video, social, gaming, tools, ai, learning, creator i other.