lucastliu / gmailfs Goto Github PK
View Code? Open in Web Editor NEWfilesystem based interface to interact with gmail
filesystem based interface to interact with gmail
Currently there are some manual steps to create directories. It would be better if these directories were already made. This includes the client
and cache
directories.
Possibly related to config file issue #4
do some stuff
Currently can only send one line of text in email. Change parser to allow multiple lines of text.
If there are many emails in the inbox, have subfolders that each hold X emails. So if there are 10 emails, perhaps the first 5 emails will be in subfolder1, and the next 5 in subfolder2.
enable ease of use options like quick reply
deal with replies and email threads
See title
Implement a cache systCache most recently read (requested) emails
Cache (pre-fetch) the new emails
Keep the most recent 100 emails based on these 2 policies
We define “most recent” as:
For new emails: receive time
For old emails that are read: most recent user access time
Current plan: remove the cached emails on start up
Optional: After the program ends, cached email will remain and next time we will only update the new coming emails from the last execution.
Calls api everytime, which is slow. Should just also have a metadata cache to store the available emails.
Deletion requires calling gmail API for email that no longer exists
[Python]
Provide a way for the filesystem to speak with a real Gmail Account.
Code only works if you make your "cache" folder named "src"
This is due to 2 regex patterns that look for src/inbox
after force closing the first time, on next startup, fuse is in an error state. Likely due to improper thread closing.
Only updates once user opens a particular email, this may allow cache to grow without bounds.
Full functionality for gmailfs demo with real gmail account
Use gmailfs to see real list of inbox emails,
Be able to read contents of specific email
After receiving a real email, gmailfs reflects this update
Can send a real email to another address
SSL error, could be API side or gmail side.
make premade folders hidden dot files and add them to gitignore
store the message id
in the stat
data structure, and when user callcat filename
, using the stat
to get the message id
read()
in Gmailfs
class
full
format (get_mime_message)f.write()
write into actual fileBe able to see a list of emails from a real gmail inbox. Implemented by calling ls
on the /inbox
folder.
bugs:
Todos:
Keep the cache in between restarts, just look for changes to update the cache, instead of clearing out and starting over
Sender should not be decided on each draft. It should just default to the main account associated in gmailfs.
Not handling client sending correctly
Provide a way to (upon automatic update) give a list of which emails changed, and what the change was (new email or deleted). Provide email unique ID
Find out why it is so slow on the Duke VM. Works fine on local laptop.
Currently there is only one unique Pub/Sub. So if computer1 is running gmailfs, and ack's an auto update, computer2 will never receive the update on their gmailfs (even if same account)
Create directories when we get the email list (instead of one file representing one email)
Each “Email’s personal directory” could have:
The email subject + unique ID will be the name of the directory
A file with the text content in html format
A file with the text content in plaintext format
Attachments are each their own file
Another file with all of the raw MIME data
Another file with all of the raw MIME data
Need filter for inbox only, not all emails.
Need added filter in API calls, and additional logic within gmailfs to handle folders (aka labels)
Dates on email files are incorrect. Some of them are from the future.
Have a config file(in a fixed format, defined by us) in the directory
read config file in the __init__
in Gmailfs
and pass it into Gmail
object constructor
possibly extend to other config options as well
uses Google OAuth token instead of email / pwd
may be related to emails sent from gmailfs to itself
Need to automatically look for new incoming emails, and have any changes reflected in gmailfs.
Two options:
1. poll Gmail API every x seconds and just look at the recent emails
There are special cache implications for either of these choices.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.