├── src ├── assets │ ├── .gitkeep │ ├── images │ │ ├── background.jpg │ │ ├── download.png │ │ ├── rss-icon.png │ │ ├── image-spinner.gif │ │ ├── banner-quality │ │ │ └── banner1080p.png │ │ ├── icon-search.svg │ │ └── logo-YTS.svg │ ├── fonts │ │ └── arimo │ │ │ ├── Arimo-Bold.ttf │ │ │ ├── Arimo-Italic.ttf │ │ │ ├── Arimo-Regular.ttf │ │ │ └── Arimo-BoldItalic.ttf │ └── css │ │ ├── footer.css │ │ ├── header.css │ │ └── main.css ├── app │ ├── components │ │ ├── home │ │ │ ├── home.component.css │ │ │ ├── home.component.spec.ts │ │ │ ├── home.component.ts │ │ │ └── home.component.html │ │ └── treading-movies │ │ │ ├── treading-movies.component.css │ │ │ ├── treading-movies.component.spec.ts │ │ │ ├── treading-movies.component.ts │ │ │ └── treading-movies.component.html │ ├── layout │ │ ├── footer │ │ │ ├── footer.component.css │ │ │ ├── footer.component.ts │ │ │ ├── footer.component.spec.ts │ │ │ └── footer.component.html │ │ └── header │ │ │ ├── header.component.css │ │ │ ├── header.component.ts │ │ │ ├── header.component.spec.ts │ │ │ └── header.component.html │ ├── app.component.html │ ├── app.component.spec.ts │ ├── core │ │ ├── interceptor │ │ │ ├── interceptor.interceptor.spec.ts │ │ │ └── interceptor.interceptor.ts │ │ └── spiner │ │ │ ├── spiner.service.spec.ts │ │ │ └── spiner.service.ts │ ├── app-routing.module.ts │ ├── app.component.ts │ ├── app.module.ts │ ├── shared │ │ └── Interfaces.ts │ └── server │ │ └── services │ │ ├── movies.service.ts │ │ └── movies.service.spec.ts ├── favicon.ico ├── environments │ ├── environment.prod.ts │ └── environment.ts ├── main.ts ├── index.html ├── styles.css ├── test.ts └── polyfills.ts ├── gitAddCommit.sh ├── .editorconfig ├── tsconfig.app.json ├── tsconfig.spec.json ├── .browserslistrc ├── .gitignore ├── tsconfig.json ├── README.md ├── package.json ├── karma.conf.js └── angular.json /src/assets/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/app/components/home/home.component.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/app/layout/footer/footer.component.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/app/layout/header/header.component.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/app/components/treading-movies/treading-movies.component.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bacarPereira/YTS.MX-Clone-Angular/HEAD/src/favicon.ico -------------------------------------------------------------------------------- /src/assets/images/background.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bacarPereira/YTS.MX-Clone-Angular/HEAD/src/assets/images/background.jpg -------------------------------------------------------------------------------- /src/assets/images/download.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bacarPereira/YTS.MX-Clone-Angular/HEAD/src/assets/images/download.png -------------------------------------------------------------------------------- /src/assets/images/rss-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bacarPereira/YTS.MX-Clone-Angular/HEAD/src/assets/images/rss-icon.png -------------------------------------------------------------------------------- /src/assets/fonts/arimo/Arimo-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bacarPereira/YTS.MX-Clone-Angular/HEAD/src/assets/fonts/arimo/Arimo-Bold.ttf -------------------------------------------------------------------------------- /src/assets/images/image-spinner.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bacarPereira/YTS.MX-Clone-Angular/HEAD/src/assets/images/image-spinner.gif -------------------------------------------------------------------------------- /src/assets/fonts/arimo/Arimo-Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bacarPereira/YTS.MX-Clone-Angular/HEAD/src/assets/fonts/arimo/Arimo-Italic.ttf -------------------------------------------------------------------------------- /src/assets/fonts/arimo/Arimo-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bacarPereira/YTS.MX-Clone-Angular/HEAD/src/assets/fonts/arimo/Arimo-Regular.ttf -------------------------------------------------------------------------------- /src/assets/fonts/arimo/Arimo-BoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bacarPereira/YTS.MX-Clone-Angular/HEAD/src/assets/fonts/arimo/Arimo-BoldItalic.ttf -------------------------------------------------------------------------------- /src/environments/environment.prod.ts: -------------------------------------------------------------------------------- 1 | export const environment = { 2 | production: true, 3 | BASE_URL_SERVER_YTS_API:'https://yts.mx/api/v2/' 4 | }; 5 | -------------------------------------------------------------------------------- /src/assets/images/banner-quality/banner1080p.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bacarPereira/YTS.MX-Clone-Angular/HEAD/src/assets/images/banner-quality/banner1080p.png -------------------------------------------------------------------------------- /gitAddCommit.sh: -------------------------------------------------------------------------------- 1 | state=true 2 | while [ $state ]; do 3 | echo 'Enter the commit message ✍:' 4 | read commitMessage 5 | git add . 6 | git commit -m "$commitMessage" 7 | echo 'Commit was add' 8 | done 9 | -------------------------------------------------------------------------------- /src/app/app.component.html: -------------------------------------------------------------------------------- 1 |
4 |
14 |
15 |
16 |
17 | ## Running the Project Locally
18 | 1. Install the Angular CLI
19 | > npm install -g @angular/cli
20 | 2. Run `npm install` at the root of this project
21 | 3. Run ng serve -o for a dev server. Navigate to `http://localhost:4200/`. The app will automatically reload if you change any of the source files. 🔥
22 |
23 | ## Running unit tests
24 |
25 | Run `ng test` to execute the unit tests via [Karma](https://karma-runner.github.io).
26 |
27 | ## Further help
28 |
29 | To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.io/cli) page.
30 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "yts-mx",
3 | "version": "0.0.0",
4 | "scripts": {
5 | "ng": "ng",
6 | "start": "ng serve",
7 | "build": "ng build",
8 | "watch": "ng build --watch --configuration development",
9 | "test": "ng test"
10 | },
11 | "private": true,
12 | "dependencies": {
13 | "@angular/animations": "~12.2.0",
14 | "@angular/common": "~12.2.0",
15 | "@angular/compiler": "~12.2.0",
16 | "@angular/core": "~12.2.0",
17 | "@angular/forms": "~12.2.0",
18 | "@angular/platform-browser": "~12.2.0",
19 | "@angular/platform-browser-dynamic": "~12.2.0",
20 | "@angular/router": "~12.2.0",
21 | "bootstrap": "^5.1.3",
22 | "font-awesome": "^4.7.0",
23 | "rxjs": "~6.6.0",
24 | "save": "^2.4.0",
25 | "tslib": "^2.3.0",
26 | "zone.js": "~0.11.4"
27 | },
28 | "devDependencies": {
29 | "@angular-devkit/build-angular": "~12.2.10",
30 | "@angular/cli": "~12.2.10",
31 | "@angular/compiler-cli": "~12.2.0",
32 | "@types/jasmine": "~3.8.0",
33 | "@types/node": "^12.11.1",
34 | "jasmine-core": "~3.8.0",
35 | "karma": "~6.3.0",
36 | "karma-chrome-launcher": "~3.1.0",
37 | "karma-coverage": "~2.0.3",
38 | "karma-jasmine": "~4.0.0",
39 | "karma-jasmine-html-reporter": "~1.7.0",
40 | "typescript": "~4.3.5"
41 | }
42 | }
43 |
--------------------------------------------------------------------------------
/src/app/app.module.ts:
--------------------------------------------------------------------------------
1 | import { NgModule } from '@angular/core';
2 | import { BrowserModule } from '@angular/platform-browser';
3 |
4 | import { AppRoutingModule } from './app-routing.module';
5 | import { AppComponent } from './app.component';
6 | import { HeaderComponent } from './layout/header/header.component';
7 | import { HomeComponent } from './components/home/home.component';
8 | import { MoviesService } from './server/services/movies.service';
9 | import { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';
10 | import { FooterComponent } from './layout/footer/footer.component';
11 | import { SpinerService } from './core/spiner/spiner.service';
12 | import { InterceptorInterceptor } from './core/interceptor/interceptor.interceptor';
13 | import { TreadingMoviesComponent } from './components/treading-movies/treading-movies.component';
14 |
15 | @NgModule({
16 | declarations: [
17 | AppComponent,
18 | HeaderComponent,
19 | HomeComponent,
20 | FooterComponent,
21 | TreadingMoviesComponent
22 | ],
23 | imports: [
24 | BrowserModule,
25 | HttpClientModule,
26 | AppRoutingModule
27 | ],
28 | providers: [MoviesService,SpinerService,
29 | {provide: HTTP_INTERCEPTORS,useClass: InterceptorInterceptor,multi: true}],
30 | bootstrap: [AppComponent]
31 | })
32 | export class AppModule { }
33 |
--------------------------------------------------------------------------------
/src/app/components/home/home.component.ts:
--------------------------------------------------------------------------------
1 | import { Component, OnInit } from '@angular/core';
2 | import { MoviesService } from '../../server/services/movies.service';
3 | import { IMovie } from '../../shared/Interfaces';
4 |
5 | @Component({
6 | selector: 'app-home',
7 | templateUrl: './home.component.html',
8 | styleUrls: ['./home.component.css']
9 | })
10 | export class HomeComponent implements OnInit {
11 |
12 | popularDownloadsMovies:IMovie;
13 | latestMovies:IMovie;
14 | upcomingMovies:IMovie;
15 |
16 | constructor(private moviesService:MoviesService) { }
17 |
18 | ngOnInit(): void {
19 | this.getPopularDowloadsHttp();
20 | this.getLatestMoviesHttp();
21 | this.getUpcomingMoviesHttp();
22 | }
23 |
24 | getPopularDowloadsHttp(){
25 | this.moviesService.getPopularDowloadsHttp().subscribe(popularDownloadsResponse =>{
26 | this.popularDownloadsMovies = popularDownloadsResponse;
27 | })
28 | }
29 |
30 | getLatestMoviesHttp(){
31 | this.moviesService.getLatestMoviesHttp().subscribe(latestMovieResponse =>{
32 | this.latestMovies = latestMovieResponse;
33 | })
34 | }
35 |
36 | getUpcomingMoviesHttp(){
37 | this.moviesService.getUpcomingMoviesHttp().subscribe(upcomingMovieResponse =>{
38 | this.upcomingMovies = upcomingMovieResponse;
39 | })
40 | }
41 |
42 | }
43 |
--------------------------------------------------------------------------------
/src/app/shared/Interfaces.ts:
--------------------------------------------------------------------------------
1 | export class CMovie implements IMovie{
2 | status:string;
3 | data:IMovieData;
4 | constructor(status:string){
5 | this.status = status;
6 | }
7 | }
8 |
9 | export interface IMovie{
10 | status:string;
11 | data:IMovieData;
12 | }
13 |
14 | export interface IMovieData {
15 | id: number;
16 | title: string;
17 | year: number;
18 | image: string;
19 | ranking: number;
20 | type: string;
21 | category:string;
22 | movie_count:number;
23 | limit:number;
24 | page_number:number
25 | movies:IMovieItem[];
26 | }
27 |
28 | export interface IMovieItem{
29 | id:number;
30 | url:string;
31 | title: string;
32 | title_long: string;
33 | slug: string;
34 | year: number;
35 | rating:number;
36 | runtime:number;
37 | genres:string[];
38 | summary:string;
39 | description_full:string;
40 | synopsis:string;
41 | language:string;
42 | background_image: string,
43 | background_image_original:string;
44 | small_cover_image: string;
45 | medium_cover_image: string;
46 | large_cover_image: string;
47 | state: string;
48 | torrents: ITorrent[];
49 | date_uploaded: Date;
50 | }
51 |
52 | export interface ITorrent{
53 | url: string;
54 | quality: string;
55 | type: string;
56 | seeds: number;
57 | peers: number;
58 | size:string;
59 | date_uploaded:Date;
60 | }
61 |
--------------------------------------------------------------------------------
/src/app/components/treading-movies/treading-movies.component.html:
--------------------------------------------------------------------------------
1 |
19 | Welcome to the official YTS.MX (.LT) website. Here you can browse and download
5 | YIFY movies in
excellent 720p, 1080p, 2160p 4K and 3D quality, all at the smallest file size. YTS Movies
6 | Torrents.
51 | Downloading torrents is risky for you: your IP and leaked private data being actively tracked by your ISP 52 | and Government Agencies. 53 | Protect yourself from expensive lawsuits and fines NOW! 54 | You must use a VPN like VeePN. It is the only way to download torrents fully anonymous by encrypting all 55 | traffic with zero logs. 56 |
57 |58 | Personal data disclosing your real identity: your IP address, 59 | 60 | XXX.XXX.XXX.XXX 61 | is exposed, which points directly to your location in 62 | . 63 | You are browsing with 64 | Browser Version X (Machine X) 65 | , monitor res. 66 | X x Xpx , undefined-cores 67 | CPU . 68 |
69 |70 | ″Do not risk it! Protect yourself right now by downloading VeePN VPN″ - 71 | William 72 |
73 | 74 | 78 | 79 |
140 |