2013-02-04 02:02:33 +00:00
|
|
|
# Mega.py
|
2013-05-17 23:53:52 +00:00
|
|
|
[![Build Status](https://travis-ci.org/richardasaurus/mega.py.png?branch=master)](https://travis-ci.org/richardasaurus/mega.py)
|
2013-05-18 00:02:09 +00:00
|
|
|
[![Downloads](https://pypip.in/d/mega.py/badge.png)](https://crate.io/packages/mega.py/)
|
2013-02-04 02:02:33 +00:00
|
|
|
|
2013-02-07 19:53:22 +00:00
|
|
|
Python library for the Mega.co.nz API, currently supporting:
|
|
|
|
- login
|
|
|
|
- uploading
|
|
|
|
- downloading
|
|
|
|
- deleting
|
|
|
|
- searching
|
2013-02-08 12:48:49 +00:00
|
|
|
- sharing
|
2013-05-04 22:55:52 +00:00
|
|
|
- renaming
|
2013-05-08 10:27:27 +00:00
|
|
|
- moving files
|
2013-02-04 02:32:32 +00:00
|
|
|
|
2013-02-04 02:31:41 +00:00
|
|
|
This is a work in progress, further functionality coming shortly.
|
2013-02-04 02:02:33 +00:00
|
|
|
|
|
|
|
## How To Use
|
|
|
|
|
2013-02-16 00:34:16 +00:00
|
|
|
### Install mega.py package
|
2013-03-05 01:54:04 +00:00
|
|
|
```python
|
2013-03-05 01:55:25 +00:00
|
|
|
#Run the following command, or run setup from the latest github source
|
|
|
|
sudo pip install mega.py
|
2013-03-05 01:54:04 +00:00
|
|
|
```
|
2013-02-16 00:34:16 +00:00
|
|
|
### Import mega.py
|
2013-03-05 01:54:04 +00:00
|
|
|
```python
|
2013-03-05 01:55:25 +00:00
|
|
|
from mega import Mega
|
2013-03-05 01:54:04 +00:00
|
|
|
```
|
2013-02-04 02:02:33 +00:00
|
|
|
### Create an instance of Mega.py
|
2013-03-05 01:54:04 +00:00
|
|
|
```python
|
2013-03-05 01:55:25 +00:00
|
|
|
mega = Mega()
|
2013-04-28 03:00:42 +00:00
|
|
|
# add the verbose option for print output on some functions
|
|
|
|
mega = Mega({'verbose': True})
|
2013-03-05 01:54:04 +00:00
|
|
|
```
|
2013-02-04 02:02:33 +00:00
|
|
|
### Login to Mega
|
2013-03-05 01:54:04 +00:00
|
|
|
```python
|
2013-03-05 01:55:25 +00:00
|
|
|
m = mega.login(email, password)
|
2013-03-05 01:54:04 +00:00
|
|
|
```
|
2013-02-04 04:42:28 +00:00
|
|
|
### Get user details
|
2013-03-05 01:54:04 +00:00
|
|
|
```python
|
2013-03-05 01:55:25 +00:00
|
|
|
details = m.get_user()
|
2013-03-05 01:54:04 +00:00
|
|
|
```
|
2013-03-10 03:53:24 +00:00
|
|
|
### Get account balance (Pro accounts only)
|
|
|
|
```python
|
|
|
|
balance = m.get_balance()
|
|
|
|
```
|
|
|
|
### Get account disk quota
|
|
|
|
```python
|
|
|
|
quota = m.get_quota()
|
|
|
|
```
|
2013-04-28 15:56:17 +00:00
|
|
|
### Get account storage space
|
|
|
|
```python
|
2013-04-28 15:58:35 +00:00
|
|
|
# specify unit output kilo, mega, gig, else bytes will output
|
2013-04-28 15:56:17 +00:00
|
|
|
space = m.get_storage_space(kilo=True)
|
|
|
|
```
|
2013-02-04 02:02:33 +00:00
|
|
|
### Get account files
|
2013-03-05 01:54:04 +00:00
|
|
|
```python
|
2013-03-05 01:56:02 +00:00
|
|
|
files = m.get_files()
|
2013-03-05 01:54:04 +00:00
|
|
|
```
|
2013-02-07 23:30:37 +00:00
|
|
|
### Upload a file, and get its public link
|
2013-03-05 01:54:04 +00:00
|
|
|
```python
|
2013-03-05 01:55:25 +00:00
|
|
|
file = m.upload('myfile.doc')
|
|
|
|
m.get_upload_link(file)
|
2013-05-08 11:32:45 +00:00
|
|
|
# see mega.py for destination and filename options
|
2013-03-05 01:54:04 +00:00
|
|
|
```
|
2013-02-12 19:21:44 +00:00
|
|
|
### Download a file from URL or file obj, optionally specify destination folder
|
2013-03-05 01:54:04 +00:00
|
|
|
```python
|
2013-03-05 01:55:25 +00:00
|
|
|
file = m.find('myfile.doc')
|
|
|
|
m.download(file)
|
|
|
|
m.download_url('https://mega.co.nz/#!utYjgSTQ!OM4U3V5v_W4N5edSo0wolg1D5H0fwSrLD3oLnLuS9pc')
|
|
|
|
m.download(file, '/home/john-smith/Desktop')
|
2013-05-08 11:34:23 +00:00
|
|
|
# specify optional download filename (download_url() supports this also)
|
2013-05-08 11:32:45 +00:00
|
|
|
m.download(file, '/home/john-smith/Desktop', 'myfile.zip')
|
2013-03-05 01:54:04 +00:00
|
|
|
```
|
2013-05-11 20:45:43 +00:00
|
|
|
### Import a file from URL, optionally specify destination folder
|
|
|
|
```python
|
|
|
|
m.import_public_url('https://mega.co.nz/#!utYjgSTQ!OM4U3V5v_W4N5edSo0wolg1D5H0fwSrLD3oLnLuS9pc')
|
|
|
|
folder_node = m.find('Documents')[1]
|
|
|
|
m.import_public_url('https://mega.co.nz/#!utYjgSTQ!OM4U3V5v_W4N5edSo0wolg1D5H0fwSrLD3oLnLuS9pc', dest_node=folder_node)
|
|
|
|
```
|
2013-03-12 16:56:17 +00:00
|
|
|
### Create a folder
|
|
|
|
```python
|
|
|
|
m.create_folder('new_folder')
|
|
|
|
```
|
2013-05-04 22:55:52 +00:00
|
|
|
### Rename a file or a folder
|
|
|
|
```python
|
|
|
|
file = m.find('myfile.doc')
|
|
|
|
m.rename(file, 'my_file.doc')
|
|
|
|
```
|
2013-05-05 07:16:40 +00:00
|
|
|
### Moving a file or a folder into another folder
|
|
|
|
```python
|
|
|
|
file = m.find('myfile.doc')
|
|
|
|
folder = m.find('myfolder')
|
|
|
|
m.move(file[0], folder)
|
|
|
|
```
|
2013-02-08 12:31:25 +00:00
|
|
|
### Search account for a file, and get its public link
|
2013-03-05 01:54:04 +00:00
|
|
|
```python
|
2013-03-05 01:55:25 +00:00
|
|
|
file = m.find('myfile.doc')
|
|
|
|
m.get_link(file)
|
2013-03-05 01:54:04 +00:00
|
|
|
```
|
2013-03-05 01:48:01 +00:00
|
|
|
### Trash or destroy a file from URL or its ID
|
2013-03-05 01:54:04 +00:00
|
|
|
```python
|
2013-03-05 01:55:25 +00:00
|
|
|
m.delete(file[0])
|
|
|
|
m.delete_url('https://mega.co.nz/#!utYjgSTQ!OM4U3V5v_W4N5edSo0wolg1D5H0fwSrLD3oLnLuS9pc')
|
2013-02-07 18:29:16 +00:00
|
|
|
|
2013-03-05 01:55:25 +00:00
|
|
|
m.destroy(file[0])
|
|
|
|
m.destroy_url('https://mega.co.nz/#!utYjgSTQ!OM4U3V5v_W4N5edSo0wolg1D5H0fwSrLD3oLnLuS9pc')
|
2013-02-23 15:06:02 +00:00
|
|
|
|
2013-03-05 01:55:25 +00:00
|
|
|
files = m.find('myfile.doc')
|
|
|
|
if files:
|
|
|
|
m.delete(files[0])
|
2013-03-05 01:54:04 +00:00
|
|
|
```
|
2013-05-11 21:56:25 +00:00
|
|
|
### Add/remove contacts
|
|
|
|
```python
|
|
|
|
m.add_contact('test@email.com')
|
|
|
|
m.remove_contact('test@email.com')
|
|
|
|
```
|
|
|
|
|
2013-02-04 02:02:33 +00:00
|
|
|
## Requirements
|
|
|
|
|
|
|
|
1. Python2.7+
|
2013-02-23 15:06:02 +00:00
|
|
|
2. Python requests (>0.10) - python-requests.org
|
2013-02-07 16:10:26 +00:00
|
|
|
3. PyCrypto - dlitz.net/software/pycrypto/
|
2013-02-04 02:02:33 +00:00
|
|
|
|
|
|
|
## Tests
|
|
|
|
|
2013-02-16 00:34:16 +00:00
|
|
|
Test .py files can be found in tests.py, run these to ensure Mega.py is working 100%.
|
2013-02-04 02:02:33 +00:00
|
|
|
|
|
|
|
## Contribute
|
|
|
|
|
|
|
|
Feel free to pull the source and make changes and additions.
|
|
|
|
|
2013-02-08 17:49:36 +00:00
|
|
|
Learn about the API at Mega.co.nz, more documentation coming shortly.
|
2013-02-04 02:02:33 +00:00
|
|
|
- https://mega.co.nz/#developers
|
|
|
|
|
|
|
|
|
2013-02-08 17:49:36 +00:00
|
|
|
|