Resolving conflicts

This commit is contained in:
Akshath 2023-10-25 10:20:34 +05:30
commit 7784de4959
24 changed files with 735 additions and 145 deletions

View File

@ -5,11 +5,11 @@
## Checklist ## Checklist
<!-- Remove items that do not apply. For completed items, change [ ] to [x]. --> <!-- Remove items that do not apply. For completed items, change [ ] to [x]. -->
- [ ] I have read and followed the [Contribution Guidlines](https://github.com/hastagAB/Awesome-Python-Scripts#contribution-guidelines-) before creating this PR. - [x] I have read and followed the [Contribution Guidlines](https://github.com/hastagAB/Awesome-Python-Scripts#contribution-guidelines-) before creating this PR.
- [ ] I've added a new Script - [x] I've added a new Script
- [ ] Script is tested and running perfectly fine on my system - [x] Script is tested and running perfectly fine on my system
- [ ] PR is regarding the Documetation - [ ] PR is regarding the Documetation
- [ ] This change requires a documentation update - [x] This change requires a documentation update

View File

@ -31,11 +31,33 @@ You can see what all you changes using the `git status` command.
## 4. Add all you changes ## 4. Add all you changes
Add all your changes to you branch using the `git add .` command Add all your changes to you branch using the `git add .` command
## 5. Commit your changes
Commit your changes to your branch using `git commit -m "commit message"` command.
## Commit Message Conventions
- Start with a short summary (50 characters or less) of the changes made.
- Use the present tense and imperative mood.
- Separate the summary from the body of the message with a blank line.
- Use the body to explain what and why changes were made, as well as any necessary details.
- Additionally, you can consider using [semantic commit messages](https://gist.github.com/joshbuchea/6f47e86d2510bce28f8e7f42ae84c716?permalink_comment_id=3867882) like "feat:", "docs:", etc. which will provide additional context to the commit message.
| Commit Type | Description |
| ---- | ---- |
| `feat` | New feature or functionality added |
| `fix` | Bug fix |
| `docs` | Changes to documentation |
| `test` | Adding or updating tests |
| `chore` | Maintenance tasks such as refactoring, dependencies updates, or removing unused code |
| `ci` | Changes to the build or continuous integration process |
## 5. Push you changes to GitHub ## 5. Push you changes to GitHub
Switch to the main branch using this command: Switch to the master branch using this command:
```git checkout master``` ```git checkout master```
Push all your changes to GitHub using the command: Push all your changes to GitHub using the command:
```git push --set-upstream origin <your_branch_name>``` ```git push --set-upstream origin <your_branch_name>```

View File

@ -0,0 +1,61 @@
## FileMagic Organizer - Unleash the Power of Order
Welcome to FileMagic Organizer, where chaos meets its match. This Python script is your ally in the battle against cluttered directories. FileMagic Organizer effortlessly sorts your files into designated categories, bringing harmony to the digital realm.
## Index
- [Introduction](#)
- [Key Features](#key-features)
- [Getting Started](#getting-started)
- [Options provided](#options-provided)
- [Usage](#usage)
- [Customization](#customization)
## Key Features:
- 🔮 **Magical Categorization:** FileMagic Organizer intelligently sorts files by type, creating a structured and easily navigable file system.
- 📅 **Chronological Arrangement:** Dive into the past with chronological organization, unveiling the history of your files in an orderly timeline.
📏 **Size-based Sorting:** Experience the wizardry of size-based categorization, with files neatly grouped into small, medium, and large categories.
## **Getting Started:**
1. ⚡ **Clone the Repository:** Embrace the magic by cloning the FileMagic Organizer repository.
2. 🚀 **Install Dependencies:** Initiate the enchantment with a quick installation of the required Python libraries.
3. ✨ **Run the Magic Spell:** Execute the script, follow the prompts, and witness the transformation as FileMagic Organizer weaves its organizational magic.
## Options provided
- Organize files by type (e.g., images, documents, videos).
- Organize files by creation date into a hierarchical structure of year and month.
- Categorize files by size into small, medium, and large categories.
## Usage
1. **Clone the Repository:**
```bash
git clone https://github.com/malivinayak/file-organizer.git
cd file-organizer
```
2. **Install Dependencies:**
Ensure you have Python installed. Install the required libraries:
```bash
pip install -r requirements.txt
```
3. **Run the Script:**
```bash
python organize_files.py
```
## Customization
- Adjust the file type categories, file extensions, and any other settings in the script based on your needs.
- Modify the size categories and ranges in the script for organizing files by size.

104
FileMagic_Organizer/main.py Normal file
View File

@ -0,0 +1,104 @@
import os
import shutil
import datetime
def categorize_by_size(file_size):
# Define size categories and their ranges in bytes
size_categories = {
'small': (0, 1024), # Up to 1 KB
'medium': (1025, 1024 * 1024), # 1 KB to 1 MB
'large': (1024 * 1025, float('inf')) # Larger than 1 MB
}
for category, (min_size, max_size) in size_categories.items():
if min_size <= file_size < max_size:
return category
return 'unknown'
def organize_files(source_dir, destination_dir, organize_by_type=True, organize_by_date=True, organize_by_size=True):
# Create a dictionary to map file extensions to corresponding folders
file_types = {
'images': ['.png', '.jpg', '.jpeg', '.gif'],
'documents': ['.pdf', '.docx', '.txt'],
'videos': ['.mp4', '.avi', '.mkv'],
'other': [] # Add more categories and file extensions as needed
}
# Create destination subdirectories if they don't exist
if organize_by_type:
for folder in file_types:
folder_path = os.path.join(destination_dir, folder)
os.makedirs(folder_path, exist_ok=True)
if organize_by_date:
for year in range(2010, 2030): # Adjust the range based on your needs
year_folder = os.path.join(destination_dir, str(year))
os.makedirs(year_folder, exist_ok=True)
for month in range(1, 13):
month_folder = os.path.join(year_folder, f"{month:02d}")
os.makedirs(month_folder, exist_ok=True)
if organize_by_size:
for size_category in ['small', 'medium', 'large']:
size_folder = os.path.join(destination_dir, size_category)
os.makedirs(size_folder, exist_ok=True)
# Scan the source directory and organize files
for filename in os.listdir(source_dir):
file_path = os.path.join(source_dir, filename)
if os.path.isfile(file_path):
# Determine the file type based on extension
file_type = None
for category, extensions in file_types.items():
if any(filename.lower().endswith(ext) for ext in extensions):
file_type = category
break
if organize_by_type and file_type:
# Move the file to the corresponding subdirectory
destination_folder = os.path.join(destination_dir, file_type)
destination_path = os.path.join(destination_folder, filename)
shutil.move(file_path, destination_path)
print(f"Moved: {filename} to {file_type} folder")
if organize_by_date:
# Get the creation date of the file
creation_time = os.path.getctime(file_path)
creation_date = datetime.datetime.fromtimestamp(creation_time)
# Determine the destination folder based on creation date
destination_folder = os.path.join(
destination_dir,
str(creation_date.year),
f"{creation_date.month:02d}",
)
# Move the file to the corresponding subdirectory
destination_path = os.path.join(destination_folder, filename)
shutil.move(file_path, destination_path)
print(f"Moved: {filename} to {creation_date.year}/{creation_date.month:02d} folder")
if organize_by_size:
# Get the size of the file in bytes
file_size = os.path.getsize(file_path)
# Determine the destination folder based on file size
size_category = categorize_by_size(file_size)
destination_folder = os.path.join(destination_dir, size_category)
destination_path = os.path.join(destination_folder, filename)
shutil.move(file_path, destination_path)
print(f"Moved: {filename} to {size_category} folder")
# Get source and destination directories from the user
source_directory = input("Enter the source directory path: ")
destination_directory = input("Enter the destination directory path: ")
# Ask the user how they want to organize the files
organize_by_type = input("Organize by file type? (yes/no): ").lower() == 'yes'
organize_by_date = input("Organize by creation date? (yes/no): ").lower() == 'yes'
organize_by_size = input("Organize by size? (yes/no): ").lower() == 'yes'
organize_files(source_directory, destination_directory, organize_by_type, organize_by_date, organize_by_size)

View File

@ -1,5 +1,5 @@
certifi==2022.12.7 certifi==2023.7.22
chardet==3.0.4 chardet==3.0.4
idna==2.10 idna==2.10
requests==2.31.0 requests==2.31.0
urllib3==1.26.5 urllib3==1.26.18

View File

@ -1,3 +1,4 @@
<<<<<<< HEAD
import PIL import PIL
from PIL import Image from PIL import Image
from tkinter.filedialog import * from tkinter.filedialog import *
@ -10,3 +11,37 @@ img=img.resize((myHeight,myWidth),PIL.Image.ANTILIAS)
save_path=asksaveasfile() save_path=asksaveasfile()
img.save(save_path+"_compressed.JPG") img.save(save_path+"_compressed.JPG")
=======
import PIL
from PIL import Image
from tkinter.filedialog import *
file_path=askopenfilenames()
img = PIL.Image.open(file_path)
myHeight,myWidth = img.size
img=img.resize((myHeight,myWidth),PIL.Image.ANTILIAS)
save_path=asksaveasfile()
img.save(save_path+"_compressed.JPG")
import PIL
from PIL import Image
from tkinter.filedialog import *
file_paths = askopenfilenames()
if len(file_paths) == 0:
print("No Files Selected")
for file in file_paths:
file_name = file.split('/')[-1]
file_name, extension = file_name.split('.')
img = PIL.Image.open(file)
height,width = img.size
img=img.resize((height,width),Image.Resampling.LANCZOS)
save_path=askdirectory()
img.save(save_path+f"/{file_name}_compressed.{extension}")
>>>>>>> 06c603fe31712b13e986e2f388b82a8ab3703308

View File

@ -7,5 +7,7 @@ It automates the task of compressing the image in day to day lives.
# Dependencies: # Dependencies:
pip install image Note : Use python3.11 for tkinder
`pip install pillow`

View File

@ -1,3 +1,4 @@
<<<<<<< HEAD
astroid==2.1.0 astroid==2.1.0
autopep8==1.4.3 autopep8==1.4.3
certifi==2022.12.7 certifi==2022.12.7
@ -11,3 +12,32 @@ pynput==1.4.4
six==1.12.0 six==1.12.0
wincertstore==0.2 wincertstore==0.2
wrapt==1.10.11 wrapt==1.10.11
=======
astroid==2.1.0
autopep8==1.4.3
certifi==2022.12.7
colorama==0.4.1
isort==4.3.4
lazy-object-proxy==1.3.1
mccabe==0.6.1
pycodestyle==2.4.0
pylint==2.2.2
pynput==1.4.4
six==1.12.0
wincertstore==0.2
wrapt==1.10.11
=======
astroid==2.1.0
autopep8==1.4.3
certifi==2023.7.22
colorama==0.4.1
isort==4.3.4
lazy-object-proxy==1.3.1
mccabe==0.6.1
pycodestyle==2.4.0
pylint==2.2.2
pynput==1.4.4
six==1.12.0
wincertstore==0.2
wrapt==1.10.11
>>>>>>> 06c603fe31712b13e986e2f388b82a8ab3703308

View File

@ -0,0 +1,44 @@
import PyPDF2
import argparse
import os
def split_pdf(input_pdf_path, output_folder):
# Open the PDF file
pdf_file = open(input_pdf_path, "rb")
input_pdf_name = os.path.basename(input_pdf_path).split(".")[0]
pdf_reader = PyPDF2.PdfReader(pdf_file)
# Create the output folder if it doesn't exist
os.makedirs(output_folder, exist_ok=True)
# Loop through each page and save it as a separate PDF file
for page_num in range(len(pdf_reader.pages)):
pdf_writer = PyPDF2.PdfWriter()
pdf_writer.add_page(pdf_reader.pages[page_num])
output_pdf_path = os.path.join(
output_folder, f"{input_pdf_name}_{page_num + 1}.pdf"
)
with open(output_pdf_path, "wb") as output_pdf:
pdf_writer.write(output_pdf)
print(f"Page {page_num + 1} saved as {output_pdf_path}")
# Close the input PDF file
pdf_file.close()
if __name__ == "__main__":
parser = argparse.ArgumentParser(
description="Split a PDF file into separate pages")
parser.add_argument(
"input_pdf", help="Input PDF file path")
parser.add_argument(
"output_folder", help="Output folder path for split pages")
args = parser.parse_args()
input_pdf_path = args.input_pdf
output_folder = args.output_folder
split_pdf(input_pdf_path, output_folder)

22
PDFsplitter/README.md Normal file
View File

@ -0,0 +1,22 @@
## PDFsplitter
This Python script allows you to split a PDF file into separate PDF files, one for each page. It uses the PyPDF2 library to perform the splitting.
### Usage
1. Make sure you have Python 3.x installed on your system.
2. Install the required PyPDF2 library using pip:
```pip install PyPDF2```
3. Run the script with the following command:
`python PDFsplitter.py input_pdf output_folder`
- `input_pdf`: The path to the input PDF file that you want to split.
- `output_folder`: The folder where the split PDF pages will be saved.
### Example
To split an input PDF file named `input.pdf` into separate pages and save them in an `output_pages` folder, you can run the following command:
python PDFsplitter.py input.pdf output_pages

View File

@ -0,0 +1 @@
PyPDF2==3.0.1

View File

@ -1,3 +1,3 @@
numpy==1.22.0 numpy==1.22.0
opencv-python==4.1.1.26 opencv-python==4.1.1.26
Pillow==9.3.0 Pillow==10.0.1

203
README.md
View File

@ -3,13 +3,14 @@
## Contents: ## Contents:
- [What is this repo?](#what-is-this-repo) - [Awesome Python Scripts :sunglasses: ](#awesome-python-scripts-sunglasses----)
- [What do we have?](#what-do-we-have) - [Contents:](#contents)
- [How to use?](#how-to-use) - [What is this repo?](#what-is-this-repo)
- [Contribution Guidelines](#contributions-guidelines) - [What do we have:](#what-do-we-have)
- [How to use:](#how-to-use)
- [Contribution Guidelines:](#contribution-guidelines)
- [Steps required to follow before adding any script](#steps-required-to-follow-before-adding-any-script) - [Steps required to follow before adding any script](#steps-required-to-follow-before-adding-any-script)
- [Contribution Guidelines](#contributions-guidelines) - [If you like the project:](#if-you-like-the-project)
- [If you like the project](#if-you-like-the-project)
- [Want to connect with me?](#want-to-connect-with-me) - [Want to connect with me?](#want-to-connect-with-me)
## What is this repo? ## What is this repo?
@ -22,125 +23,101 @@ So far, the following projects have been integrated to this repo:
| Project Name | Contributors | | Project Name | Contributors |
|--|--| |--|--|
| [TicTacToe AI and 2 players](https://github.com/ShadowHunter15/Awesome-Python-Scripts/tree/master/TicTacToe_AI_and_2_players) | [Omar Sameh](https://github.com/ShadowHunter15) | |[2048](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/2048)|[Krunal](https://github.com/gitkp11)|
| [AI for guess the number](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/AI_for_Guess_the_number) | [Omar Sameh](https://github.com/ShadowHunter15) |
| [sudoku-solver](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/sudoku-solver) | [Rishabh Umrao](https://github.com/ayedaemon) |
|[File Encrypt Decrypt](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/file-encrypt-decrypt)|[Aditya Arakeri](https://github.com/adityaarakeri)|
| [Address locator](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/Location_Of_Adress) | [Chris]() |
| [Automated emails](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/automated_email) | [Suvigya](https://github.com/SuvigyaJain1) |
|[AI chatbot](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/Artificial-intelligence_bot) |[umar abdullahi](https://github.com/umarbrowser) |
|[Asymmetric Encryption](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/asymmetric_cryptography) |[victor matheus](https://github.com/victormatheusc) |
|[Bitcoin price GUI](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/Bitcoin-Price-GUI) |[Amirul Abu](https://github.com/amirulabu) |
|[Better_CSV_Storage](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/Better_CSV_Storage) | [Bhargav Kuvadiya](https://github.com/techdobz) |
|[Cryptocurrency Converter](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/Cryptocurrency-converter) |[AdnCodz](https://github.com/AdnCodez) |
|[Cryptocurrency Prices](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/Cryptocurrency-Prices) |[xemeds](https://github.com/xemeds) |
|[Caesar Cipher](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/caesar_cipher) |[epi052](https://github.com/epi052) |
|[Checksum tool](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/Checksum) |[Austin Ewens](https://github.com/aewens) |
|[Codechef autosubmitter](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/Codechef-Code-Submitter) |[Harshit Mahajan](https://github.com/hmahajan99) |
|[Colored B&W Image Converter](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/Color_to_BW_Converter) |[Nitish Srivastava](https://github.com/nitish-iiitd) |
|[Contact 'Leads' Distribution](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/Contact-Distribution) |[Tiago Cordeiro](https://github.com/tiagocordeiro) |
|[Cricket Matches web Scraper](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/CricBuzz_Score_Update) |[Divy Ranjan](https://github.com/divyranjan17) |
| [Crypt socket](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/Crypt_Socket)|[Willian GL](https://github.com/williangl) |
| [CSV to Excel](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/CSV-to-Excel)|[xemeds](https://github.com/xemeds) |
|[Current City Weather](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/Current_City_Weather) |[Jesse Bridge](https://github.com/jessebridge) |
|[Directory organizer](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/Directory-organizer) | [Athul P](https://github.com/athulpn) |
|[Database-As-Storage](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/Database-As-Storage) | [Bhargav Kuvadiya](https://github.com/techdobz) |
|[DOH DIG](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/DOH-Dig/) | [Ryan](https://github.com/awsumco) |
|[English Theasaurus](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/English_Theasauras/) | [Ansh Dhingra](https://github.com/anshdhinhgra47) |
|[Elasticsearch snapshot](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/elastic-snapshot) | [Joe Ryan](https://github.com/joeryan) |
|[Excel Files Merger](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/Excel_Files_Merger) | [Andrei N](https://github.com/Andrei-Niculae)|
|[Excel to List](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/Excel_to_ListofList) | [Nitish Srivastava](https://github.com/nitish-iiitd)|
|[Extended_ip_address_info](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/extended_ip_address_info) | [hafpaf](https://github.com/hafpaf)|
|[File explorer](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/File-Explorer-Dialog-Box) | [Nikhil Kumar Singh](https://github.com/nikhilkumarsingh)|
|[File Sharing Bot](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/File-Sharing-Bot) | [Darshan Patel](https://github.com/DarshanPatel11)|
|[Flash card quizzer](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/Flash-card-Challenge) |[Utkarsh Sharma](https://github.com/Utkarsh1308) |
|[Frammed text generator](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/FramedText) | [jcdwalle](https://github.com/jcdwalle)|
|[git_automation](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/git_automation)| [loge1998](https://github.com/loge1998)|
|[Gmail Mailing Script](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/mailing) |[mayank-kapur](https://github.com/kapurm17) |
|[Get Time By TimeZone](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/Get_Time_TimezoneWise)|[Parth Shah](https://github.com/codingis4noobs) |
|[Handwrting DNN recognizer](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/Handwriting_Recognizer) |[Chris]() |
|[HTML Table to List](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/HTML_Table_to_List) | [Nitish Srivastava](https://github.com/nitish-iiitd)|
|[Image circle formatter](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/Image-Circulator) |[Berk Gureken](https://github.com/bureken) |
|[Image To PDF](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/images2pdf)|[msaoudallah](https://github.com/msaoudallah)|
|[Instadp Web Scrapper](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/InstadpShower)|[Psychiquest](https://github.com/psychiquest)|
|[IP Address ](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/ipaddress)|[Xenium](https://github.com/xeniumcode)|
|[Keylogger](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/Keylogger) |[Preet Mishra](https://github.com/preetmishra) |
|[Minecraft Server in background](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/Minecraft_server_in_background)|[Max von Forell](https://github.com/mvforell)|
|[Own IP locator](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/Location_Of_Own_IP_Adress)|[Chris]()|
|[Port Scanner](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/Port_Scanner)|[Plutoberth](https://github.com/Plutoberth)|
|[Harry Potter Cloak](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/Harry-Potter-Cloak) | [thesmartdeveloperr](https://github.com/thesmartdeveloperr)|
|[Python Algebra Solver](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/Algebra-Solver)|[Sengxay Xayachack](https://github.com/frankxayachack)|
|[Random name generator](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/Random_Names_Generator)| [Ayush Bhardwaj](https://github.com/hastagAB)|
|[Random Password Generators](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/Random_Password_Generator)| [Hafpaf](https://github.com/hafpaf) and [Renderer-RCT2](https://github.com/Renderer-RCT2)|
|[Server Ping](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/Ping_Server)|[prince]()|
|[Signature photo to PNG converter](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/signature2png)|[Rodolfo Ferro](https://github.com/RodolfoFerro)|
|[Simple Webpage Parser](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/SimpleWebpageParser)|[Nitish Srivastava](https://github.com/nitish-iiitd)|
|[Slideshare downloader](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/Slideshare-Downloader)|[Chris Goes](https://github.com/GhostofGoes)|
|[SMS your location](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/SmsYourLocation)|[prince]()|
|[Squid installer for Ubuntu](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/Squid-Proxy-Installer-for-Ubuntu16)|[Berkay Demir]()|
|[Subtitle downloader](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/Subtitle-downloader)|[Kaushlendra Pratap](https://github.com/kaushl1998)|
|[TTS - Text to Speech Mp3](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/TTS_Text_to_Speech_Mp3)|[Antonio Andrade](https://github.com/xAndrade)|
|[Top_News](Top_News)|[Attupatil](https://github.com/Attupatil)|
|[Upload Files to S3](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/Upload_files_to_s3)|[Jayram Nai](https://github.com/jramnai)|
|[Vinegère Cipher](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/vigenere_cipher)|[victoni](https://github.com/victoni)|
|[Web proxy](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/Proxy-Request)|[Nikhil Kumar Singh](https://github.com/nikhilkumarsingh)|
|[Website blocker](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/Website-Blocker)|[Ayush Bhardwaj](https://github.com/hastagAB)|
|[Word generator](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/Word-generator)|[TGLIDE](https://github.com/TGlide)|
|[Work log generator](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/Work_Log_Generator)|[Maël Pedretti](https://github.com/73VW)|
|[Youtube video downloader](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/Youtube_Video_Downloader)|[Christopher He](https://github.com/hecris)|
|[Zabbix API](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/zabbix_api)|[msg4sunny](https://github.com/msg4sunny)|
|[Zip password cracker](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/zip_password_cracker)|[umar abdullahi](https://github.com/umarbrowser)|
|[RSA Algorithm](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/RSA_Algorithm)|[Chinmay Rane](https://github.com/Chinmayrane16)|
|[CLI Calculator](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/cli_calculator)|[Willian GL](https://github.com/williangl) |
|[Find PhoneNumber in String](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/Find-PhoneNumber-in-String)|[Austin Zuniga](https://github.com/AustinZuniga)|
|[IMDB TV Series Info Extractor](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/imdb_episode_ratings)|[Yash Raj Sarrof](https://github.com/yashYRS) |
|[PX to REM](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/PX-to-REM)|[Atthaphon Urairat](https://github.com/uatthaphon) |
|[py_based_music_player](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/py_based_music_player) | [Bhargav Kuvadiya](https://github.com/techdobz) |
|[Yoda-speak Translator](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/speak_like_yoda)|[sonniki](https://github.com/sonniki) |
|[SSH Host adder](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/SSH_Host_Adder)|[NinoDoko](https://github.com/NinoDoko)|
|[Wikipedia-Search](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/Wikipedia-Search)|[Nissaar](https://github.com/Nissaar) |
|[Instagram Video Downloader](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/insta_video_downloader)|[Shobhit Bhosure](https://github.com/shobhit99) |
|[Medium Article Downloader](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/medium_article_downloader)|[coolsonu39](https://github.com/coolsonu39)|
|[Face Recognition](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/Face_recognition)|[LOKESH KHURANA](https://github.com/theluvvkhurana)|
|[File Encrypt Decrypt](file-encrypt-decrypt)|[Aditya Arakeri](https://github.com/adityaarakeri)|
| [Address locator](Location_Of_Adress) | [Chris]() |
| [Automated calendar](automated_calendar) | [J.A. Hernández](https://github.com/jesusalberto18) |
| [Automated emails](automated_email) | [Suvigya](https://github.com/SuvigyaJain1) |
|[AI chatbot](Artificial-intelligence_bot) |[umar abdullahi](https://github.com/umarbrowser) | |[AI chatbot](Artificial-intelligence_bot) |[umar abdullahi](https://github.com/umarbrowser) |
|[AI for guess the number](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/AI_for_Guess_the_number) | [Omar Sameh](https://github.com/ShadowHunter15) |
|[Address locator](Location_Of_Adress) | [Chris]() |
|[Asymmetric Encryption](asymmetric_cryptography) |[victor matheus](https://github.com/victormatheusc) | |[Asymmetric Encryption](asymmetric_cryptography) |[victor matheus](https://github.com/victormatheusc) |
|[Automated calendar](automated_calendar) | [J.A. Hernández](https://github.com/jesusalberto18) |
|[Automated emails](automated_email) | [Suvigya](https://github.com/SuvigyaJain1) |
|[Battery_notification](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/Battery_notification/)|[Krishna Sharma](https://github.com/krishnasharma1386)|
|[Better_CSV_Storage](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/Better_CSV_Storage) | [Bhargav Kuvadiya](https://github.com/techdobz) |
|[Bitcoin price GUI](Bitcoin-Price-GUI) |[Amirul Abu](https://github.com/amirulabu) | |[Bitcoin price GUI](Bitcoin-Price-GUI) |[Amirul Abu](https://github.com/amirulabu) |
|[Cryptocurrency Converter](Cryptocurrency-converter) |[AdnCodz](https://github.com/AdnCodez) | |[CLI Calculator](cli_calculator)|[Willian GL](https://github.com/williangl) |
|[COVID visualiser (real-time) ](covid_visualiser)|[Tushar Gupta](https://github.com/tushar5526)|
|[CSV to Excel](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/CSV-to-Excel)|[xemeds](https://github.com/xemeds) |
|[Caesar Cipher](caesar_cipher) |[epi052](https://github.com/epi052) | |[Caesar Cipher](caesar_cipher) |[epi052](https://github.com/epi052) |
|[Checksum tool](Checksum) |[Austin Ewens](https://github.com/aewens) | |[Checksum tool](Checksum) |[Austin Ewens](https://github.com/aewens) |
|[Clean_up_photo](Clean_up_photo_directory)|[sritanmay001](https://github.com/sritanmy001)|
|[Codechef autosubmitter](Codechef-Code-Submitter) |[Harshit Mahajan](https://github.com/hmahajan99) | |[Codechef autosubmitter](Codechef-Code-Submitter) |[Harshit Mahajan](https://github.com/hmahajan99) |
|[Codeforces Checker](codeforcesChecker)|[Jinesh Parakh](https://github.com/jineshparakh)|
|[Colored B&W Image Converter](Color_to_BW_Converter) |[Nitish Srivastava](https://github.com/nitish-iiitd) | |[Colored B&W Image Converter](Color_to_BW_Converter) |[Nitish Srivastava](https://github.com/nitish-iiitd) |
|[Contact 'Leads' Distribution](Contact-Distribution) |[Tiago Cordeiro](https://github.com/tiagocordeiro) | |[Contact 'Leads' Distribution](Contact-Distribution) |[Tiago Cordeiro](https://github.com/tiagocordeiro) |
|[Countdown](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/Countdown)|[Jeremias Gomes](https://github.com/j3r3mias)|
|[csv_to_json](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/csv_to_json)|[MoiZ](https://github.com/TechBoyy6)|
|[Cricket Matches web Scraper](CricBuzz_Score_Update) |[Divy Ranjan](https://github.com/divyranjan17) | |[Cricket Matches web Scraper](CricBuzz_Score_Update) |[Divy Ranjan](https://github.com/divyranjan17) |
| [Crypt socket](Crypt_Socket)|[Willian GL](https://github.com/williangl) | |[Crypt socket](Crypt_Socket)|[Willian GL](https://github.com/williangl) |
|[Cryptocurrency Converter](Cryptocurrency-converter) |[AdnCodz](https://github.com/AdnCodez) |
|[Cryptocurrency Prices](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/Cryptocurrency-Prices) |[xemeds](https://github.com/xemeds) |
|[Current City Weather](Current_City_Weather) |[Jesse Bridge](https://github.com/jessebridge) | |[Current City Weather](Current_City_Weather) |[Jesse Bridge](https://github.com/jessebridge) |
|[Directory organizer](Directory-organizer) | [Athul P](https://github.com/athulpn) |
|[DOH DIG](DOH-Dig/) | [Ryan](https://github.com/awsumco) | |[DOH DIG](DOH-Dig/) | [Ryan](https://github.com/awsumco) |
|[Database-As-Storage](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/Database-As-Storage) | [Bhargav Kuvadiya](https://github.com/techdobz) |
|[Directory Tree Visualizer](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/Directory_Tree_Generator) | [Harpreet Singh Saluja](https://github.com/hssaluja25/) |
|[Directory organizer](Directory-organizer) | [Athul P](https://github.com/athulpn) |
|[Download Page as PDF](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/Download-page-as-pdf)|[Jeremias Gomes](https://github.com/j3r3mias)|
|[Elasticsearch snapshot](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/elastic-snapshot) | [Joe Ryan](https://github.com/joeryan) |
|[English Theasaurus](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/English_Theasauras/) | [Ansh Dhingra](https://github.com/anshdhinhgra47) |
|[Excel Files Merger](Excel_Files_Merger) | [Andrei N](https://github.com/Andrei-Niculae)| |[Excel Files Merger](Excel_Files_Merger) | [Andrei N](https://github.com/Andrei-Niculae)|
|[Excel to List](Excel_to_ListofList) | [Nitish Srivastava](https://github.com/nitish-iiitd)| |[Excel to List](Excel_to_ListofList) | [Nitish Srivastava](https://github.com/nitish-iiitd)|
|[Extended_ip_address_info](extended_ip_address_info) | [hafpaf](https://github.com/hafpaf)| |[Extended_ip_address_info](extended_ip_address_info) | [hafpaf](https://github.com/hafpaf)|
|[Face Recognition](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/Face_recognition)|[LOKESH KHURANA](https://github.com/theluvvkhurana)|
|[Fibonacci_Sequence_Generator](Fibonacci_Sequence_Generator) | [John Wesley Kommala](https://github.com/JohnWesleyK)| |[Fibonacci_Sequence_Generator](Fibonacci_Sequence_Generator) | [John Wesley Kommala](https://github.com/JohnWesleyK)|
|[File explorer](File-Explorer-Dialog-Box) | [Nikhil Kumar Singh](https://github.com/nikhilkumarsingh)| |[File Carving](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/File_Carving) | [Yeryeong Kim](https://github.com/icarusicarus/) |
|[File Encrypt Decrypt](file-encrypt-decrypt)|[Aditya Arakeri](https://github.com/adityaarakeri)|
|[FileMagic Organizer](./FileMagic_Organizer)|[malivinayak](https://github.com/malivinayak)|
|[File Organizer](File-Organizer)|[Ayush Bhardwaj](https://github.com/hastagAB)|
|[File Sharing Bot](File-Sharing-Bot) | [Darshan Patel](https://github.com/DarshanPatel11)| |[File Sharing Bot](File-Sharing-Bot) | [Darshan Patel](https://github.com/DarshanPatel11)|
|[File explorer](File-Explorer-Dialog-Box) | [Nikhil Kumar Singh](https://github.com/nikhilkumarsingh)|
|[Find PhoneNumber in String](Find-PhoneNumber-in-String)|[Austin Zuniga](https://github.com/AustinZuniga)|
|[Flash card quizzer](Flash-card-Challenge) |[Utkarsh Sharma](https://github.com/Utkarsh1308) | |[Flash card quizzer](Flash-card-Challenge) |[Utkarsh Sharma](https://github.com/Utkarsh1308) |
|[Folder Locker and hider](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/Folder%20Locker%20%26%20Hider)|[Prajjwal Pathak](https://github.com/pyguru123)|
|[Folder Manager](Folder_Manager)|[Harsh Raj](https://github.com/DeadProgrammer0)|
|[Frammed text generator](FramedText) | [jcdwalle](https://github.com/jcdwalle)| |[Frammed text generator](FramedText) | [jcdwalle](https://github.com/jcdwalle)|
|[Get Time By TimeZone](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/Get_Time_TimezoneWise)|[Parth Shah](https://github.com/codingis4noobs) |
|[git_automation](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/git_automation)| [loge1998](https://github.com/loge1998)|
|[Github repo creator](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/Git_repo_creator)|[Harish Tiwari ](https://github.com/optimist2309)|
|[GithubBot](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/Github_Bot)|[Abhilasha](https://github.com/Abhilasha06)|
|[Gmail Mailing Script](mailing) |[mayank-kapur](https://github.com/kapurm17) | |[Gmail Mailing Script](mailing) |[mayank-kapur](https://github.com/kapurm17) |
|[Handwrting DNN recognizer](Handwriting_Recognizer) |[Chris]() | |[Google Meet Joiner](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/google_meet_joiner)|[JohanSanSebastian](https://github.com/JohanSanSebastian)|
|[HTML Table to List](HTML_Table_to_List) | [Nitish Srivastava](https://github.com/nitish-iiitd)| |[HTML Table to List](HTML_Table_to_List) | [Nitish Srivastava](https://github.com/nitish-iiitd)|
|[Image circle formatter](Image-Circulator) |[Berk Gureken](https://github.com/bureken) | |[Handwrting DNN recognizer](Handwriting_Recognizer) |[Chris]() |
|[Harry Potter Cloak](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/Harry-Potter-Cloak) | [thesmartdeveloperr](https://github.com/thesmartdeveloperr)|
|[IMDB TV Series Info Extractor](imdb_episode_ratings)|[Yash Raj Sarrof](https://github.com/yashYRS) |
|[IMDBQuerier](IMDBQuerier)|[Burak Bekci](https://github.com/Bekci)|
|[IP Address ](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/ipaddress)|[Xenium](https://github.com/xeniumcode)|
|[Image Compressor](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/Image_Compressor)|[Prathima Kadari](https://github.com/prathimacode-hub)|
|[Image To PDF](images2pdf)|[msaoudallah](https://github.com/msaoudallah)| |[Image To PDF](images2pdf)|[msaoudallah](https://github.com/msaoudallah)|
|[Image Watermarker (batch)](imageWatermarker)|[Remco Halman](https://github.com/remcohalman)|
|[Image circle formatter](Image-Circulator) |[Berk Gureken](https://github.com/bureken) |
|[Independent RSA Communication Algorithm](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/RSA_Communication)|[Miguel Santos](https://github.com/wi6n3l)|
|[Instadp Web Scrapper](InstadpShower)|[Psychiquest](https://github.com/psychiquest)| |[Instadp Web Scrapper](InstadpShower)|[Psychiquest](https://github.com/psychiquest)|
|[Instagram Video Downloader](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/insta_video_downloader)|[Shobhit Bhosure](https://github.com/shobhit99) |
|[JSON file to YAML convertor](https://github.com/saksham117/Awesome-Python-Scripts/tree/master/json-to-yaml)|[Saksham Basandrai](https://github.com/saksham117)|
|[Keylogger](Keylogger) |[Preet Mishra](https://github.com/preetmishra) | |[Keylogger](Keylogger) |[Preet Mishra](https://github.com/preetmishra) |
|[Medium Article Downloader](medium_article_downloader)|[coolsonu39](https://github.com/coolsonu39)|
|[Minecraft Server in background](Minecraft_server_in_background)|[Max von Forell](https://github.com/mvforell)| |[Minecraft Server in background](Minecraft_server_in_background)|[Max von Forell](https://github.com/mvforell)|
|[Own IP locator](Location_Of_Own_IP_Adress)|[Chris]()| |[Own IP locator](Location_Of_Own_IP_Adress)|[Chris]()|
|[PDF2text](PDF2text)|[QuangPH](https://github.com/quangph-1686a)|
|[PDFsplitter](PDFsplitter)|[Prathamesh-Ghatole](https://github.com/Prathamesh-Ghatole)|
|[PX to REM](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/PX-to-REM)|[Atthaphon Urairat](https://github.com/uatthaphon) |
|[Pdf to AudioBook Converter](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/PdfToAudio)|[Ayesha Gull](https://github.com/ayeshag7/)|
|[Plagiarism_detector](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/Plagiarism_detector)|[Akshita Singhal](https://github.com/akshitasinghal4444)|
|[Port Scanner](Port_Scanner)|[Plutoberth](https://github.com/Plutoberth)| |[Port Scanner](Port_Scanner)|[Plutoberth](https://github.com/Plutoberth)|
|[Pressure_Converter](https://github.com/E-wave112/Awesome-Python-Scripts/tree/master/Pressure_Converter)|[E-Wave](https://github.com/E-wave112)|
|[Pretty CSV](Pretty-CSV)|[Frizz925](https://github.com/Frizz925)|
|[PyRecorder](PyRecorder)|[Rocky Jain](https://github.com/jainrocky)|
|[py_based_music_player](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/py_based_music_player) | [Bhargav Kuvadiya](https://github.com/techdobz) |
|[Py_Cleaner](Py_Cleaner) | [Abhishek Dobliyal](https://github.com/Abhishek-Dobliyal)|
|[Python Algebra Solver](Algebra-Solver)|[Sengxay Xayachack](https://github.com/frankxayachack)| |[Python Algebra Solver](Algebra-Solver)|[Sengxay Xayachack](https://github.com/frankxayachack)|
|[Random name generator](Random_Names_Generator)| [Ayush Bhardwaj](https://github.com/hastagAB)| |[RSA Algorithm](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/RSA_Algorithm)|[Chinmay Rane](https://github.com/Chinmayrane16)|
|[RSA Key Pair Generator](RSA-key-pairs) | [Aditya Parikh](https://github.com/obiwan69) |
|[Random Password Generators](Random_Password_Generator)| [Hafpaf](https://github.com/hafpaf) and [Renderer-RCT2](https://github.com/Renderer-RCT2)| |[Random Password Generators](Random_Password_Generator)| [Hafpaf](https://github.com/hafpaf) and [Renderer-RCT2](https://github.com/Renderer-RCT2)|
|[Random name generator](Random_Names_Generator)| [Ayush Bhardwaj](https://github.com/hastagAB)|
|[Random_Email_Generator](Random_Email_Generator)|[Shubham Garg](https://github.com/shub-garg)|
|[Remove-Duplicate-Files](Remove-Duplicate-Files)|[Aayushi Varma](https://github.com/aayuv17)|
|[Rock-Paper-Scissor Game](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/Rock-Paper-Scissor)|[Punit Sakre](https://github.com/punitsakre23)|
|[send_whatsapp_message](send_whatsapp_message)|[Mukesh Prasad](https://github.com/mukeshprasad)|
|[Send messages to sqs in parallel](send_sqs_messages_in_parallel)|[Jinam Shah](https://github.com/jinamshah)|
|[Server Ping](Ping_Server)|[prince]()| |[Server Ping](Ping_Server)|[prince]()|
|[Signature photo to PNG converter](signature2png)|[Rodolfo Ferro](https://github.com/RodolfoFerro)| |[Signature photo to PNG converter](signature2png)|[Rodolfo Ferro](https://github.com/RodolfoFerro)|
|[Simple Webpage Parser](SimpleWebpageParser)|[Nitish Srivastava](https://github.com/nitish-iiitd)| |[Simple Webpage Parser](SimpleWebpageParser)|[Nitish Srivastava](https://github.com/nitish-iiitd)|
@ -209,6 +186,38 @@ So far, the following projects have been integrated to this repo:
|[Pdf to AudioBook Converter](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/PdfToAudio)|[Ayesha Gull](https://github.com/ayeshag7/)| |[Pdf to AudioBook Converter](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/PdfToAudio)|[Ayesha Gull](https://github.com/ayeshag7/)|
|[Countdown](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/Countdown)|[Jeremias Gomes](https://github.com/j3r3mias)| |[Countdown](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/Countdown)|[Jeremias Gomes](https://github.com/j3r3mias)|
|[Object Detection](https://github.com/akshathmangudi/Object-Detection)|[Akshath Mangudi](https://github.com/akshathmangudi)| |[Object Detection](https://github.com/akshathmangudi/Object-Detection)|[Akshath Mangudi](https://github.com/akshathmangudi)|
|[Spotify Downloader](spotify_downloader)|[Sagar Patel](https://github.com/sagar627)|
|[Squid installer for Ubuntu](Squid-Proxy-Installer-for-Ubuntu16)|[Berkay Demir]()| |
|[SSH Host adder](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/SSH_Host_Adder)|[NinoDoko](https://github.com/NinoDoko)|
|[Steg_Tool](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/Steg_Tool/)|[Shankar JP](https://github.com/shankarjp)|
|[sudoku-solver](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/sudoku-solver) | [Rishabh Umrao](https://github.com/ayedaemon) |
|[Subtitle downloader](Subtitle-downloader)|[Kaushlendra Pratap](https://github.com/kaushl1998)|
|[TTS - Text to Speech Mp3](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/TTS_Text_to_Speech_Mp3)|[Antonio Andrade](https://github.com/xAndrade)|
|[Take Screenshot](Take_screenshot)|[Moad Mohammed Elhebri](https://github.com/moadmmh)|
|[Tambola_Ticket_Generator](Tambola_Ticket_Generator)|[Amandeep_Singh](https://github.com/Synster)|
|[Test Your Internet Speed](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/TestMyInternetSpeed)|[TheSmartDeveloperr](https://github.com/thesmartdeveloperr)|
|[TicTacToe AI and 2 players](https://github.com/ShadowHunter15/Awesome-Python-Scripts/tree/master/TicTacToe_AI_and_2_players) | [Omar Sameh](https://github.com/ShadowHunter15) |
|[To Do Bot](To%20Do%20Bot) | [Darshan Patel](https://github.com/DarshanPatel11)|
|[Top_News](Top_News)|[Attupatil](https://github.com/Attupatil)|
|[Translate CLI](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/TranslateCLI)|[Rodrigo Oliveira](https://github.com/rodrigocam)|
|[URL shortener](url_shortener)|[Sam Ebison](https://github.com/ebsa491)|
|[Upload Files to S3](Upload_files_to_s3)|[Jayram Nai](https://github.com/jramnai)|
|[Vinegère Cipher](vigenere_cipher)|[victoni](https://github.com/victoni)|
|[Web proxy](Proxy-Request)|[Nikhil Kumar Singh](https://github.com/nikhilkumarsingh)|
|[Website Url Detector](Website_Url_Detector)|[sonniki](https://github.com/sonniki)|
|[Website blocker](Website-Blocker)|[Ayush Bhardwaj](https://github.com/hastagAB)|
|[WiFi Password Viewer](Wifi-Password)|[Sagar Patel](https://github.com/sagar627)|
|[Wikipedia-Search](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/Wikipedia-Search)|[Nissaar](https://github.com/Nissaar) |
|[Word Frequency Counter](Word_Frequency_Counter)|[sonniki](https://github.com/sonniki)|
|[Word generator](Word-generator)|[TGLIDE](https://github.com/TGlide)|
|[Work log generator](Work_Log_Generator)|[Maël Pedretti](https://github.com/73VW)|
|[X Scrapper](X_Scrapper)|[Shreeram](https://github.com/iamshreeram)|
|[YTS Torrents](yts_torrents)|[Mayank Nader](https://github.com/makkoncept)|
|[Yoda-speak Translator](speak_like_yoda)|[sonniki](https://github.com/sonniki) |
|[Youtube video downloader](Youtube_Video_Downloader)|[Christopher He](https://github.com/hecris)|
|[Zabbix API](zabbix_api)|[msg4sunny](https://github.com/msg4sunny)|
|[Zip password cracker](zip_password_cracker)|[umar abdullahi](https://github.com/umarbrowser)|
|[Task Scheduler](Task-Scheduler)|[heysagnik](https://github.com/heysagnik)|
## How to use: ## How to use:
- Clone/Download the directory and navigate to each folder. Or... - Clone/Download the directory and navigate to each folder. Or...

85
Task-Scheduler/Readme.md Normal file
View File

@ -0,0 +1,85 @@
# Task Scheduler
This Python script, `task_scheduler.py`, is a simple command-line task management application that allows users to add, view, and delete tasks with due dates. The application stores task data in a JSON file.
## How to Use
1. **Installation**:
- Make sure you have Python installed on your system.
2. **Run the Application**:
- Open a terminal or command prompt.
- Navigate to the directory where `task_scheduler.py` is located.
```
$ cd /path/to/directory
```
- Run the script:
```
$ python task_scheduler.py
```
3. **Menu Options**:
- The application provides the following menu options:
- **Add Task**: Allows you to add a new task with a name and due date (in YYYY-MM-DD format).
- **View Tasks**: Displays a list of tasks with their names and due dates.
- **Delete Task**: Lets you delete a task by specifying its number in the list.
- **Quit**: Exits the application.
4. **Data Storage**:
- The tasks are stored in a JSON file named `tasks.json` in the same directory as the script.
5. **Error Handling**:
- The application handles various errors, such as invalid date format or task numbers.
## Example Usage
1. **Add Task**:
- Choose option 1.
- Enter a task name.
- Enter the due date in YYYY-MM-DD format.
2. **View Tasks**:
- Choose option 2 to see a list of added tasks with their due dates.
3. **Delete Task**:
- Choose option 3.
- Enter the number of the task you want to delete.
4. **Quit**:
- Choose option 4 to exit the application.
## Data Persistence
The application loads tasks from the `tasks.json` file when it starts and saves tasks back to the file after any additions or deletions. This ensures that your tasks are retained even when the application is closed and reopened.
## Error Handling
The application checks for invalid date formats and incorrect task numbers, providing appropriate error messages to guide the user.
## Important Notes
- Please ensure that you have Python installed on your system.
- Make sure to provide dates in the specified format (YYYY-MM-DD).
- Be cautious when deleting tasks, as this action is irreversible.
## Author
This Python Task Scheduler was created by Sagnik Sahoo.
Feel free to customize and extend this application to suit your needs. Enjoy managing your tasks!

View File

@ -0,0 +1 @@
pytz==2021.3

View File

@ -0,0 +1,74 @@
import json
import os
import datetime
# Define the data file to store tasks
TASKS_FILE = "tasks.json"
# Load tasks from the data file (if it exists)
tasks = []
if os.path.exists(TASKS_FILE):
with open(TASKS_FILE, "r") as file:
tasks = json.load(file)
def save_tasks():
# Save tasks to the data file
with open(TASKS_FILE, "w") as file:
json.dump(tasks, file)
def add_task():
task_name = input("Enter the task name: ")
due_date = input("Enter the due date (YYYY-MM-DD): ")
try:
due_date = datetime.datetime.strptime(due_date, "%Y-%m-%d").date()
except ValueError:
print("Invalid date format. Please use YYYY-MM-DD.")
return
tasks.append({"name": task_name, "due_date": due_date})
save_tasks()
print(f"Task '{task_name}' added successfully!")
def view_tasks():
print("Tasks:")
for idx, task in enumerate(tasks, start=1):
print(f"{idx}. {task['name']} (Due: {task['due_date']})")
def delete_task():
view_tasks()
task_index = input("Enter the task number to delete: ")
try:
task_index = int(task_index)
if 1 <= task_index <= len(tasks):
deleted_task = tasks.pop(task_index - 1)
save_tasks()
print(f"Task '{deleted_task['name']}' deleted successfully!")
else:
print("Invalid task number.")
except ValueError:
print("Invalid input. Please enter a valid task number.")
while True:
print("\nTask Scheduler Menu:")
print("1. Add Task")
print("2. View Tasks")
print("3. Delete Task")
print("4. Quit")
choice = input("Enter your choice: ")
if choice == "1":
add_task()
elif choice == "2":
view_tasks()
elif choice == "3":
delete_task()
elif choice == "4":
break
else:
print("Invalid choice. Please choose a valid option.")
print("Goodbye!")

View File

@ -1,7 +1,7 @@
requests==2.31.0 requests==2.31.0
urllib3==1.26.5 urllib3==1.26.17
requests==2.31.0 requests==2.31.0
urllib3==1.26.5 urllib3==1.26.17
py4j==0.10.4 py4j==0.10.4
BeautifulSoup==3.2.0 BeautifulSoup==3.2.0
numpy==1.22.0 numpy==1.22.0

22
X_Scrapper/README.md Normal file
View File

@ -0,0 +1,22 @@
# X Scrapper
Use to scrape the tweets from given username (including the metadata of the tweet - location of user, views, likes etc.) using `tweepy`.
## Use case
1. To analyze the (sentiment trend of the given user)[https://github.com/iamshreeram/twitter-senti-analyzer] over the period of time (on given topic or anything)
2. Further analysis of user behaviour using geo-location, time of tweets,
### Requirements
Python 3.xx
tweepy
```bash
pip install tweepy
```
### Usage
python main.py <twitter_username>
### Note :
1. This requires you to have the consumer key, consumer secret, access key and access secret from your x.com account

View File

@ -0,0 +1 @@
tweepy==4.3.0

77
X_Scrapper/x_scraper.py Normal file
View File

@ -0,0 +1,77 @@
#!/usr/bin/env python
# encoding: utf-8
import sys
try:
import tweepy #https://github.com/tweepy/tweepy
except ImportError:
print("You'll need tweepy instaled on your system.")
sys.exit()
try:
import csv
except ImportError:
print("You'll need the python csv module instaled on your system.")
sys.exit()
consumer_key = "xxx"
consumer_secret = "yyy"
access_key = "aa-zzzz"
access_secret = "bbb"
def get_all_tweets(screen_name):
if (consumer_key == ""):
print("You need to set up the script first. Edit it and add your keys.")
return
#Twitter only allows access to a users most recent 3240 tweets with this method
#authorize x, initialize tweepy
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_key, access_secret)
api = tweepy.API(auth)
#initialize a list to hold all the tweepy Tweets
alltweets = []
#make initial request for most recent tweets (200 is the maximum allowed count)
new_tweets = api.user_timeline(screen_name = screen_name,count=200)
#save most recent tweets
alltweets.extend(new_tweets)
#save the id of the oldest tweet less one
oldest = alltweets[-1].id - 1
#keep grabbing tweets until there are no tweets left to grab
while len(new_tweets) > 0:
print("getting tweets before %s" % (oldest))
#all subsiquent requests use the max_id param to prevent duplicates
new_tweets = api.user_timeline(screen_name = screen_name,count=200,max_id=oldest)
#save most recent tweets
alltweets.extend(new_tweets)
#update the id of the oldest tweet less one
oldest = alltweets[-1].id - 1
print("...%s tweets downloaded so far" % (len(alltweets)))
#transform the tweepy tweets into a 2D array that will populate the csv
outtweets = [[tweet.id_str, tweet.created_at, tweet.text] for tweet in alltweets]
#write the csv
with open('%s_tweets.csv' % screen_name, 'w') as f:
writer = csv.writer(f)
writer.writerow(["id","created_at","text"])
writer.writerows(outtweets)
pass
if __name__ == '__main__':
if (len(sys.argv) == 2):
get_all_tweets(sys.argv[1])
else:
print("Please add the x account you want to back up as an argument.")

View File

@ -1,5 +1,5 @@
certifi==2022.12.7 certifi==2023.7.22
chardet==3.0.4 chardet==3.0.4
idna==2.10 idna==2.10
requests==2.31.0 requests==2.31.0
urllib3==1.26.5 urllib3==1.26.18

View File

@ -1 +1 @@
Pillow==9.3.0 Pillow==10.0.1

View File

@ -1,8 +1,8 @@
beautifulsoup4==4.9.3 beautifulsoup4==4.9.3
certifi==2022.12.7 certifi==2023.7.22
chardet==3.0.4 chardet==3.0.4
idna==2.10 idna==2.10
pkg-resources==0.0.0 pkg-resources==0.0.0
requests==2.31.0 requests==2.31.0
soupsieve==2.0.1 soupsieve==2.0.1
urllib3==1.26.5 urllib3==1.26.17

View File

@ -1,5 +1,5 @@
certifi==2022.12.7 certifi==2023.7.22
chardet==3.0.4 chardet==3.0.4
idna==2.8 idna==2.8
requests==2.31.0 requests==2.31.0
urllib3==1.26.5 urllib3==1.26.18