This project represents the implementation of a personal assistant with a command line interface. The project is installed as a Python package and can be called anywhere in the system by the appropriate command after installation; This simple python app will help you to manage your contacts, notes and sort files on your computer.
This project was written in the OOP paradigm, the following libraries were used: re, datetime, pathlib, collections, shutil, prompt_toolkit, urllib, json, pickle. The address book and note book save to pickle file.
Download package, unpack it and use next command to install it from unpacked folder:
pip install -e .
Launch command line and use command assistant
Auto-completion of commands in the command line will help you manage this application.
CLI Assistant can:
- To get short tips on how to use you can call
help
command at any time during your work with assistant
- to add new contact and one or more phones (for example 2 phones) use command:
add contact <name> <phone> <phone>
- to remove contact use command:
remove contact <name>
- to add phone to contact use command:
add phone <name> <one phone>
- to change phone of contact use command:
change phone <name> <old phone> <new phone>
- to remove phone of contact use command:
remove phone <name> <old phone>
- to add e-mail to contact use command:
add email <name> <e-mail>
- to change e-mail of contact use command:
change email <name> <new e-mail>
- to remove e-mail of contact use command:
remove email <name>
- to add address to contact use command:
add address <name> <address>
- to change address of contact use command:
change address <name> <new address>
- to remove address of contact use command:
remove address <name>
- to add birthday of contact use command:
add birthday <name> <yyyy-m-d>
- to remove birthday, write command:
remove birthday <name>
- to see how many days to contact's birthday use command:
days to birthday <name>
- to see list of birthdays in period (sorted by days of birthday) use command:
birthdays <number of days>
- to see rate of currency today use command:
currency <name of currency>
- to search contact with < text to search > use command:
search <text to search>
- to see full record of contact use command:
phone <name>
- to see all contacts use command:
show addressbook
- to say goodbye use one of these commands:
good bye
orclose
orexit
or.
- to say hello use command:
hello
This script can manage personal notes.
- to add note use command:
add note <text>
- to edit note use command:
change note <id> <edited text>
- to add tags use command:
add tags <id> <tag1 tag2 tag3...>
- to show all notes use command:
show notes
- to show any note use command:
note <id>
- to delete note use command:
remove note <id>
- to search notes use command:
search notes <text_to_search>
- to search tags use command:
search tags <tag_to_search>
This script can sort all files in the folder. The script sorts all files according to file's extensions.
- to sort files in folder use command:
clean-folder <path to folder>
...
-
if this folder is not exists, you'll see a message in console.
-
The script sorts files according to file's extensions and replaces files to the destination folders.
-
Default destination folders are
documents
,images
,video
,audio
andarchives
. -
if you want to set your own rules of sorting files you have to change extension_dict.json file:
{ "documents": [".doc", ".docx", ".xls", ".xlsx", ".txt", ".pdf"], "audio": [".mp3", ".ogg", ".wav", ".amr"], "video": [".avi", ".mp4", ".mov", ".mkv"], "images": [".jpeg", ".png", ".jpg", ".svg"], "archives": [".zip", ".gz", ".tar"], }
-
All files with relevant extensions will be moved to these folders;
-
Other files will be replaced to folder
other
; -
if these folders were not exist it will be created;
-
The script recursively checks all subfolders and replaces all files to destination folders;
-
Empty folders will be deleted;
-
Files with Cyrillic name will be renamed to Latin name;
-
if subfolders involve the files with the same name, these files will be renamed - date-time will be added to file's name;
-
All archives will be unpacked to subfolder with the name as archive's name in folder
archive
; -
if archive is broken, script will continue its work without unpacking this archive. In console you'll see message about this broken archive;
-
When script finishes cleaning the folder, you'll see the report.
If any questions, please contact to [email protected]