Commit Graph

444 Commits

Author SHA1 Message Date
Divarion-D
00cf0209e6 fix: Update documentation links to point to the correct repository 2026-03-15 00:19:34 +03:00
Divarion-D
756c20c8e6 feat: Remove the temporary script tmp_resolve.sh 2026-03-15 00:14:49 +03:00
Divarion-D
cfa72a8b13 Merge branch 'main' of https://github.com/Vateron-Media/XC_VM
# Conflicts:
#	src/crons/epg.php
2026-03-15 00:13:00 +03:00
Divarion-D
2a803f8a8f docs: Full Docsify documentation (EN + RU) and migration replacement
Full bilingual documentation for XC_VM has been added
with Docsify SPA and the outdated database migration has been replaced.

## Docsify

- docs/index.html — SPA entry point: en-us/ru-ru routing,
search, syntax highlighting (bash, PHP, SQL, nginx, JSON)

## EN Documentation

- docs/en/info/faq.md — FAQ (12 questions: streams, access, database, SSL, updates, permissions)
- docs/en/info/migration_guide.md — migration guide from other systems
- docs/en/info/update.md — step-by-step update via the web panel
- docs/en/info/watch_folder.md — Watch Folder: workflow, PTN/guessit parsers, configuration
- docs/en/updates_checklist.md — release preparation checklist

## RU Documentation (fully localized)

- docs/ru/README.md — Main Page
- docs/ru/_sidebar.md — Sidebar Navigation
- docs/ru/administration/ssl-generation.md — Self-Signed SSL Generation
- docs/ru/administration/update-system.md — Update Mechanism (PHP → Python → Post-Update)
- docs/ru/api/playlist.md — Playlist API with Error Codes
- docs/ru/api/system_api.md — System API (13 endpoints)
- docs/ru/api/xtreamcodes_api.md — XtreamCodes API (Authorization, Live, VOD, TV Series, EPG)
- docs/ru/builds/build_binaries.md — nginx build, nginx_rtmp, PHP-FPM, network
- docs/ru/builds/build_ffmpeg.md — Building FFmpeg 8.0 with NVENC/CUDA
- docs/ru/builds/build_system.md — MAIN vs. LB build system
- docs/ru/development/cli-tools.md — CLI: 26 commands, 25 crons, 8 daemons, database migrations
- docs/ru/info/faq.md — FAQ (12 questions)
- docs/ru/info/migration_guide.md — Migration guide
- docs/ru/info/update.md — Updating via the control panel
- docs/ru/info/watch_folder.md — Watch Folder
- docs/ru/updates_checklist.md — Release checklist

## Migrations

- Removed: 001_drop_watch_folders_plex_token.sql (Deprecated)
- Added: 001_update_crontab_filenames.sql — removes the .php suffix from filenames in the crontab table (switches to console.php commands)
2026-03-15 00:02:19 +03:00
Divarion-D
774d2318f3 feat: Migrate legacy CLI scripts to console.php and extract streaming middleware
CLI consolidation:
- Delete 13 legacy CLI scripts from includes/cli/ (ondemand, proxy, queue, record, scanner, signals, startup, thumbnail, tools, update, watchdog, plex_item, watch_item)
- Convert status and tools entry points to thin proxies that delegate to console.php
- Update all shell_exec() calls across admin controllers, views, and API layer to use console.php command syntax instead of direct CLI file paths
- Update src/service to launch daemons via console.php (signals, watchdog, queue, cache_handler, startup)
- Update Python src/update script to call console.php update instead of includes/cli/update.php
- Update test_installer to use console.php startup

Streaming deduplication:
- Extract StreamAuthMiddleware — common response headers and token decryption shared by live/vod/timeshift
- Extract ShutdownHandler — unified shutdown logic replacing 3 duplicate function shutdown() blocks
- Refactor live.php, vod.php, timeshift.php to use new middleware classes
- Add streaming micro-router to www/stream/index.php as fallback entry point

Routing fixes:
- Fix admin index.php redirect to use relative path (supports access code prefixes)
- Add access code root redirect in public/index.php to prevent broken CSS/JS asset resolution
- Fix init.php for CLI compatibility: guard $_SERVER access, define PHP_ERRORS safely

Migrations:
- 001_update_crontab_filenames.sql — strip .php suffix from crontab filenames
- Fix cache.php view query to match new filename format (cache_engine instead of cache_engine.php)
2026-03-14 23:57:33 +03:00
Danil
2d7fdba7c5 Merge pull request #96 from icleitoncosta/hotfix/not-gen-epg
fix: Improve bouquet handling in force reload EPG
2026-03-12 21:44:52 +03:00
Cleiton Costa
947b8bc569 style: Removed invalid variable 2026-03-12 15:34:33 -03:00
Divarion-D
aefd1bcbb9 Phase 11: Unify API layer — route all API endpoints through Front Controller
Steps 11.1–11.6: migrated all standalone API entry points to controller classes
dispatched via the Front Controller, then deleted the legacy PHP files.

Controllers created:
- PlayerApiController (player_api.php, 12 actions + numeric aliases)
- Enigma2ApiController (enigma2.php + xplugin.php)
- PlaylistApiController (playlist.php)
- EpgApiController (epg.php)
- InternalApiController (api.php, ~40 server-to-server actions)

Nginx changes (MAIN + LB configs):
- Add location block for streaming API endpoints → FC with XC_SCOPE=api
- Add location block for internal API (/api.php) → FC with XC_API=internal
- Change 6 rewrite rules from break→last for deleted file URLs
- Remove allow/deny from /api.php location — auth handled by PHP
  (password + IP whitelist + brute-force guard)

Front Controller (public/index.php):
- Add section 3a: REST API dispatch (XC_SCOPE=includes/api/*)
- Add section 3b: Streaming API dispatch (XC_SCOPE=api, XC_API=*)
- Move autoloader require to top (section 1b) for all code paths
- Controller map: endpoint name → controller class → init → dispatch

Bootstrap changes:
- www/init.php, www/stream/init.php: replace FC_API_NAME constant with
  direct $rFilename variable (set by FC before require, checked via isset)

Bug fixes:
- PlayerApiController: fix 3 PHP 8 warnings ($rBouquets undefined,
  missing 'rating'/'subtitle' array keys in get_vod_info)
- Fix server-to-server API calls blocked by nginx deny all (api_url_ip
  uses external server IP, not 127.0.0.1)

Deleted files (8):
- www/player_api.php, www/enigma2.php, www/xplugin.php
- www/epg.php, www/playlist.php, www/api.php
- includes/api/admin/index.php, includes/api/reseller/index.php

New files:
- tools/test_player_api.sh — comprehensive Player API test suite (13 sections)
2026-03-12 21:26:20 +03:00
Cleiton Costa
bf3614b45b fix: Improve bouquet handling in EPG cron job 2026-03-12 15:26:00 -03:00
Divarion-D
418637f70d Moved admin to public/Views/admin 2026-03-11 19:46:02 +03:00
Divarion-D
1394d89b1a Refactoring webplayer 2026-03-09 19:10:59 +03:00
Divarion-D
a29d806235 Migrating from JW Player to Video.js 2026-03-09 18:11:08 +03:00
Divarion-D
618fbf9530 New agents and instructions for AI have been added 2026-03-09 17:31:12 +03:00
Divarion-D
83c5fa3a89 Moved player to public/Views/player 2026-03-09 17:29:46 +03:00
Divarion-D
1c59eefb99 Updating FFmpeg variables and improving request handling in the API 2026-03-09 00:03:18 +03:00
Divarion-D
eb5f30b7af Moved reseler to public/Views/reseler 2026-03-08 22:13:35 +03:00
Divarion-D
289189a8ad Merge branch 'main' of https://github.com/Vateron-Media/XC_VM 2026-03-08 16:19:36 +03:00
Divarion-D
8752c602ef Refactor global variable usage and clean up code
- Updated multiple files to use global variables for `$db` and `$rSettings` instead of calling `SettingsManager::getAll()` repeatedly.
- Removed unnecessary variable assignments and improved code readability.
- Deleted unused scripts for cleaning and scanning PHP file headers.
- Removed a file containing PHP syntax errors.
- Adjusted various repository and service classes to streamline database interactions.
2026-03-08 16:19:30 +03:00
Danil
68ff1b268b Merge pull request #89 from eoghan2t9/main
Modify Redis configuration in install script fix 500 error with v1.2.16
2026-03-08 14:49:50 +03:00
Danil
8d8f51c19d Merge pull request #92 from icleitoncosta/dropbox
fix: Fixed dropbox_token table field
2026-03-08 14:48:59 +03:00
Divarion-D
b790e5282c Stage 8 has been completed 2026-03-07 21:53:45 +03:00
Cleiton Costa
a98db9eb89 fix: Improovment dropbox_token length 2026-03-07 00:56:32 -03:00
Divarion-D
a34f906c14 Complete stage 8.1 and 8.2 2026-03-03 20:00:34 +03:00
Eoghan Cunningham
00193b31ad Merge branch 'Vateron-Media:main' into main 2026-03-02 09:10:58 +00:00
Divarion-D
39ef31f19f Moved interfaces/Http -> public folder 2026-02-28 18:47:56 +03:00
Divarion-D
ccf1291dc4 Stage 7 has been completed 2026-02-27 22:32:39 +03:00
Divarion-D
4fd86ce084 Stage 6 has been completed, and some classes have been merged into one 2026-02-24 21:02:41 +03:00
Eoghan Cunningham
eb1ed5c80a Merge branch 'Vateron-Media:main' into main 2026-02-23 09:17:23 +00:00
Divarion-D
1087208756 Steps 4 and 5 are complete. 2026-02-22 15:02:41 +03:00
Eoghan Cunningham
4ddc273c87 Fix typo in access codes label 2026-02-22 10:43:43 +00:00
Eoghan Cunningham
c7aae1050f Modify Redis configuration in install script fix 500 error with v1.2.16
Updated Redis configuration in install script.
2026-02-22 09:44:11 +00:00
Divarion-D
2710c40724 Phase 3 is complete. 2026-02-21 19:59:51 +03:00
Divarion-D
89ed319afc Refactor permission management and authentication processes
- Moved advanced permissions loading to a separate file for better organization and maintainability.
- Updated permission checks to utilize a centralized Authorization class for improved code clarity.
- Refactored login processes in both admin and reseller APIs to use a dedicated Authenticator class, streamlining the authentication logic.
- Introduced RedisManager for handling Redis connections and signal management.
- Adjusted error reporting settings in Logger to reduce verbosity in production.
- Enhanced playlist generation logic to correctly handle proxy IPs.
- Improved handling of optional parameters in streaming URL generation to prevent potential errors.
1.2.16
2026-02-20 21:53:34 +03:00
Divarion-D
a279fde746 Refactor database interactions and logging mechanisms across streaming and playlist modules
- Replaced instances of `Database` with `DatabaseHandler` in `playlist.php` and `xplugin.php` for improved database handling.
- Updated logging calls from `StreamingUtilities::clientLog` to `DatabaseLogger::clientLog` in various stream handling files (`auth.php`, `live.php`, `vod.php`, `timeshift.php`, `rtmp.php`) to centralize logging functionality.
- Refactored bruteforce checking methods to utilize `BruteforceGuard` instead of `CoreUtilities` for consistency and better encapsulation.
- Enhanced error handling by ensuring all relevant error logs are captured through the new logging structure.
2026-02-20 19:56:08 +03:00
Divarion-D
7adaa6a94e Bump version to 1.2.16 2026-02-20 19:29:02 +03:00
Divarion-D
4fe9c5180d Fixed a bug when creating releases 2026-02-18 21:43:31 +03:00
Divarion-D
13fbd59c38 Added a test installer for different distributions 2026-02-18 21:42:46 +03:00
Divarion-D
d258d0f2a4 Merge branch 'main' of https://github.com/Vateron-Media/XC_VM 2026-02-16 20:42:38 +03:00
Divarion-D
6122302524 Updated text messages in the interface and fixed load during mass operations with streams 2026-02-16 20:42:35 +03:00
Danil
e55c37fbd0 Merge pull request #83 from siffdk/main
Update vod.php
2026-02-16 19:57:49 +03:00
Divarion-D
507f71cef0 Moved AsyncFileOperations.php 2026-02-16 17:52:34 +03:00
Divarion-D
b780b4fd08 Refactor async process monitoring and file I/O
Reduce filesystem pressure by caching process checks.
Replace blocking sleeps with non-blocking waits.
Move live, timeshift and VOD file operations to async I/O.
Improve segment encryption wait logic with async monitoring.
Lower CPU usage and improve stream responsiveness.
2026-02-15 20:23:07 +03:00
siffdk
22cb83ec22 Update vod.php
make vod work if there are serval redirects in direct stream mode.
2026-02-15 14:44:25 +01:00
Divarion-D
cf35f6ea25 Bump version to 1.2.15 1.2.15 2026-02-14 22:29:08 +03:00
Divarion-D
bb5c6cc6ac (root_signals) Fixed local IP blocking 2026-02-09 16:54:00 +03:00
Divarion-D
b536f33ee4 Refactoring 2026-02-09 16:49:42 +03:00
Divarion-D
3ccb1ae6d8 Added (migrate) providers 2026-02-06 20:44:33 +03:00
Divarion-D
3ad500b802 UPD Logo and favicon 2026-02-06 20:12:40 +03:00
Divarion-D
03522a3aa7 Fix(Import Series) Transcoding profiles were not displayed 2026-02-06 18:15:45 +03:00
Divarion-D
fa905dc1a3 Fixed (CoreUtilities) "Cannot access string type offset in string" 2026-02-03 19:49:00 +03:00