Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/balaji-dr/G-Terminail
Terminal Gmail is gmail client that can be used in a terminal with basic rules and actions
https://github.com/balaji-dr/G-Terminail
api email email-parsing g-terminail gmail gmailapi gmailclient python terminal-gmail
Last synced: 2 months ago
JSON representation
Terminal Gmail is gmail client that can be used in a terminal with basic rules and actions
- Host: GitHub
- URL: https://github.com/balaji-dr/G-Terminail
- Owner: balaji-dr
- Created: 2019-05-10T16:22:40.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2022-12-08T05:06:27.000Z (about 2 years ago)
- Last Synced: 2024-07-29T18:29:16.945Z (5 months ago)
- Topics: api, email, email-parsing, g-terminail, gmail, gmailapi, gmailclient, python, terminal-gmail
- Language: Python
- Homepage:
- Size: 36.1 KB
- Stars: 5
- Watchers: 0
- Forks: 2
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# G-Terminail
A simple Gmail client that runs in your Terminal.
## Description
This is a standalone python script that connects with Gmail API to filter and perform actions on
the emails based on certain rules. The user can fetch all the emails from their gmail account and store it in the local
database. Filters can be applied on the stored emails and the actions like marking them as READ/UNREAD, Archiving, Adding new labels can be done through the terminal. Basically its a terminal version of Gmail.### Pre-requisites
```
Python 3.6 above
SQLite
Virtualenv
```### Installing
Open the terminal.
Clone the repository
```
git clone https://github.com/deeaarbee/G-Terminail
cd G-Terminail
```Create virtual environment and activate
```
virtualenv -p python3 happyenv
source happyenv/bin/activate
```Install requirements
```
pip3 install -r requirements.txt
```Place the client.json file in the gmail directory.
```
cd gmail
# paste the client.json file
```In the settings.py in the config directory:
- TOTAL_PAGES_TO_READ - Total pages to read from gmail.
- MAX_RESULTS_PER_PAGE - Total email per page.
- TESTING - True to run tests, else False.```
# set value for
MAX_RESULTS_PER_PAGE = 10
TOTAL_PAGES_TO_READ = 3
TESTING = False
```Run main.py
```
python3 main.py
```The web browser will open for OAuth for Gmail. Accepting it will show the menu in the terminal.
##### Sample terminal output menu:
```
Successfully dumped email to database!
+--------+------------------------+
| CHOICE | ACTIONS |
+--------+------------------------+
| 1 | FILTER/PERFORM ACTIONS |
| 2 | VIEW SINGLE MAIL |
| 3 | SYNC WITH GMAIL |
| 4 | VIEW ALL EMAILS |
| 5 | EXIT (LOGOUT) |
+--------+------------------------+```
## Running the tests
To run the test:
Go to settings.py in config directory:
```
# SET
TESTING = True
```Now in the project root directory:
```
python3 test.py
```A new test database will be created to perform the tests.
##### NOTE : Never run test with main database. Set TESTING=True.
##### Sample Test output:
```
(happyenv) bash-3.2$ python3 test.py
.....
----------------------------------------------------------------------
Ran 5 tests in 0.038sOK
```## Further improvements (Not required for the given tasks.)
* Database schema can be improved to make it scalable and store all fields of an email.
* Dynamic pagination can be added to reduce load time.
* Mock tests for api requests can be written.## License
None