Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 25 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
name: Build

on:
push:
branches:
- master
pull_request:

jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Check out repository
uses: actions/checkout@v7.0.0

- name: Set up Python
uses: actions/setup-python@v6.3.0
with:
python-version: "3.10"

- name: Set up uv
uses: astral-sh/setup-uv@v8.3.2

- name: Build project
run: uv build
1 change: 0 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
*.pyc
*~
*.lock
*.DS_store
*.swp
*.out
Expand Down
1 change: 1 addition & 0 deletions .python-version
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
3.10
59 changes: 27 additions & 32 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -49,25 +49,26 @@ Dependencies

The only required dependencies to run Trackma are:

- Python 3.9+
- For installation: `python3-pip` (to install through `pip`) *or* `python3-poetry` (to install through `poetry`)
- Python 3.10+
- For installation: `python3-pip` (to install through `pip`) *or* `uv`

But only basic features will work (only CLI interface and no tracker). Everything else is optional.

The following user interfaces are available and their requirements are as follows:
The following user interfaces are available
and their requirements (on a Debian-based system) are as follows:

| UI | Dependencies |
| --- | --- |
| Qt | PyQt6 (`python-pyqt6`) |
| GTK 3 | PyGI (`python3-gi` and `python3-cairo`) |
| Qt | PyQt6 (`python3-pyqt6`) |
| GTK 3 | PyGObject (`python3-gi` and `python3-cairo`) |
| curses | Urwid (`python3-urwid`) |
| CLI | None |

The following media recognition trackers are available and their requirements are as follows:

| Tracker | Description | Dependencies |
| --- | --- | --- |
| inotify | Instant, but only supported in Linux. Uses it whenever possible. | `inotify` *or* `pyinotify` |
| inotify | Instant, but only supported in Linux. Uses it whenever possible. | `python3-inotify` *or* `python3-pyinotify` |
| Polling | Slow, but supported in every POSIX platform. Fallback. | `lsof` |
| Plex | Connects to Plex server. Enabled manually. | None |
| Kodi | Connects to Kodi server. Enabled manually. | None |
Expand All @@ -78,9 +79,9 @@ The following media recognition trackers are available and their requirements ar
Additional optional Python dependencies:

- PIL (`python3-pil`) - for showing preview images in the Qt/GTK interfaces.
- pypresence (???) - for announcing activity on Discord.
- pypresence (-) - for announcing activity on Discord.
- twitter (`python3-twitter`) - for announcing activity on Twitter.
- anitopy (-) - for the anitopy title parser
- anitopy (-) - for the anitopy title parser.

Installation
------------
Expand All @@ -90,21 +91,17 @@ Trackma has user-provided packages for several distributions.
- **Arch Linux:** <https://aur.archlinux.org/packages/trackma>, <http://aur.archlinux.org/packages/trackma-git>
- **Fedora:** <https://copr.fedoraproject.org/coprs/dyskette/trackma/>
- **Gentoo Linux:** <http://gpo.zugaina.org/net-misc/trackma>
- **NixOS:** <https://github.com/NixOS/nixpkgs/blob/master/pkgs/tools/misc/trackma/default.nix>
- **NixOS:** <https://github.com/NixOS/nixpkgs/blob/master/pkgs/by-name/tr/trackma/package.nix>
- **Void Linux:** <https://github.com/void-linux/void-packages/blob/master/srcpkgs/trackma/template>

A user from the community also is providing a Docker image:

- **Docker:** <https://hub.docker.com/r/frosty5689/trackma/>

### Manual installation

Make sure you've installed the proper dependencies (listed above)
according to the user interface you plan to use, and then run the
following command:

```sh
$ pip3 install Trackma
$ pip3 install trackma
```

You can also install the git (probably unstable, but newer) version like this:
Expand All @@ -118,8 +115,8 @@ Or download the source code and install:
```sh
$ git clone --recursive https://github.com/z411/trackma.git
$ cd trackma
$ poetry build
$ pip3 install dist/trackma-0.8.5-py3-none-any.whl
$ uv build
$ pip3 install dist/trackma-*-py3-none-any.whl
```

### Extras (User Interfaces)
Expand Down Expand Up @@ -161,24 +158,23 @@ $ trackma-gtk
$ trackma-qt
```

#### poetry
#### uv

When using poetry on the cloned repository (see above),
you can install your desired extras as follows:
When using `uv` on the cloned repository, you can install your desired extras as follows:

```sh
$ poetry install -E gtk -E trackers -E curses
$ poetry install -E ui -E twitter -E discord_rpc
$ poetry install --all-extras
$ uv sync --extra gtk --extra trackers --extra curses
$ uv sync --extra ui --extra twitter --extra discord_rpc
$ uv sync --all-extras
```

Then you can run the interface you like in your virtual environment managed by poetry:
Then you can run the interface you like in your virtual environment with `uv run`:

```sh
$ poetry run trackma
$ poetry run trackma-curses
$ poetry run trackma-gtk
$ poetry run trackma-qt
$ uv run trackma
$ uv run trackma-curses
$ uv run trackma-gtk
$ uv run trackma-qt
```

Configuration
Expand All @@ -196,17 +192,16 @@ Development

The code is hosted as a git repository on [GitHub](https://github.com/z411/trackma).

Clone the repo and create the virtual environment using `poetry`:
Clone the repo and create the virtual environment using `uv`:

```sh
$ git clone --recursive https://github.com/z411/trackma.git
$ cd trackma
$ poetry install --all-extras
$ poetry shell
$ uv sync --all-extras
```

Use the above commands from the [poetry](#poetry) section
for how to run your desired interface.
Use `uv run` with the commands from the [uv](#uv) section
to run your desired interface.

If you encounter any problems or have anything to suggest, please don't
hesitate to submit an issue in the GitHub [issue tracker](https://github.com/z411/trackma/issues).
Expand Down
Loading