Command Palette

Search for a command to run...

Metadata

Τεκμηρίωσε κάθε υποχρεωτικό και προαιρετικό πεδίο στο αρχείο metadata.json ενός presence Nowly.

Υποχρεωτικά Πεδία

Κάθε presence χρειάζεται:

ΠεδίοΤύποςΠεριγραφήΠροεπιλογή
name*stringΤο εμφανιζόμενο όνομα της υπηρεσίας ή της πλατφόρμας.-
author*objectΟ κύριος δημιουργός που εμφανίζεται πρώτος στη βιβλιοθήκη και στις εικόνες OG.-
description*objectΣύντομες μεταφρασμένες περιγραφές, ταξινομημένες ανά locale.-
url*string[]Υποστηριζόμενα domains ή patterns URL για αντιστοίχιση σελίδων.-
color*stringΧρώμα μάρκας σε μορφή hex, χρησιμοποιείται από το UI και τα embeds.-
category*stringΈνα από τα streaming, music, video, social, gaming, tools, ai, learning, creator, ή other.-

Παράδειγμα

{
  "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."
  }
}

Δημιουργός και Συντελεστές

  • author - Κύριος συντηρητής, εμφανίζεται πρώτος στη βιβλιοθήκη και στις εικόνες OG.
  • contributors - Επιπλέον άτομα που βοήθησαν με το presence.

Τα ονόματα χρηστών GitHub (το κλειδί github) χρησιμοποιούνται για την επίλυση avatar.

Περιγραφές και Χαρακτηριστικά

  • description - Σύντομο κείμενο marketplace, ταξινομημένο ανά locale.
  • longDescription - Εκτεταμένη περιγραφή για σελίδες λεπτομερειών.
  • features - Μεταφρασμένη λίστα υποστηριζόμενης συμπεριφοράς (π.χ. υποστήριξη κουμπιών, πλήκτρα πολυμέσων).

Εγγενής Υποστήριξη Discord

Ορισμένες πλατφόρμες εμφανίζονται ήδη στο Discord όταν ο χρήστης συνδέσει τον λογαριασμό του (το Spotify είναι το συνηθισμένο παράδειγμα). Όρισε αυτή την προαιρετική σημαία ώστε η βιβλιοθήκη να μπορεί να εξηγήσει ότι το Nowly είναι ακόμα χρήσιμο χωρίς αυτή τη σύνδεση.

ΠεδίοΤύποςΠεριγραφήΠροεπιλογή
discordNativebooleanTrue όταν το Discord εμφανίζει ήδη αυτή την πλατφόρμα αν ο χρήστης συνδέσει τον λογαριασμό του. Προαιρετικό. Προεπιλογή false.-
{
  "name": "Spotify",
  "discordNative": true
}

Αυτό εμφανίζει μόνο μια ενημερωτική σημείωση στη σελίδα της βιβλιοθήκης και στην επέκταση (κατάστημα και λεπτομέρειες εγκατεστημένου presence). Δεν εμποδίζει την εγκατάσταση.

Αντιστοίχιση URL

  • url - Υποστηριζόμενα domains ή patterns URL για αντιστοίχιση σελίδων.
  • regExp - Αντιστοίχιση βασισμένη σε regex για σύνθετα patterns URL.

Χρησιμοποίησε το regExp μόνο όταν η απλή αντιστοίχιση url δεν είναι αρκετή. Προτίμησε ρητές λίστες domain.

Πλαίσιο Εκτέλεσης

Δύο προαιρετικά πεδία ελέγχουν πώς και πότε εκτελείται το script του presence σου στον browser.

ΠεδίοΤύποςΠεριγραφήΠροεπιλογή
world"main" | "isolated"Κόσμος εκτέλεσης. Προεπιλογή isolated.-
runAt"document_start" | "document_end" | "document_idle"Πότε εισάγεται το script. Προεπιλογή document_idle.-

Από προεπιλογή, ένα presence εκτελείται στον κόσμο isolated: μοιράζεται το DOM της σελίδας αλλά όχι το πλαίσιο JavaScript της σελίδας. Αυτή είναι η ασφαλής προεπιλογή και λειτουργεί για σχεδόν κάθε presence.

Όρισε "world": "main" όταν το presence σου χρειάζεται το πλαίσιο της σελίδας, συγκεκριμένα για:

  • να διαβάζει global μεταβλητές της σελίδας (π.χ. ένα αντικείμενο player που ο ιστότοπος εκθέτει στο window
  • να κάνει ένα αυθεντικοποιημένο fetch ίδιας προέλευσης που πρέπει να μεταφέρει τα cookies συνεδρίας του χρήστη (π.χ. ένα εσωτερικό API metadata ενός ιστότοπου).
{
  "name": "Netflix",
  "url": ["netflix.com", "www.netflix.com"],
  "world": "main",
  "color": "#E50914",
  "category": "streaming",
  "description": {
    "en-US": "Watch movies and series on Netflix."
  }
}

Ένα fetch από τον κόσμο isolated δεν αντιμετωπίζεται ως αίτημα πρώτου μέρους, οπότε οι αυθεντικοποιημένες κλήσεις αποτυγχάνουν σιωπηλά. Αν το presence σου βασίζεται στο συνδεδεμένο API του ιστότοπου, πρέπει να ορίσεις "world": "main".

Η δήλωση βρίσκεται εξ ολοκλήρου μέσα στο metadata.json - η επέκταση τη διαβάζει κατά την εγγραφή. Δεν χρειάζονται αλλαγές στην επέκταση για να προστεθεί ένα νέο presence με πλαίσιο σελίδας.

Κατηγορία

Οι επιτρεπόμενες κατηγορίες είναι streaming, music, video, social, gaming, tools, ai, learning, creator, και other.