mirror of
https://github.com/gryf/pygtktalog.git
synced 2025-12-18 03:50:25 +01:00
Moved pygtktalog to pycatalog.
Also, clean up setup things and imports.
This commit is contained in:
115
README.rst
115
README.rst
@@ -1,131 +1,74 @@
|
||||
pyGTKtalog
|
||||
pycatalog
|
||||
==========
|
||||
|
||||
Pygtktalog is Linux/FreeBSD program for indexing CD, DVD, BR or directories on
|
||||
filesystem. It is similar to `gtktalog`_ or `gwhere`_. There is no coincidence
|
||||
in name of application, because it's meant to be replacement (in some way) for
|
||||
gtktalog, which seems to be dead project for years.
|
||||
Pycatalog is a commandline Linux/FreeBSD program for indexing CD, DVD, BR or
|
||||
directories on filesystem. It is similar to `gtktalog`_ or `gwhere`_. There is
|
||||
no coincidence in name of application, because it's meant to be replacement
|
||||
(in some way) for gtktalog, which seems to be dead project for years.
|
||||
|
||||
Current version is 2.0.
|
||||
Note, that even if it share same code base with pyGTKtalog, which was meant to
|
||||
be desktop application, now pycatalog is pure console app, just for use with
|
||||
commandline. You can find last version of pyGTKtalog under ``pyGTKtalog``
|
||||
branch, although bear in mind, that it was written with `python 2.7`_ and
|
||||
pyGTK_, which both are dead now.
|
||||
|
||||
FEATURES
|
||||
Current version is 3.0.
|
||||
|
||||
Features
|
||||
--------
|
||||
|
||||
* Scan for files in selected media
|
||||
* Support for grouping files depending on file name (expected patterns in file
|
||||
names)
|
||||
* Get/generate thumbnails from EXIF and other images
|
||||
* Store selected EXIF tags
|
||||
* Add/edit description and notes
|
||||
* Fetch comments for images made in `gThumb`_
|
||||
* Add/remove unlimited images to any file or directory
|
||||
* `Tagging files`_
|
||||
* And more :)
|
||||
|
||||
Frontends
|
||||
---------
|
||||
|
||||
New version of pyGTKtalog was meant to use multiple interfaces.
|
||||
|
||||
#. First for the new incarnation of pyGTKtalog is… command line tool for
|
||||
accessing catalog dbs. With ``cmdcatalog.py`` it's possible to:
|
||||
|
||||
* create new catalog
|
||||
* update it
|
||||
* list
|
||||
* find files
|
||||
* fsck (for maintenance for orphaned thumbs/images)
|
||||
|
||||
#. ``gtktalog.py``. This is written from scratch frontend in pygtk. Still work
|
||||
in progress.
|
||||
|
||||
Requirements
|
||||
------------
|
||||
|
||||
pyGTKtalog requires python and following libraries:
|
||||
pycatalog requires python and following libraries:
|
||||
|
||||
* `python 3`_, tested on python 3.6
|
||||
* `sqlalchemy 1.2`_ or higher
|
||||
* `pygtk 2.24`_ (only for ``gtktalog.py``, will not work with python3)
|
||||
* `pillow`_ for image manipulation
|
||||
* `python 3.10`_ and up
|
||||
* `sqlalchemy 1.4`_
|
||||
* `exifread`_ for parse EXIF information
|
||||
|
||||
It may work on other (lower) version of libraries, and it should work with
|
||||
higher versions of libraries. GTK3 support will follow.
|
||||
|
||||
pyGTKtalog extensively uses external programs in unix spirit, however there is
|
||||
Pycatalog extensively uses external programs in unix spirit, however there is
|
||||
small possibility of using it Windows (probably with limitations) and quite big
|
||||
possibility to run it on other sophisticated unix-like systems (i.e.
|
||||
BeOS/ZETA/Haiku, QNX or MacOSX).
|
||||
|
||||
Programs that are used:
|
||||
* ``mencoder`` (provided by `mplayer`_ package)
|
||||
* ``montage``, ``convert`` from `ImageMagick`_
|
||||
* ``midentify`` (provided by `mplayer`_ package)
|
||||
|
||||
For development process following programs are used:
|
||||
|
||||
* `gettext`_
|
||||
* `intltool`_
|
||||
* `nose`_
|
||||
* `coverage`_
|
||||
* `paver`_
|
||||
* `tox`_
|
||||
|
||||
INSTALATION
|
||||
Instalation
|
||||
-----------
|
||||
|
||||
You don't have to install it if you don't want to. You can just change current
|
||||
directory to pyGTKtalog and simply run::
|
||||
directory to pycatalog and simply run::
|
||||
|
||||
$ paver run
|
||||
|
||||
That's it. Alternatively, if you like to put it in more system wide place, all
|
||||
you have to do is:
|
||||
|
||||
#. put pyGTKtalog directory into your destination of choice (/usr/local/share,
|
||||
#. put pycatalog directory into your destination of choice (/usr/local/share,
|
||||
/opt or ~/ is typical bet)
|
||||
|
||||
#. copy pyGTKtalog shell script to /usr/bin, /usr/local/bin or in
|
||||
#. copy pycatalog shell script to /usr/bin, /usr/local/bin or in
|
||||
other place, where PATH variable is pointing or you feel like.
|
||||
|
||||
#. then modify pyGTKtalog line 6 to match right ``pygtktalog.py`` directory
|
||||
#. then modify pycatalog line 6 to match right ``pycatalog.py`` directory
|
||||
|
||||
Then, just run pyGTKtalog script.
|
||||
|
||||
Technical details
|
||||
-----------------
|
||||
|
||||
Catalog file is plain sqlite database (optionally compressed with bzip2). All
|
||||
images are stored in location pointed by db entry in ``config`` table - it is
|
||||
assumed, that images directory will be placed within the root directory, where
|
||||
the main db lies.
|
||||
Generated sha512 hash from image file itself. There is small possibility for two
|
||||
identical hash for different image files. However, no images are overwritten.
|
||||
Thumbnail filename for each image is simply concatenation of image filename in
|
||||
images directory and '_t' string.
|
||||
|
||||
There is also converter from old database to new for internal use only. In
|
||||
public release there will be no other formats so it will be useless, and
|
||||
deleted. There are some issues with converting. All thumbnails will be lost.
|
||||
All images without big image will be lost. There are serious changes with
|
||||
application design, and I decided, that is better to keep media unpacked on
|
||||
disk, instead of pack it every time with save and unpack with open methods. New
|
||||
design prevent from deleting any file from media directory (placed in
|
||||
``~/.pygtktalog/images``). Functionality for exporting images and corresponding
|
||||
db file is planned.
|
||||
|
||||
|
||||
DEVELOPMENT
|
||||
-----------
|
||||
|
||||
Several tools has been used to develop pyGTKtalog.
|
||||
|
||||
Paver
|
||||
^^^^^
|
||||
|
||||
I've choose `Paver`_ as make equivalent. Inside main project directory there is
|
||||
``pavement.py`` script, which provides several tasks, that can be helpful in a work
|
||||
with sources. Paver is also used to generate standard ``setup.py``.
|
||||
Then, just run pycatalog script.
|
||||
|
||||
LICENSE
|
||||
=======
|
||||
@@ -136,18 +79,12 @@ file in top-level directory.
|
||||
|
||||
.. _coverage: http://nedbatchelder.com/code/coverage/
|
||||
.. _exifread: https://github.com/ianare/exif-py
|
||||
.. _gettext: http://www.gnu.org/software/gettext/gettext.html
|
||||
.. _gthumb: http://gthumb.sourceforge.net
|
||||
.. _gtktalog: http://www.nongnu.org/gtktalog/
|
||||
.. _gwhere: http://www.gwhere.org/home.php3
|
||||
.. _imagemagick: http://imagemagick.org/script/index.php
|
||||
.. _intltool: http://www.gnome.org/
|
||||
.. _mplayer: http://mplayerhq.hu
|
||||
.. _nose: http://code.google.com/p/python-nose/
|
||||
.. _paver: https://pythonhosted.org/paver/
|
||||
.. _pillow: https://python-pillow.org/
|
||||
.. _pygtk 2.24: http://www.pygtk.org
|
||||
.. _python 3: http://www.python.org/
|
||||
.. _sqlalchemy 1.2: http://www.sqlalchemy.org
|
||||
.. _python 3.10: http://www.python.org/
|
||||
.. _sqlalchemy 1.4: http://www.sqlalchemy.org
|
||||
.. _tagging files: http://en.wikipedia.org/wiki/tag_%28metadata%29
|
||||
.. _tox: https://testrun.org/tox
|
||||
|
||||
Reference in New Issue
Block a user