Xtream Code Club -

.right-sidebar { width: 300px; background: white; border-left: 1px solid #e0e0e0; overflow-y: auto; padding: 20px; }

async getShortEPG(streamId) { try { const response = await axios.get(`${this.baseUrl}/player_api.php`, { params: { username: this.username, password: this.password, action: 'get_short_epg', stream_id: streamId, limit: 5 } }); return response.data; } catch (error) { return []; } } }

async getCategories() { try { const [live, vod, series] = await Promise.all([ axios.get(`${this.baseUrl}/player_api.php`, { params: { username: this.username, password: this.password, action: 'get_live_categories' } }), axios.get(`${this.baseUrl}/player_api.php`, { params: { username: this.username, password: this.password, action: 'get_vod_categories' } }), axios.get(`${this.baseUrl}/player_api.php`, { params: { username: this.username, password: this.password, action: 'get_series_categories' } }) ]); return { live: live.data, vod: vod.data, series: series.data }; } catch (error) { throw error; } } xtream code club

.search-bar input { width: 100%; padding: 10px; border: 1px solid #ddd; border-radius: 5px; font-size: 14px; }

.channel-card:hover { transform: translateY(-5px); box-shadow: 0 5px 20px rgba(0,0,0,0.15); } .right-sidebar { width: 300px

async authenticate() { try { const response = await axios.get(`${this.baseUrl}/player_api.php`, { params: { username: this.username, password: this.password } }); if (response.data.user_info) { this.sessionId = response.data.user_info.session_id; return { success: true, data: response.data }; } return { success: false, error: 'Authentication failed' }; } catch (error) { return { success: false, error: error.message }; } }

::-webkit-scrollbar { width: 8px; height: 8px; } border-left: 1px solid #e0e0e0

::-webkit-scrollbar-thumb { background: #888; border-radius: 4px; }