Divarion-D
84cab831bf
feat(modules): enhance module upload UI with drag-and-drop support and AJAX handling
2026-04-11 22:46:06 +03:00
Divarion-D
d22b47bb65
feat(contributors): update the contributors table with new data and improve the update script
2026-04-11 22:08:14 +03:00
Divarion-D
fb2bd8129c
feat(tools): add Redis diagnostics tool
2026-04-11 22:06:04 +03:00
Divarion-D
ed66efdf5d
feat(modules): add module system with admin UI
2026-04-11 22:06:04 +03:00
Divarion-D
50dc167a34
refactor(redis): add type hints, PHPDoc, null-safety and health-check ping
2026-04-11 22:06:04 +03:00
Divarion-D
f8f465209c
fix(streaming): add null coalescing guards for undefined array keys
2026-04-11 22:06:04 +03:00
Divarion-D
a95f729173
fix: check isset api_key before ctype_xdigit in UserService
2026-04-10 20:31:22 +03:00
Divarion-D
f404afc4a0
fix: check headers_sent() before setcookie in Translator
2026-04-10 20:31:22 +03:00
Divarion-D
754b3f2e34
docs: update ARCHITECTURE.md after Phase 15 completion
2026-04-10 20:31:22 +03:00
Divarion-D
ddaf76e0ef
remove obsolete redis-server_6.2.2 binary
2026-04-10 20:31:22 +03:00
Divarion-D
042706e905
installer: use static redis.conf instead of inline template
2026-04-10 20:22:18 +03:00
Divarion-D
4f24913054
add static redis.conf template to src/bin/redis
2026-04-10 20:22:18 +03:00
Divarion-D
7d209643ae
docs: update MIGRATION.md - delete completed phases 14 and 15, update contents
2026-04-09 21:48:26 +03:00
Divarion-D
534ae142f9
docs: update MIGRATION.md — add Phase 16.5, remove completed items
2026-04-09 21:35:57 +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
a5f1472bf1
Add common JavaScript utilities for admin pages
...
- Introduced a new common.js file containing essential functions for admin page operations.
- Implemented utilities for modal handling, error/success notifications, domain/IP validation, session management, and SPA navigation.
- Added functions for managing tooltips, search functionality, and URL parameter manipulation.
- Enhanced user experience with toast notifications and modal interactions.
2026-04-07 22:18:23 +03:00
Divarion-D
59bfb6f942
Add EventDispatcher integration to bootstrap and module loader
...
- Updated the XC_Bootstrap class to include the EventDispatcher class in the service container.
- Modified the ModuleLoader class to utilize the EventDispatcher for subscribing to events, enhancing the event handling mechanism.
2026-04-07 21:48:20 +03:00
Divarion-D
496f9883ff
refactor(GitHubReleases): replace getNextVersion with getLatestVersion for direct updates
2026-04-07 21:23:00 +03:00
Divarion-D
8af3fa7331
fix(view): improve dark mode handling in server view cards
2026-04-07 21:05:53 +03:00
Divarion-D
a64d59b15c
fix(docs): update console paths in documentation and scripts
2026-04-07 20:49:44 +03:00
Divarion-D
ac0c3753e7
fix(docs): update release checklist to include disabling development mode
2026-04-07 20:26:06 +03:00
Divarion-D
098bd17c37
Merge branch 'main' of https://github.com/Vateron-Media/XC_VM
2026-04-07 20:07:53 +03:00
Divarion-D
7e9b233ca1
fix(docs): update supported OS section and clarify installation recommendations
2026-04-07 20:07:49 +03:00
Danil and GitHub
9f1954d204
Merge pull request #104 from Vateron-Media/feature/split-binaries
...
Feature/split binaries
2026-04-07 19:58:30 +03:00
Divarion-D
07789f7a33
Rename test_installer to install
2026-04-07 19:55:28 +03:00
Divarion-D
1657cc7afd
feat(lb): download distribution-specific binaries from GitHub
2026-04-07 19:49:44 +03:00
Divarion-D
c47690dd42
build: Makefile cleanup — UPDATE_EXCLUDE_DIRS, rewrite update targets, simplify permissions
2026-04-07 19:49:29 +03:00
Divarion-D
34cd31483e
chore: auto_install.sh — switch from install to test_installer
2026-04-07 19:49:19 +03:00
Divarion-D
f0ae4645ac
refactor: installer overhaul — remove php-ssh2, GitHub binary downloads, security hardening
2026-04-07 19:48:49 +03:00
Divarion-D
c6e96ffa92
Merge branch 'main' into feature/split-binaries
2026-04-07 17:26:09 +03:00
Divarion-D
62f16a2b2f
feat(docs): Added a section about the development workflow using SFTP
2026-04-07 15:57:55 +03:00
Divarion-D
c34392d389
feat(WatchItem): enable transcoding based on transcode profile ID
2026-04-07 15:43:48 +03:00
Divarion-D
6865257fde
fix(docs): update release preparation checklist for clarity and automation
2026-04-06 22:08:35 +03:00
Divarion-D
1719c926c0
Bump version to 2.0.2
2026-04-06 21:54:11 +03:00
Divarion-D
cc4d52fd97
style(docs): update index.html with dark theme and improved sidebar styles
2026-04-06 21:48:18 +03:00
Divarion-D
41b8de534f
fix(RadioService): handle potential null values in bouquet and category lists
2026-04-06 21:11:38 +03:00
Divarion-D
819be1e24a
fix(issue-templates): update issue links to point to the correct repository
2026-04-06 21:09:09 +03:00
Divarion-D
296e0b77c5
fix(issue-templates): change version field from dropdown to input for better flexibility
2026-04-06 21:03:50 +03:00
Divarion-D
e02c59bca4
docs(templates): overhaul all GitHub issue templates
...
bug_report.yml:
- Add required version dropdown (XC_VM 2.0.1/2.0.0/1.x)
- Add steps to reproduce (was completely missing)
- Add expected vs actual behavior fields
- Add build type (MAIN/LoadBalancer)
- Add severity and affected area dropdowns
- Add environment info section
- Fix misnamed howtoreplicate field
security.yml:
- Add public disclosure warning with link to GH Security Advisories
- Add required version dropdown (multi-select)
- Add severity classification (CVSS-like)
- Add affected component dropdown
- Add suggested fix field
- Replace misleading confidentiality checkbox
feature_request.yml:
- Add affected area dropdown for triage
- Add alternatives considered field
- Improve field descriptions
other.yml:
- Add category dropdown (question/config/performance/etc)
- Add optional version field
config.yml (new):
- Disable blank issues
- Add private security advisory link
- Add documentation link
2026-04-06 21:01:08 +03:00
Divarion-D
2b5a85a142
refactor(admin): extract curl result + propagate rModal in layout
...
- systemapirequest(): store curl_exec result before return
- renderUnifiedLayoutHeader(): propagate $rModal to GLOBALS
so renderUnifiedLayoutFooter() can access it
2026-04-06 20:40:18 +03:00
Divarion-D
0f81858541
fix(stream): replace truthy checks with empty() in InternalApiController
...
Prevent undefined index notices when request fields are missing.
Affects user_agent, http_proxy, cookies, headers checks in
stream probe/prebuffer logic.
2026-04-06 20:39:53 +03:00
Divarion-D
d0825bd66c
fix(api): null-safe access for stream codec metadata
2026-04-06 20:39:12 +03:00
Divarion-D
b59040d359
refactor: remove deprecated legacy resize image handlers
2026-04-06 19:42:15 +03:00
Divarion-D
74362ff70b
fix(api): handle null from probeSource() to prevent array offset on null
2026-04-06 19:37:40 +03:00
Divarion-D
a3e203bcef
fix(table): add is_array() guard for codecs in streams and radios blocks
...
Blocks 1 (streams) and 2 (radios) were missing the || !is_array()
guard that blocks 3 (movies) and 4 (episodes) already had.
When codecs.video or codecs.audio is a string, isset() returns true
but accessing ["width"] or ["codec_name"] on a string causes TypeError.
2026-04-06 19:33:24 +03:00
Divarion-D
0cdb4d9e5a
fix(table): use is_array() guard for codecs.video/audio in all 4 blocks
...
isset() returns true when codecs.audio is a string (not array),
so the fallback never triggers and accessing ["codec_name"]
on a string causes TypeError. Added || !is_array() check.
2026-04-06 19:23:25 +03:00
Divarion-D
54adf39854
fix(admin): prevent TypeError and warnings on undefined array keys
...
- api.php:2503: replace ?: with ?? for optional RequestManager keys
(http_proxy, cookies, headers, user_agent)
- table.php: json_decode can return string instead of array when
stream_info contains non-object JSON; add is_array() guard in all 4
occurrences to prevent "Cannot access offset of type string on string"
2026-04-06 18:59:09 +03:00
Divarion-D
f1a5909124
chore: misc fixes — m3u improvements, review page update, cleanup add_headers
...
- m3u.php: minor output improvements
- review.php: admin view updates
- Remove obsolete tools/add_headers.php
- test_release.sh: extend sync logic
2026-04-06 18:44:05 +03:00
Divarion-D
5a4768b25e
refactor(resize): add admin resize route, unify 3 duplicate handlers into resize_body.php
...
- Create AdminResizeController + register GET /resize in admin routes
- Extract unified resize_body.php from 3 near-identical legacy files
- Player/Reseller controllers now set config vars and require resize_body.php
- Remove duplicated code from player_resize_body.php and reseller_resize_body.php
- Update ARCHITECTURE.md legacy directory documentation
2026-04-06 18:43:53 +03:00