This repository has been archived on 2023-07-12. You can view files and clone it, but cannot push or open issues or pull requests.
Go to file
2022-04-28 20:06:43 +02:00
.idea Initial commit 2022-04-28 19:27:52 +02:00
athnos Initial commit 2022-04-28 19:27:52 +02:00
resources Initial commit 2022-04-28 19:27:52 +02:00
athnos.sqlite3 Initial commit 2022-04-28 19:27:52 +02:00
database structure Initial commit 2022-04-28 19:27:52 +02:00
LICENSE Add license 2022-04-28 20:06:43 +02:00
main.py Initial commit 2022-04-28 19:27:52 +02:00
README.md Initial commit 2022-04-28 19:27:52 +02:00
requirements.txt Initial commit 2022-04-28 19:27:52 +02:00
test.py Initial commit 2022-04-28 19:27:52 +02:00
test.sqlite3 Initial commit 2022-04-28 19:27:52 +02:00

⚠️ UNFINISHED PROJECT ⚠️

This project were not finsihed because pyqt5 development was a huge pain and I didn't saw the need for such a software anymore. Nevertheless, it runs and works partly.

Athnos

With Athnos you can store media files like videos, audios or images (called clip) structured / sorted.

Every clip has a link or file path to the (media) file, a name, description and can have several tags. Additionally, a clip can have a source. For example, if the clip is a 10-second clip from a movie, the movie can be set as the source and each time you select the clip, you can see where it came from.

This makes Athnos the perfect tool for video creators who often use many and different clips/scenes, audio, images, etc. in their videos and currently have dozens of different folders and cryptic-looking file names to somehow bring order to the pile of files. But it's also useful for 'normal' people, like you and me, who just want to store their images or videos centrally.

Download the latest executables:

The installation and other stuff (besides Todo and License) below are just for the people, who want to compile the code themselves and doesn't use the executables linked above.

If you only have a 32 bit, arm, etc. processor, window 8 or another reason why you can't use the already compiled versions linked above, you have to download the source code and execute / compile it yourself. The instructions are below.

Known issues

Linux

  • FileNotFoundError: [Errno 2] No such file or directory 'objcopy' when compiling the code with pyinstaller

    Cause: PyInstaller doesn't find the objcopy command

    Solution: Run apt install binutils, which installs objcopy

  • staticx: Couldn't find 'patchelf'. Is 'patchelf' installed? when 're-building' the pyinstaller executable with staticx

    Cause: staticx doesn't find the patchelf module

    Solution: Run apt install patchelf, which installs patchelf

  • ...dlopen: /lib/x86_64-linux-gnu/libc.so.6: version ``GLIBC_2.x' not found... when try to run

    Cause: This means that the file was compiled with a newer glibc version, than the one on your system. Usually happens if you compile the file on your computer and try to execute it on another one with an older glibc version.

    Solution: If you compiled the file yourself, re-compile it and after that follow the instructions here. If you downloaded the file from here, download it again (latest version) and if the is still there when running the new file, open a new issue

  • [12345] Cannot open self /tmp/staticx-*/main or archive /tmp/staticx-*/main.pkg when try to run

    Cause: When a pyinstaller executable was 're-built' with staticx. Usually happens if pyinstaller creates a executable, which can't be 're-build' correctly with staticx

    Solution: If you compiled the file yourself, use pyinstaller version 4.0, instead of the newest version an then compile it again If you downloaded the file from here, download it again (latest version) and if the is still there when running the new file, open a new issue

Installation🎰

Linux

  1. Install the required apt packages. Note: The python3 version must be 3.6 or higher!

    apt install git
    apt install python3
    apt install python3-pip
    apt install python3-pyqt5
    apt install python3-pyqt5.qtsql
    
  2. Then clone the repository and install its requirements

    git clone https://github.com/ByteDream/athnos.git
    cd athnos/
    pip3 install -r requirements.txt
    

Windows

  1. Download the latest python version from here (at least version 3.6 or higher) and install it.

  2. Download the repository and unzip it (e.g. with 7zip).

  3. Open the unzipped folder in the cmd.

  4. Install PyQt5 and the requirements

    pip install pyqt5
    pip install -r requirements.txt
    

Run🚀

After the setup is done, you can run athnos via

  • python3 main.py on Linux
  • python main.py on Windows (or just double click main.py)

Compile🔨

If you want to compile independent executables, the installation has to be done first.

Linux

  1. Go into the athnos folder and execute the following commands

    pip3 install pyinstaller
    pyinstaller --noconsole --onefile main.py
    

    The path of the generated executable is dist/main.

    Note that if you share the file with other systems, the other systems glibc version must be equal or higher than the one on your system, because some python libraries packed in the main file rely on them. If you want to make the file 'real' independent, see the next paragraph

Create real independent file

If you want to share the executable file with another systems which has a lower glibc version (can be obtained if you run the ldd --version command), you need to 'rebuild' the generated main file. The following method currently only works on 64-bit machines / with 64-bit executables and has some disadvantages: It takes longer to startup and causes higher cpu load on startup. An alternate method is, to re-run the steps above on the oldest system you can find / with the oldest glibc version. To build the real independent file, you have to execute the following commands

apt install patchelf
pip3 install staticx
staticx dist/main dist/static_main

The now generated dist/static_main file is the independent file.

Windows

  1. Open the cmd in the athnos folder and execute the following commands

    pip install pyinstaller
    pyinstaller --noconsole --onefile main.py
    
  2. The generated executable main.exe is in the new created dist folder

Note: If a new major python3 version has been released lately, and you've installed this version, PyInstaller may not work. See here for all supported python3 version of PyInstaller

If there is any issue while compiling or when you try to launch the compiled file, look at the known issues. When your issue isn't listed there or the given solution not works, feel free to open a new issue

Successfully compiled (staticx and non-staticx executables) on

  • Pop!_OS 20.10 with python3.8.6, pyqt 5.15.0, pyinstaller 4.0, staticx 0.12.0, glibc 2.32
  • Ubuntu 20.04 with python3.8.5, pyqt 5.14.1, pyinstaller 4.0, staticx 0.12.0, glibc 2.31
  • Manjaro 20.2 with python3.8.6, pyqt 5.15.2, pyinstaller 4.0, staticx 0.12.0, glibc 2.32

Additional components

Todo

  • Tags for the source
  • Colored tags
  • Clip column hide
  • Database driver download options
  • Server software
  • Custom style
  • Optional plugins (e.g. direct download a youtube video by its link)

Licence

This project is licensed under the GNU General Public License v3.0 (GPL-3.0) - see the LICENSE file for more details