Divarion-D
f85b12e770
fix(tmdb): restructure include paths to match actual directory layout
...
- Fix TmdbClient constructor require path for config.php
- Update all include_once paths to use __DIR__ relative paths
- Move files from nested config/config/ and roles/roles/ to correct locations
- Remove duplicate files from old incorrect paths
2026-04-12 12:24:42 +03:00
Divarion-D
6cc892f9a7
refactor: eliminate proxy functions, migrate to direct class method calls
...
312 files changed, 2866 insertions(+), 24110 deletions(-)
Proxy function replacements (130+ functions):
- goHome() -> AdminHelpers::goHome()
- checkPermissions() -> PageAuthorization::checkPermissions()
- getBouquet/getCategory/etc -> Service::getById()
- deleteStream/deleteLine/etc -> Repository/Service::delete()
- APIRequest/systemapirequest -> ApiClient::request/systemRequest()
- prepareArray/preparecolumn -> QueryHelper methods
- confirmIDs/parserelease/etc -> AdminHelpers methods
- getSettings/clearSettingsCache -> SettingsManager methods
- destroySession -> SessionManager::clearContext()
- getMag/getEnigma/deleteMAG/etc -> MagService/EnigmaService
- getSeriesTrailer/getMovieTMDB/etc -> TMDbService methods
Removed legacy files:
- src/includes/admin.php (main proxy hub)
- src/includes/libs/ (35+ files moved to core/modules)
- src/includes/python/ (moved to bin/python)
- src/includes/api/ (moved to Controllers)
- src/includes/ts.php, reseller_api.php
- src/infrastructure/legacy/admin_proxies.php
- tools/run_scan.sh, update_redis_conf.sh
Additional fixes:
- SQL query placeholder migration (BouquetService, CategoryService)
- PHP 8.x null-safe access (live.php, server_view.php, stream.php)
- TmdbCron: extracted variable for repeated similar_text calls
2026-04-09 21:24:48 +03:00
Divarion-D
e304612605
feat: add new core/domain architecture classes and migrated libraries
...
New core classes:
- PageAuthorization, QueryHelper, ApiClient, AdminHelpers
- Logger, Translator, XmlStringStreamer, DropboxClient
- GithubReleases, MobileDetect
New domain classes:
- M3UParser, M3UEntry, TicketRepository, TMDbService
Migrated libraries:
- TMDb SDK → modules/tmdb/lib/
- Python scripts → bin/python/
- permissions.php → config/
- Table controllers → public/Controllers/
- AsyncFileOperations, TimeshiftClient → streaming/
New docs:
- translations.md (en/ru)
2026-04-09 21:23:16 +03:00
Divarion-D
c34392d389
feat(WatchItem): enable transcoding based on transcode profile ID
2026-04-07 15:43:48 +03:00
Divarion-D
738973c5db
docs(php): add standardized file headers across codebase
...
- Add @author, @copyright, @link, @version, @license to 399 PHP files
- MERGE mode: inject metadata into 243 existing docblocks (preserving docs)
- INSERT mode: create new docblocks for 156 files without headers
- Skip 3 files that already had correct headers
- Exclude third-party libs (TMDb, mobiledetect, Dropbox, etc.)
- Exclude bin/, ministra/, content/, tmp/, resources/, module views
- Update tools/add_headers.php to v2 with MERGE strategy
2026-04-05 22:38:36 +03:00
Divarion-D
02549fe824
fix(php): fix null/undefined variable access across codebase
2026-04-05 22:09:22 +03:00
Divarion-D
fbd44b3abf
fix: module controllers viewsPath and layout migration
...
- Fix viewsPath: dirname(__DIR__)/modules/X/views -> __DIR__/views
- Add layoutsPath and require_once for admin.php/footer.php
- Replace raw include header/footer with renderUnifiedLayoutHeader/Footer
- WatchController: add layout to all 5 GET methods (index, edit, settings, output, record)
2026-03-18 20:33:25 +03:00
Divarion-D
afe72ddc04
fix(tmdb): use include_once/require_once to prevent redeclarations
...
- tmdb.php: replace include → include_once for all TMDb sub-files
- TmdbCron: replace require → require_once for tmdb.php and tmdb_release.php
- Prevents 'Cannot redeclare' errors when multiple entry points load TMDB
2026-03-16 22:33:32 +03:00
Divarion-D
1cdd594c3e
refactor(cli): move module commands from cli/ to modules/
...
- Move PlexCronJob, PlexItemCommand → modules/plex/
- Move TmdbCronJob, TmdbPopularCronJob → modules/tmdb/
- Move WatchCronJob, WatchItemCommand → modules/watch/
- Delete originals from cli/Commands/ and cli/CronJobs/
- Module commands now registered via ModuleInterface::registerCommands()
- TmdbCronJob: use require_once __DIR__ for module-local includes
2026-03-16 22:33:32 +03:00
Divarion-D
db5c4d2e76
refactor(modules): update all modules to ModuleInterface v2
...
- Replace registerCrons() → registerCommands(CommandRegistry) in all modules
- Add empty install()/uninstall() methods to all modules
- Simplify module.json: remove 'dependencies' field (metadata only)
- Plex: register PlexCronJob + PlexItemCommand via registerCommands()
- Tmdb: register TmdbCronJob + TmdbPopularCronJob via registerCommands()
- Watch: register WatchCronJob + WatchItemCommand via registerCommands()
- Fingerprint, Magscan, Ministra, TheftDetection: empty registerCommands()
2026-03-16 22:33:31 +03:00
Divarion-D
3d8abedafd
Stage 8 has been completed
2026-03-07 21:53:45 +03:00
Divarion-D
80a25d3140
Complete stage 8.1 and 8.2
2026-03-03 20:00:34 +03:00
Divarion-D
e2c9cb97ce
Stage 7 has been completed
2026-02-27 22:32:39 +03:00
Divarion-D
afa55322e2
Stage 6 has been completed, and some classes have been merged into one
2026-02-24 21:02:41 +03:00
Divarion-D
981de7f750
Steps 4 and 5 are complete.
2026-02-22 15:02:41 +03:00