Arkitektúr
Sérfræðingur
Finndu hvar kóðinn er og hvaða reglur gilda áður en þú breytir einhverju stóru.
Stutta útgáfan
Tengill á Stutta útgáfanHolyArrs er eitt Go-forrit með vefforritið innbyggt. Það þjónar vefforritinu og JSON API á porti 6262 og geymir gögnin í 2 SQLite-skrám í stillingamöppunni. Það hefur samband við niðurhalsforrit, uppsprettur (í gegnum Jackett eða Prowlarr), margmiðlunarþjóna, tilkynningarleiðir og metadata-server HolyArrs.
Fylgdu einni beiðni. Einhver biður um kvikmynd á Explore.
requestsskráir beiðnina.- Eftir samþykki biður
moviessourcesum útgáfur. - Valreglurnar í
mediafilesgefa þeim stig. downloadssendir þá bestu til niðurhalsforritsins.- Þegar niðurhalinu lýkur flytur
mediafilesskrána inn. mediaserversogalertsfá að vita það.
Kóðakort
Tengill á Kóðakortapp/backend/cmd/holyarrs/ main.go starts the program; wiring.go builds the modules and joins themapp/backend/internal/<module>/ one flat folder per moduleapp/backend/internal/core/ plumbing every module may useapp/backend/tools/ dev-only programsapp/frontend/ the SvelteKit web app; embed.go bundles its buildapp/frontend/src/routes/<page>/ thin pages that combine module partsapp/frontend/src/lib/<module>/ each module's web codeapp/frontend/src/lib/ui/ parts used by 2 or more modules, and nothing elseapp/frontend/src/lib/core/ server client, app state, helpersapp/tests/ end-to-end tests (Playwright)deploy/ the Dockerfile and release scriptsdocs/ guides and these pagesgo.mod er í rót repo vegna þess að go:embed nær ekki í yfirmöppu.
Hvar finn ég hlutina
Tengill á Hvar finn ég hlutina| Þú vilt breyta | Skoðaðu |
|---|---|
| Hvernig útgáfa er valin | internal/mediafiles |
| Niðurhalsforriti (client) | internal/downloads, samningapróf í internal/downloads/conformance_test.go |
| Tilkynningarleið | internal/alerts |
| Innskráningu, notendum, API-lyklum | internal/accounts |
| Töframanni fyrstu ræsingar | internal/setup, app/frontend/src/routes/welcome |
| Innflutningi á fullgerðri skrá (afpökkun, merki, pörun) | internal/importer |
| Safnmöppum, yfirtöku og endurnefningu | internal/library |
| Hvernig raðir og hillur eru valdar og raðað | internal/suggest |
| Hvaða hlutar forritsins eru í gangi | internal/core/parts |
| Vistfangi síðu | app/frontend/src/routes/ |
| Migration | internal/core/database/migrations/ |
| Docker image | deploy/Dockerfile |
Reglurnar
Tengill á ReglurnarAthuganir í app/backend/tools/structurecheck láta smíðina falla ef reglu er brotin. Keyrðu þær með línunni í Prófanir.
- Lagaröð. Eining flytur aðeins inn einingar á neðra lagi, og aðeins rótarpakka þeirra. Einingar á sama lagi flytja aldrei inn hver aðra.
- Köll upp á við. Þegar neðri eining þarf eitthvað frá efri einingu sendir sú efri hrein gögn niður, eða sú neðri skilgreinir lítið viðmót sem
wiring.gofyllir út í. - SQL helst heima. Aðeins
store*.goskrár einingarinnar innihalda SQL, og aðeins yfir hennar eigin töflur. Til að lesa raðir annarrar einingar kallarðu í þjónustu hennar. - Sameiginlegar töflur tilheyra core. Nálgastu
settings,schedules,secrets,jobsogeventsí gegnum hjálparföll core. - Ein leið út. Hvert utanaðkomandi kall fer í gegnum
core/outbound. - Frestaðir eiginleikar skrá rofa hjá
core/startup. Á meðan slökkt er á honum er leiðin ekki til og síðan felur eiginleikann. - Engir safnpakkar. Enginn
util,common,sharedeðahelpers.
Lagaröðin er í Einingar.
Fyrir sérfræðinga
Tengill á Fyrir sérfræðingaInni í einingu
Hver bakendaeining notar sömu skráarnöfn.
| Skrá | Inniheldur |
|---|---|
routes.go |
API-leiðir, hver með heimildinni sem hún þarf |
service.go og efnisskrár |
Rökfræði sem aðrar einingar kalla í |
store.go, store_<topic>.go |
Allt SQL fyrir eigin töflur einingarinnar |
types.go |
Færslur einingarinnar |
Vefmegin geymir lib/<module>/ skrána index.ts (það sem aðrar einingar mega nota), Svelte-hlutana og próf þeirra, auk api.ts og state.svelte.ts aðeins þegar einingin hefur eigin köll eða eigið ástand.
Core-pakkar
Core er lagnir. Það inniheldur engar vörureglur og flytur enga einingu inn.
| Pakki | Inniheldur |
|---|---|
core/database |
Opnun og migration beggja SQLite-skránna, fyrirspurnahjálp, hjálp fyrir stillingar og atburði, sameiginleg raðasvið, snyrtingu sögu |
core/files |
Hjálp fyrir skrár og möppur, laust diskpláss |
core/releasename |
Gæði, hóp og þáttanúmer úr nafni útgáfu |
core/outbound |
Eina leiðin til að hafa samband út fyrir forritið, með vistfangaathugunum |
core/secrets |
Lyklageymslan og skipti á lyklum |
core/logs |
Log forritsins og hrunskýrslur |
core/jobs |
Verkefnaröðin, tímaáætlanir og lykkjurnar sem endurræsast eftir hrun |
core/webserver |
Leiðarlagnir, URL-grunnur, þjöppun, bein ýting |
core/startup |
Notandi sem forritið keyrir sem, lágminnishamur, frestaðir rofar, minnistakmörk, hlutar |
core/parts |
Hlutarofarnir sem hver eining spyr um áður en hún þjónar eða keyrir |
core/model |
Sameiginlegar gerðir eins og leikendur og viðföng |
Þegar core þarf að snerta gögn einingar skráir einingin krók hjá core í wiring.go. Skipti á lyklum virka svona.
Gögn
| Skrá | Inniheldur |
|---|---|
holyarrs.db |
Safnið, beiðnir, stillingar og allt annað sem skiptir máli |
holyarrs-events.db |
Sögu og aðrar atburðaraðir. Hún stækkar og er snyrt án þess að aðalskráin sé snert |
Migrations eru númeruð SQL-skjöl í core/database/migrations/main og core/database/migrations/events. Þau keyra við ræsingu.
Tengt efni
Tengill á Tengt efniHolyArrs er ókeypis. Ef það sparaði þér tíma geturðu gefið því stjörnu á GitHub, styrkt það eða boðið mér í kaffi.