Moodulid
Asjatundja
Vali moodul, kuhu su muudatus kuulub, ja tea, milliseid mooduleid see tohib kutsuda.
Enne alustamist
Link jaotisele Enne alustamist- Loe kaardi ja reeglite jaoks lehte Arhitektuur.
- Igal moodulil on sama nimi kaustas
app/backend/internal/<module>/, ning kaustadesapp/frontend/src/lib/<module>/jaapp/tests/<module>/, kui sellel on ekraanid või brauseritestid.
Leia õige moodul
Link jaotisele Leia õige moodul| Moodul | Teeb |
|---|---|
requests |
Soovimine, kinnitused, soovide reeglid, välised loendid, aruanded |
movies |
Filmide pealkirjad, väljaanded, komplektid, otsing ja korrastamine |
shows |
Sarjad, hooajad, episoodid, otsing ja korrastamine |
music |
Esitajad, albumid, lood, otsing ja korrastamine |
sources |
Allikad, Jacketti ja Prowlarri sild, väljalaskeotsing |
downloads |
Allalaadijad, järjekord, nähtud failid, failiteede vastendused, sildid, koopiavalikud |
subtitles |
Subtiitrite keeled, saidid, sobitamine ja salvestamine |
discover |
Explore, Popular, Search, People, Calendar, pealkirjalehed |
suggest |
Ridade ja riiulite valimine ja järjestamine (ainult taustaosa) |
mediafiles |
Kataloogikirjed, valikureeglid, nimetamine, andmepaketid, meedia üksikasjad |
importer |
Faili import: lahtipakkimine, sildid, sobitamine (ainult taustaosa) |
library |
Meediakogu kaustad, üle võtmine ja ümbernimetamine (ainult taustaosa) |
metadata |
Välise andmeallika klient, muusikaotsingud, vanusepiirangu astmed, treilerid |
mediaservers |
Plexile, Jellyfinile ja Embyle ütlemine, et nad vaataksid uuesti |
accounts |
Kasutajad, sisselogimine, single sign-on, tehisintellekti rakenduse sisselogimine, laste piirangud, vaatamisvalikud |
alerts |
Teavituskanalid ja millal need sõna võtavad |
migrate |
Andmete toomine vanematest rakendustest |
arrapi |
Sonarri ja Radarri stiilis API |
ai |
Tehisintellekti rakenduste ühendused (edasi lükatud) |
backups |
Varukoopiate tegemine, hoidmine ja taastamine |
health |
Tervisekontrollid, doktor, tugipakett |
updates |
Uuenduste kontroll ja allkirjastatud uuenduste loend |
setup |
Esimese käivituse viisard |
Kihtide järjekord
Link jaotisele Kihtide järjekordMoodul impordib ainult madalamat kihti. Keegi ei impordi moodulit discover. Tõeallikas on tools/structurecheck/allow.go.
| Kiht | Moodulid |
|---|---|
| 0 | core |
| 1 | metadata, suggest |
| 2 | accounts |
| 3 | mediafiles |
| 4 | importer |
| 5 | library |
| 6 | sources |
| 7 | downloads |
| 8 | subtitles, mediaservers, alerts |
| 9 | movies, shows |
| 10 | requests, health |
| 11 | music, arrapi, migrate, ai, backups, updates, setup |
| 13 | discover |
Kui sinu moodul vajab midagi kõrgemalt kihilt, ära seda impordi. Lase kõrgemal moodulil lihtsad andmed alla anda või määra madalamas moodulis väike liides, mille wiring.go täidab.
Lisa marsruut või moodul
Link jaotisele Lisa marsruut või moodulUus marsruut
Link jaotisele Uus marsruutRegistreeri see mooduli failis routes.go koos selle õigusega. openapi.json tuleb marsruutidest ja test ebaõnnestub, kui need lahku lähevad. Välja antud teed ja väljade nimed jäävad samaks. Lisa välju, ära kunagi nimeta ümber. Seejärel kirjuta API marsruudid uuesti käsuga go run ./app/backend/tools/apidoc.
Uus moodul
Link jaotisele Uus moodulMahuta oma muudatus esmalt nende 23 sisse ja ava issue enne uue lisamist. Uus moodul vajab oma taustaosa kausta (ning lib/<module>/ ja app/tests/<module>/, kui sellel on ekraanid), kohta kihtide järjekorras failis tools/structurecheck ja rida failis wiring.go.
Kui see ei tööta
Link jaotisele Kui see ei töötaSümptom. TestModuleEdges ebaõnnestub.
Põhjus. Moodul impordib sama või kõrgema kihi moodulit.
Lahendus. Anna kõrgemast moodulist lihtsad andmed alla või lisa väike liides, mis ühendatakse failis wiring.go.
Sümptom. TestSQLOnlyInStore või TestTableOwnership ebaõnnestub.
Põhjus. SQL asub väljaspool store*.go faili või puudutab teise mooduli tabelit.
Lahendus. Tõsta päring omaniku store’i ja kutsu omaniku teenust ID järgi.
Asjatundjale
Link jaotisele AsjatundjaleVeel reegleid
- Moodul impordib teise mooduli ainult juurpaketti.
- Store’i funktsioonid võtavad
database.Querier. Loe teise mooduli ridu selle teenuse kaudu ID järgi ja anna pikad ID loendid ühe JSON-massiivina käsugajson_each(?). settings,schedules,secrets,jobsjaeventskuuluvad core’ile. Igal seadete grupil on üks omanikumoodul. Teise mooduli grupi muutmiseks kutsu selle omanikku.- Iga väljapoole suunatud päring käib läbi
core/outbound. - Core paketid on ridades ülalt alla:
parts,webserverjastartup,logs,jobsjamodel,outboundjasecrets, seejäreldatabase,filesjareleasename. Core pakett impordib ainult oma rida või madalamat. - Nimed: Go failid on väikeste tähtedega alakriipsudega, Svelte osad on PascalCase, ning TypeScript, dokumendid, testid ja deploy failid on kebab-case. Python failid kasutavad alakriipse, et neid saaks importida. Kaustad kaustas
app/on väikeste tähtedega, üks sõna. - Nimeta koodi julgelt ümber, aga kõik salvestatu või saadetu hoiab oma nime: tabelid ja veerud, seadete võtmed, JSON väljad, tööülesannete nimed ja lülitite nimed.
- Kommentaarides ei ole teekaardi numbreid, kuupäevi, nimesid ega mõttekriipse.
Kirjete omanikud
| Omanik | Kirjed |
|---|---|
mediafiles |
Title, Item, Version, Slot, Part, File, LibraryFolder, Quality, PickRules |
downloads |
Download, Downloader, SeenFile, PathMap |
sources |
Source, Release |
requests |
Ask, Report |
accounts |
User |
core/jobs |
Job, Schedule, JobError |
core/database |
Event ja jagatud ridade väljad |
Kontrollid
Kontrollid asuvad kaustas app/backend/tools/structurecheck. Enamik vajab -tags structure.
| Kontroll | Hoiab |
|---|---|
TestTopLayout |
Repo ülemised kaustad |
TestModuleSet, TestCoreSet, TestPackageMap |
Kaustad, mis on lubatud kaustades internal/ ja internal/core/ |
TestModuleEdges |
Kihtide järjekord |
TestModuleImportsRootOnly |
Ainult juurpaketi impordid |
TestCoreImportsNoModule, TestCoreRowOrder, TestCoreNamesNoModuleTable |
Core impordid, ridade järjekord ja nimed |
TestSQLOnlyInStore, TestTableOwnership, TestSQLAllowlistShrinks, TestSeedSQLAllowlist |
SQL asukoht ja tabelite omanikud |
TestGoFileNames, TestNoBannedPackageNames |
Faili- ja paketinimed |
TestFileSizeCap, TestCorePackageSize |
Faili ja core paketi suurus |
TestCommentHygiene |
Ülaltoodud kommentaarireeglid |
TestRouteTableUnchanged, TestMigrationsUnchanged, TestHeaderAndJSONLiteralsUnchanged |
Tõstmine ei muuda ühtegi marsruuti, migratsiooni, HTTP päise nime ega JSON võtit |
TestNoOldPageAddresses, TestNoOldPagesInTestsOrDocs |
Vanad lehe aadressid jäävad koodist, testidest ja dokumentidest välja |
TestNoDependencyBotConfig |
Kaustas .github pole sõltuvusbotti faili |
Seotud lehed
Link jaotisele Seotud lehedHolyArrs on tasuta. Kui see säästis sinu aega, anna talle GitHubis täht, toeta teda või osta mulle kohvi.