From cd6dbf998f6ed6018dcf15661ebf88ed179d083e Mon Sep 17 00:00:00 2001 From: soumya Date: Wed, 16 Apr 2025 12:00:27 +0530 Subject: [PATCH 1/2] initial commit --- otw.md | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 otw.md diff --git a/otw.md b/otw.md new file mode 100644 index 0000000..9cf7569 --- /dev/null +++ b/otw.md @@ -0,0 +1,47 @@ +### Level 0 : +ssh bandit0@bandit/labs.overthewire.org -p 2220 ( ssh used to remotely connect to machine ) +when prompted for password we enter bandit0 + +### Level 1 : +ls ( to list all the files present in the directory) +cat readme.md to see the contents of the file ( which contained the password for the next level ) + +### Level 2 : +ls +cat < - ( cannot use cat - ) + +### Level 3 : +cat "spaces in the filename" ( cannot use cat spaces in the filename as it will treat each word as different file ) + +### Level 4 : +cd inhere ( to change directory to inhere ) +ls -a ( list all the files including the hidden files ) +cat .hidden + +### Level 5 : +cd inhere +file ./* ( used a wildcard instead of a filename to get the type for all the files ) +cat < -file07 + +### Level 7 : + file command used with:-type f(looking for a file), -user, -group, 2>/dev/null( to hide the error messages ) +find / -user bandit7 -group bandit7 -type f 2>/dev/null / is used to search outside the directory + +### Level 8 : +cat data.txt | grep millionth ( grep is used to find a particular word in the data ) + +### Level 9 : +sort data.txt | uniq -u ( uniq command is used to find unique elements but the data needs to be sorted as it removes duplicate data) + +### Level 10 : +strings data.txt | grep === ( strings is used to filter all the strings from the data ) + +### Level 11 : +cat data.txt +base64 -d data.txt ( base634 - d is used to decode the encoded text ) + +### Level 12 : +cat data.txt ( contains ROT13 enxrypted data ) +cat data.txt | tr 'A-Za-z' 'N-ZA-Mn-za-m' ( tr is used to replace old characters with new characters ) + + From 97cdf15fb66c45554a40e975bb1f73d5de0f0d31 Mon Sep 17 00:00:00 2001 From: soumya Date: Wed, 14 May 2025 12:24:33 +0530 Subject: [PATCH 2/2] assignment 2 --- netflix_v1/.vscode/settings.json | 55 ++++ netflix_v1/a.out | Bin 0 -> 57392 bytes netflix_v1/movies.txt | 2 + netflix_v1/netflix_v4 | Bin 0 -> 61576 bytes netflix_v1/netflix_v4.cpp | 483 +++++++++++++++++++++++++++++++ netflix_v1/soumya.txt | 5 + netflix_v1/users.txt | 1 + 7 files changed, 546 insertions(+) create mode 100644 netflix_v1/.vscode/settings.json create mode 100755 netflix_v1/a.out create mode 100644 netflix_v1/movies.txt create mode 100755 netflix_v1/netflix_v4 create mode 100644 netflix_v1/netflix_v4.cpp create mode 100644 netflix_v1/soumya.txt create mode 100644 netflix_v1/users.txt diff --git a/netflix_v1/.vscode/settings.json b/netflix_v1/.vscode/settings.json new file mode 100644 index 0000000..3c7c05c --- /dev/null +++ b/netflix_v1/.vscode/settings.json @@ -0,0 +1,55 @@ +{ + "files.associations": { + "algorithm": "cpp", + "array": "cpp", + "atomic": "cpp", + "bit": "cpp", + "cctype": "cpp", + "chrono": "cpp", + "clocale": "cpp", + "cmath": "cpp", + "codecvt": "cpp", + "compare": "cpp", + "concepts": "cpp", + "cstdarg": "cpp", + "cstddef": "cpp", + "cstdint": "cpp", + "cstdio": "cpp", + "cstdlib": "cpp", + "ctime": "cpp", + "cwchar": "cpp", + "cwctype": "cpp", + "deque": "cpp", + "unordered_map": "cpp", + "vector": "cpp", + "exception": "cpp", + "functional": "cpp", + "iterator": "cpp", + "memory": "cpp", + "memory_resource": "cpp", + "numeric": "cpp", + "optional": "cpp", + "random": "cpp", + "ratio": "cpp", + "string": "cpp", + "string_view": "cpp", + "system_error": "cpp", + "tuple": "cpp", + "type_traits": "cpp", + "utility": "cpp", + "fstream": "cpp", + "initializer_list": "cpp", + "iomanip": "cpp", + "iosfwd": "cpp", + "iostream": "cpp", + "istream": "cpp", + "limits": "cpp", + "new": "cpp", + "ostream": "cpp", + "ranges": "cpp", + "sstream": "cpp", + "stdexcept": "cpp", + "streambuf": "cpp", + "typeinfo": "cpp" + } +} \ No newline at end of file diff --git a/netflix_v1/a.out b/netflix_v1/a.out new file mode 100755 index 0000000000000000000000000000000000000000..3aef75eeac2c2bb2faa6ff4656347ac4de0c8dbd GIT binary patch literal 57392 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 literal 0 HcmV?d00001 diff --git a/netflix_v1/movies.txt b/netflix_v1/movies.txt new file mode 100644 index 0000000..384078b --- /dev/null +++ b/netflix_v1/movies.txt @@ -0,0 +1,2 @@ +interstellar 1 23 32 34 1 0 +doraemon 3 4 45 48 0 0 diff --git a/netflix_v1/netflix_v4 b/netflix_v1/netflix_v4 new file mode 100755 index 0000000000000000000000000000000000000000..dbd84bb8897c809b64d4fa5959a10d0eb21fa71a GIT binary patch literal 61576 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 +#include +#include +#include +#include +using namespace std; + + +class Movie { + public: + string Name; + int Rating; + int Duration; + int Rent_Cost; + int Purchase_Cost; + bool is_rented; + bool is_purchased; + + + }; + +class Admin { + public: + void add_movie() { + ofstream out("movies.txt", ios::app); + Movie m; + + cout << "Enter movie name: "; + cin >> ws; + getline(cin, m.Name); + cout << "Enter rating (0-10): "; + cin >> m.Rating; + m.is_rented = false; + m.is_purchased = false; + cout << "Enter duration (in minutes): "; + cin >> m.Duration; + cout << "Enter rent cost: "; + cin >> m.Rent_Cost; + cout << "Enter purchase cost: "; + cin >> m.Purchase_Cost; + + out << m.Name << " "<< m.Rating << " " << m.Duration << " "<< m.Rent_Cost << " " << m.Purchase_Cost << " " << m.is_rented << " " << m.is_purchased << "\n"; + + out.close(); + + cout << "Movie added successfully.\n"; + } + + void delete_movie() { + string movie_to_delete; + cout << "Enter movie name to delete: "; + cin >> ws; + getline(cin, movie_to_delete); + + ifstream infile("movies.txt"); + ofstream temp("temp.txt"); + + bool found = false; + string line; + while (getline(infile, line)) { + stringstream ss(line); + string name; + ss >> name; + if (name != movie_to_delete) { + temp << line << endl; + } else { + found = true; + } + } + + infile.close(); + temp.close(); + + if (found) { + remove("movies.txt"); + rename("temp.txt", "movies.txt"); + cout << "Movie deleted successfully." << endl; + } else { + remove("temp.txt"); + cout << "Movie not found in database." << endl; + } + } + +}; + + + + + +void signup() { + string username, password, confirm_password; + cout << "Enter your username: "; + cin >> username; + ifstream infile("users.txt"); + if(infile.is_open()) { + string temp_username, temp_password; + bool user_exists = false; + while (infile >> temp_username >> temp_password && !user_exists) { + if (temp_username == username) { + cout << "Username already exists. Please try a different one." << endl; + cout << "Enter a new username: "; + cin >> username; + user_exists = true; + } + } + } + infile.close(); + cout << "Enter your password: "; + cin >> password; + cout << "Confirm your password: "; + cin >> confirm_password; + if (password != confirm_password) { + cout << "Passwords do not match. Please try again." << endl; + + } + + ofstream outfile("users.txt", ios::app); + outfile << username << " " << password << endl; + outfile.close(); + string filepath = username + ".txt"; + ofstream user_file(filepath, ios::app) ; + + user_file << "Rented_Movies:\n"; + user_file << "Purchased_Movies:\n"; + user_file << "Dues: 0\n"; + user_file.close(); + + cout << "User saved successfully! Please log in now." << endl; + + +} + +int verify(string username, string password) { + ifstream infile("users.txt"); + if(infile.is_open()) { + string temp_username, temp_password; + while (infile >> temp_username >> temp_password) { + if (temp_username == username && temp_password == password) { + cout << "Login successful!" << endl; + return 1; // Login successful + } + } + } + cout << "Invalid username or password." << endl; + return 0; // Login failed +} + +class User { + public: + string curr_user; + User(const string& name) { + curr_user = name; + } + + void rent_movie() { + string preference; + cout << "Enter the name of the movie you want to rent: "; + cin >> ws; + getline(cin, preference); + + vector movie_lines; + ifstream movies("movies.txt"); + string line; + bool found = false; + + while (getline(movies, line)) { + stringstream ss(line); + string name; + int rating, duration, rent_cost, purchase_cost; + bool is_rented, is_purchased; + ss >> name >> rating >> duration >> rent_cost >> purchase_cost >> is_rented >> is_purchased; + + if (name == preference) { + if (is_rented) { + cout << "Movie already rented." << endl; + return; + } + + // Update user file + fstream user_file(curr_user + ".txt"); + vector user_lines; + while (getline(user_file, line)) user_lines.push_back(line); + user_file.close(); + + ofstream user_file_out(curr_user + ".txt"); + for (string& l : user_lines) { + user_file_out << l << "\n"; + if (l == "Rented_Movies:") { + user_file_out << name << "\n"; + } + if (l.rfind("Dues:", 0) == 0) { + int prev_dues = stoi(l.substr(5)); + user_file_out << "Dues: " << (prev_dues + rent_cost) << "\n"; + } + } + user_file_out.close(); + + // Update is_rented in movie + stringstream updated; + updated << name << " " << rating << " " << duration << " " << rent_cost << " " << purchase_cost << " 1 " << is_purchased; + movie_lines.push_back(updated.str()); + found = true; + } else { + movie_lines.push_back(line); + } + } + movies.close(); + + ofstream out("movies.txt"); + for (string& l : movie_lines) out << l << "\n"; + out.close(); + + if (found) cout << "Movie rented successfully.\n"; + else cout << "Movie not found.\n"; + } + + + void view_rented_movies() { + ifstream user_file(curr_user + ".txt"); + string line; + bool print = false; + + cout << "Your Rented Movies:\n"; + while (getline(user_file, line)) { + if (line == "Rented_Movies:") { + print = true; + continue; + } else if (line == "Purchased_Movies:" || line == "Dues:" || line == "Rented_TV_Shows:" || line == "Purchased_TV_Shows:") { + break; + } + if (print && !line.empty()) { + cout << "- " << line << "\n"; + } + } + user_file.close(); + } + + void purchase_movie() { + string preference; + cout << "Enter the name of the movie you want to purchase: "; + cin >> ws; + getline(cin, preference); + + vector movie_lines; + ifstream movies("movies.txt"); + string line; + bool found = false; + + while (getline(movies, line)) { + stringstream ss(line); + string name; + int rating, duration, rent_cost, purchase_cost; + bool is_rented, is_purchased; + ss >> name >> rating >> duration >> rent_cost >> purchase_cost >> is_rented >> is_purchased; + + if (name == preference) { + if (is_purchased) { + cout << "Movie already purchased." << endl; + return; + } + + // Update user file + fstream user_file(curr_user + ".txt"); + vector user_lines; + while (getline(user_file, line)) user_lines.push_back(line); + user_file.close(); + + ofstream user_file_out(curr_user + ".txt"); + for (string& l : user_lines) { + user_file_out << l << "\n"; + if (l == "Purchased_Movies:") { + user_file_out << name << "\n"; + } + if (l.rfind("Dues:", 0) == 0) { + int prev_dues = stoi(l.substr(5)); + user_file_out << "Dues: " << (prev_dues + purchase_cost) << "\n"; + } + } + user_file_out.close(); + + // Update is_purchased in movie + stringstream updated; + updated << name << " " << rating << " " << duration << " " << rent_cost << " " << purchase_cost << " " << is_rented << " 1"; + movie_lines.push_back(updated.str()); + found = true; + } else { + movie_lines.push_back(line); + } + } + movies.close(); + + ofstream out("movies.txt"); + for (string& l : movie_lines) out << l << "\n"; + out.close(); + + if (found) cout << "Movie purchased successfully.\n"; + else cout << "Movie not found.\n"; + } + + + void view_purchased_movies() { + ifstream user_file(curr_user + ".txt"); + string line; + bool print = false; + + cout << "Your Purchased Movies:\n"; + while (getline(user_file, line)) { + if (line == "Purchased_Movies:") { + print = true; + continue; + } else if (line == "Purchased_Movies:" || line == "Dues:" || line == "Rented_TV_Shows:" || line == "Purchased_TV_Shows:") { + break; + } + + if (print && !line.empty()) { + cout << "- " << line << "\n"; + } + } + user_file.close(); + } + + void check_dues() { + ifstream user_file(curr_user + ".txt"); + string line; + while (getline(user_file, line)) { + if (line.rfind("Dues:", 0) == 0) { // line starts with "Dues:" + cout << line << endl; + user_file.close(); + return; + } + } + user_file.close(); + cout << "No dues information found." << endl; + } + + +}; + +int main() { + string admin_username, admin_password; + // Admin credentials + // These should be stored securely in a real application + admin_username = "soumya"; + admin_password = "soumya123"; + + + int n = 1; + + while(n) { + cout<<"Welcome to Netflix"<>a; + switch(a) { + case 1: { + // Adding a block scope to avoid bypassing initialization + signup(); + break; + } + case 2: { + // User sign-in logic + string temp_username, temp_password; + cout << "Enter your username: "; + cin >> temp_username; + cout << "Enter your password: "; + cin >> temp_password; + int choice; + int k = 1; + if (verify(temp_username, temp_password)) { + User curr_user(temp_username); + cout << "Welcome " << temp_username << endl; + + while(k) { + + cout << "1. Rent a Movie" << endl; + cout << "2. Purchase a Movie" << endl; + cout << "3. View rented movies" << endl; + cout << "4. View purchased movies" << endl; + cout << "5. Check dues" << endl; + cout << "6. Exit" << endl; + cout << "Enter your choice: "<> choice; + + switch(choice) { + case 1: { + // Rent a movie logic (to be implemented) + curr_user.rent_movie(); + break; + } + case 2: { + // Purchase a movie logic (to be implemented) + curr_user.purchase_movie(); + break; + } + case 3: { + // View rented movies logic (to be implemented) + curr_user.view_rented_movies(); + break; + } + case 4: { + // View purchased movies logic (to be implemented) + curr_user.view_purchased_movies(); + break; + } + case 5: { + // Check dues logic (to be implemented) + curr_user.check_dues(); + break; + } + case 6: { + k = 0; // Exit the loop + break; + } + default: + cout << "Invalid choice. Please try again." << endl; + break; + } + + } + } + break; + } + + case 3: { + // Admin login logic (to be implemented) + string admin_username_confirm, admin_password_confirm; + cout << "Enter admin username: "; + cin >> admin_username_confirm; + cout << "Enter admin password: "; + cin >> admin_password_confirm; + if (admin_username_confirm == admin_username && admin_password_confirm == admin_password) { + Admin adminUser; + bool continued = true; + while (continued) { + cout << "\nAdmin Menu:" << endl; + cout << "1. Add Movie" << endl; + cout << "2. Delete Movie" << endl; + cout << "3. Exit" << endl; + int a; + cin >> a; + + switch(a) { + case 1: + adminUser.add_movie(); + break; + case 2: + { + + adminUser.delete_movie(); + + break; + + } + case 3: + continued = false; + break; + default: + cout << "Invalid choice. Please try again." << endl; + } + } + } else { + cout << "Invalid admin credentials. Please try again." << endl; + } + + break; + } + case 4: { + n = 0; // Exit the loop + break; + } + default: { + cout << "Invalid choice. Please try again." << endl; + break; + } + } + } +} \ No newline at end of file diff --git a/netflix_v1/soumya.txt b/netflix_v1/soumya.txt new file mode 100644 index 0000000..964a747 --- /dev/null +++ b/netflix_v1/soumya.txt @@ -0,0 +1,5 @@ +Rented_Movies: +interstellar +Purchased_Movies: +Dues: 0 +Dues: 32 diff --git a/netflix_v1/users.txt b/netflix_v1/users.txt new file mode 100644 index 0000000..0ab7a38 --- /dev/null +++ b/netflix_v1/users.txt @@ -0,0 +1 @@ +soumya 1234