Commit Graph
15 Commits
Author SHA1 Message Date
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