No description
Find a file
2020-03-09 14:49:12 -07:00
src Add extended_gcd and modular_inverse functions. 2020-03-09 14:49:12 -07:00
.gitignore Adds export method, fixes login for v2 accounts, rm get_contacts() method 2019-10-22 22:39:42 +01:00
.travis.yml drop python 2 suppot 2019-10-22 23:30:49 +01:00
API_INFO.md api info file started 2013-05-23 23:51:57 +01:00
examples.py python 3 support 2019-10-16 22:04:25 +01:00
HISTORY.rst Back to development: 1.0.7 2020-02-03 19:48:10 +00:00
LICENSE Add LICENSE 2019-11-12 09:27:39 +00:00
MANIFEST.in adds manifest.in 2019-10-16 22:23:52 +01:00
README.rst docs 2019-11-06 23:12:23 +00:00
requirements-dev.txt Create folder and export, support sub folders 2019-10-23 23:04:03 +01:00
requirements.txt updates history and ranges reqs 2020-02-03 19:46:25 +00:00
setup.cfg rm deprecation notice, its alive again 2019-10-22 23:20:53 +01:00
setup.py Back to development: 1.0.7 2020-02-03 19:48:10 +00:00
tox.ini testing 2019-11-06 20:00:09 +00:00

**NOTICE**: If you're reading this on GitHub.com please be aware this is
a mirror of the primary remote located at https://code.richard.do/richardARPANET/mega.py_. Please direct issues and
pull requests there.

--------------

.. _megapy:

Mega.py
=======

|Build Status| |Downloads|

Python library for the Mega.co.nz API, currently supporting:

-  login
-  uploading
-  downloading
-  deleting
-  searching
-  sharing
-  renaming
-  moving files

This is a work in progress, further functionality coming shortly.

For more detailed information see API_INFO.md

How To Use
----------

.. _install-megapy-package:

Install mega.py package
~~~~~~~~~~~~~~~~~~~~~~~

.. code:: python

   #Run the following command, or run setup from the latest github source
   pip install mega.py

.. _import-megapy:

Import mega.py
~~~~~~~~~~~~~~

.. code:: python

   from mega import Mega

.. _create-an-instance-of-megapy:

Create an instance of Mega.py
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

.. code:: python

   mega = Mega()

Login to Mega
~~~~~~~~~~~~~

.. code:: python

   m = mega.login(email, password)
   # login using a temporary anonymous account
   m = mega.login()

Get user details
~~~~~~~~~~~~~~~~

.. code:: python

   details = m.get_user()

Get account balance (Pro accounts only)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

.. code:: python

   balance = m.get_balance()

Get account disk quota
~~~~~~~~~~~~~~~~~~~~~~

.. code:: python

   quota = m.get_quota()

Get account storage space
~~~~~~~~~~~~~~~~~~~~~~~~~

.. code:: python

   # specify unit output kilo, mega, gig, else bytes will output
   space = m.get_storage_space(kilo=True)

Get account files
~~~~~~~~~~~~~~~~~

.. code:: python

   files = m.get_files()

Upload a file, and get its public link
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

.. code:: python

   file = m.upload('myfile.doc')
   m.get_upload_link(file)
   # see mega.py for destination and filename options

Export a file or folder
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

.. code:: python

   public_exported_web_link = m.export('myfile.doc')
   public_exported_web_link = m.export('my_mega_folder/my_sub_folder_to_share')
   # e.g. https://mega.nz/#F!WlVl1CbZ!M3wmhwZDENMNUJoBsdzFng

Find a file or folder
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

.. code:: python

   folder = m.find('my_mega_folder')
   # Excludes results which are in the Trash folder (i.e. deleted)
   folder = m.find('my_mega_folder', exclude_deleted=True)

Upload a file to a destination folder
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

.. code:: python

   folder = m.find('my_mega_folder')
   m.upload('myfile.doc', folder[0])

Download a file from URL or file obj, optionally specify destination folder
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

.. code:: python

   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')
   # specify optional download filename (download_url() supports this also)
   m.download(file, '/home/john-smith/Desktop', 'myfile.zip')

Import a file from URL, optionally specify destination folder
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

.. code:: 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)

Create a folder
~~~~~~~~~~~~~~~

.. code:: python

   m.create_folder('new_folder')
   m.create_folder('new_folder/sub_folder/subsub_folder')

Returns a dict of folder node name and node_id, e.g.

.. code:: python

    {
      'new_folder': 'qpFhAYwA',
      'sub_folder': '2pdlmY4Z',
      'subsub_folder': 'GgMFCKLZ'
    }

Rename a file or a folder
~~~~~~~~~~~~~~~~~~~~~~~~~

.. code:: python

   file = m.find('myfile.doc')
   m.rename(file, 'my_file.doc')


~

.. _`https://code.richard.do/richardARPANET/mega.py`: https://code.richard.do/richardARPANET/mega.py
.. _`https://github.com/meganz/sdk`: https://github.com/meganz/sdk

.. |Build Status| image:: https://travis-ci.org/richardARPANET/mega.py.png?branch=master
   :target: https://travis-ci.org/richardARPANET/mega.py
.. |Downloads| image:: https://pypip.in/d/mega.py/badge.png
   :target: https://crate.io/packages/mega.py/