From 0ce8cd54e3504fb47e4ea3f9448e60cfa35e4404 Mon Sep 17 00:00:00 2001 From: Aayushman Tripathi Date: Fri, 18 Apr 2025 23:02:06 +0530 Subject: [PATCH 1/4] Adding the file by aayushman tripathi --- otw.md | 129 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 129 insertions(+) create mode 100644 otw.md diff --git a/otw.md b/otw.md new file mode 100644 index 0000000..a1e8b89 --- /dev/null +++ b/otw.md @@ -0,0 +1,129 @@ +# level 0 +we need to connect to the host in this level. +we use ls to list the files +and then cat readme to read the file and see the password +ZjLjTmM6FvvyRnrb2rfNWOZOTa6ip5If + +# level 1 + +cat ./- i the command we use in this level to read the file - in the home directory +263JGJPfgU6LtdEvgfWU1XP5yac29mFx + +# level 2 +cat "spaces in this file name" +MNk8KNH3Usiio41PRUEoDFPqfxLPlSmx +# level 3 + +cd inhere/ +ls -al +cat .hidden +2WmrDFRmJIq3IPxneAaMGhap0pFhF3NJ +# level 4 +cd inhere/ +find . -type f | xargs file + and now read the file which has ASCII text type + 4oQYVPkxZOOEOO5pTW81FB8j8lxXGUQw +# level 5 +cd inhere/ +find . -type f -size 1033c ! -executable +will give the file location and the file which satisfy the parameter +HWasnPhtq9AVKe0dmk45nxy20cvUa6EG +# level 6 +find / -type f -user bandit7 -group bandit6 -size 33c + will get the file with the password +morbNTDkSW6jIlUc0ymOdMaLnOlFVAa + +# level 7 +as in this file there are quite a lot of strings so we will use the strings command to ease our task + +strings data.txt | grep "millionth" + +and you will get the passsword next to the word millionth +dfwvzFQi4mU0wfNbFOe9RoWskMLg7eEc +# level 8 + here will use the commands of uniq and sort to sort the content + + sort data.txt | uniq -c + + here -c tells us the count of a particular unique string and we will check the word woth only 1 occurunce that is the pass +FGUW5ilLVJrxX9kMYMmlN4MgbpfMiqey +# level 9 + + strings data.txt | grep "=" + +i t will give the password next to equals +FGUW5ilLVJrxX9kMYMmlN4MgbpfMiqey +# level 10 + cat data.txt + it will show a base64 encoded data to decrypt it + base64 -d data.txt + + will give the pass + dtR173fZKb0RRsDFSGsg2RWnpNVj3qRr +# level 11 + we will use rot 13 method to decrypt it + data.txt | tr 'A-Za-z' 'N-ZA-Mn-za-m' + 7x16WNeHIi5YkIhWsfFIqoognUTyj9Q4 + +# level 12 +cat data.txt + we will see that its a hex dump file + now we will try to reverse the hex dump file + +mkdir /temp/aayush +cp data.txt /tmp/aayush +cd /tmp/aayush +ls +xxd -r data.txt > data +ls + we will see that now we have created a file named data which is not a hex dump anymore lets see the file type of the file +file data +we will get a file with the extension of gzip so we move the data file with a new extension .gz +mv data file.gz +gzip -d file.gz +file file +mv file file.bz2 +bzip2 -d file.bz2 +file file +mv file file.gz +gzip -d file.gz +file file + now its a tar archive +mv file file.tar +tar xf file.tar +ls +file data7.bin +mv data7.bin data.tar +tar xf data.tar +ls +file data6.bin +mv data6.bin data.bz2 +bzip2 -d data.bz2 +ls +file data +mv data data.tar +tar xf data.tar +ls +file data8.bin +mv data8.bin data.gz +gzip2 -d data.gz +ls +file data +cat data + NOW this will give us the pass + FO5dwFsc0cbaIiH0h8J2eUks2vdTDwAn +#level 13 +ls + we will get the sshkey.private which is a private key +ssh -i sshkey.private bandit14@localhost -p 2220 + now we are in bandit 14 +cat etc/bandit_pass/bandit14 + and WE will get the pass +MU4VWeTyJk8ROof1qqmcBPaLh7lDCPvS +#level 14 +we will use the netap command +nc localhost 30000 # hit enter +MU4VWeTyJk8ROof1qqmcBPaLh7lDCPvS +and now entered the password for the previous level +and we will get the password for the next level + From 108def021cd01c3da15b4183f6c35b9a5325729a Mon Sep 17 00:00:00 2001 From: Aayushman Tripathi Date: Tue, 13 May 2025 23:34:37 +0530 Subject: [PATCH 2/4] Added Task_2 --- aayushman_t/.vscode/settings.json | 8 + aayushman_t/.vscode/tasks.json | 39 +++ aayushman_t/Dockerfile | 40 +++ aayushman_t/a.out | Bin 0 -> 54440 bytes aayushman_t/data/Tvshows.txt | 50 ++++ aayushman_t/data/movies.txt | 51 ++++ aayushman_t/data/users.txt | 3 + aayushman_t/main.cpp | 434 ++++++++++++++++++++++++++++++ aayushman_t/movies.cpp | 187 +++++++++++++ aayushman_t/netflix | Bin 0 -> 127304 bytes aayushman_t/netflix_cli | Bin 0 -> 54544 bytes aayushman_t/tvShows.cpp | 191 +++++++++++++ 12 files changed, 1003 insertions(+) create mode 100644 aayushman_t/.vscode/settings.json create mode 100644 aayushman_t/.vscode/tasks.json create mode 100644 aayushman_t/Dockerfile create mode 100755 aayushman_t/a.out create mode 100644 aayushman_t/data/Tvshows.txt create mode 100644 aayushman_t/data/movies.txt create mode 100644 aayushman_t/data/users.txt create mode 100644 aayushman_t/main.cpp create mode 100644 aayushman_t/movies.cpp create mode 100755 aayushman_t/netflix create mode 100755 aayushman_t/netflix_cli create mode 100644 aayushman_t/tvShows.cpp diff --git a/aayushman_t/.vscode/settings.json b/aayushman_t/.vscode/settings.json new file mode 100644 index 0000000..311e001 --- /dev/null +++ b/aayushman_t/.vscode/settings.json @@ -0,0 +1,8 @@ +{ + "files.associations": { + "iostream": "cpp", + "fstream": "cpp", + "ostream": "cpp", + "limits": "cpp" + } +} \ No newline at end of file diff --git a/aayushman_t/.vscode/tasks.json b/aayushman_t/.vscode/tasks.json new file mode 100644 index 0000000..a5ee821 --- /dev/null +++ b/aayushman_t/.vscode/tasks.json @@ -0,0 +1,39 @@ +{ + "version": "2.0.0", + "tasks": [ + { + "label": "Build C++", + "type": "shell", + "command": "g++", + "args": [ + "src/*.cpp", + "-o", + "netflix_cli" + ], + "group": "build" + }, + { + "type": "cppbuild", + "label": "C/C++: g++ build active file", + "command": "/usr/bin/g++", + "args": [ + "-fdiagnostics-color=always", + "-g", + "${file}", + "-o", + "${fileDirname}/${fileBasenameNoExtension}" + ], + "options": { + "cwd": "${fileDirname}" + }, + "problemMatcher": [ + "$gcc" + ], + "group": { + "kind": "build", + "isDefault": true + }, + "detail": "Task generated by Debugger." + } + ] +} \ No newline at end of file diff --git a/aayushman_t/Dockerfile b/aayushman_t/Dockerfile new file mode 100644 index 0000000..6d96bb1 --- /dev/null +++ b/aayushman_t/Dockerfile @@ -0,0 +1,40 @@ +# Use Ubuntu 22.04 as the base image for building (it includes g++ and supports C++17) +FROM ubuntu:22.04 AS builder + +# Install g++ and other build essentials +RUN apt-get update && apt-get install -y \ + g++ \ + && rm -rf /var/lib/apt/lists/* + +# Set the working directory inside the container +WORKDIR /app + +# Copy all source files and the data directory into the container +COPY main.cpp movies.cpp tvShows.cpp ./ +COPY data/ ./data/ + +# Compile the C++ program with C++17 standard +RUN g++ -std=c++17 main.cpp -o netflix_clone + +# Use a smaller runtime image for the final stage +FROM ubuntu:22.04 + +# Install runtime dependencies (minimal) +RUN apt-get update && apt-get install -y \ + && rm -rf /var/lib/apt/lists/* + +# Set the working directory +WORKDIR /app + +# Copy the compiled binary and data directory from the builder stage +COPY --from=builder /app/netflix_clone . +COPY --from=builder /app/data ./data/ + +# Ensure the data directory is writable +RUN chmod -R 777 /app/data + +# Define a volume for the data directory to persist data +VOLUME /app/data + +# Set the entrypoint to run the application +CMD ["./netflix_clone"] \ No newline at end of file diff --git a/aayushman_t/a.out b/aayushman_t/a.out new file mode 100755 index 0000000000000000000000000000000000000000..a68dded8785c00e218e9a5f5ae66912b3fdaa609 GIT binary patch literal 54440 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

0UyC|eu(znNXh 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 A7XSbN literal 0 HcmV?d00001 diff --git a/aayushman_t/data/Tvshows.txt b/aayushman_t/data/Tvshows.txt new file mode 100644 index 0000000..dabf386 --- /dev/null +++ b/aayushman_t/data/Tvshows.txt @@ -0,0 +1,50 @@ +Starbound Chronicles|Sci-Fi|8.4|5|10|3.99|14.99|0|0 +City of Shadows|Thriller|7.8|3|12|4.49|12.99|0|0 +Laughing Lofts|Comedy|7.5|6|20|3.49|11.99|0|0 +Hearts of Valor|Drama|8.2|4|15|4.29|13.99|0|0 +Mystic Realms|Fantasy|8.0|2|8|4.99|15.99|0|0 +Urban Legends|Crime|7.6|5|13|4.19|13.49|0|0 +Ghostly Tales|Horror|6.8|3|10|3.29|10.99|0|0 +Family Ties|Comedy|7.9|7|22|3.79|12.49|0|0 +Galactic Pioneers|Sci-Fi|8.7|4|12|4.79|16.99|0|0 +Dark Horizons|Thriller|7.4|2|14|4.39|12.99|0|0 +Echoes of Fate|Drama|8.5|6|16|4.59|14.49|0|0 +Loves Journey|Romance|7.7|3|18|3.89|13.29|0|0 +Hidden Kingdoms|Fantasy|8.1|5|10|4.69|15.49|0|0 +Street Justice|Crime|7.3|4|15|4.29|13.79|0|0 +Cursed Shadows|Horror|6.9|2|8|3.39|11.49|0|0 +Chuckle Haven|Comedy|7.6|8|24|3.69|12.29|0|0 +Nebula Quest|Sci-Fi|8.3|3|11|4.89|16.49|0|0 +Night Watch|Thriller|7.5|4|13|4.49|13.99|0|0 +Tides of Time|Drama|8.0|5|14|4.09|14.19|0|0 +Forever Bound|Romance|7.8|2|16|3.99|12.99|0|0 +Secret Plans|Crime|7.2|3|12|4.19|13.19|0|0 +Wild Frontiers|Adventure|7.9|4|10|4.99|15.79|0|0 +Haunted Echoes|Horror|6.7|2|9|3.49|11.29|0|0 +Giggle Street|Comedy|7.4|6|20|3.79|12.59|0|0 +Cosmic Travelers|Sci-Fi|8.6|5|12|4.99|17.99|0|0 +Silent Betrayal|Thriller|7.7|3|15|4.39|13.49|0|0 +Broken Bonds|Drama|8.1|4|17|4.29|14.29|0|0 +Starlit Hearts|Romance|7.6|2|14|3.89|12.79|0|0 +Dragons Legacy|Fantasy|8.3|6|10|4.79|16.29|0|0 +True Detectives|Crime|7.5|5|13|4.49|13.99|0|0 +Grim Whispers|Horror|6.6|3|8|3.29|11.19|0|0 +Laugh Lounge|Comedy|7.3|7|22|3.69|12.39|0|0 +Orbit Breakers|Sci-Fi|8.2|4|11|4.89|16.79|0|0 +Veiled Secrets|Thriller|7.9|2|12|4.59|13.79|0|0 +Fading Lights|Drama|8.4|5|16|4.19|14.59|0|0 +Moonlit Vows|Romance|7.5|3|18|3.99|13.49|0|0 +Shadow Hunters|Fantasy|8.0|4|9|4.69|15.29|0|0 +City Beat|Crime|7.4|6|14|4.29|13.69|0|0 +Dark Omens|Horror|6.5|2|10|3.39|11.39|0|0 +Joke Junction|Comedy|7.7|5|20|3.79|12.49|0|0 +Intergalactic|Sci-Fi|8.5|3|10|4.99|17.49|0|0 +Last Confession|Thriller|7.6|4|13|4.49|13.29|0|0 +Shades of Truth|Drama|8.3|5|15|4.39|14.39|0|0 +Hearts Aflame|Romance|7.4|2|16|3.89|12.69|0|0 +Enchanted Woods|Fantasy|8.2|3|8|4.79|15.99|0|0 +Night Patrol|Crime|7.8|4|12|4.29|13.89|0|0 +Eerie Nights|Horror|6.7|2|9|3.49|11.59|0|0 +Funny Folks|Comedy|7.5|6|22|3.69|12.69|0|0 +Stellar Voyage|Sci-Fi|8.4|5|11|4.89|16.99|0|0 +Twisted Paths|Thriller|7.7|3|14|4.59|13.99|0|0 diff --git a/aayushman_t/data/movies.txt b/aayushman_t/data/movies.txt new file mode 100644 index 0000000..a352267 --- /dev/null +++ b/aayushman_t/data/movies.txt @@ -0,0 +1,51 @@ +The Starfarer|Sci-Fi|8.2|2.15|3.99|14.99|0|0 +Midnight Run|Action|7.8|1.95|4.49|12.99|0|0 +Whispers in the Dark|Thriller|6.9|1.75|3.49|11.99|0|0 +Summer Dreams|Romance|8|2|3.99|13.99|0|0 +The Last Frontier|Adventure|7.5|2.25|4.99|15.99|0|0 +Echoes of Time|Drama|8.5|2.3|4.29|14.49|0|0 +Haunted Shadows|Horror|6.5|1.6|3.29|10.99|0|0 +City of Sparks|Comedy|7.2|1.85|3.79|12.49|0|0 +Quantum Leap|Sci-Fi|8.7|2.45|4.79|16.99|0|0 +The Iron Oath|Action|7.9|2.1|4.59|13.99|0|0 +Silent Waves|Drama|8.3|2.05|4.19|14.29|0|0 +Moonlit Secrets|Romance|7.7|1.9|3.89|12.99|0|0 +Crimson Tide|Thriller|7.4|2|4.39|13.49|0|0 +Jungle Quest|Adventure|7.1|2.2|4.69|15.49|0|0 +Ghostly Whispers|Horror|6.8|1.55|3.39|11.49|0|0 +Laugh Factory|Comedy|7.6|1.7|3.69|12.29|0|0 +Nebula Rising|Sci-Fi|8.4|2.35|4.89|16.49|0|0 +Bullet Storm|Action|7.3|1.8|4.29|13.29|0|0 +Tears of Tomorrow|Drama|8.1|2.25|4.09|14.19|0|0 +Love in Bloom|Romance|7.9|1.95|3.99|13.79|0|0 +Dark Alley|Thriller|6.7|1.65|3.59|11.99|0|0 +Skyward Bound|Adventure|7.8|2.3|4.99|15.79|0|0 +Phantom Manor|Horror|6.6|1.5|3.49|11.29|0|0 +Giggle Fest|Comedy|7.4|1.75|3.79|12.59|0|0 +Starlight Chronicles|Sci-Fi|8.6|2.5|4.99|17.99|0|0 +Rogue Agent|Action|7.7|2|4.49|13.99|0|0 +Fading Echoes|Drama|8.2|2.15|4.19|14.39|0|0 +Hearts Entwined|Romance|7.8|1.85|3.89|13.49|0|0 +Shadow Conspiracy|Thriller|7|1.9|4.29|12.99|0|0 +Wild Expedition|Adventure|7.6|2.25|4.79|15.29|0|0 +Grave Encounters|Horror|6.4|1.45|3.29|10.99|0|0 +Chuckle Town|Comedy|7.5|1.8|3.69|12.39|0|0 +Galactic Odyssey|Sci-Fi|8.3|2.4|4.89|16.79|0|0 +Thunder Strike|Action|7.9|1.95|4.59|13.79|0|0 +Broken Promises|Drama|8|2.2|4.09|14.09|0|0 +Starry Nights|Romance|7.7|1.9|3.99|13.29|0|0 +Hidden Truths|Thriller|6.9|1.7|3.59|11.79|0|0 +Mountain Quest|Adventure|7.4|2.3|4.69|15.19|0|0 +Cursed Woods|Horror|6.7|1.6|3.39|11.39|0|0 +Laugh Riot|Comedy|7.3|1.75|3.79|12.49|0|0 +Cosmic Voyage|Sci-Fi|8.5|2.45|4.99|17.49|0|0 +Blaze of Glory|Action|7.8|2|4.49|13.69|0|0 +Silent Tears|Drama|8.1|2.1|4.19|14.29|0|0 +Forever Yours|Romance|7.6|1.85|3.89|13.19|0|0 +Night Stalker|Thriller|7.1|1.8|4.29|12.89|0|0 +Desert Trek|Adventure|7.5|2.25|4.79|15.39|0|0 +Haunted Legacy|Horror|6.5|1.5|3.29|11.19|0|0 +Funny Bones|Comedy|7.4|1.7|3.69|12.29|0|0 +Interstellar Dreams|Sci-Fi|8.4|2.5|4.99|17.29|0|0 +Final Stand|Action|7.7|1.95|4.49|13.59|0|0 +dummy|dummy|0|0|0|0|0|0 diff --git a/aayushman_t/data/users.txt b/aayushman_t/data/users.txt new file mode 100644 index 0000000..8c48b1a --- /dev/null +++ b/aayushman_t/data/users.txt @@ -0,0 +1,3 @@ +aayushman:querty +aayush:rty:admin +test:pass:admin diff --git a/aayushman_t/main.cpp b/aayushman_t/main.cpp new file mode 100644 index 0000000..0fb77d4 --- /dev/null +++ b/aayushman_t/main.cpp @@ -0,0 +1,434 @@ + +#include +#include +#include +#include +#include +#include +#include "tvShows.cpp" +#include "movies.cpp" +using namespace std; +const string USER_DATA_FILE = "data/users.txt"; +struct User{ + string username; + string password; + bool isAdmin; +}; +class UserManager { + string currentUsername; + bool isAdmin; + + public: + void signUp() { + vector users = loadusers(); + cout << "Choose a username: "; + string username; + cin >> username; + + if (usernameExists(users, username)) { + cout << "Username already exists. Try logging in.\n"; + return; + } + cout<<"Enter a password: "; + string pass; + cin>>pass; + char AdminChoice; + + cout<<"Is this an Admin Account? (y/n):"<>AdminChoice; + bool newAdmin = false; + + if(AdminChoice=='y'){ + newAdmin = true; + } + else{ + newAdmin =false; + } + ofstream file(USER_DATA_FILE, ios::app); + if (file.is_open()) { + file << username << ":"< users = loadusers(); + cout << "Enter username: "; + string username; + string password; + cin >> username; + cout<<"Enter Password: "; + cin>>password; + for (const auto& user : users) { + if (user.username == username && user.password == password) { + currentUsername = username; + isAdmin = user.isAdmin; + cout << "Login successful. Welcome, " << username << "!" + << (isAdmin ? " (Admin)" : "") << "\n"; + + return true; + } + } + + + cout << "Login failed. Username not found.\n"; + return false; + } + string getCurrentUsername(){ + return currentUsername; + } + bool isCurrentUserAdmin() { + return isAdmin; + } + void viewAllContent(MoviesManager & moviemanager,TVShowManager & tvshowmanager ){ + cout << "\n=========== All Available Movies ===========\n"; + moviemanager.browse(); + cout << "\n=========== All Available Tv Shows ===========\n"; + tvshowmanager.browse(); + + } + + private: + vector loadusers() { + vector users; + ifstream file(USER_DATA_FILE); + string line; + while (getline(file, line)) { + size_t pos1 = line.find(":"); + if(pos1 == string::npos)continue; + size_t pos2 = line.find(":", pos1+1); + string username = line.substr(0, pos1); + string password; + bool isAdmin =false; + if(pos2 != string::npos){ + password = line.substr(pos1 +1 , pos2-pos1-1); + isAdmin = (line.substr(pos2) == ":admin"); + + }else{ + password = line.substr(pos1+1); + + } + users.push_back({username, password,isAdmin}); + + } + file.close(); + return users; + + } + + bool usernameExists(const vector& users, const string& username) { + for (const auto& user: users) { + if (user.username== username) + return true; + } + return false; + } + + + }; + + +int main() { + TVShowManager tvshowmanager; + MoviesManager moviemanager; + UserManager manager; + bool isloggedin =false; + while(!isloggedin){ + int choice; + cout << "1. Login\n2. Sign-Up\nEnter choice: "; + cin >> choice; + cin.ignore(numeric_limits::max(), '\n'); + switch (choice) { + case 1: + isloggedin= manager.login(); + break; + case 2: + manager.signUp(); + break; + default: + cout << "Invalid choice.\n"; + }} + if(isloggedin == true && (!manager.isCurrentUserAdmin() )){ + while(true){ + int action; + cout<<"1. Browse Movies\n2. Browse Tv Shows\n3. Search Content by title or genre"<>action; + cin.ignore(numeric_limits::max(), '\n'); + string purchaseFile = "data/purchased_" + manager.getCurrentUsername() + ".txt"; + string rentalFile = "data/rented_" + manager.getCurrentUsername() + ".txt"; + if(action ==2 ){ + cout<<"The format is: TITLE|GENRE|RATING|SEASONS|EPISODES PER SEASON|RENT COST|PURCHASE COST| AVAILABLE OR NOT"<>pur_ren_choice_tv; + cin.ignore(numeric_limits::max(), '\n'); + if(pur_ren_choice_tv == 1){ + string show_to_be_rented; + cout << "Enter show to rent: "; + getline(cin, show_to_be_rented); + + tvshowmanager.rentShow(show_to_be_rented); + ofstream out(rentalFile, ios::app); + if (out.is_open()) { + out << show_to_be_rented << endl; + out.close(); + cout << "Successfully rented: " << show_to_be_rented << endl; + } else { + cout << "Failed to save rental info.\n"; + } + } + else if(pur_ren_choice_tv == 2){ + string show_to_be_pur; + cout << "Enter the name of the show to purchase: "; + getline(cin, show_to_be_pur); + tvshowmanager.purchaseShow(show_to_be_pur); + ofstream out(purchaseFile, ios::app); + if (out.is_open()) { + out << show_to_be_pur << endl; + out.close(); + cout << "Successfully rented: " << show_to_be_pur << endl; + } else { + cout << "Failed to save rental info.\n"; + } + } + else if(pur_ren_choice_tv == 3){ + string Show_to_be_returned; + cout<<"Enter the Show to be returned: "<>Show_to_be_returned; + tvshowmanager.returnShow(Show_to_be_returned, manager.getCurrentUsername()); + } + else if(pur_ren_choice_tv == 4){ + string rentalfile = "data/rented_"+manager.getCurrentUsername()+".txt"; + string line; + ifstream in(rentalfile); + cout << "\n=========== Your Rented Shows ===========\n"; + bool found= false; + while(getline(in,line)){ + + for(auto&show:tvshowmanager.getShows()){ + if(show.title == line & show.isrented){ + show.display(); + found =true; + break; + } + } + } + if(!found){ + cout<<"No rented movie available"<>pur_ren_choice_mv; + cin.ignore(numeric_limits::max(), '\n'); + if(pur_ren_choice_mv == 1){ + string movie_to_be_rented; + cout << "Enter the name of the movie to rent: "; + getline(cin, movie_to_be_rented); + moviemanager.rentmovie(movie_to_be_rented); + ofstream out(rentalFile, ios::app); + if (out.is_open()) { + out << movie_to_be_rented << endl; + out.close(); + cout << "Successfully rented: " << movie_to_be_rented << endl; + } else { + cout << "Failed to save rental info.\n"; + } + } + else if(pur_ren_choice_mv == 2){ + string movie_to_be_pur; + cout << "Enter the name of the movie to purchase: "; + getline(cin, movie_to_be_pur); + moviemanager.purchasemovie(movie_to_be_pur); + ofstream out(purchaseFile, ios::app); + if (out.is_open()) { + out << movie_to_be_pur << endl; + out.close(); + cout << "Successfully rented: " << movie_to_be_pur << endl; + + } else { + cout << "Failed to save rental info.\n"; + } + } + else if(pur_ren_choice_mv ==3){ + string movie_to_return; + cout << "Enter the name of the movie to return: "; + getline(cin, movie_to_return); + moviemanager.returnMovie(movie_to_return,manager.getCurrentUsername()); + } + else if (pur_ren_choice_mv == 4){ + string rentalfile = "data/rented_"+manager.getCurrentUsername()+".txt"; + string line; + ifstream in(rentalfile); + cout << "\n=========== Your Rented Movies ===========\n"; + bool found= false; + while(getline(in,line)){ + + for(auto&movie:moviemanager.getMovies()){ + if(movie.title == line & movie.isrented){ + movie.display(); + found =true; + break; + } + } + } + if(!found){ + cout<<"No rented movie available"<> type; + cin.ignore(); + + cout << "Enter search keyword (title or genre): "; + string keyword; + getline(cin, keyword); + + if (type == 1) + moviemanager.searchMovie(keyword); + else if (type == 2) + tvshowmanager.searchShow(keyword); + else + cout << "Invalid search type.\n"; + } + + else{ + cout<<"Invalid Choice"; + } + }} + else if(isloggedin && manager.isCurrentUserAdmin()){ + while(true){ + int adminChoice; + cout<<"1. Movies \n2. TvShows"<>adminChoice; + cin.ignore(numeric_limits::max(), '\n'); + if(adminChoice ==1){ + int rem_add_mv; + cout<<"1. Add Movies \n2. Remove Movies\n3. List all Movies and Tv shows"<>rem_add_mv; + cin.ignore(numeric_limits::max(), '\n'); + if(rem_add_mv ==1){ + string title, genre; + float rating, rentCost, purchaseCost, duration; + char ch = 'y'; + + while(ch =='y'){ + cout << "Enter movie title: "; + getline(cin, title); + cout << "Enter genre: "; + getline(cin, genre); + cout << "Enter rating (0-10): "; + cin >> rating; + cout<<"Enter Duration "; + cin>> duration; + cout << "Enter rent cost: "; + cin >> rentCost; + cout << "Enter purchase cost: "; + cin >> purchaseCost; + + moviemanager.addMovie(title, genre, rating, duration, rentCost, purchaseCost); + cout<<"Want to enter more:(y/n) "; + cin>>ch; + cin.ignore(numeric_limits::max(), '\n'); + + } + + } + else if (rem_add_mv == 2) { + string title; + cout << "Enter movie title to remove: "; + getline(cin, title); + moviemanager.removeMovie(title); + } + else if(rem_add_mv ==3){ + manager.viewAllContent(moviemanager, tvshowmanager); + } + else { + cout << "Invalid admin choice.\n"; + } + } + else if(adminChoice == 2){ + int rem_add_sh; + cout<<"1. Add TvShows \n2. Remove TvShows\n3. List all Tv Shows and movies"<>rem_add_sh; + cin.ignore(numeric_limits::max(), '\n'); + if(rem_add_sh ==1){ + string title, genre; + float rating, rentCost, purchaseCost, season , ep_s; + char ch ='y'; + + + while(ch =='y'){ + cout << "Enter show title: "; + getline(cin, title); + cout << "Enter genre: "; + getline(cin, genre); + cout << "Enter rating (0-10): "; + cin >> rating; + cout << "Enter number of Seasons: "; + cin >> season; + cout << "Enter episode per season "; + cin >> ep_s; + cout << "Enter rent cost: "; + cin >> rentCost; + cout << "Enter purchase cost: "; + cin >> purchaseCost; + + + tvshowmanager.addshow(title, genre, rating,season,ep_s, rentCost, purchaseCost); + cout<<"Want to enter more:(y/n) "; + cin>>ch; + cin.ignore(numeric_limits::max(), '\n'); + + + } + + } + else if (rem_add_sh == 2) { + string title; + cout << "Enter movie title to remove: "; + getline(cin, title); + tvshowmanager.removeShow(title); + } + else if(rem_add_sh ==3){ + manager.viewAllContent(moviemanager, tvshowmanager); + } + else { + cout << "Invalid admin choice.\n"; + } + } + else{ + cout<<"Invalid Choice"< +#include +#include + +using namespace std; + +class Movies { +public: + string title; + string genre; + float rating; + float duration; + + float rentCost; + float purchaseCost; + bool isrented; + bool ispurchased; + + Movies(string t, string g, float r, float d, float rent, float buy) + { + title =t; + genre =g; + rating =r; + duration =d ; + rentCost =rent; + purchaseCost =buy; + isrented =false; + ispurchased =false; + } + + void display(){ + + cout< Moviess; + const string movieFile = "data/movies.txt"; + void loadFromFile() { + Moviess.clear(); + ifstream in(movieFile); + string line; + while (getline(in, line)) { + size_t pos = 0; + string token; + vector tokens; + while ((pos = line.find('|')) != string::npos) { + token = line.substr(0, pos); + tokens.push_back(token); + line.erase(0, pos + 1); + } + tokens.push_back(line); + + string title = tokens[0]; + string genre = tokens[1]; + float rating = stof(tokens[2]); + float duration = stof(tokens[3]); + float rent = stof(tokens[4]); + float buy = stof(tokens[5]); + bool isRented = stoi(tokens[6]); + bool isPurchased = stoi(tokens[7]); + Movies m(title, genre, rating, duration, rent , buy ); + m.isrented = isRented; + m.ispurchased = isPurchased; + Moviess.push_back(m); + } + in.close(); + } + + void saveToFile() { + ofstream out(movieFile); + for (const auto& m : Moviess) { + out << m.title << "|" << m.genre << "|" << m.rating << "|" + << m.duration << "|" << m.rentCost << "|" + << m.purchaseCost << "|" << m.isrented << "|"<< m.ispurchased<< "\n"; + } + out.close(); + } + public: + MoviesManager() { + loadFromFile(); + } + + void browse() { + cout << "\nAvailable Movies:\n"; + for (auto& show : Moviess) { + show.display(); + } + } + + void rentmovie(string title) { + for (auto& show : Moviess) { + if (show.title == title && !show.isrented && !show.ispurchased) { + show.isrented = true; + saveToFile(); + cout << title << " has been rented!"<title == title) { + Moviess.erase(i); + cout << "Movie '" << title << "' removed successfully!\n"; + return; + } + } + cout << "Movie not found.\n"; + } + void searchMovie(const string& query) { + bool found = false; + for (auto& movie : Moviess) { + if (movie.title.find(query) != string::npos || movie.genre.find(query) != string::npos) { + movie.display(); + found = true; + } + } + if (!found) { + cout << "No movie found matching: " << query << endl; + } + } + void returnMovie(const string& title, const string& username) { + string rentalFile = "data/rented_" + username + ".txt"; + + bool found = false; + for (auto& movie : Moviess) { + if (movie.title == title && movie.isrented) { + movie.isrented = false; + saveToFile(); + found = true; + cout << title << " has been returned successfully!\n"; + break; + } + } + if (!found) { + cout << "Movie not found or not rented.\n"; + return; + } + vector rentals; + ifstream in(rentalFile); + string line; + while (getline(in, line)) { + if (line != title) { + rentals.push_back(line); + } + } + in.close(); + ofstream out(rentalFile); + + for (const auto& rental : rentals) { + out << rental << "\n"; + } + out.close(); + + } + vector& getMovies() { + return Moviess; + } +}; diff --git a/aayushman_t/netflix b/aayushman_t/netflix new file mode 100755 index 0000000000000000000000000000000000000000..de849d3cb6ef501121895a880da20de7b7c8c7ad GIT binary patch literal 127304 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 literal 0 HcmV?d00001 diff --git a/aayushman_t/netflix_cli b/aayushman_t/netflix_cli new file mode 100755 index 0000000000000000000000000000000000000000..513ef0fdee07391fa22525b7d599b7b0291d78ad GIT binary patch literal 54544 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

Q95x~SpZ;`6fG=oO3T&>+WqSYu)ihI# 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 znh +#include +#include + +using namespace std; + +class TVShow { +public: + string title; + string genre; + float rating; + int seasons; + int episodesPerSeason; + float rentCost; + float purchaseCost; + bool isrented; + bool ispurchased; + + TVShow(string t, string g, float r, int s, int eps, float rent, float buy) + { + title =t; + genre =g; + rating =r; + seasons =s; + episodesPerSeason =eps; + rentCost =rent; + purchaseCost =buy; + isrented =false; + ispurchased = false; + } + + void display(){ + + cout< tvshows; + const string showFile = "data/Tvshows.txt"; + void loadFromFile() { + tvshows.clear(); + ifstream in(showFile); + string line; + while (getline(in, line)) { + size_t pos = 0; + string token; + vector tokens; + while ((pos = line.find('|')) != string::npos) { + token = line.substr(0, pos); + tokens.push_back(token); + line.erase(0, pos + 1); + } + tokens.push_back(line); + + string title = tokens[0]; + string genre = tokens[1]; + float rating = stof(tokens[2]); + float seasons = stof(tokens[3]); + float ep_s = stof(tokens[4]); + float rent = stof(tokens[5]); + float buy = stof(tokens[6]); + bool isRented = stoi(tokens[7]); + bool isPurchased = stoi(tokens[8]); + TVShow m(title, genre, rating, seasons,ep_s, rent , buy); + m.isrented = isRented; + m.ispurchased = isPurchased; + tvshows.push_back(m); + } + in.close(); + } + + void saveToFile() { + ofstream out(showFile); + for (const auto& m : tvshows) { + out << m.title << "|" << m.genre << "|" << m.rating << "|" + << m.seasons << "|" <title == title) { + tvshows.erase(i); + cout << "Show '" << title << "' removed successfully!\n"; + return; + } + } + cout << "Show not found.\n"; + } + void searchShow(const string& query) { + bool found = false; + for ( auto& show : tvshows) { + if (show.title.find(query) != string::npos || show.genre.find(query) != string::npos) { + show.display(); + found = true; + } + } + if (!found) { + cout << "No TV show found matching: " << query << endl; + } + } + void returnShow(const string& title, const string& username) { + string rentalFile = "data/rented_" + username + ".txt"; + + bool found = false; + for (auto show : tvshows) { + if (show.title == title && show.isrented) { + show.isrented = false; + saveToFile(); + found = true; + cout << title << " has been returned successfully!\n"; + break; + } + } + if (!found) { + cout << "Movie not found or not rented.\n"; + return; + } + vector rentals; + ifstream in(rentalFile); + string line; + while (getline(in, line)) { + if (line != title) { + rentals.push_back(line); + } + } + in.close(); + ofstream out(rentalFile); + + for (const auto& rental : rentals) { + out << rental << "\n"; + } + out.close(); + + + } + vector& getShows() { + return tvshows; + } + }; + + From 9218aa14996b61802aa2abcf08c9128a78d3ef41 Mon Sep 17 00:00:00 2001 From: Aayushman Tripathi Date: Tue, 13 May 2025 23:46:47 +0530 Subject: [PATCH 3/4] g --- aayushman_t/.vscode/settings.json | 8 - aayushman_t/.vscode/tasks.json | 39 --- aayushman_t/Dockerfile | 40 --- aayushman_t/a.out | Bin 54440 -> 0 bytes aayushman_t/data/Tvshows.txt | 50 ---- aayushman_t/data/movies.txt | 51 ---- aayushman_t/data/users.txt | 3 - aayushman_t/main.cpp | 434 ------------------------------ aayushman_t/movies.cpp | 187 ------------- aayushman_t/netflix | Bin 127304 -> 0 bytes aayushman_t/netflix_cli | Bin 54544 -> 0 bytes aayushman_t/tvShows.cpp | 191 ------------- 12 files changed, 1003 deletions(-) delete mode 100644 aayushman_t/.vscode/settings.json delete mode 100644 aayushman_t/.vscode/tasks.json delete mode 100644 aayushman_t/Dockerfile delete mode 100755 aayushman_t/a.out delete mode 100644 aayushman_t/data/Tvshows.txt delete mode 100644 aayushman_t/data/movies.txt delete mode 100644 aayushman_t/data/users.txt delete mode 100644 aayushman_t/main.cpp delete mode 100644 aayushman_t/movies.cpp delete mode 100755 aayushman_t/netflix delete mode 100755 aayushman_t/netflix_cli delete mode 100644 aayushman_t/tvShows.cpp diff --git a/aayushman_t/.vscode/settings.json b/aayushman_t/.vscode/settings.json deleted file mode 100644 index 311e001..0000000 --- a/aayushman_t/.vscode/settings.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "files.associations": { - "iostream": "cpp", - "fstream": "cpp", - "ostream": "cpp", - "limits": "cpp" - } -} \ No newline at end of file diff --git a/aayushman_t/.vscode/tasks.json b/aayushman_t/.vscode/tasks.json deleted file mode 100644 index a5ee821..0000000 --- a/aayushman_t/.vscode/tasks.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "version": "2.0.0", - "tasks": [ - { - "label": "Build C++", - "type": "shell", - "command": "g++", - "args": [ - "src/*.cpp", - "-o", - "netflix_cli" - ], - "group": "build" - }, - { - "type": "cppbuild", - "label": "C/C++: g++ build active file", - "command": "/usr/bin/g++", - "args": [ - "-fdiagnostics-color=always", - "-g", - "${file}", - "-o", - "${fileDirname}/${fileBasenameNoExtension}" - ], - "options": { - "cwd": "${fileDirname}" - }, - "problemMatcher": [ - "$gcc" - ], - "group": { - "kind": "build", - "isDefault": true - }, - "detail": "Task generated by Debugger." - } - ] -} \ No newline at end of file diff --git a/aayushman_t/Dockerfile b/aayushman_t/Dockerfile deleted file mode 100644 index 6d96bb1..0000000 --- a/aayushman_t/Dockerfile +++ /dev/null @@ -1,40 +0,0 @@ -# Use Ubuntu 22.04 as the base image for building (it includes g++ and supports C++17) -FROM ubuntu:22.04 AS builder - -# Install g++ and other build essentials -RUN apt-get update && apt-get install -y \ - g++ \ - && rm -rf /var/lib/apt/lists/* - -# Set the working directory inside the container -WORKDIR /app - -# Copy all source files and the data directory into the container -COPY main.cpp movies.cpp tvShows.cpp ./ -COPY data/ ./data/ - -# Compile the C++ program with C++17 standard -RUN g++ -std=c++17 main.cpp -o netflix_clone - -# Use a smaller runtime image for the final stage -FROM ubuntu:22.04 - -# Install runtime dependencies (minimal) -RUN apt-get update && apt-get install -y \ - && rm -rf /var/lib/apt/lists/* - -# Set the working directory -WORKDIR /app - -# Copy the compiled binary and data directory from the builder stage -COPY --from=builder /app/netflix_clone . -COPY --from=builder /app/data ./data/ - -# Ensure the data directory is writable -RUN chmod -R 777 /app/data - -# Define a volume for the data directory to persist data -VOLUME /app/data - -# Set the entrypoint to run the application -CMD ["./netflix_clone"] \ No newline at end of file diff --git a/aayushman_t/a.out b/aayushman_t/a.out deleted file mode 100755 index a68dded8785c00e218e9a5f5ae66912b3fdaa609..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 54440 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

0UyC|eu(znNXh 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 A7XSbN diff --git a/aayushman_t/data/Tvshows.txt b/aayushman_t/data/Tvshows.txt deleted file mode 100644 index dabf386..0000000 --- a/aayushman_t/data/Tvshows.txt +++ /dev/null @@ -1,50 +0,0 @@ -Starbound Chronicles|Sci-Fi|8.4|5|10|3.99|14.99|0|0 -City of Shadows|Thriller|7.8|3|12|4.49|12.99|0|0 -Laughing Lofts|Comedy|7.5|6|20|3.49|11.99|0|0 -Hearts of Valor|Drama|8.2|4|15|4.29|13.99|0|0 -Mystic Realms|Fantasy|8.0|2|8|4.99|15.99|0|0 -Urban Legends|Crime|7.6|5|13|4.19|13.49|0|0 -Ghostly Tales|Horror|6.8|3|10|3.29|10.99|0|0 -Family Ties|Comedy|7.9|7|22|3.79|12.49|0|0 -Galactic Pioneers|Sci-Fi|8.7|4|12|4.79|16.99|0|0 -Dark Horizons|Thriller|7.4|2|14|4.39|12.99|0|0 -Echoes of Fate|Drama|8.5|6|16|4.59|14.49|0|0 -Loves Journey|Romance|7.7|3|18|3.89|13.29|0|0 -Hidden Kingdoms|Fantasy|8.1|5|10|4.69|15.49|0|0 -Street Justice|Crime|7.3|4|15|4.29|13.79|0|0 -Cursed Shadows|Horror|6.9|2|8|3.39|11.49|0|0 -Chuckle Haven|Comedy|7.6|8|24|3.69|12.29|0|0 -Nebula Quest|Sci-Fi|8.3|3|11|4.89|16.49|0|0 -Night Watch|Thriller|7.5|4|13|4.49|13.99|0|0 -Tides of Time|Drama|8.0|5|14|4.09|14.19|0|0 -Forever Bound|Romance|7.8|2|16|3.99|12.99|0|0 -Secret Plans|Crime|7.2|3|12|4.19|13.19|0|0 -Wild Frontiers|Adventure|7.9|4|10|4.99|15.79|0|0 -Haunted Echoes|Horror|6.7|2|9|3.49|11.29|0|0 -Giggle Street|Comedy|7.4|6|20|3.79|12.59|0|0 -Cosmic Travelers|Sci-Fi|8.6|5|12|4.99|17.99|0|0 -Silent Betrayal|Thriller|7.7|3|15|4.39|13.49|0|0 -Broken Bonds|Drama|8.1|4|17|4.29|14.29|0|0 -Starlit Hearts|Romance|7.6|2|14|3.89|12.79|0|0 -Dragons Legacy|Fantasy|8.3|6|10|4.79|16.29|0|0 -True Detectives|Crime|7.5|5|13|4.49|13.99|0|0 -Grim Whispers|Horror|6.6|3|8|3.29|11.19|0|0 -Laugh Lounge|Comedy|7.3|7|22|3.69|12.39|0|0 -Orbit Breakers|Sci-Fi|8.2|4|11|4.89|16.79|0|0 -Veiled Secrets|Thriller|7.9|2|12|4.59|13.79|0|0 -Fading Lights|Drama|8.4|5|16|4.19|14.59|0|0 -Moonlit Vows|Romance|7.5|3|18|3.99|13.49|0|0 -Shadow Hunters|Fantasy|8.0|4|9|4.69|15.29|0|0 -City Beat|Crime|7.4|6|14|4.29|13.69|0|0 -Dark Omens|Horror|6.5|2|10|3.39|11.39|0|0 -Joke Junction|Comedy|7.7|5|20|3.79|12.49|0|0 -Intergalactic|Sci-Fi|8.5|3|10|4.99|17.49|0|0 -Last Confession|Thriller|7.6|4|13|4.49|13.29|0|0 -Shades of Truth|Drama|8.3|5|15|4.39|14.39|0|0 -Hearts Aflame|Romance|7.4|2|16|3.89|12.69|0|0 -Enchanted Woods|Fantasy|8.2|3|8|4.79|15.99|0|0 -Night Patrol|Crime|7.8|4|12|4.29|13.89|0|0 -Eerie Nights|Horror|6.7|2|9|3.49|11.59|0|0 -Funny Folks|Comedy|7.5|6|22|3.69|12.69|0|0 -Stellar Voyage|Sci-Fi|8.4|5|11|4.89|16.99|0|0 -Twisted Paths|Thriller|7.7|3|14|4.59|13.99|0|0 diff --git a/aayushman_t/data/movies.txt b/aayushman_t/data/movies.txt deleted file mode 100644 index a352267..0000000 --- a/aayushman_t/data/movies.txt +++ /dev/null @@ -1,51 +0,0 @@ -The Starfarer|Sci-Fi|8.2|2.15|3.99|14.99|0|0 -Midnight Run|Action|7.8|1.95|4.49|12.99|0|0 -Whispers in the Dark|Thriller|6.9|1.75|3.49|11.99|0|0 -Summer Dreams|Romance|8|2|3.99|13.99|0|0 -The Last Frontier|Adventure|7.5|2.25|4.99|15.99|0|0 -Echoes of Time|Drama|8.5|2.3|4.29|14.49|0|0 -Haunted Shadows|Horror|6.5|1.6|3.29|10.99|0|0 -City of Sparks|Comedy|7.2|1.85|3.79|12.49|0|0 -Quantum Leap|Sci-Fi|8.7|2.45|4.79|16.99|0|0 -The Iron Oath|Action|7.9|2.1|4.59|13.99|0|0 -Silent Waves|Drama|8.3|2.05|4.19|14.29|0|0 -Moonlit Secrets|Romance|7.7|1.9|3.89|12.99|0|0 -Crimson Tide|Thriller|7.4|2|4.39|13.49|0|0 -Jungle Quest|Adventure|7.1|2.2|4.69|15.49|0|0 -Ghostly Whispers|Horror|6.8|1.55|3.39|11.49|0|0 -Laugh Factory|Comedy|7.6|1.7|3.69|12.29|0|0 -Nebula Rising|Sci-Fi|8.4|2.35|4.89|16.49|0|0 -Bullet Storm|Action|7.3|1.8|4.29|13.29|0|0 -Tears of Tomorrow|Drama|8.1|2.25|4.09|14.19|0|0 -Love in Bloom|Romance|7.9|1.95|3.99|13.79|0|0 -Dark Alley|Thriller|6.7|1.65|3.59|11.99|0|0 -Skyward Bound|Adventure|7.8|2.3|4.99|15.79|0|0 -Phantom Manor|Horror|6.6|1.5|3.49|11.29|0|0 -Giggle Fest|Comedy|7.4|1.75|3.79|12.59|0|0 -Starlight Chronicles|Sci-Fi|8.6|2.5|4.99|17.99|0|0 -Rogue Agent|Action|7.7|2|4.49|13.99|0|0 -Fading Echoes|Drama|8.2|2.15|4.19|14.39|0|0 -Hearts Entwined|Romance|7.8|1.85|3.89|13.49|0|0 -Shadow Conspiracy|Thriller|7|1.9|4.29|12.99|0|0 -Wild Expedition|Adventure|7.6|2.25|4.79|15.29|0|0 -Grave Encounters|Horror|6.4|1.45|3.29|10.99|0|0 -Chuckle Town|Comedy|7.5|1.8|3.69|12.39|0|0 -Galactic Odyssey|Sci-Fi|8.3|2.4|4.89|16.79|0|0 -Thunder Strike|Action|7.9|1.95|4.59|13.79|0|0 -Broken Promises|Drama|8|2.2|4.09|14.09|0|0 -Starry Nights|Romance|7.7|1.9|3.99|13.29|0|0 -Hidden Truths|Thriller|6.9|1.7|3.59|11.79|0|0 -Mountain Quest|Adventure|7.4|2.3|4.69|15.19|0|0 -Cursed Woods|Horror|6.7|1.6|3.39|11.39|0|0 -Laugh Riot|Comedy|7.3|1.75|3.79|12.49|0|0 -Cosmic Voyage|Sci-Fi|8.5|2.45|4.99|17.49|0|0 -Blaze of Glory|Action|7.8|2|4.49|13.69|0|0 -Silent Tears|Drama|8.1|2.1|4.19|14.29|0|0 -Forever Yours|Romance|7.6|1.85|3.89|13.19|0|0 -Night Stalker|Thriller|7.1|1.8|4.29|12.89|0|0 -Desert Trek|Adventure|7.5|2.25|4.79|15.39|0|0 -Haunted Legacy|Horror|6.5|1.5|3.29|11.19|0|0 -Funny Bones|Comedy|7.4|1.7|3.69|12.29|0|0 -Interstellar Dreams|Sci-Fi|8.4|2.5|4.99|17.29|0|0 -Final Stand|Action|7.7|1.95|4.49|13.59|0|0 -dummy|dummy|0|0|0|0|0|0 diff --git a/aayushman_t/data/users.txt b/aayushman_t/data/users.txt deleted file mode 100644 index 8c48b1a..0000000 --- a/aayushman_t/data/users.txt +++ /dev/null @@ -1,3 +0,0 @@ -aayushman:querty -aayush:rty:admin -test:pass:admin diff --git a/aayushman_t/main.cpp b/aayushman_t/main.cpp deleted file mode 100644 index 0fb77d4..0000000 --- a/aayushman_t/main.cpp +++ /dev/null @@ -1,434 +0,0 @@ - -#include -#include -#include -#include -#include -#include -#include "tvShows.cpp" -#include "movies.cpp" -using namespace std; -const string USER_DATA_FILE = "data/users.txt"; -struct User{ - string username; - string password; - bool isAdmin; -}; -class UserManager { - string currentUsername; - bool isAdmin; - - public: - void signUp() { - vector users = loadusers(); - cout << "Choose a username: "; - string username; - cin >> username; - - if (usernameExists(users, username)) { - cout << "Username already exists. Try logging in.\n"; - return; - } - cout<<"Enter a password: "; - string pass; - cin>>pass; - char AdminChoice; - - cout<<"Is this an Admin Account? (y/n):"<>AdminChoice; - bool newAdmin = false; - - if(AdminChoice=='y'){ - newAdmin = true; - } - else{ - newAdmin =false; - } - ofstream file(USER_DATA_FILE, ios::app); - if (file.is_open()) { - file << username << ":"< users = loadusers(); - cout << "Enter username: "; - string username; - string password; - cin >> username; - cout<<"Enter Password: "; - cin>>password; - for (const auto& user : users) { - if (user.username == username && user.password == password) { - currentUsername = username; - isAdmin = user.isAdmin; - cout << "Login successful. Welcome, " << username << "!" - << (isAdmin ? " (Admin)" : "") << "\n"; - - return true; - } - } - - - cout << "Login failed. Username not found.\n"; - return false; - } - string getCurrentUsername(){ - return currentUsername; - } - bool isCurrentUserAdmin() { - return isAdmin; - } - void viewAllContent(MoviesManager & moviemanager,TVShowManager & tvshowmanager ){ - cout << "\n=========== All Available Movies ===========\n"; - moviemanager.browse(); - cout << "\n=========== All Available Tv Shows ===========\n"; - tvshowmanager.browse(); - - } - - private: - vector loadusers() { - vector users; - ifstream file(USER_DATA_FILE); - string line; - while (getline(file, line)) { - size_t pos1 = line.find(":"); - if(pos1 == string::npos)continue; - size_t pos2 = line.find(":", pos1+1); - string username = line.substr(0, pos1); - string password; - bool isAdmin =false; - if(pos2 != string::npos){ - password = line.substr(pos1 +1 , pos2-pos1-1); - isAdmin = (line.substr(pos2) == ":admin"); - - }else{ - password = line.substr(pos1+1); - - } - users.push_back({username, password,isAdmin}); - - } - file.close(); - return users; - - } - - bool usernameExists(const vector& users, const string& username) { - for (const auto& user: users) { - if (user.username== username) - return true; - } - return false; - } - - - }; - - -int main() { - TVShowManager tvshowmanager; - MoviesManager moviemanager; - UserManager manager; - bool isloggedin =false; - while(!isloggedin){ - int choice; - cout << "1. Login\n2. Sign-Up\nEnter choice: "; - cin >> choice; - cin.ignore(numeric_limits::max(), '\n'); - switch (choice) { - case 1: - isloggedin= manager.login(); - break; - case 2: - manager.signUp(); - break; - default: - cout << "Invalid choice.\n"; - }} - if(isloggedin == true && (!manager.isCurrentUserAdmin() )){ - while(true){ - int action; - cout<<"1. Browse Movies\n2. Browse Tv Shows\n3. Search Content by title or genre"<>action; - cin.ignore(numeric_limits::max(), '\n'); - string purchaseFile = "data/purchased_" + manager.getCurrentUsername() + ".txt"; - string rentalFile = "data/rented_" + manager.getCurrentUsername() + ".txt"; - if(action ==2 ){ - cout<<"The format is: TITLE|GENRE|RATING|SEASONS|EPISODES PER SEASON|RENT COST|PURCHASE COST| AVAILABLE OR NOT"<>pur_ren_choice_tv; - cin.ignore(numeric_limits::max(), '\n'); - if(pur_ren_choice_tv == 1){ - string show_to_be_rented; - cout << "Enter show to rent: "; - getline(cin, show_to_be_rented); - - tvshowmanager.rentShow(show_to_be_rented); - ofstream out(rentalFile, ios::app); - if (out.is_open()) { - out << show_to_be_rented << endl; - out.close(); - cout << "Successfully rented: " << show_to_be_rented << endl; - } else { - cout << "Failed to save rental info.\n"; - } - } - else if(pur_ren_choice_tv == 2){ - string show_to_be_pur; - cout << "Enter the name of the show to purchase: "; - getline(cin, show_to_be_pur); - tvshowmanager.purchaseShow(show_to_be_pur); - ofstream out(purchaseFile, ios::app); - if (out.is_open()) { - out << show_to_be_pur << endl; - out.close(); - cout << "Successfully rented: " << show_to_be_pur << endl; - } else { - cout << "Failed to save rental info.\n"; - } - } - else if(pur_ren_choice_tv == 3){ - string Show_to_be_returned; - cout<<"Enter the Show to be returned: "<>Show_to_be_returned; - tvshowmanager.returnShow(Show_to_be_returned, manager.getCurrentUsername()); - } - else if(pur_ren_choice_tv == 4){ - string rentalfile = "data/rented_"+manager.getCurrentUsername()+".txt"; - string line; - ifstream in(rentalfile); - cout << "\n=========== Your Rented Shows ===========\n"; - bool found= false; - while(getline(in,line)){ - - for(auto&show:tvshowmanager.getShows()){ - if(show.title == line & show.isrented){ - show.display(); - found =true; - break; - } - } - } - if(!found){ - cout<<"No rented movie available"<>pur_ren_choice_mv; - cin.ignore(numeric_limits::max(), '\n'); - if(pur_ren_choice_mv == 1){ - string movie_to_be_rented; - cout << "Enter the name of the movie to rent: "; - getline(cin, movie_to_be_rented); - moviemanager.rentmovie(movie_to_be_rented); - ofstream out(rentalFile, ios::app); - if (out.is_open()) { - out << movie_to_be_rented << endl; - out.close(); - cout << "Successfully rented: " << movie_to_be_rented << endl; - } else { - cout << "Failed to save rental info.\n"; - } - } - else if(pur_ren_choice_mv == 2){ - string movie_to_be_pur; - cout << "Enter the name of the movie to purchase: "; - getline(cin, movie_to_be_pur); - moviemanager.purchasemovie(movie_to_be_pur); - ofstream out(purchaseFile, ios::app); - if (out.is_open()) { - out << movie_to_be_pur << endl; - out.close(); - cout << "Successfully rented: " << movie_to_be_pur << endl; - - } else { - cout << "Failed to save rental info.\n"; - } - } - else if(pur_ren_choice_mv ==3){ - string movie_to_return; - cout << "Enter the name of the movie to return: "; - getline(cin, movie_to_return); - moviemanager.returnMovie(movie_to_return,manager.getCurrentUsername()); - } - else if (pur_ren_choice_mv == 4){ - string rentalfile = "data/rented_"+manager.getCurrentUsername()+".txt"; - string line; - ifstream in(rentalfile); - cout << "\n=========== Your Rented Movies ===========\n"; - bool found= false; - while(getline(in,line)){ - - for(auto&movie:moviemanager.getMovies()){ - if(movie.title == line & movie.isrented){ - movie.display(); - found =true; - break; - } - } - } - if(!found){ - cout<<"No rented movie available"<> type; - cin.ignore(); - - cout << "Enter search keyword (title or genre): "; - string keyword; - getline(cin, keyword); - - if (type == 1) - moviemanager.searchMovie(keyword); - else if (type == 2) - tvshowmanager.searchShow(keyword); - else - cout << "Invalid search type.\n"; - } - - else{ - cout<<"Invalid Choice"; - } - }} - else if(isloggedin && manager.isCurrentUserAdmin()){ - while(true){ - int adminChoice; - cout<<"1. Movies \n2. TvShows"<>adminChoice; - cin.ignore(numeric_limits::max(), '\n'); - if(adminChoice ==1){ - int rem_add_mv; - cout<<"1. Add Movies \n2. Remove Movies\n3. List all Movies and Tv shows"<>rem_add_mv; - cin.ignore(numeric_limits::max(), '\n'); - if(rem_add_mv ==1){ - string title, genre; - float rating, rentCost, purchaseCost, duration; - char ch = 'y'; - - while(ch =='y'){ - cout << "Enter movie title: "; - getline(cin, title); - cout << "Enter genre: "; - getline(cin, genre); - cout << "Enter rating (0-10): "; - cin >> rating; - cout<<"Enter Duration "; - cin>> duration; - cout << "Enter rent cost: "; - cin >> rentCost; - cout << "Enter purchase cost: "; - cin >> purchaseCost; - - moviemanager.addMovie(title, genre, rating, duration, rentCost, purchaseCost); - cout<<"Want to enter more:(y/n) "; - cin>>ch; - cin.ignore(numeric_limits::max(), '\n'); - - } - - } - else if (rem_add_mv == 2) { - string title; - cout << "Enter movie title to remove: "; - getline(cin, title); - moviemanager.removeMovie(title); - } - else if(rem_add_mv ==3){ - manager.viewAllContent(moviemanager, tvshowmanager); - } - else { - cout << "Invalid admin choice.\n"; - } - } - else if(adminChoice == 2){ - int rem_add_sh; - cout<<"1. Add TvShows \n2. Remove TvShows\n3. List all Tv Shows and movies"<>rem_add_sh; - cin.ignore(numeric_limits::max(), '\n'); - if(rem_add_sh ==1){ - string title, genre; - float rating, rentCost, purchaseCost, season , ep_s; - char ch ='y'; - - - while(ch =='y'){ - cout << "Enter show title: "; - getline(cin, title); - cout << "Enter genre: "; - getline(cin, genre); - cout << "Enter rating (0-10): "; - cin >> rating; - cout << "Enter number of Seasons: "; - cin >> season; - cout << "Enter episode per season "; - cin >> ep_s; - cout << "Enter rent cost: "; - cin >> rentCost; - cout << "Enter purchase cost: "; - cin >> purchaseCost; - - - tvshowmanager.addshow(title, genre, rating,season,ep_s, rentCost, purchaseCost); - cout<<"Want to enter more:(y/n) "; - cin>>ch; - cin.ignore(numeric_limits::max(), '\n'); - - - } - - } - else if (rem_add_sh == 2) { - string title; - cout << "Enter movie title to remove: "; - getline(cin, title); - tvshowmanager.removeShow(title); - } - else if(rem_add_sh ==3){ - manager.viewAllContent(moviemanager, tvshowmanager); - } - else { - cout << "Invalid admin choice.\n"; - } - } - else{ - cout<<"Invalid Choice"< -#include -#include - -using namespace std; - -class Movies { -public: - string title; - string genre; - float rating; - float duration; - - float rentCost; - float purchaseCost; - bool isrented; - bool ispurchased; - - Movies(string t, string g, float r, float d, float rent, float buy) - { - title =t; - genre =g; - rating =r; - duration =d ; - rentCost =rent; - purchaseCost =buy; - isrented =false; - ispurchased =false; - } - - void display(){ - - cout< Moviess; - const string movieFile = "data/movies.txt"; - void loadFromFile() { - Moviess.clear(); - ifstream in(movieFile); - string line; - while (getline(in, line)) { - size_t pos = 0; - string token; - vector tokens; - while ((pos = line.find('|')) != string::npos) { - token = line.substr(0, pos); - tokens.push_back(token); - line.erase(0, pos + 1); - } - tokens.push_back(line); - - string title = tokens[0]; - string genre = tokens[1]; - float rating = stof(tokens[2]); - float duration = stof(tokens[3]); - float rent = stof(tokens[4]); - float buy = stof(tokens[5]); - bool isRented = stoi(tokens[6]); - bool isPurchased = stoi(tokens[7]); - Movies m(title, genre, rating, duration, rent , buy ); - m.isrented = isRented; - m.ispurchased = isPurchased; - Moviess.push_back(m); - } - in.close(); - } - - void saveToFile() { - ofstream out(movieFile); - for (const auto& m : Moviess) { - out << m.title << "|" << m.genre << "|" << m.rating << "|" - << m.duration << "|" << m.rentCost << "|" - << m.purchaseCost << "|" << m.isrented << "|"<< m.ispurchased<< "\n"; - } - out.close(); - } - public: - MoviesManager() { - loadFromFile(); - } - - void browse() { - cout << "\nAvailable Movies:\n"; - for (auto& show : Moviess) { - show.display(); - } - } - - void rentmovie(string title) { - for (auto& show : Moviess) { - if (show.title == title && !show.isrented && !show.ispurchased) { - show.isrented = true; - saveToFile(); - cout << title << " has been rented!"<title == title) { - Moviess.erase(i); - cout << "Movie '" << title << "' removed successfully!\n"; - return; - } - } - cout << "Movie not found.\n"; - } - void searchMovie(const string& query) { - bool found = false; - for (auto& movie : Moviess) { - if (movie.title.find(query) != string::npos || movie.genre.find(query) != string::npos) { - movie.display(); - found = true; - } - } - if (!found) { - cout << "No movie found matching: " << query << endl; - } - } - void returnMovie(const string& title, const string& username) { - string rentalFile = "data/rented_" + username + ".txt"; - - bool found = false; - for (auto& movie : Moviess) { - if (movie.title == title && movie.isrented) { - movie.isrented = false; - saveToFile(); - found = true; - cout << title << " has been returned successfully!\n"; - break; - } - } - if (!found) { - cout << "Movie not found or not rented.\n"; - return; - } - vector rentals; - ifstream in(rentalFile); - string line; - while (getline(in, line)) { - if (line != title) { - rentals.push_back(line); - } - } - in.close(); - ofstream out(rentalFile); - - for (const auto& rental : rentals) { - out << rental << "\n"; - } - out.close(); - - } - vector& getMovies() { - return Moviess; - } -}; diff --git a/aayushman_t/netflix b/aayushman_t/netflix deleted file mode 100755 index de849d3cb6ef501121895a880da20de7b7c8c7ad..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 127304 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 diff --git a/aayushman_t/netflix_cli b/aayushman_t/netflix_cli deleted file mode 100755 index 513ef0fdee07391fa22525b7d599b7b0291d78ad..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 54544 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

Q95x~SpZ;`6fG=oO3T&>+WqSYu)ihI# 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 znh -#include -#include - -using namespace std; - -class TVShow { -public: - string title; - string genre; - float rating; - int seasons; - int episodesPerSeason; - float rentCost; - float purchaseCost; - bool isrented; - bool ispurchased; - - TVShow(string t, string g, float r, int s, int eps, float rent, float buy) - { - title =t; - genre =g; - rating =r; - seasons =s; - episodesPerSeason =eps; - rentCost =rent; - purchaseCost =buy; - isrented =false; - ispurchased = false; - } - - void display(){ - - cout< tvshows; - const string showFile = "data/Tvshows.txt"; - void loadFromFile() { - tvshows.clear(); - ifstream in(showFile); - string line; - while (getline(in, line)) { - size_t pos = 0; - string token; - vector tokens; - while ((pos = line.find('|')) != string::npos) { - token = line.substr(0, pos); - tokens.push_back(token); - line.erase(0, pos + 1); - } - tokens.push_back(line); - - string title = tokens[0]; - string genre = tokens[1]; - float rating = stof(tokens[2]); - float seasons = stof(tokens[3]); - float ep_s = stof(tokens[4]); - float rent = stof(tokens[5]); - float buy = stof(tokens[6]); - bool isRented = stoi(tokens[7]); - bool isPurchased = stoi(tokens[8]); - TVShow m(title, genre, rating, seasons,ep_s, rent , buy); - m.isrented = isRented; - m.ispurchased = isPurchased; - tvshows.push_back(m); - } - in.close(); - } - - void saveToFile() { - ofstream out(showFile); - for (const auto& m : tvshows) { - out << m.title << "|" << m.genre << "|" << m.rating << "|" - << m.seasons << "|" <title == title) { - tvshows.erase(i); - cout << "Show '" << title << "' removed successfully!\n"; - return; - } - } - cout << "Show not found.\n"; - } - void searchShow(const string& query) { - bool found = false; - for ( auto& show : tvshows) { - if (show.title.find(query) != string::npos || show.genre.find(query) != string::npos) { - show.display(); - found = true; - } - } - if (!found) { - cout << "No TV show found matching: " << query << endl; - } - } - void returnShow(const string& title, const string& username) { - string rentalFile = "data/rented_" + username + ".txt"; - - bool found = false; - for (auto show : tvshows) { - if (show.title == title && show.isrented) { - show.isrented = false; - saveToFile(); - found = true; - cout << title << " has been returned successfully!\n"; - break; - } - } - if (!found) { - cout << "Movie not found or not rented.\n"; - return; - } - vector rentals; - ifstream in(rentalFile); - string line; - while (getline(in, line)) { - if (line != title) { - rentals.push_back(line); - } - } - in.close(); - ofstream out(rentalFile); - - for (const auto& rental : rentals) { - out << rental << "\n"; - } - out.close(); - - - } - vector& getShows() { - return tvshows; - } - }; - - From 93dbcf8a9415d67b50081cdda040189115058821 Mon Sep 17 00:00:00 2001 From: Aayushman Tripathi Date: Tue, 13 May 2025 23:56:27 +0530 Subject: [PATCH 4/4] Added aayushman_t --- aayushman_t/.vscode/settings.json | 8 + aayushman_t/.vscode/tasks.json | 39 +++ aayushman_t/Dockerfile | 40 +++ aayushman_t/a.out | Bin 0 -> 54440 bytes aayushman_t/data/Tvshows.txt | 50 ++++ aayushman_t/data/movies.txt | 51 ++++ aayushman_t/data/users.txt | 3 + aayushman_t/main.cpp | 434 ++++++++++++++++++++++++++++++ aayushman_t/movies.cpp | 187 +++++++++++++ aayushman_t/netflix | Bin 0 -> 127304 bytes aayushman_t/netflix_cli | Bin 0 -> 54544 bytes aayushman_t/tvShows.cpp | 191 +++++++++++++ 12 files changed, 1003 insertions(+) create mode 100644 aayushman_t/.vscode/settings.json create mode 100644 aayushman_t/.vscode/tasks.json create mode 100644 aayushman_t/Dockerfile create mode 100755 aayushman_t/a.out create mode 100644 aayushman_t/data/Tvshows.txt create mode 100644 aayushman_t/data/movies.txt create mode 100644 aayushman_t/data/users.txt create mode 100644 aayushman_t/main.cpp create mode 100644 aayushman_t/movies.cpp create mode 100755 aayushman_t/netflix create mode 100755 aayushman_t/netflix_cli create mode 100644 aayushman_t/tvShows.cpp diff --git a/aayushman_t/.vscode/settings.json b/aayushman_t/.vscode/settings.json new file mode 100644 index 0000000..311e001 --- /dev/null +++ b/aayushman_t/.vscode/settings.json @@ -0,0 +1,8 @@ +{ + "files.associations": { + "iostream": "cpp", + "fstream": "cpp", + "ostream": "cpp", + "limits": "cpp" + } +} \ No newline at end of file diff --git a/aayushman_t/.vscode/tasks.json b/aayushman_t/.vscode/tasks.json new file mode 100644 index 0000000..a5ee821 --- /dev/null +++ b/aayushman_t/.vscode/tasks.json @@ -0,0 +1,39 @@ +{ + "version": "2.0.0", + "tasks": [ + { + "label": "Build C++", + "type": "shell", + "command": "g++", + "args": [ + "src/*.cpp", + "-o", + "netflix_cli" + ], + "group": "build" + }, + { + "type": "cppbuild", + "label": "C/C++: g++ build active file", + "command": "/usr/bin/g++", + "args": [ + "-fdiagnostics-color=always", + "-g", + "${file}", + "-o", + "${fileDirname}/${fileBasenameNoExtension}" + ], + "options": { + "cwd": "${fileDirname}" + }, + "problemMatcher": [ + "$gcc" + ], + "group": { + "kind": "build", + "isDefault": true + }, + "detail": "Task generated by Debugger." + } + ] +} \ No newline at end of file diff --git a/aayushman_t/Dockerfile b/aayushman_t/Dockerfile new file mode 100644 index 0000000..6d96bb1 --- /dev/null +++ b/aayushman_t/Dockerfile @@ -0,0 +1,40 @@ +# Use Ubuntu 22.04 as the base image for building (it includes g++ and supports C++17) +FROM ubuntu:22.04 AS builder + +# Install g++ and other build essentials +RUN apt-get update && apt-get install -y \ + g++ \ + && rm -rf /var/lib/apt/lists/* + +# Set the working directory inside the container +WORKDIR /app + +# Copy all source files and the data directory into the container +COPY main.cpp movies.cpp tvShows.cpp ./ +COPY data/ ./data/ + +# Compile the C++ program with C++17 standard +RUN g++ -std=c++17 main.cpp -o netflix_clone + +# Use a smaller runtime image for the final stage +FROM ubuntu:22.04 + +# Install runtime dependencies (minimal) +RUN apt-get update && apt-get install -y \ + && rm -rf /var/lib/apt/lists/* + +# Set the working directory +WORKDIR /app + +# Copy the compiled binary and data directory from the builder stage +COPY --from=builder /app/netflix_clone . +COPY --from=builder /app/data ./data/ + +# Ensure the data directory is writable +RUN chmod -R 777 /app/data + +# Define a volume for the data directory to persist data +VOLUME /app/data + +# Set the entrypoint to run the application +CMD ["./netflix_clone"] \ No newline at end of file diff --git a/aayushman_t/a.out b/aayushman_t/a.out new file mode 100755 index 0000000000000000000000000000000000000000..a68dded8785c00e218e9a5f5ae66912b3fdaa609 GIT binary patch literal 54440 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

0UyC|eu(znNXh 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 A7XSbN literal 0 HcmV?d00001 diff --git a/aayushman_t/data/Tvshows.txt b/aayushman_t/data/Tvshows.txt new file mode 100644 index 0000000..dabf386 --- /dev/null +++ b/aayushman_t/data/Tvshows.txt @@ -0,0 +1,50 @@ +Starbound Chronicles|Sci-Fi|8.4|5|10|3.99|14.99|0|0 +City of Shadows|Thriller|7.8|3|12|4.49|12.99|0|0 +Laughing Lofts|Comedy|7.5|6|20|3.49|11.99|0|0 +Hearts of Valor|Drama|8.2|4|15|4.29|13.99|0|0 +Mystic Realms|Fantasy|8.0|2|8|4.99|15.99|0|0 +Urban Legends|Crime|7.6|5|13|4.19|13.49|0|0 +Ghostly Tales|Horror|6.8|3|10|3.29|10.99|0|0 +Family Ties|Comedy|7.9|7|22|3.79|12.49|0|0 +Galactic Pioneers|Sci-Fi|8.7|4|12|4.79|16.99|0|0 +Dark Horizons|Thriller|7.4|2|14|4.39|12.99|0|0 +Echoes of Fate|Drama|8.5|6|16|4.59|14.49|0|0 +Loves Journey|Romance|7.7|3|18|3.89|13.29|0|0 +Hidden Kingdoms|Fantasy|8.1|5|10|4.69|15.49|0|0 +Street Justice|Crime|7.3|4|15|4.29|13.79|0|0 +Cursed Shadows|Horror|6.9|2|8|3.39|11.49|0|0 +Chuckle Haven|Comedy|7.6|8|24|3.69|12.29|0|0 +Nebula Quest|Sci-Fi|8.3|3|11|4.89|16.49|0|0 +Night Watch|Thriller|7.5|4|13|4.49|13.99|0|0 +Tides of Time|Drama|8.0|5|14|4.09|14.19|0|0 +Forever Bound|Romance|7.8|2|16|3.99|12.99|0|0 +Secret Plans|Crime|7.2|3|12|4.19|13.19|0|0 +Wild Frontiers|Adventure|7.9|4|10|4.99|15.79|0|0 +Haunted Echoes|Horror|6.7|2|9|3.49|11.29|0|0 +Giggle Street|Comedy|7.4|6|20|3.79|12.59|0|0 +Cosmic Travelers|Sci-Fi|8.6|5|12|4.99|17.99|0|0 +Silent Betrayal|Thriller|7.7|3|15|4.39|13.49|0|0 +Broken Bonds|Drama|8.1|4|17|4.29|14.29|0|0 +Starlit Hearts|Romance|7.6|2|14|3.89|12.79|0|0 +Dragons Legacy|Fantasy|8.3|6|10|4.79|16.29|0|0 +True Detectives|Crime|7.5|5|13|4.49|13.99|0|0 +Grim Whispers|Horror|6.6|3|8|3.29|11.19|0|0 +Laugh Lounge|Comedy|7.3|7|22|3.69|12.39|0|0 +Orbit Breakers|Sci-Fi|8.2|4|11|4.89|16.79|0|0 +Veiled Secrets|Thriller|7.9|2|12|4.59|13.79|0|0 +Fading Lights|Drama|8.4|5|16|4.19|14.59|0|0 +Moonlit Vows|Romance|7.5|3|18|3.99|13.49|0|0 +Shadow Hunters|Fantasy|8.0|4|9|4.69|15.29|0|0 +City Beat|Crime|7.4|6|14|4.29|13.69|0|0 +Dark Omens|Horror|6.5|2|10|3.39|11.39|0|0 +Joke Junction|Comedy|7.7|5|20|3.79|12.49|0|0 +Intergalactic|Sci-Fi|8.5|3|10|4.99|17.49|0|0 +Last Confession|Thriller|7.6|4|13|4.49|13.29|0|0 +Shades of Truth|Drama|8.3|5|15|4.39|14.39|0|0 +Hearts Aflame|Romance|7.4|2|16|3.89|12.69|0|0 +Enchanted Woods|Fantasy|8.2|3|8|4.79|15.99|0|0 +Night Patrol|Crime|7.8|4|12|4.29|13.89|0|0 +Eerie Nights|Horror|6.7|2|9|3.49|11.59|0|0 +Funny Folks|Comedy|7.5|6|22|3.69|12.69|0|0 +Stellar Voyage|Sci-Fi|8.4|5|11|4.89|16.99|0|0 +Twisted Paths|Thriller|7.7|3|14|4.59|13.99|0|0 diff --git a/aayushman_t/data/movies.txt b/aayushman_t/data/movies.txt new file mode 100644 index 0000000..a352267 --- /dev/null +++ b/aayushman_t/data/movies.txt @@ -0,0 +1,51 @@ +The Starfarer|Sci-Fi|8.2|2.15|3.99|14.99|0|0 +Midnight Run|Action|7.8|1.95|4.49|12.99|0|0 +Whispers in the Dark|Thriller|6.9|1.75|3.49|11.99|0|0 +Summer Dreams|Romance|8|2|3.99|13.99|0|0 +The Last Frontier|Adventure|7.5|2.25|4.99|15.99|0|0 +Echoes of Time|Drama|8.5|2.3|4.29|14.49|0|0 +Haunted Shadows|Horror|6.5|1.6|3.29|10.99|0|0 +City of Sparks|Comedy|7.2|1.85|3.79|12.49|0|0 +Quantum Leap|Sci-Fi|8.7|2.45|4.79|16.99|0|0 +The Iron Oath|Action|7.9|2.1|4.59|13.99|0|0 +Silent Waves|Drama|8.3|2.05|4.19|14.29|0|0 +Moonlit Secrets|Romance|7.7|1.9|3.89|12.99|0|0 +Crimson Tide|Thriller|7.4|2|4.39|13.49|0|0 +Jungle Quest|Adventure|7.1|2.2|4.69|15.49|0|0 +Ghostly Whispers|Horror|6.8|1.55|3.39|11.49|0|0 +Laugh Factory|Comedy|7.6|1.7|3.69|12.29|0|0 +Nebula Rising|Sci-Fi|8.4|2.35|4.89|16.49|0|0 +Bullet Storm|Action|7.3|1.8|4.29|13.29|0|0 +Tears of Tomorrow|Drama|8.1|2.25|4.09|14.19|0|0 +Love in Bloom|Romance|7.9|1.95|3.99|13.79|0|0 +Dark Alley|Thriller|6.7|1.65|3.59|11.99|0|0 +Skyward Bound|Adventure|7.8|2.3|4.99|15.79|0|0 +Phantom Manor|Horror|6.6|1.5|3.49|11.29|0|0 +Giggle Fest|Comedy|7.4|1.75|3.79|12.59|0|0 +Starlight Chronicles|Sci-Fi|8.6|2.5|4.99|17.99|0|0 +Rogue Agent|Action|7.7|2|4.49|13.99|0|0 +Fading Echoes|Drama|8.2|2.15|4.19|14.39|0|0 +Hearts Entwined|Romance|7.8|1.85|3.89|13.49|0|0 +Shadow Conspiracy|Thriller|7|1.9|4.29|12.99|0|0 +Wild Expedition|Adventure|7.6|2.25|4.79|15.29|0|0 +Grave Encounters|Horror|6.4|1.45|3.29|10.99|0|0 +Chuckle Town|Comedy|7.5|1.8|3.69|12.39|0|0 +Galactic Odyssey|Sci-Fi|8.3|2.4|4.89|16.79|0|0 +Thunder Strike|Action|7.9|1.95|4.59|13.79|0|0 +Broken Promises|Drama|8|2.2|4.09|14.09|0|0 +Starry Nights|Romance|7.7|1.9|3.99|13.29|0|0 +Hidden Truths|Thriller|6.9|1.7|3.59|11.79|0|0 +Mountain Quest|Adventure|7.4|2.3|4.69|15.19|0|0 +Cursed Woods|Horror|6.7|1.6|3.39|11.39|0|0 +Laugh Riot|Comedy|7.3|1.75|3.79|12.49|0|0 +Cosmic Voyage|Sci-Fi|8.5|2.45|4.99|17.49|0|0 +Blaze of Glory|Action|7.8|2|4.49|13.69|0|0 +Silent Tears|Drama|8.1|2.1|4.19|14.29|0|0 +Forever Yours|Romance|7.6|1.85|3.89|13.19|0|0 +Night Stalker|Thriller|7.1|1.8|4.29|12.89|0|0 +Desert Trek|Adventure|7.5|2.25|4.79|15.39|0|0 +Haunted Legacy|Horror|6.5|1.5|3.29|11.19|0|0 +Funny Bones|Comedy|7.4|1.7|3.69|12.29|0|0 +Interstellar Dreams|Sci-Fi|8.4|2.5|4.99|17.29|0|0 +Final Stand|Action|7.7|1.95|4.49|13.59|0|0 +dummy|dummy|0|0|0|0|0|0 diff --git a/aayushman_t/data/users.txt b/aayushman_t/data/users.txt new file mode 100644 index 0000000..8c48b1a --- /dev/null +++ b/aayushman_t/data/users.txt @@ -0,0 +1,3 @@ +aayushman:querty +aayush:rty:admin +test:pass:admin diff --git a/aayushman_t/main.cpp b/aayushman_t/main.cpp new file mode 100644 index 0000000..0fb77d4 --- /dev/null +++ b/aayushman_t/main.cpp @@ -0,0 +1,434 @@ + +#include +#include +#include +#include +#include +#include +#include "tvShows.cpp" +#include "movies.cpp" +using namespace std; +const string USER_DATA_FILE = "data/users.txt"; +struct User{ + string username; + string password; + bool isAdmin; +}; +class UserManager { + string currentUsername; + bool isAdmin; + + public: + void signUp() { + vector users = loadusers(); + cout << "Choose a username: "; + string username; + cin >> username; + + if (usernameExists(users, username)) { + cout << "Username already exists. Try logging in.\n"; + return; + } + cout<<"Enter a password: "; + string pass; + cin>>pass; + char AdminChoice; + + cout<<"Is this an Admin Account? (y/n):"<>AdminChoice; + bool newAdmin = false; + + if(AdminChoice=='y'){ + newAdmin = true; + } + else{ + newAdmin =false; + } + ofstream file(USER_DATA_FILE, ios::app); + if (file.is_open()) { + file << username << ":"< users = loadusers(); + cout << "Enter username: "; + string username; + string password; + cin >> username; + cout<<"Enter Password: "; + cin>>password; + for (const auto& user : users) { + if (user.username == username && user.password == password) { + currentUsername = username; + isAdmin = user.isAdmin; + cout << "Login successful. Welcome, " << username << "!" + << (isAdmin ? " (Admin)" : "") << "\n"; + + return true; + } + } + + + cout << "Login failed. Username not found.\n"; + return false; + } + string getCurrentUsername(){ + return currentUsername; + } + bool isCurrentUserAdmin() { + return isAdmin; + } + void viewAllContent(MoviesManager & moviemanager,TVShowManager & tvshowmanager ){ + cout << "\n=========== All Available Movies ===========\n"; + moviemanager.browse(); + cout << "\n=========== All Available Tv Shows ===========\n"; + tvshowmanager.browse(); + + } + + private: + vector loadusers() { + vector users; + ifstream file(USER_DATA_FILE); + string line; + while (getline(file, line)) { + size_t pos1 = line.find(":"); + if(pos1 == string::npos)continue; + size_t pos2 = line.find(":", pos1+1); + string username = line.substr(0, pos1); + string password; + bool isAdmin =false; + if(pos2 != string::npos){ + password = line.substr(pos1 +1 , pos2-pos1-1); + isAdmin = (line.substr(pos2) == ":admin"); + + }else{ + password = line.substr(pos1+1); + + } + users.push_back({username, password,isAdmin}); + + } + file.close(); + return users; + + } + + bool usernameExists(const vector& users, const string& username) { + for (const auto& user: users) { + if (user.username== username) + return true; + } + return false; + } + + + }; + + +int main() { + TVShowManager tvshowmanager; + MoviesManager moviemanager; + UserManager manager; + bool isloggedin =false; + while(!isloggedin){ + int choice; + cout << "1. Login\n2. Sign-Up\nEnter choice: "; + cin >> choice; + cin.ignore(numeric_limits::max(), '\n'); + switch (choice) { + case 1: + isloggedin= manager.login(); + break; + case 2: + manager.signUp(); + break; + default: + cout << "Invalid choice.\n"; + }} + if(isloggedin == true && (!manager.isCurrentUserAdmin() )){ + while(true){ + int action; + cout<<"1. Browse Movies\n2. Browse Tv Shows\n3. Search Content by title or genre"<>action; + cin.ignore(numeric_limits::max(), '\n'); + string purchaseFile = "data/purchased_" + manager.getCurrentUsername() + ".txt"; + string rentalFile = "data/rented_" + manager.getCurrentUsername() + ".txt"; + if(action ==2 ){ + cout<<"The format is: TITLE|GENRE|RATING|SEASONS|EPISODES PER SEASON|RENT COST|PURCHASE COST| AVAILABLE OR NOT"<>pur_ren_choice_tv; + cin.ignore(numeric_limits::max(), '\n'); + if(pur_ren_choice_tv == 1){ + string show_to_be_rented; + cout << "Enter show to rent: "; + getline(cin, show_to_be_rented); + + tvshowmanager.rentShow(show_to_be_rented); + ofstream out(rentalFile, ios::app); + if (out.is_open()) { + out << show_to_be_rented << endl; + out.close(); + cout << "Successfully rented: " << show_to_be_rented << endl; + } else { + cout << "Failed to save rental info.\n"; + } + } + else if(pur_ren_choice_tv == 2){ + string show_to_be_pur; + cout << "Enter the name of the show to purchase: "; + getline(cin, show_to_be_pur); + tvshowmanager.purchaseShow(show_to_be_pur); + ofstream out(purchaseFile, ios::app); + if (out.is_open()) { + out << show_to_be_pur << endl; + out.close(); + cout << "Successfully rented: " << show_to_be_pur << endl; + } else { + cout << "Failed to save rental info.\n"; + } + } + else if(pur_ren_choice_tv == 3){ + string Show_to_be_returned; + cout<<"Enter the Show to be returned: "<>Show_to_be_returned; + tvshowmanager.returnShow(Show_to_be_returned, manager.getCurrentUsername()); + } + else if(pur_ren_choice_tv == 4){ + string rentalfile = "data/rented_"+manager.getCurrentUsername()+".txt"; + string line; + ifstream in(rentalfile); + cout << "\n=========== Your Rented Shows ===========\n"; + bool found= false; + while(getline(in,line)){ + + for(auto&show:tvshowmanager.getShows()){ + if(show.title == line & show.isrented){ + show.display(); + found =true; + break; + } + } + } + if(!found){ + cout<<"No rented movie available"<>pur_ren_choice_mv; + cin.ignore(numeric_limits::max(), '\n'); + if(pur_ren_choice_mv == 1){ + string movie_to_be_rented; + cout << "Enter the name of the movie to rent: "; + getline(cin, movie_to_be_rented); + moviemanager.rentmovie(movie_to_be_rented); + ofstream out(rentalFile, ios::app); + if (out.is_open()) { + out << movie_to_be_rented << endl; + out.close(); + cout << "Successfully rented: " << movie_to_be_rented << endl; + } else { + cout << "Failed to save rental info.\n"; + } + } + else if(pur_ren_choice_mv == 2){ + string movie_to_be_pur; + cout << "Enter the name of the movie to purchase: "; + getline(cin, movie_to_be_pur); + moviemanager.purchasemovie(movie_to_be_pur); + ofstream out(purchaseFile, ios::app); + if (out.is_open()) { + out << movie_to_be_pur << endl; + out.close(); + cout << "Successfully rented: " << movie_to_be_pur << endl; + + } else { + cout << "Failed to save rental info.\n"; + } + } + else if(pur_ren_choice_mv ==3){ + string movie_to_return; + cout << "Enter the name of the movie to return: "; + getline(cin, movie_to_return); + moviemanager.returnMovie(movie_to_return,manager.getCurrentUsername()); + } + else if (pur_ren_choice_mv == 4){ + string rentalfile = "data/rented_"+manager.getCurrentUsername()+".txt"; + string line; + ifstream in(rentalfile); + cout << "\n=========== Your Rented Movies ===========\n"; + bool found= false; + while(getline(in,line)){ + + for(auto&movie:moviemanager.getMovies()){ + if(movie.title == line & movie.isrented){ + movie.display(); + found =true; + break; + } + } + } + if(!found){ + cout<<"No rented movie available"<> type; + cin.ignore(); + + cout << "Enter search keyword (title or genre): "; + string keyword; + getline(cin, keyword); + + if (type == 1) + moviemanager.searchMovie(keyword); + else if (type == 2) + tvshowmanager.searchShow(keyword); + else + cout << "Invalid search type.\n"; + } + + else{ + cout<<"Invalid Choice"; + } + }} + else if(isloggedin && manager.isCurrentUserAdmin()){ + while(true){ + int adminChoice; + cout<<"1. Movies \n2. TvShows"<>adminChoice; + cin.ignore(numeric_limits::max(), '\n'); + if(adminChoice ==1){ + int rem_add_mv; + cout<<"1. Add Movies \n2. Remove Movies\n3. List all Movies and Tv shows"<>rem_add_mv; + cin.ignore(numeric_limits::max(), '\n'); + if(rem_add_mv ==1){ + string title, genre; + float rating, rentCost, purchaseCost, duration; + char ch = 'y'; + + while(ch =='y'){ + cout << "Enter movie title: "; + getline(cin, title); + cout << "Enter genre: "; + getline(cin, genre); + cout << "Enter rating (0-10): "; + cin >> rating; + cout<<"Enter Duration "; + cin>> duration; + cout << "Enter rent cost: "; + cin >> rentCost; + cout << "Enter purchase cost: "; + cin >> purchaseCost; + + moviemanager.addMovie(title, genre, rating, duration, rentCost, purchaseCost); + cout<<"Want to enter more:(y/n) "; + cin>>ch; + cin.ignore(numeric_limits::max(), '\n'); + + } + + } + else if (rem_add_mv == 2) { + string title; + cout << "Enter movie title to remove: "; + getline(cin, title); + moviemanager.removeMovie(title); + } + else if(rem_add_mv ==3){ + manager.viewAllContent(moviemanager, tvshowmanager); + } + else { + cout << "Invalid admin choice.\n"; + } + } + else if(adminChoice == 2){ + int rem_add_sh; + cout<<"1. Add TvShows \n2. Remove TvShows\n3. List all Tv Shows and movies"<>rem_add_sh; + cin.ignore(numeric_limits::max(), '\n'); + if(rem_add_sh ==1){ + string title, genre; + float rating, rentCost, purchaseCost, season , ep_s; + char ch ='y'; + + + while(ch =='y'){ + cout << "Enter show title: "; + getline(cin, title); + cout << "Enter genre: "; + getline(cin, genre); + cout << "Enter rating (0-10): "; + cin >> rating; + cout << "Enter number of Seasons: "; + cin >> season; + cout << "Enter episode per season "; + cin >> ep_s; + cout << "Enter rent cost: "; + cin >> rentCost; + cout << "Enter purchase cost: "; + cin >> purchaseCost; + + + tvshowmanager.addshow(title, genre, rating,season,ep_s, rentCost, purchaseCost); + cout<<"Want to enter more:(y/n) "; + cin>>ch; + cin.ignore(numeric_limits::max(), '\n'); + + + } + + } + else if (rem_add_sh == 2) { + string title; + cout << "Enter movie title to remove: "; + getline(cin, title); + tvshowmanager.removeShow(title); + } + else if(rem_add_sh ==3){ + manager.viewAllContent(moviemanager, tvshowmanager); + } + else { + cout << "Invalid admin choice.\n"; + } + } + else{ + cout<<"Invalid Choice"< +#include +#include + +using namespace std; + +class Movies { +public: + string title; + string genre; + float rating; + float duration; + + float rentCost; + float purchaseCost; + bool isrented; + bool ispurchased; + + Movies(string t, string g, float r, float d, float rent, float buy) + { + title =t; + genre =g; + rating =r; + duration =d ; + rentCost =rent; + purchaseCost =buy; + isrented =false; + ispurchased =false; + } + + void display(){ + + cout< Moviess; + const string movieFile = "data/movies.txt"; + void loadFromFile() { + Moviess.clear(); + ifstream in(movieFile); + string line; + while (getline(in, line)) { + size_t pos = 0; + string token; + vector tokens; + while ((pos = line.find('|')) != string::npos) { + token = line.substr(0, pos); + tokens.push_back(token); + line.erase(0, pos + 1); + } + tokens.push_back(line); + + string title = tokens[0]; + string genre = tokens[1]; + float rating = stof(tokens[2]); + float duration = stof(tokens[3]); + float rent = stof(tokens[4]); + float buy = stof(tokens[5]); + bool isRented = stoi(tokens[6]); + bool isPurchased = stoi(tokens[7]); + Movies m(title, genre, rating, duration, rent , buy ); + m.isrented = isRented; + m.ispurchased = isPurchased; + Moviess.push_back(m); + } + in.close(); + } + + void saveToFile() { + ofstream out(movieFile); + for (const auto& m : Moviess) { + out << m.title << "|" << m.genre << "|" << m.rating << "|" + << m.duration << "|" << m.rentCost << "|" + << m.purchaseCost << "|" << m.isrented << "|"<< m.ispurchased<< "\n"; + } + out.close(); + } + public: + MoviesManager() { + loadFromFile(); + } + + void browse() { + cout << "\nAvailable Movies:\n"; + for (auto& show : Moviess) { + show.display(); + } + } + + void rentmovie(string title) { + for (auto& show : Moviess) { + if (show.title == title && !show.isrented && !show.ispurchased) { + show.isrented = true; + saveToFile(); + cout << title << " has been rented!"<title == title) { + Moviess.erase(i); + cout << "Movie '" << title << "' removed successfully!\n"; + return; + } + } + cout << "Movie not found.\n"; + } + void searchMovie(const string& query) { + bool found = false; + for (auto& movie : Moviess) { + if (movie.title.find(query) != string::npos || movie.genre.find(query) != string::npos) { + movie.display(); + found = true; + } + } + if (!found) { + cout << "No movie found matching: " << query << endl; + } + } + void returnMovie(const string& title, const string& username) { + string rentalFile = "data/rented_" + username + ".txt"; + + bool found = false; + for (auto& movie : Moviess) { + if (movie.title == title && movie.isrented) { + movie.isrented = false; + saveToFile(); + found = true; + cout << title << " has been returned successfully!\n"; + break; + } + } + if (!found) { + cout << "Movie not found or not rented.\n"; + return; + } + vector rentals; + ifstream in(rentalFile); + string line; + while (getline(in, line)) { + if (line != title) { + rentals.push_back(line); + } + } + in.close(); + ofstream out(rentalFile); + + for (const auto& rental : rentals) { + out << rental << "\n"; + } + out.close(); + + } + vector& getMovies() { + return Moviess; + } +}; diff --git a/aayushman_t/netflix b/aayushman_t/netflix new file mode 100755 index 0000000000000000000000000000000000000000..de849d3cb6ef501121895a880da20de7b7c8c7ad GIT binary patch literal 127304 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 literal 0 HcmV?d00001 diff --git a/aayushman_t/netflix_cli b/aayushman_t/netflix_cli new file mode 100755 index 0000000000000000000000000000000000000000..513ef0fdee07391fa22525b7d599b7b0291d78ad GIT binary patch literal 54544 zcmeHwdtg-6wfD&jA}Wa%EIz8EMT;UKFCd_3cnnM=ku;M~MDZ}0Ovq@Gi8B)jXe}DB zq%k&^`k<}0v|k_G)++U?#dicG)cU}dT6`3v7wbf*ran`yHQ#UTz4ke0PR@xCy#2mE zJQ~*7YpuQZ+H0@9_S*ZLnfaEtbY5yoil(kK?IMjzeP>HdF%z<%;{Z>SXiY(-AwjC=c6FX2DGF-YvP|_d=+;C3 z;PQxn4fyO#Sys?mPqep;`E79DIEh!#T90hwxlYnOHz&h>?)MsEqKow;a}lbD>lJZ5 z1+&?n3MzY&j`UZ=a_uk|G`bYD*Q?`tb~sm7(-fpO=<>fAuNh8zz~P|C5xgRF;w zs=cqHo-&oJIrP75POXC5a~p>qZcjn-6S^kXhpVR+POh(+R3C0^Zkg0lGFAx66r{-T;rD0gQ2*={I)HSlK2{^tAW?^>XX_ zf6gNw(wpiK4_zdWhukPn!5#4kdz|q7)D&&JM!0GCE5hII&~pv3+efB8TezUFaKp^C zV>cc*2WZFZ7Iff52g;RD#tDBs8g;@KxbT;{;4gHM(|(Mz{4N*#xiFBEK8MgJC;Y1} z{OK^V6aOSGIm^XQzT%?KGcNtT+hyEWyU1yG8OJOaJ@0a{=RaNaf7eCMO+2NltO6#Ah>J)Ai*Ikw!fh z4@Bd-uIVL}WqM608d@HX#Y54`vN`pU#!zLTx;`Xn&XgsW`r~hWkG9FLU*z1}%_-iifao~G-;mX^G{ynI;+Rl<$SQ6*3J2Z+&&$_08! zB&IKH3N+!m1WTjpo zYFr+#(?ii{BnpP%wKYwL?E>)t8j%8&Nh1G$nIsQ-1_MojU^u?Y+aOd8!!#9Px?SLp zPv?P*V8|TCFu0=HyW$8sI4vC0BN#+c$sezGlqyH7f<|4o9$_!4)GKp!FGg%AzwsC9 z{waE8p6>NRv6}kw6|!5A`k1#?s7iODe@E^@@LB4vKVBGWtf_Z2iM!rY$mp4YDA#eTgJG&6p z6#Xp-h8u-cGG6(-3V+0}lYKErn1*uVR0nGGKz)5A2oqsS2lQ%$jz+jwJXj}Kr!5b~ zk(-8`>^5l75p+c8FbCb;bjf25tK@|dE#N#M9Z7LC5M8B*8^dwZYk5nH-V}<)B8`E1 z_`JR%m%0T{KhkJYD5kgchWw%=8$_dlReEDcg%aX{?uQitrUdIFv5=ZmN2*i6kB};d zY&cyqf|gC=A;b7wIVIc&$02UW!4?aEaxjDfhxpb2vI5+X^tO( z_o+S%XF9~ftA*bROCmZN^L`kfAuNJG5~!DpsGMcd!&@zmCUE3UR};BDvK$G_(Io+S z`T8u1hk9KYc@*5eJc#L8fQVYvxH1eARfJ;A4ajCF=L%kpwB%~NHW04Y5c-gXuvfxI zTf!Jc3S~jg&Kd#~j)kdf!xYI@hqQ)JL$IMq16M3w6P!4acK%bTxIBnzRLY}LP~zv$ znWGovi}^K%M~y8`nzKWBMK>0bVj@7{b4sep5rtN2XF%VScM!k}bm$D&ME3TWNTOXb=9cVH(nO8YYNuX^ELw3n%!qsoFlQY+x{pYFXHJFIkV zHkae)ZotkbO)KN_HG)4?y9{Nz)cG8k#I^ez2`BLRo5Fv5p2X+c@SV(`$@>7sugbf= zE9;@h;;crNa8_f%qr1kn*Mg^W9d-3s@Yel%!h+9H%z%9sJb8<{`Yrf;g#^rI{b?IR zdoXpW{SAz&O;<=jwSOY~R4e`#S-|!PV`*M>7CZ*jxSA|@>0y%8V!>m}W?XA5cxqc+ z>n(V)wYoYjc+yE-8!dP>W<=X$!Ly5qDw{2MIG}NDvEYw0u$s2jg2x0ft}Y9Hw1L&M zT^4+n1;5*Zr#Yvty%zil3JKU_!GFnuPgwAD9;vQA3x2FZ0`^<*Ct2_s`w!Xj%NBg5 z1D@J$x{*%o|@1nE7Z&)!0$*6*3k&>v zEbxBT>4$u+2Qz)`8Lvk)&9|;Ao;tAG*SaHfyHH?Y%6W~NHgNX&_&4i}VvYFgh|>GU zz`#Ilrzlf`*ZW7aOo?6ZHnU6#UGIHnnG(6)pPFS#;CeThWlG$7Z#2u4Wb{VOG9_xg z)n=Iz=iUmlObJ`>Y_m*>T5rBtrUb3`EVE3BS?`Hvc{G(%&2ko%-}}_)FC}2TZwpWdIEWlDH@H<)Egbb4eCR{k_>8-H8*9b5Tt zw(>q(`NgDi-rq~wUbxcN_J*%@e_wf}H?J%2_r8vqPh(aLjQs;xKd8;gI%6%0SP(j9 z{sS0aN52!o$QS=zhXXU%@eD9tuxO8r{-&WGk%<}edZz*5+$Du z3?yn0op)wD0KSx^sB5%O^?O%>NH!63zP9c} z?kG*$xh{qZ)W?f1Ao@<+jVA>`zXDOh*Rd`R21%HRp&~*nX;F%m>tRUXN?A->30k|T z)7qaBAKBWU8bA5K1c;$Ej4Ib)g;+0IJ#d}{eFhem11F>Pmu4uDchB>rSKz0x^-f|IFg= zIz+lwZ9?@fR{v><>XIWSdh|V^9dUFg76`Iz>|)&a{usm2zD_EV+I+22#4iag1=$thJqB=)DR5kQ@8jwyQ>#lHidhauZ4L5i-w2b`i3` ziSu+DQYi2Q(i5LegLp>bkJMcV`VJIMJVk}}rTxF(ZqBRLgA)c%s@E{RdOACyFYdO% zpzq?1G->b?*tB0kx+Ce`iQk^0X<*LyW{9|m|9}{lorn?B1+F{s5R~rpwR_1vatg<1 z94Iimi-x)rbwbeKUL420*a4UrfTZMJBqqUOml~bgN&{mSeQn?D_q8?mq4B=K*v`Qy zF!pCXsG%dMft#XjSsS`6Y^?`#Au|D)J-)W8y}s6O?$w${iB@~RkERn8h}L$+TYTN# ze$wT@QaDBriS?yGXjwwu?&7&YUJmw=TLA|SEFmW{dAXY6EmyphtsltowR-zg1oH*n zz0vOr9S)3x1h`@uRfU$%k!7#?80I&}9h-%0vP)tY@mrA7>l7qhoJDcOq?Gr7g??Me%1-zJ#A&X=eBvD!F|~-{8P09 zf}nYKBG^x3jr-Ov50(9@O!kz4(en|rbd-C*x|iIv?JtRA82x@$ws#L?78jG8_Nv`& z<#XlTGi~KQx+4y1wYXH3c2KFDN;``yH3_R=ZRM>Ng*JT1twXt+=pN3C+f#*}G}FZ1 zik2{Ca?Fk@oYl+O)LKn<-HAs?+ct7IxT?_q`$GS*?*)iK#LI5NbYysp%JaDL^_I%Q zPC~$9Dd4xJfSaU%*YE^Eww}QPW;zP^vJ}u{3h+t+KQaXD5VY>ZC!*(4eN%%Mg>A-8 zHU*?h0ZR=5tt{XXM*+7<0q-m`Y_Od$Sl0~!vsu7uQ$Txhacx#(7dgQPAAr4m>~Bl~ zH%b8qak?pOkir6{TLsLOV<7t5KDN=UK1Wvnol$+8pmiq>QA=_F+lzS!M@R!sHmj%0 z>fbS{w{rDItkp}E`ctI(@91X#3Dc3W*bp$A1+2CTC|3eLcwhG46mX*yaJC^Jg#}DE z1!O%~T#1-)3>q2%z5}O`TLM|d$o|Pdjs*3exZ%DYk}b_KTN(#}h&WdN_lSv4v!@My zE_}T^k%N75r$cB`^k=X-+vJGQrRX~lU|i`OHV*!S>_Bs?JJExCD?g={35`1P*f@x? zFNW>w2ul^OCD?wKD0ZxyEU@cx0cfGTO_V#uwwSu>*4i)$FByQwUrXqhv*EZeP#m?81in?@_V#Yc6d9* zxV)A)9j73&*qwM8vEIi`g7YtZq9_&XP8>uwi;l=1fV@?bWk0(U&kC}=`^Bm|$=y#e zyYr#Q@>KVIia)vgdnXy@dP?v+b-x|HNZtQ7;H<6VsQYAt_L-}JP~E?kk^{5*X9#1G zHM$e8$W4H-D2jXEP3r#NPe|_mLz1kz{~VE%^Ovl(C#E33%fvrwVGs>>C$2$Dmi$f* zGMWrQrWLPDe~qo}nKnM9L<#X7sJFG2=F-~7?>M)XW^3(v8=q?Jm29$z>Hjal+720J z6Zr``Hv#i15u}31Fs<{x81sIYbz=3?)-B`hi6oHn_3JLDyY9sO=s4ynk{!ed5huD6 z8;&I!)^#pFC(Avw6{FR@JJCcg)8_31M<12H(@!HSX}Q9kkSvI@SV#W~0c*ROpQO?3 zH?z@<#4pf#Qi@bedLzy2vg>YB@m*mVQ^kp_V((`7r_$tUiIiHlS9S5KzDsBmKbw@N zz}woFf-rj$7pr7(M;MU{TtUe8 zu|L0zFv19{Y0!(6Zlg%IjwCDn4t-kNm9=iB2v8YUv9OMe-9kurB2&mrwqOl#!?NIS zjv>uV3--!#Pw%%a7F;jQY`5S|LetMO*%WEADvQZRa8Gjnu1t3SxrWKk1=2K-&?nhI zw?joT(3R3aKjEq!8TT$GA>E0$4wBK64KxQ*Eo&mJJ$0$X{@6y$Vyl~p(~WhTfc3TC zMnoRC?KpE7laa z*jG{Ic%zY5z9IYcB~%vs-roNb1GBCN%{@%ciAC%q(Si_ifoz?qWQyw!h+Re%)=Al} zsK-6J7eqK`rf5RWP{MRDPj{kGXq<8H1k!=JQpVb>1E1KS?=VRDOu8yr!~)V=s%cp0 zFTFVB_@9*Kk%Dj_gZJ~&=1}@~nVJSVhS0KStv?Vl!mpv=-$@U1KX0_qj25hTVQffV z3ds(U^c>O|!ke_%rVavCX?fDb*6GnRFYsy@wFQU8d#G<#! ztn$ER6p0u2WYE*tYI_6+VpB&MBzhrHjONebq9W>aWZZ5@-Bl%}YE-8Un|>LIkah1v zw`B-g%iKV|1f(?d>1Z%!h`E8qJVbQ(5mc8N7A1s+n@IEXM-Dn&iC=nPzA+NA#t77~ znAm;!|@iP%^o9C-

Q95x~SpZ;`6fG=oO3T&>+WqSYu)ihI# z-w7WvSD*J~x#z$PIHO20Zi55L6r*Y@Y9q}M#yVEUN?x9ggk%nJC$AQL5D5$3D^_q! zR!ThNF(D4=CZQviRl)8vi!q^XK9!5!?X~x++uKJI=s*Teh5AxFHZ1X*ND9yL^|Fq{kocL*bjxX!pZM+xvwPy-08OQ!a z<448%j#5B%V>{d zWL8ihJAyOK4=5w_h6 z5#5O?v?AgxOH5DlV>&S`+byMvNU$37=fLS|`f+RL(gsi-P_2HGBv_Av4X@*)Qfg-e zSpj+pn+cC6jBQNBDB69IH0m(s$u4Plm@L`x3(+UjQYz*Sl7$|2lxJGxwYbRJ|KC=5 zWchI-h|@`}7_IJvE~<`0v4?tCE{br|?OC@WE+n7W8NP1kA)zP))45OAdK#5q8ewCzyzZ=f@hT~K`}mf~q&+dkrrAhfUR zYEIf1;C+wm%V%A&H0jJG7g`wZ7N@`_V#48g^&+cRPeEj{c(ocUsXGQ*1V!uYJ%!>! zavULx^n(+BNwc?YHy$izC`U`0vL^|R<;l%5?CY!&XDymlB~4un!J9F^HbMAi2+x$T zI2&ivS!;hu>!ctQgHQ#=sx6qrTY=jIh+&ucLnj>;v=facDFS^PW|-KNECt;6ga>jG zzd)?UAkBJQWRpCx7E#T%ouzGWC0>6`90;lAcIL5VDlylq}zktEM?9zHLsjzjGp>Ts7R9?m@Uph~~5?QrIy za5ovwaDGWO_;Jpy*2g*UNjwBH*Cp~%u7rN|p(*P#B7Sfpl)&ZV`>A*1(;q60naPkgnQdBrZ%Y$IPHu(U zV#;yVJVojQJ;w_zuoN z2IVwRB)Lse&BTy*`;0**^U3%F$nodfvI{U`cVdi;z#xhUjDacZ67fd50Tk>`^wH!O zCq$HgU;x|bVVCFt;Lazo;nxzUC$A2VihzMZdM)v5(FrI?8er8FD;F9<1R`4qH97=4 zEkz(;wCTi5q#-E2%*MD@s395N6wBn`)luaN{4h{VmE@U}WGgWt9WnneNB!}^dpZv^ z9UMzB1j%_wlQ4@z{Cmaf>}s95;UG;Mob^l?Aag(95#Y9Q0M@{;mo_Nt1W(7V)HOL|z8S3-H-J$qVpCYW&aA{b@yAwpT2`-9kUu8&gRd z6Krv@#m0LW-1+Xr+hPPUFQlsN(w1#6kI#-nl6hQTiFo^2vTGnm)F6pQ*jGKrD{MXwrg z&&#trVQFj_IUZ-N{R+~T-Y?-Fhn(akglf)7(*6PkS|6i^wB~t`Cx-V)w|2anXq7`# zfCw~lSwk3-L8SIYjLd4{kX6Yuq|AG!AX2K%{Fp|RR)whi@ZnTK$@qnBq!pW?0gHDX) zi(tNvvE%W2juAH&((G#UVp_@f$0%svnV2e3#GpyWFPC*E&UlZEftlG+g+G2GD74KK zZj9kobum|EKQ5LO8vM z6B3c;z!&fann)=)Cs%8ukty+-IO+t^@jraEn6O}qmKH8@!4_HN;bAWhkwII&+= zQN8R=TqIsE%EiJt2vEVn-gj;a5vSqRAJ@oqH$M*W4l0;aTHWKa4h)$w@gQ~9# zCj*?A{1oI6F#nn6d)RV>fuLCig7EB9s1;QcdQtYvLrL2eiU2eahh0hNcuK@WKUxpH3B%30L=eVmC^r6h!YUpHChz!XqbW-o=sqtFe%8DY zxx|q9hsw<0K+SNbEB> zehBNs2tx|J^+tcVZwC&^CJpfwnE%$Zh(S?ykRTG^I-$^(2#4ceu-XSQvXxij*qxj9 zp=nZ~f*@YkL-c@77kK-c|4Lg8bJeia7A#`#DVllqdEs6C;w?Brw{C+81?fIX>cfi> z#l=)jz3SH2F5YwNm#@2_3gl6Hx?NmIBIrgR9<{bOobLJddkSy*(QN-Lzo?`*=T*p4gvWPipj{Sumz$DGF zr+{&uV>bwc(;PDwXoq9Qep*7?jcL&8*|~y2u{tr ztx1M_da_rXtJCS2!;K=O)UAnm`pv=yYbGG zt^0!-r$AkV*2Rp*Qi+b2b)myzrs6>-duY4JnGKh`P88|+R2QY`^z7mJ#Qky-?)6|M zCTJ$^g=V{(AH^L^Xbp{M(|Ht@#$WJ$d1*Xl=uuEyj-#*~Yp=|+lcLG%Fw8JVK{e+* z3gXe?!--TLg@<-w6!vtJ4s<%_5C<`%KLFEbZ0-(gRMP2VFJko+f#O5j=!)Yy%c#6g znOCcK?_wGiN-|tWgp~8{%wr8x{yl7nX_5j@U;o#4Fuq7aGLpX@tFo>_PxLg+X1w0ALlN zlVpB>ls><0d}14x{Nnn;0*7e<`fe|}D#P*m&aK`YqOhISxWwRAl^*%h$~d1l{ZK6O|dcD&02x4WfR|g>koz} z%?oROe2;D8@=(-MS%*er+MGy3sAiQmFB-;I-^H|1Mg>phB9Ff=vNASfl;(jjPjx8N z=!uF3&XoO-44%eF+*2EAZmjV{qMkrKzMQaT6*Eq5Qkvvgr5IRGtT`AA#bUM1_4TXH z#4Dn7al_7Xjj9khr!Io84D6AUy$hm};t%C33o3wCFCsv60zo_NHwGK%jor5n=2 zLtn4ysSVeM(0~`i5w)sUif`v@Ols*Hq52@k;Czp!`Y(Ct`}9IJIUb`ohMAS(c{v`z zIx0WMBl=L)G)guYtc!$$WQ~%>75I+58jnPvBI=YyR)j;bQJ#DcEV4q5v4<=H8u<_G z8N;}Hz>(uop2SG*kf5W#$7bxRxS+UgOXlO*?5$LBX-J z0Ow+9Lpgg^%Bg7=98A+R`niWqj}8oYu-9Mn1Qrp%O@PY)o3;%MWCC8c9cSryp7L9) zYX|Y6&6QXc$KcbWHvzVQejDIMz+VH>ySR@7?ge}kupjV0kyDJrR_`^yBEZo|coqYm z1-KFLG-QHw5_cLFu^zy=fbWBdn*m2-vDyWgi<7zp z;FUPF&&J{I(>N3_0(=i}G2n^VVbFUx`G6Y%*S~~z0q4Dpb^&VvC!n8u0DXX;0M-GX zk7r}+0j~ty4EQkMGk{}W9T?~Xd=zjT-cxuFklt6g2oIJQ1KtAI0{9%@Mxq051su5# z_5th!`~>iAKo2J1X|JK5fQ^7PfUA432m|f}+yZzKUbol{xCpS1=z!UHboyPuT)_JQ z%K>))HUYi?*a?`8w{-3YJQojO_W)i9_yJ%e;23<`;CjG9z}P$P1I+z9>%;4Z*h026>4@Xr2m_->Safae2_e-}@G z0Ivb82iy#JGvLF3cLRP3_zd8M$chdEz6W?59?gG)FMK>9>m3*Zj`=~Jm)fLj6I1KbOE89qz* z3Ejo1FrEi&20Z@|`VB}Ief0}nDXS~Al$Pw2Q;!>&*@;A#@btAT%N`#XIENVK zjzkY(Q~VX;uVpLRrlopx_Po*KF3CD}W#$^~;!~!dS1|r8U`72a0COLKPK4l#LY@I+CLxkHt09iN^dahmxBId&?j5zwI;nD z^m{-j8yNa8FzJL&SzTT#Mq=a-Goa_GYCOp9^milb{}V9%yKs2bM{jFd>H$;E9<)=r zV_;x_?5lXvK1wAH>IWS`6(R;tz`a4&&H7_d??TYeu+kTq^uo`eS2Eqn4%7!4hf>Jb zvCgFb853XW=xa?&yEIKSM0(x{IcuNBT(Rnrdapr$6!g<@R52U&-*Z#rQ){s$WHVjI!uKcAIPJu?KRxum(PsWVibbyL|xql{oov z(u3N$8SQ)>^K&uy(tmfHXb{4)mKrck&Z4 z{-ECpdY)B&oe-~ifGdQ4_kex{?$e7cdZzjX6Y)?V{sx{U#N)B@d|mL22mU(noc1Tg zM&i*dJT$Ldnkpp(u<`uF5DBkYxmWI)Z$RB12LqY$~&Ht@KO%QKL%2lTIlH+>rt5<`YhC`10x2cFbF z4-6bjzWh@Q&w^XhI?`{>XdRLIF)>qnKSO(OfY;5gJ3t@(qPt!9gMJa{Zgx#ajz_tn zn_b6)UJbgFT}eOs?WJ#kem3rnzFr~iPV^ekuK?X`U0Vx!Dd^(+V3n<^WPK0np9cLe z0X+xz>FbafDxQ$p2ECVF2_Eq~Fp8d*ZN$O^=w--vkuI3^OU(M2nTUm;=UeGvlRg3T z3ees9-~)X&=oQxbsj>mGK^^GvA=+OLdaVoHgZi66Ukv)kR{1nPdrciF_db6w;=Pq; zu}MD&dJgDrHaHHZ^$bBjA9UI)xY?)_^zop(*{B}$F`&EI=w{I8f$kI^CZJE_q5lfd zpQX6miUC#Qe5slggEiv?@^`l0vtEA&~;8}t_PA%>Yp46qH5u)D-`X#^^0i#^4l{|fYZRvjUO0xI=k8R)w~ zFSF89=Nf%n1Ny%}cgra^fj$QNJhwh}fj$ECxmNktn)>&EejeyEt@OA_r{&HE`U6&a z>fM6D0~{@x`#^WI5%J6g&tuqAQoK*Hqg?t#46g&v+u(7t!+Oxa{D!+7HiMo6`YLN1 zsZE9*cY*$G(B1l(0R3m6)856<@oLi!nMkL$f_{#bE?rURKLPZ|LI0YS&U*(Ba6ZtV z0)4raF4xv?P%GpM_29|;Z}+jh8T3Pt;gpwA{kxg&rXzj7hz9xjRvkEodw@F#`iY6;(s%m<#%R(A{(_2YnvsH&}I$>4mUC6X=_VklzXV4?w>m(60miT5B7rQA5W{(Es96pLC3a z{(I2fbR?dQ;5h~7CEIat_$&3}0of1Yc@#Vk4Z%Y`(*vHxIB#+43*|d4u*GBd;kyfQ zpYBH>RBH;gwbiuQ1nmAV|1amY4OO*)fs|2~o%U3U_D%}2Oq2?jXZ$2XyCWq7zeMZ)IqIPRn>cL))L0fj7&ZA0g|VOrMwaXZ$@)yY{L- zr(rL$45}#F-aZ9T9t%A2ww8sf0G?;V_?&jT- z`oj_0kJEBq&Cp&+%jnL~HmB#@G(y{-p79T;myrSLE^eCC79Ckwur@`zi#wvQ$KIKe zfp0l{F$E!j81e59&rBIxemxE)QZs&@k@nn(i#tYY|1}b=g8EI;LU4|nm9aiWdyvF^ zaeZNdFD!607Er%~qki{B{mu=|N4n@YdgxMR`b{8fnSKL^E~EqU@<>2SCtY1jCB%nS z#HD_R=Tt6>Lr~nG!sXnX%&h6B6PC_xjJ2H@-OE0M@Y1mU^-G!an3cE3ww0&xigNUMVZxQEk8e?exKYfG1nt8#SF_C zE@Rlla1FywhMO2}Vc5lRH^Ux=eGIiTHF0G#^f1h2Sj@1T;WCCz4A(I1WVngp7KU96 zcQfo^*vC-)$ZYmmQV$QqT!zIA%NZ_X*u-!R!%l{q7;a(M#c(&n9)^7kWvj#gSN%?v zl7L?{o8g&IRo&beZ}#LB;0MZbCrxb@#r*5@3v+S{&tcmg;Ar-$i<`Ky_GXr=SUv9$}FkZzg6vb77e^c;#y)7GLne?Np3V$j1 zB_kDI1QP#Thd*jp#X*H%kDC~*VyovF+OC&-wZs-SMeL^skq$iyh+Fzqusxf87;u6U-y8Y zMr{qZtJt3ua>i-)xbU>VpKQcY#oq(`SWPj3a#RVsl-2{-ZYx9Pu-@wfOSqiX98#@~IB#OJY` zXBq$KJc-C>eC7x#KYD>gDElmB{CzB6@ju1*oisskl}VuW1D}mmd0ZzW7z_ZfbhA=s zU}2z*bJzpZ|86sVG0)GNo zXqhM?R>Z#M>5j$C%V4w!oLxC(m$OYaI$3Ae#!WE*gxqx30*04h9hs2{+$T?38|-O z_H~oqzaaT`zg@`q$BU&Hb{8$m_ycTD<>wDG-tJeEaem;W&$Yl)yW7g7e8uwsgz>^&NJPNw-(|aAnZ}-E;7(bWWRr&1HZ0B|>fIk!V%}ttGyVz2U(bH4;xN4z;?%E8PH@KG;ezi1p4xq9o@@}^5!Zgk+t-)l&?xa| zv;V00vxM;%7R&lmB+zaG{>0Q1jQtOzwVRngi|uwc6YeK|#bkj`yWrnqIr{mMc{11e z7vt^YvH}SK=|B4Gl2M#L<8}|@Z)f{+c-0nR-{GXs9WMB%UGN?(+|+I%ufIHvwH1ti ziRXoC>nXM}}zO~6yT_I2<>#*dgNxz)Ij`LeT| zNiO(Jz>|FYdYU;-;%Bhmvbx#~#@F!tJ(HE)!uWqwNW@gepM(uF$^Vr7lgZjb##eGa zpw^K)7=I`GCl9lBknz90TncVx`Qx$Fk^EcOe|Vdz&0&1BQZgz(i8DUI1;RllcpRB*)KM5Ou!rSNF{TNV+^L;!al%LE1zpBfs3vj&)zS9N&a~J$J7yKDG zfFM2Xc3#eSjr&{3O6_F)-#Ab;F#cV}-^z?z8Gr0oq9b`-$r=;GNoimHF-a z$3u+oTq5h=z;e#}nv{RyrpYfS9 zCE_v0KL|Y8S@{p6wQayV>GKZD8O!pqjEd_c#*gCpuKMdgSL$QW!>bv84BJPw^;^bo z;dyi(%m0M&_H{D~2340?1$Ya18pk~xFvR;3pp-#xC;mDY{CeO?&WROLx{5O|Gv4k$ z6VI3YH?tj7TemWPBkQC3bsyvBl}P#AZ7p?@lw+S4moVNwe>)j}D%(@7?;irMbdW8` ze~-lmf%1bH?IKRBQVMTT+RFw;dgW)T^Co}h5r`jx915D zGJZVU|5}!_pYf$rBtpFVi`yv$&i4Ej@YG-Xe$#{e=0uih1##es{}%4(nQXVG8NbOV zxsAI1U^JeW6VY@%P#xCef#n(yv3PTBZB9_D2}MK8@wuu{RF604!TLyJCy_u(eU}Eruq;*n3j|4%%RtY8^d}a8V#({@sXnFDy=q(k8|lY%?%B! zP{mTx!5L3tZ3y7AT*0O$O(2w zN|8oA&{(76Gj{Q4b5N9XSAhLef4m622*vU7tAbn|b>bm>TuzTibbO=^9SXSxynl|98r~qBd@ZGs?0B4ID1wpy3$;&m*~`I*kxYDtTM0ey>zawqcs20D&6a2 zq;GD8rq8|X(phCCbBx*x=gsqbEA`4*vrE0GvE*-K~7;#ejX{fz|_#G z<#MQW#Lamv9h@pUIF&kB6Y{bH*MH1(4S9s zKxgxHd|a(Q5)8ycdZ46ySgJ||r=VTfxKj5|*ZoC$MP(kFI&TVwBeYT%ABq!$5%kVA z70lP?l7mN9(L5|Et4?D3ES|V1ZBX zHL$z*r|A{$7J)bTr|9UW*X!UFpWzg0z#RR!sYwps0@DlJ)o|?=c`g+6dZ$z)3N|W_ zP!mUKpj;-O+dLY@3&|N(Lqof$Nev_N&f(UDM-JiGm|#q$S~`8S(zWW*n9MSPk|)~H z2z654IuC~GcOE`h$`dH$ZP4@(b)BLQEJjwRrK6Ue*TEyigtK}nSN$A2XNVHxDf=ac zGbz9*uai-mVwH>;m`epl%*ZQ{QNAqD7{J121`8M8g#m(BE4OpuF@>0(=M*}RW{{?1 zkPvP3$|f~dk*HA1A1`c(tO%7sZt{553tl1@cUQPjxlV#mu zjcF;N$yyi-uNDDbNI*(VscJ~tSI^JM&zT~}`AE$v-EVMug@{%kYP8As$3xe+ujV2L zbW6BI8Yq@*|14c=2sH#7ng&TP#MeyJJ2l|7WD1ewOkrwLW=KY0%b9UU1*Tz*CokpG zo0?;F@N9%TOxG#oyyS1n0qg^rm&MDavd`L}mrrN|f^LObnHWNe4= zY1ux~DRSfy$9w5ieSS0I&|EdP;b_cT5l(gs(#2)Sje19{EP1`P8Qve@)+gIz?l*F<9_L`w+0vpn;Y&Lr6yxHn^c6T5ND7U^7(*i^ zHzpH=U|@&b0kP5K`oh{D@qpwNV7-bVH<2O2+u$%d2>VCsl)N4c7KUyicaaNmJ-$#T z=n|C30|svpRhP}+Idsxy?g5l1AI;#HZm*=-LZKxJFT}E_iL)W{4okXb-*<kHaYB(FI4_6227$_PSXD5=1MYW(1qW$rLhHzs^1B4*U$fy5-{ddowd}IDt zQiP*1wG3)?q2SfznBE2~TFG{#GoR1#0Oc@Fhd@uLM`0R5 zD{aTU(>5gMu7tza=rqb`^MxBB+wYwL--b|W*p+x;CxWz=D2SO$BiH& zGjo5u9!Huqcur@W?%6HQ!G@TGSW<^L2>V?7@3cEt$;}Y!NM3G@{7x=d1tBa~#|cVO zwEkcAExElZ;>e;_m7{S4Oh3PIu!1g45nE3jyYhq@WOdsTCL)KEQI6dG5yNMR?>nmt zv`q_fgul+sA6MtLnw+oq(0n02mAHj0z@?4ftw-HZYHtK zx35nSmlXX}x*`IaIQFI|G-{8esJ!hl&Vq(xki$4QQeHMhRwZYQ2nN)ZI;IM0gq22-;%NltHn`HXc(sW9QV!wr!tUjiWBtGxy;rsGb^_88;p1s+@Qj zdjw;7wB7Xj#cdrBPsbxCktW6HaT^%|4QpedHC?M*=nK zD=lNQr-jWX98a?<%qQQ*Fo@80R3l2~H%a-L zTsZvksAG4a6rM;}GWyT$$u{zrV5FIM7VJ5@@lXq*&%_L)gqJjS!ynn#qvwnB+~V!P77KKu;GB^Pmu3iI{_F zF1CsCj7Qk)Gj_Mi#~ig#?}8kS47o3%qa+;elSW6r%#u|dmQ-``8-`5d&_Qh`k{0Nx z^k!2PzaoL@Iq3D0;k4*A6AiU$4@Znjp4itQLOq=y@)&6f-c7SdSUDVndxw{2jCih8 zRgS`uNNf&`^BTCH%quWO%~jbc*+Qgqet<1b6rv$Qh~_A}u%IucyGVko?3SZ|5poj&<`fpu#ovz4&^N3$O5Z0UiQOrObJ|IA&!z8@S_St22}fGcgjP>!}`O>LXo}X zn^~xs=2!_FUJ7t{95yHrsAx1)p9jrFnWz{MKRHhy9Q}qP+j!e>Z~z>RI2Gevqa`An zdHSQ?SQT%Fh=(?4^YgHj`3UhdW`Xh-qg87zBmG+Gb;Ma${-CT2zC7rRZdg_x`mItr zPfC7pn{=Q{Ioz;XHH~DM{MalH@lvs4!spff>OqnkY&8yQkFJwI7o!`ZAcleODbufpx%4OfdswvUMYTFMXzdH8OH3c2*q#~T8!^>!CTDqRC{oQ z=Y}X~OW*jcmzY>=r^i!* ziiV_A>{giH`h-Xs)9@7QFe_Vq4jBm<%Xp)UHb%iPziVaL*L_BG z`5f0+*L}{L$*>nqKSo@OCHH8_@?h>=@2w$@_UwSf*9FKHW z6X%M-KvN)y_kJATl(CIRUcUN4p`#s?&+)*>WiO}Y#8x%L1J!`>sDyRujy^~fZPIe^ zGftr#eCQ^pDTzGhOmhEaHHbP|2)O0eT6xazc=npKTxLc(}dQdZza zDtw+Psi1>~DITB-eAiST*K)*JdJb-LmPb&en;5>wDhCg=QKXMyfjc7Jf6ock@dvN! zY9LLO&`c079JK^PO>w+>i=V)fQsrl|qzrYB#sdvuh?fGfG1GFeJ#4@XvwkpbnD?im z9({z3KTfQTOOt{W#K--UF8;Wify2kJ#dip*`bAt{L45o$>B>wh$iZcL+)a((BK=8Er9a{5>cAh_RMj`WFOokPuf8u*wXf={{@=m%X9Lou zzJF3d^?j98|785x>;D8eva6D>c~GFsBmTuFT$3;R_}>Y#wZ6wA`4#L@9b+-sHuy`F zt@X99G6O>o7ZtGA-vWZQzDLz#X#EW&l3}m^kgdM@z7YkVn?|+FOVwAHCvanJUwyx+ zg2yXHhIacs#q|v{En`N8Ytp#PK#iZmK8qV_U)5LN%ctN$TYY=`uh{B0EtirN^w~OW zZ~skO{jDoyeFf?J3$2&E{f|K$jX$NP`aW3Cb+VSNdBcB|9`t=QS(f_h`y6w*zT%V8 zO#fH-EYv68SM96sFDz2+vteoe(xvJty?zZGby3w<-xuqnz<_J3t^caNg7mp@YklMU zGS-Od#`nX@lG(m0pN`5TOSP}QzhT@O$+1j123II%sK8gb{al4$sOs~_%nd5(N|zPd znh +#include +#include + +using namespace std; + +class TVShow { +public: + string title; + string genre; + float rating; + int seasons; + int episodesPerSeason; + float rentCost; + float purchaseCost; + bool isrented; + bool ispurchased; + + TVShow(string t, string g, float r, int s, int eps, float rent, float buy) + { + title =t; + genre =g; + rating =r; + seasons =s; + episodesPerSeason =eps; + rentCost =rent; + purchaseCost =buy; + isrented =false; + ispurchased = false; + } + + void display(){ + + cout< tvshows; + const string showFile = "data/Tvshows.txt"; + void loadFromFile() { + tvshows.clear(); + ifstream in(showFile); + string line; + while (getline(in, line)) { + size_t pos = 0; + string token; + vector tokens; + while ((pos = line.find('|')) != string::npos) { + token = line.substr(0, pos); + tokens.push_back(token); + line.erase(0, pos + 1); + } + tokens.push_back(line); + + string title = tokens[0]; + string genre = tokens[1]; + float rating = stof(tokens[2]); + float seasons = stof(tokens[3]); + float ep_s = stof(tokens[4]); + float rent = stof(tokens[5]); + float buy = stof(tokens[6]); + bool isRented = stoi(tokens[7]); + bool isPurchased = stoi(tokens[8]); + TVShow m(title, genre, rating, seasons,ep_s, rent , buy); + m.isrented = isRented; + m.ispurchased = isPurchased; + tvshows.push_back(m); + } + in.close(); + } + + void saveToFile() { + ofstream out(showFile); + for (const auto& m : tvshows) { + out << m.title << "|" << m.genre << "|" << m.rating << "|" + << m.seasons << "|" <title == title) { + tvshows.erase(i); + cout << "Show '" << title << "' removed successfully!\n"; + return; + } + } + cout << "Show not found.\n"; + } + void searchShow(const string& query) { + bool found = false; + for ( auto& show : tvshows) { + if (show.title.find(query) != string::npos || show.genre.find(query) != string::npos) { + show.display(); + found = true; + } + } + if (!found) { + cout << "No TV show found matching: " << query << endl; + } + } + void returnShow(const string& title, const string& username) { + string rentalFile = "data/rented_" + username + ".txt"; + + bool found = false; + for (auto show : tvshows) { + if (show.title == title && show.isrented) { + show.isrented = false; + saveToFile(); + found = true; + cout << title << " has been returned successfully!\n"; + break; + } + } + if (!found) { + cout << "Movie not found or not rented.\n"; + return; + } + vector rentals; + ifstream in(rentalFile); + string line; + while (getline(in, line)) { + if (line != title) { + rentals.push_back(line); + } + } + in.close(); + ofstream out(rentalFile); + + for (const auto& rental : rentals) { + out << rental << "\n"; + } + out.close(); + + + } + vector& getShows() { + return tvshows; + } + }; + +