feat: Add comprehensive documentation suite and reorganize project structure

- Created complete documentation in docs/ directory
- Added PROJECT_OVERVIEW.md with feature highlights and getting started guide
- Added ARCHITECTURE.md with system design and technical details
- Added SECURITY.md with comprehensive security implementation guide
- Added DEVELOPMENT.md with development workflows and best practices
- Added DEPLOYMENT.md with production deployment instructions
- Added API.md with complete REST API documentation
- Added CONTRIBUTING.md with contribution guidelines
- Added CHANGELOG.md with version history and migration notes
- Reorganized all documentation files into docs/ directory for better organization
- Updated README.md with proper documentation links and quick navigation
- Enhanced project structure with professional documentation standards
This commit is contained in:
SamiAhmed7777
2025-10-21 00:39:45 -07:00
commit 0b7e2d0a5b
6080 changed files with 1332936 additions and 0 deletions

102
api/test.php Normal file
View File

@@ -0,0 +1,102 @@
<?php
define('_ISVALID', true);
include_once '../f_core/config.core.php';
// Load API configuration
$api_config = require_once __DIR__ . '/config.php';
// Test results array
$tests = [];
// Test 1: Check if config file exists and is readable
$tests['config_file'] = [
'name' => 'Configuration File',
'status' => file_exists(__DIR__ . '/config.php') ? 'OK' : 'FAIL',
'message' => file_exists(__DIR__ . '/config.php') ? 'Config file exists' : 'Config file not found'
];
// Test 2: Verify bot token
$tests['bot_token'] = [
'name' => 'Bot Token',
'status' => (!empty($api_config['telegram']['bot_token']) && $api_config['telegram']['bot_token'] !== '123456789:ABCdefGHIjklmNOPQRstuvwxyz') ? 'OK' : 'FAIL',
'message' => (!empty($api_config['telegram']['bot_token']) && $api_config['telegram']['bot_token'] !== '123456789:ABCdefGHIjklmNOPQRstuvwxyz') ? 'Bot token is set' : 'Please set your bot token in config.php'
];
// Test 3: Verify channel ID
$tests['channel_id'] = [
'name' => 'Channel ID',
'status' => (!empty($api_config['telegram']['channel_id']) && $api_config['telegram']['channel_id'] !== 'YOUR_CHANNEL_ID') ? 'OK' : 'FAIL',
'message' => (!empty($api_config['telegram']['channel_id']) && $api_config['telegram']['channel_id'] !== 'YOUR_CHANNEL_ID') ? 'Channel ID is set' : 'Please set your channel ID in config.php'
];
// Test 4: Test Telegram API connection and channel access
function testTelegramAPI($bot_token, $channel_id) {
// First test bot token
$url = "https://api.telegram.org/bot{$bot_token}/getMe";
$result = file_get_contents($url);
if ($result === false) {
return ['status' => 'FAIL', 'message' => 'Could not connect to Telegram API'];
}
$response = json_decode($result, true);
if (!$response['ok']) {
return ['status' => 'FAIL', 'message' => 'Invalid bot token'];
}
// Then test channel access
$url = "https://api.telegram.org/bot{$bot_token}/getChat?chat_id={$channel_id}";
$result = file_get_contents($url);
if ($result === false) {
return ['status' => 'FAIL', 'message' => 'Could not access channel'];
}
$response = json_decode($result, true);
return [
'status' => $response['ok'] ? 'OK' : 'FAIL',
'message' => $response['ok'] ? 'Successfully connected to Telegram API and channel' : 'Failed to access channel. Make sure bot is an admin.'
];
}
$telegram_test = testTelegramAPI($api_config['telegram']['bot_token'], $api_config['telegram']['channel_id']);
$tests['telegram_api'] = [
'name' => 'Telegram API & Channel Access',
'status' => $telegram_test['status'],
'message' => $telegram_test['message']
];
// Test 5: Check database connection
$tests['database'] = [
'name' => 'Database Connection',
'status' => isset($class_database) ? 'OK' : 'FAIL',
'message' => isset($class_database) ? 'Database connection is available' : 'Database connection failed'
];
// Test 6: Check file permissions
$tests['permissions'] = [
'name' => 'File Permissions',
'status' => is_writable(__DIR__) ? 'OK' : 'FAIL',
'message' => is_writable(__DIR__) ? 'Directory is writable' : 'Directory is not writable'
];
// Output test results
echo "<h2>EasyStream Telegram Channel Setup Test</h2>";
echo "<table border='1' cellpadding='5'>";
echo "<tr><th>Test</th><th>Status</th><th>Message</th></tr>";
foreach ($tests as $test) {
$color = $test['status'] === 'OK' ? 'green' : 'red';
echo "<tr>";
echo "<td>{$test['name']}</td>";
echo "<td style='color: {$color}'>{$test['status']}</td>";
echo "<td>{$test['message']}</td>";
echo "</tr>";
}
echo "</table>";
// Additional instructions
echo "<h3>Next Steps:</h3>";
echo "<ol>";
echo "<li>Make sure all tests pass (show as OK)</li>";
echo "<li>If any test fails, follow the message instructions to fix it</li>";
echo "<li>Once all tests pass, set up the cron job to run auto_post.php every 5 minutes</li>";
echo "<li>Monitor the auto_post.log file for any errors</li>";
echo "</ol>";