imgurup 1.7.0
Upload to imgur using API(v3). Support CLI, KDE,Zenity(GTK) and Mac dialog upload. And you can also use your account to upload :).
License: MIT

imgurup
============

.. image:: https://img.shields.io/pypi/v/imgurup.svg
   :target: https://pypi.python.org/pypi/imgurup
   :alt: Latest PyPI version
.. image:: https://img.shields.io/badge/license-MIT-blue.svg
   :alt: MIT license
.. image:: https://coveralls.io/repos/carlcarl/imgurup/badge.svg?branch=master&service=github 
   :target: https://coveralls.io/github/carlcarl/imgurup?branch=master

Upload to imgur using its API(v3).
Support CLI, KDE, Zenity(GTK) and Mac dialog upload.


Feature
-------
| Support upload images(anonymously/account)
| Support CLI, KDE, Zenity(GTK) and Mac dialog upload
| Support Python 3

Installation
------------
.. code-block:: bash

    $ sudo python setup.py install

or 

.. code-block:: bash

    $ sudo pip install imgurup


Usage
-----
``img [-h] [-f [<image path> [<image path> ...]]] [-d [<album id>]] [-g] [-n] [-q]``

| You can just type ``img`` without any argument, the program will ask you for another infomation.
| But add ``-f`` argument with your image file would be easier to use, ex: ``img -f xx.jpg``
| After the authentication, the access_token and refresh_token will be saved in ``~/.imgurup.conf``

Optional arguments:
::

    -h, --help       show this help message and exit
    -f [<image path> [<image path> ...]] The images you want to upload
    -d [<album id>]  The album id you want your image to be uploaded to
    -g               GUI mode
    -n               Anonymous upload
    -s               Add command in the context menu of file manager(Support Gnome and KDE)
    -q               Choose album with each file
    -t               Use image name as the title

Packcage Dependency
-------------------
* None

Customize example
-----------------

.. code-block:: python

    from imgurup import Imgur


    class MyImgur(Imgur):

        def get_error_dialog_args(self, msg='Error'):
            args = [
                'zenity',
                '--error',
                '--text={text}'.format(text=msg),
            ]
            return args

        def get_auth_msg_dialog_args(self, auth_msg, auth_url):
            args = [
                'zenity',
                '--entry',
                '--text={msg}'.format(msg=auth_msg),
                '--entry-text={link}'.format(link=auth_url),
            ]
            return args

        def get_enter_pin_dialog_args(self, token_msg):
            args = [
                'zenity',
                '--entry',
                '--text={msg}'.format(msg=token_msg),
            ]
            return args

        def get_ask_image_path_dialog_args(self):
            args = [
                'zenity',
                '--file-selection',
            ]
            return args

        def get_ask_album_id_dialog_args(self, albums, no_album_msg):
            i = 1
            arg = [
                'zenity',
                '--list',
                '--text="Choose the album"',
                '--column=No.',
                '--column=Album name',
                '--column=Privacy',
            ]
            for album in albums:
                arg.append(str(i))
                arg.append('{album[title]}'.format(album=album))
                arg.append('{album[privacy]}'.format(album=album))
                i += 1
            arg.append(str(i))
            arg.append(no_album_msg)
            arg.append('public')

        def get_show_link_dialog_args(self, links):
            args = [
                'zenity',
                '--info',
                '--text={links}'.format(links=links),
            ]
            return args


License
-------

The ``imgurup`` package is written by Chien-Wei Huang. It’s MIT licensed and freely available.

Feel free to improve this package and send a pull request to GitHub.