No description
Find a file
Midnight f053a2db1b Swap pycrypto to pycryptodome
Updated the reqs to use pycryptodome, fixed the RSA public exponent issue that was causing the logn failure, as well as general updates to patch up slight changes.
2020-01-24 13:08:04 -05:00
src Swap pycrypto to pycryptodome 2020-01-24 13:08:04 -05: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.6 2019-11-18 20:59:20 +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 Swap pycrypto to pycryptodome 2020-01-24 13:08:04 -05:00
setup.cfg rm deprecation notice, its alive again 2019-10-22 23:20:53 +01:00
setup.py Back to development: 1.0.6 2019-11-18 20:59:20 +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/