Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
39 changes: 39 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
# VORTEX

## 🌟 Features

- **🎬 Movie & TV Show Streaming**: Browse and watch thousands of movies and TV shows
- **🔥 Trending Content**: Discover the most popular and trending media
- **📱 Progressive Web App**: Installable on mobile devices with offline capabilities
- **🎯 Genre Filtering**: Filter content by genres (Action, Comedy, Drama, Thriller, etc.)
- **🔍 Smart Search**: Search for movies and TV shows with real-time suggestions
- **📋 My List**: Save your favorite content for later viewing
- **🎨 Dark Theme**: Modern dark UI for comfortable viewing
- **📱 Responsive Design**: Optimized for all screen sizes
- **⚡ Fast Loading**: Optimized with minified assets and lazy loading
- **🌐 Multi-language Support**: Google Translate integration

- ## 📖 Usage

### For Users
1. Open the application in your web browser
2. Browse trending content or use the search bar
3. Click on any movie/TV show to view details
4. Click "Watch Now" to start streaming
5. Add content to your list using the "Add to List" button

## 📱 Progressive Web App (PWA)

The app includes PWA features:
- **Installable**: Can be installed on mobile devices
- **Offline Support**: Basic offline functionality
- **Fast Loading**: Cached assets for quick loading
- **Native Feel**: App-like experience on mobile

- ## 📄 License

This project is for educational purposes only. Please respect copyright laws and content ownership.

## ⚠️ Disclaimer

This application is a demonstration of web development skills and uses publicly available APIs. It does not host or distribute copyrighted content. Users are responsible for complying with local laws and regulations regarding media consumption.
8 changes: 6 additions & 2 deletions build.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,15 @@ import JavaScriptObfuscator from 'javascript-obfuscator';
import CleanCSS from 'clean-css';

const root = process.cwd();
const distDir = path.join(root, 'dist');

const inJs = path.join(root, 'script.js');
const inCss = path.join(root, 'styles.css');
const outJs = path.join(root, 'script.min.js');
const outCss = path.join(root, 'styles.min.css');
const outJs = path.join(distDir, 'script.min.js');
const outCss = path.join(distDir, 'styles.min.css');

// Ensure dist directory exists
await fs.mkdir(distDir, { recursive: true });

async function buildJs() {
const js = await fs.readFile(inJs, 'utf8');
Expand Down
10 changes: 7 additions & 3 deletions movie-detail.html
Original file line number Diff line number Diff line change
Expand Up @@ -237,13 +237,13 @@ <h4>Countries</h4>
}

// Server 2: 2embed.cc (tmdbId)
// Docs show: movie => /embed/{tmdbId}, tv => /embedtvfull/{tmdbId}
// Docs show: movie => /embed/{tmdbId}, tv => /embedtv/{tmdbId}
if (server === 2) {
if (!item.tmdbId) return buildEmbedUrl(1, item, season, episode);

return item.type === 'movie'
? `https://www.2embed.cc/embed/${item.tmdbId}`
: `https://www.2embed.cc/embedtvfull/${item.tmdbId}?s=${season}&e=${episode}`;
: `https://www.2embed.cc/embedtv/${item.tmdbId}?s=${season}&e=${episode}`;
}

// Server 3: vidsrc.cc (supports imdbId or tmdbId)
Expand All @@ -264,7 +264,11 @@ <h4>Countries</h4>
const iframe = document.getElementById('video-player');
if (!iframe) return;
if (!item?.imdbId && !item?.tmdbId) return;
iframe.src = buildEmbedUrl(currentServer, item, currentSeason, currentEpisode);
// Force reload by clearing src first (busts iframe cache)
iframe.src = '';
setTimeout(() => {
iframe.src = buildEmbedUrl(currentServer, item, currentSeason, currentEpisode);
}, 50);
}

// Load movie data when page loads
Expand Down
2 changes: 1 addition & 1 deletion script.min.js

Large diffs are not rendered by default.