Modules
நிபுணர்
உங்கள் மாற்றம் எந்த module-க்குச் சொந்தம் என்றும், அது எந்த modules-ஐ அழைக்கலாம் என்றும் அறிந்துகொள்ளவும்.
தொடங்கும் முன்
தொடங்கும் முன் இணைப்பு- அடைவு வரைபடத்துக்கும் விதிகளுக்கும் கட்டமைப்பு பக்கத்தைப் படிக்கவும்.
- ஒவ்வொரு module-க்கும்
app/backend/internal/<module>/-இல் அதே பெயர் இருக்கும். திரைகளோ browser சோதனைகளோ இருந்தால்,app/frontend/src/lib/<module>/,app/tests/<module>/ஆகியவற்றிலும் அதே பெயர் இருக்கும்.
சரியான module-ஐக் கண்டுபிடிக்கவும்
சரியான module-ஐக் கண்டுபிடிக்கவும் இணைப்பு| Module | செய்வது |
|---|---|
requests |
கோருதல், அங்கீகாரங்கள், கோரிக்கை விதிகள், வெளிப்புறப் பட்டியல்கள், அறிக்கைகள் |
movies |
திரைப்படத் தலைப்புகள், பதிப்புகள், தொகுப்புகள், தேடல், ஒழுங்குபடுத்துதல் |
shows |
தொடர்கள், பருவங்கள், அத்தியாயங்கள், தேடல், ஒழுங்குபடுத்துதல் |
music |
கலைஞர்கள், ஆல்பங்கள், பாடல்கள், தேடல், ஒழுங்குபடுத்துதல் |
sources |
மூலங்கள், Jackett மற்றும் Prowlarr பாலம், வெளியீடு தேடல் |
downloads |
பதிவிறக்கிகள், வரிசை, பார்த்த கோப்புகள், பாதை இணைப்புகள், tag-கள், நகல் தேர்வுகள் |
subtitles |
வசன மொழிகள், தளங்கள், பொருத்துதல், சேமித்தல் |
discover |
Explore, Popular, Search, People, Calendar, தலைப்புப் பக்கங்கள் |
suggest |
வரிசைகளையும் அடுக்குகளையும் தேர்ந்தெடுத்து வரிசைப்படுத்துதல் (backend மட்டும்) |
mediafiles |
பட்டியல் பதிவுகள், தேர்வு விதிகள், பெயரிடுதல், தரவுத் தொகுப்புகள், ஊடக விவரங்கள் |
importer |
கோப்பு இறக்குமதி: பிரித்தல், tag-கள், பொருத்துதல் (backend மட்டும்) |
library |
நூலக அடைவுகள், ஏற்றுக்கொள்ளுதல், பெயர் மாற்றுதல் (backend மட்டும்) |
metadata |
வெளித் தரவு client, இசைத் தேடல்கள், மதிப்பீட்டு வரிசைகள், trailers |
mediaservers |
Plex, Jellyfin, Emby ஆகியவற்றை மீண்டும் பார்க்கச் சொல்லுதல் |
accounts |
பயனர்கள், உள்நுழைவு, single sign-on, AI பயன்பாட்டு உள்நுழைவு, குழந்தை வரம்புகள், பார்வைத் தேர்வுகள் |
alerts |
அறிவிப்பு வழிகளும் அவை எப்போது பேசும் என்பதும் |
migrate |
முந்தைய பயன்பாடுகளிலிருந்து தரவைக் கொண்டுவருதல் |
arrapi |
Sonarr, Radarr பாணி API |
ai |
AI பயன்பாட்டு இணைப்புகள் (நிறுத்திவைக்கப்பட்டது) |
backups |
Backup எடுத்தல், வைத்திருத்தல், மீட்டமைத்தல் |
health |
நலச் சோதனைகள், doctor, ஆதரவுத் தொகுப்பு |
updates |
புதுப்பிப்புச் சோதனையும் கையொப்பமிட்ட புதுப்பிப்புப் பட்டியலும் |
setup |
முதல் இயக்க wizard |
அடுக்கு வரிசை
அடுக்கு வரிசை இணைப்புஒரு module தனக்குக் கீழ் அடுக்கை மட்டுமே import செய்யும். discover-ஐ எதுவும் import செய்வதில்லை. tools/structurecheck/allow.go தான் உண்மையின் மூலம்.
| அடுக்கு | Modules |
|---|---|
| 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 |
உங்கள் module-க்கு மேல் அடுக்கிலிருந்து ஏதாவது தேவைப்பட்டால், அதை import செய்ய வேண்டாம். மேல் module எளிய தரவைக் கீழே அனுப்பட்டும், அல்லது கீழ் module-இல் ஒரு சிறிய interface-ஐ வரையறுக்கவும், அதை wiring.go நிரப்பும்.
Route அல்லது module சேர்த்தல்
Route அல்லது module சேர்த்தல் இணைப்புபுதிய route
புதிய route இணைப்புஅதை module-இன் routes.go-இல் அதன் அனுமதியுடன் பதிவு செய்யவும். openapi.json routes-இலிருந்து உருவாகிறது, வேறுபாடு வந்தால் ஒரு சோதனை தோல்வியடையும். வெளியான பாதைகளும் புலப் பெயர்களும் அப்படியே இருக்கும். புலங்களைச் சேர்க்கலாம், பெயர் மாற்றக் கூடாது. பிறகு go run ./app/backend/tools/apidoc மூலம் API routes பக்கத்தை மீண்டும் எழுதவும்.
புதிய module
புதிய module இணைப்புமுதலில் உங்கள் மாற்றத்தை இருக்கும் 23-க்குள் பொருத்திப் பார்க்கவும், புதியதைச் சேர்க்கும் முன் ஒரு issue திறக்கவும். புதிய module-க்கு அதன் backend அடைவு (திரைகள் இருந்தால் lib/<module>/, app/tests/<module>/ உடன்), tools/structurecheck-இல் அடுக்கு வரிசையில் ஓர் இடம், wiring.go-இல் ஒரு வரி ஆகியவை தேவை.
இது வேலை செய்யவில்லை என்றால்
இது வேலை செய்யவில்லை என்றால் இணைப்புஅறிகுறி. TestModuleEdges தோல்வியடைகிறது.
காரணம். ஒரு module, தன் அடுக்கிலோ மேல் அடுக்கிலோ உள்ள ஒன்றை import செய்கிறது.
தீர்வு. மேல் module-இடமிருந்து எளிய தரவைக் கீழே அனுப்பவும், அல்லது wiring.go-இல் இணைக்கப்படும் சிறிய interface-ஐச் சேர்க்கவும்.
அறிகுறி. TestSQLOnlyInStore அல்லது TestTableOwnership தோல்வியடைகிறது.
காரணம். SQL ஒரு store*.go கோப்புக்கு வெளியே உள்ளது, அல்லது வேறு module-இன் அட்டவணையைத் தொடுகிறது.
தீர்வு. Query-ஐ உரிமையாளரின் store-க்கு நகர்த்தி, உரிமையாளரின் service-ஐ ID மூலம் அழைக்கவும்.
நிபுணர்களுக்கு
நிபுணர்களுக்கு இணைப்புமேலும் விதிகள்
- ஒரு module மற்றொரு module-இன் root package-ஐ மட்டுமே import செய்யும்.
- Store செயல்பாடுகள்
database.Querier-ஐ எடுக்கும். மற்ற module-இன் வரிசைகளை அதன் service வழியாக ID மூலம் படிக்கவும், நீண்ட ID பட்டியல்களைjson_each(?)உடன் ஒரே JSON array ஆக அனுப்பவும். settings,schedules,secrets,jobs,eventsஆகியவை core-க்கு உரியவை. ஒவ்வொரு அமைப்புக் குழுவுக்கும் ஒரு உரிமையாளர் module உண்டு. மற்றொரு module-இன் குழுவை மாற்ற, அதன் உரிமையாளரை அழைக்கவும்.- ஒவ்வொரு வெளி அழைப்பும்
core/outboundவழியாகச் செல்கிறது. - Core package-கள் மேலிருந்து கீழாக வரிசைகளில் அமைந்துள்ளன:
parts,webserverமற்றும்startup,logs,jobsமற்றும்model,outboundமற்றும்secrets, பிறகுdatabase,files,releasename. ஒரு core package தன் வரிசையையோ அதற்குக் கீழுள்ளதையோ மட்டுமே import செய்யும். - பெயர்கள்: Go கோப்புகள் சிறிய எழுத்தில் underscore உடன், Svelte பகுதிகள் PascalCase, TypeScript, docs, சோதனைகள், deploy கோப்புகள் kebab-case. Python கோப்புகள் import செய்யப்பட underscore பயன்படுத்தும்.
app/-இல் உள்ள அடைவுகள் சிறிய எழுத்தில், ஒரே சொல். - Code-இன் பெயர்களை மாற்றலாம், ஆனால் சேமிக்கப்படும் அல்லது அனுப்பப்படும் எதுவும் தன் பெயரை வைத்திருக்கும்: அட்டவணைகள், நெடுவரிசைகள், அமைப்பு விசைகள், JSON புலங்கள், பணிப் பெயர்கள், சுவிட்சுப் பெயர்கள்.
- கருத்துகளில் roadmap எண்கள், தேதிகள், பெயர்கள், em dash எதுவும் இல்லை.
பதிவு உரிமையாளர்கள்
| உரிமையாளர் | பதிவுகள் |
|---|---|
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, பகிரப்பட்ட வரிசைப் புலங்கள் |
சோதனைகள்
சோதனைகள் app/backend/tools/structurecheck-இல் உள்ளன. பெரும்பாலானவற்றுக்கு -tags structure தேவை.
| சோதனை | காப்பது |
|---|---|
TestTopLayout |
repo-வின் மேல் அடைவுகள் |
TestModuleSet, TestCoreSet, TestPackageMap |
internal/, internal/core/-இல் அனுமதிக்கப்பட்ட அடைவுகள் |
TestModuleEdges |
அடுக்கு வரிசை |
TestModuleImportsRootOnly |
root package import மட்டும் |
TestCoreImportsNoModule, TestCoreRowOrder, TestCoreNamesNoModuleTable |
Core imports, வரிசை ஒழுங்கு, பெயர்கள் |
TestSQLOnlyInStore, TestTableOwnership, TestSQLAllowlistShrinks, TestSeedSQLAllowlist |
SQL இடம், அட்டவணை உரிமையாளர்கள் |
TestGoFileNames, TestNoBannedPackageNames |
கோப்பு, package பெயர்கள் |
TestFileSizeCap, TestCorePackageSize |
கோப்பு மற்றும் core package அளவு |
TestCommentHygiene |
மேலே உள்ள கருத்து விதிகள் |
TestRouteTableUnchanged, TestMigrationsUnchanged, TestHeaderAndJSONLiteralsUnchanged |
ஒரு நகர்த்தல் எந்த route, migration, HTTP header பெயர், JSON விசையையும் மாற்றாது |
TestNoOldPageAddresses, TestNoOldPagesInTestsOrDocs |
பழைய பக்க முகவரிகள் code, சோதனைகள், docs-இல் மீண்டும் வராது |
TestNoDependencyBotConfig |
.github-இல் dependency bot கோப்பு இல்லை |
தொடர்புடையவை
தொடர்புடையவை இணைப்புHolyArrs இலவசம். இது உங்கள் நேரத்தைச் சேமித்திருந்தால், GitHub-இல் நட்சத்திரம் இடுங்கள், ஆதரவளியுங்கள் அல்லது எனக்கு ஒரு காபி வாங்கித் தாருங்கள்.