Open multi-site list manager for Unix-like systems. (ex-wMAL)

Overview

Trackma

Trackma aims to be a lightweight and simple but feature-rich program for Unix based systems for fetching, updating and using data from personal lists hosted in several media tracking websites.

Features

  • Manage local list and synchronize when necessary, useful when offline
  • Manage multiple accounts on different media tracking sites
  • Support for several mediatypes (as supported by the site)
  • Multiple user interfaces (Qt, GTK, curses, command-line)
  • Detection of running media player, updates list if necessary
  • Ability to launch media player for a requested media in the list and update list if necessary
  • Highly scalable, easy to code new interfaces and support for other sites
  • Secure, uses HTTPS wherever possible.

Currently supported websites

Screenshots

Qt interface

Qt

GTK interface

GTK

Curses interface

Curses

CLI

CLI

Dependencies

The only required dependency to run Trackma is:

  • Python 3.4/3.5
  • python3-pip (to install through pip) or python3-setuptools (to install through setup.py)

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:

UI Dependencies
Qt PyQt5 (python-pyqt5) or PyQt4 (python-qt4)
GTK 3 PyGI (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
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
Jellyfin Connects to Jellyfin server. Enabled manually. None
MPRIS Connects to running MPRIS capable media players. dbus-python
Win32 Recognition for Windows platforms. None

Additional optional dependencies:

  • PIL (python3-pil) - for showing preview images in the Qt/GTK interfaces.

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:

# pip3 install Trackma

Or download the source code and install:

# git clone --recursive https://github.com/z411/trackma.git
# cd trackma
# sudo python3 setup.py install

Then you can run the program with the interface you like.

$ trackma
$ trackma-curses
$ trackma-gtk
$ trackma-qt

Trackma also has user-provided packages for several distributions.

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

Configuration

A configuration file will be created in ~/.config/trackma/config.json, make sure to fill in the directory where you store your video files and other settings. Details about what each option does can be done here:

https://github.com/z411/trackma/wiki/Configuration-File

Alternatively, the GTK and Qt interfaces provide a visual Settings panel.

Development

The code is hosted as a git repository in github:

http://github.com/z411/trackma

If you plan to make changes to the code, I suggest using the following method to install Trackma instead of the normal way, so the changes you make get reflected immediately:

# python3 setup.py develop

If you encounter any problems or have anything to suggest, please don't hesitate to submit an issue in the github issue tracker:

http://github.com/z411/trackma/issues

License

Trackma is licensed under the GPLv3 license, please see LICENSE for details.

Authors

Trackma was originally written by z411 [email protected]. For other contributors see AUTHORS file. GTK icon designed by shuuichi.

Issues
  • Python3

    Python3

    I am porting Trackma to Python 3 (#120) and I came to point where I need guidance before I continue.

    What seems to work so far and passed superficial tests:

    • MAL
    • Curses
    • CLI
    • QT

    What hasn't been tested:

    • Anything but MAL

    Plus there's a controversy around GTK, which is the reason why I'm presenting this in early and unfinished form.

    Seemingly to use GTK in Py3 one needs to use PyGI, as PyGTK for Python 3 never happened. However, there are some rough edges around GTK2 support in PyGI:

    • Stocks seem to be unimplemented?
    • Gtk.Menu has no .popup method (but it has it in GTK3)
    • Gdk has no SELECTION_CLIPBOARD which makes us need to pass magic constants to Gtk.Clipboard.get()
    • Pretty sure more would show up if I persisted

    Those are pretty serious flaws. Now I'm not sure if we want to cater for GTK2 and start doing weird hacks, or just go along with GTK3.

    opened by rr- 38
  • Play and episode recognition?

    Play and episode recognition?

    Although the program is quite intuitive I feel like I've missed something important as I tried to use the "play" button beside the episode count in gtk gui and received a "Episode file not found." message. Is there a config I'm supposed to edit the location of my anime in, or set a media player? http://z411.github.com/wmal-python/ also talks about "Detection of running media player, updates list if necessary" but the program didn't react when I played the latest episode of Mangirl in mplayer.

    bug feature request ui:gtk 
    opened by IDex 38
  • AniList API v1 shutdown - Migration to v2

    AniList API v1 shutdown - Migration to v2

    AniList API v1 was given 6 months before it was meant to be shut down after API v2 went stable. I made a few announcements about this and sent out emails to developers who had registered API v1 clients.

    It looks like trackma is still using API v1, which was meant to be shut down on May 1st, due to some issues on AniList's part, API v1 is still running, though will likely only up for another 2 weeks or so, as the majority of applications have already migrated to v2.

    Super sorry if you didn't hear about all this, as this would be super short notice.

    Api v2 docs can be found here, if you check the migration folder theres a number of queries that aim to replicate v1's rest call data set, so hopefully they help with the possible migration.

    api:anilist 
    opened by joshstar 35
  • Timer still counts down even if paused + MPRIS

    Timer still counts down even if paused + MPRIS

    I started an episode earlier but two minutes in I had to go brb so I paused and didn't resume watching for several hours, yet it proceeded to update the episode as watched even though it had recognized (using tracker command) that it was paused.

    feature request tracker:mpris 
    opened by Soitora 30
  • Regex improvements

    Regex improvements

    (This is not meant as a request, more like a discussion about a possible improvement)

    The current regex search (engine._search_video and utils.regex_find_file) is quite limited. Recent improvements work around adjusting the regex for special cases, though this might be a never ending story.

    Additionally, this (the searchfile.replace stuff) only works in "one direction", i.e. when there are superfluous characters within the MAL episode name. Dealing with such things on the other side (the file names on your local disk) would require a transformation of each file name which might increase the search time.

    Another issue is the requirement of a perfect match (well, basically), where a greedy/partial approach might be better. But then you run into the issue: which partial match is the best one?

    Examples:

    | MAL name | File name | Issue | | --- | --- | --- | | M3: Sono Kuroki Hagane | M3 - Sono Kuroki Hagane | You can deal with the : but not with the additional - without transforming every file name | | Mangaka-san to Assistant-san to The Animation | Mangaka-san to Assistant-san to | A greedy/partial match would work | | Ryuugajou Nanana no Maizoukin (TV) | Ryuugajou Nanana no Maizoukin | Same as above |

    (I omitted file name suffixes)

    Which way to go? Further improving the regex and maybe applying some transformations for every file name found or < insert something better/new here >?

    engine feature request 
    opened by Argon- 28
  • Tracker doesn't update progress

    Tracker doesn't update progress

    Since the latest release (0.7), the tracker won't automatically update progress. This is especially strange since it worked fine in 0.6.2 and even shows a notification, "now playing episode 9, will update in 120 seconds", but then doesn't actually update it.

    bug 
    opened by clavinet 27
  • Hummingbird is now Kitsu

    Hummingbird is now Kitsu

    Kitsu

    It also brings along a new API following the JSON API spec with full manga support.

    I haven't yet find the API documentation, but Taiga seems to have begin the change: https://github.com/erengy/taiga/issues/341

    api 
    opened by Kcchouette 23
  • [Feature request] Anime relations

    [Feature request] Anime relations

    Sorry for the mess of a title

    Here's the issue:

    • Aikatsu Friends! finished at 50 episodes
    • Second season has a new name: Aikatsu Friends!: Kagayaki no Jewel
    • However, the show releases simply continues it as Aikatsu Friends! ep 51 ...
    • Tracker cannot find and play the episodes

    Taiga was able to handle this no problems, no clue how they handled it however. This is annoying because that means that the tracker cannot find the episode, thus cannot play it and has to be done manually, also to then have to update it manually, that or rewrite the episode's name every time which makes it super inconvenient

    Plus, this is far from the rare releases that does this. Lots of sequels, and especially from HorribleSubs IIRC, does this

    Meanwhile, any already existing features exists where I could get around this?

    Thanks!

    Edit: Otherwise good work, been using Trackma ever since I switched from Windows to Linux and haven't had any other issues. Thank you

    recognition 
    opened by coolboymew2 20
  • Tracma-gtk not opening

    Tracma-gtk not opening

    I have set up some settings for trackma-gtk and once I closed it I couldnt open it again. I get this: Engine: Can't auto-scan library: Operation not supported by current site or mediatype. /home/szarcsak/.local/lib/python3.5/site-packages/trackma/ui/gtkui.py:82: Warning: value "1427" of type 'gint' is invalid or out of range for property 'subvalue' of type 'gint' Gtk.main() /home/szarcsak/.local/lib/python3.5/site-packages/trackma/ui/gtkui.py:82: Warning: value "1014" of type 'gint' is invalid or out of range for property 'subvalue' of type 'gint' Gtk.main() Can somebody tell me how to fix this, I now know that some functions are net ready yet, so if I could just somehow restore the default setting, that will do!

    bug 
    opened by Szarcsak 17
  • Non-Linux systems?

    Non-Linux systems?

    There's no procfs on OSX and afaik not on Windows either. procfs is not even available on every UNIX system, deprecated on e.g. FreeBSD. What are they supposed to do?

    opened by Argon- 17
  • [UI/GTK] Fix warnings in ProgressCellRenderer

    [UI/GTK] Fix warnings in ProgressCellRenderer

    - Increase props max value in ProgressCellRenderer

    • Make buttons insensetive while initializing engine
    opened by ahmubashshir 0
  • [api/kitsu] Handle manga metadatas properly

    [api/kitsu] Handle manga metadatas properly

    • Use proper filter for manga.
    • Handle anime/manga specific metadata.
    opened by ahmubashshir 0
  • [Engine] Implement hook destroy method

    [Engine] Implement hook destroy method

    This PR introduces an optional destroy function in hook that will clean up the hook when engine unloads.

    Closes #567

    opened by ahmubashshir 0
  • Enhancement: teardown function for hooks

    Enhancement: teardown function for hooks

    It'd be great to have a teardown/shutdown/destroy function for hooks like pypresence/notifications.

    opened by ahmubashshir 0
  • Jellyfin is not running

    Jellyfin is not running

    Trying to setup trackma to fetch from a remote jellyfin server and the app simply gives me a "Tracker (Jellyfin): Jellyfin is not running."

    all i noticed in the config is that i have this.

    "jellyfin_api_key": "", "jellyfin_apikey": "api_key", "jellyfin_host": "https://remoteserver/jellyfin", "jellyfin_port": "443", "jellyfin_user": "user",

    opened by NovaMoon 0
  • [Twitter API] Invalid consumer key/secret

    [Twitter API] Invalid consumer key/secret

    Twitter deleted trackma api creds.

    ps: I'm using creds from taiga for now :P

    opened by ahmubashshir 0
  • Invalid Score

    Invalid Score

    OS: Manjaro Linux xfce

    For anilist, it says Invalid Score when I try to update the score. Works rarely.

    image.png

    opened by cyclonejet 0
  • season folder problem

    season folder problem

    No one make different folder for different seasons of anime most of the time we make one anime folder and under it different season folder but trackma is unable to recognise it.

    opened by prinixos 0
  • Error download list

    Error download list

    Version: v0.8.4 Python: 3.9 Traker: MyAnimeList (anime) OS: Arch Linux

    Trackma v0.8.4  Copyright (C) 2012-2020  z411
    This program comes with ABSOLUTELY NO WARRANTY; for details type `about'
    This is free software, and you are welcome to redistribute it
    under certain conditions; see the COPYING file for details.
    
    Initializing engine...
    Engine: Trackma v0.8.4 - using account clebermatheus(mal).
    Engine: Reading config files...
    Data: Initializing...
    libmal: Initializing...
    Data: Using libmal (anime)
    libmal: Downloading list (page 1)...
    Traceback (most recent call last):
      File "/usr/bin/trackma", line 33, in <module>
        sys.exit(load_entry_point('Trackma==0.8.4', 'console_scripts', 'trackma')())
      File "/usr/lib/python3.9/site-packages/trackma/ui/cli.py", line 1069, in main
        main_cmd.start()
      File "/usr/lib/python3.9/site-packages/trackma/ui/cli.py", line 180, in start
        self.engine.start()
      File "/usr/lib/python3.9/site-packages/trackma/engine.py", line 248, in start
        (self.api_info, self.mediainfo) = self.data_handler.start()
      File "/usr/lib/python3.9/site-packages/trackma/data.py", line 179, in start
        self.download_data()
      File "/usr/lib/python3.9/site-packages/trackma/data.py", line 552, in download_data
        self.showlist = self.api.fetch_list()
      File "/usr/lib/python3.9/site-packages/trackma/lib/libmal.py", line 266, in fetch_list
        'image': item['node']['main_picture']['large'],
    KeyError: 'main_picture'
    
    opened by clebermatheus 0
  • Cannot find anime based on clear title

    Cannot find anime based on clear title

    I have been trying to get Trackma to recognize the show titles, but so far had no success.

    I would think this is clear considering the first thing is the show name but maybe im wrong.

    Death Note - 01x01 - Rebirth.mkv

    Do i need to change my shows naming scheme? Also im using the plex tracker and Mal if that helps.

    opened by Wraithstalker90 6
Releases(v0.8.4)
  • v0.8.4(Nov 12, 2020)

  • v0.8.3(Nov 12, 2020)

    v0.8.3

    • New: Support for MyAnimeList's new API
    • New: Implemented Kodi tracker
    • New: Implemented Jellyfin tracker
    • Enhancement: anime-relations redirection file now gets synced periodically
    • Enhancement: (GTK) Several visual enhancements
    • Enhancement: (Qt) Several visual and behavior fixes
    • Enhancement: (Tracker) Added config to enable/disable the ignoring of episodes (tracker_ignore_not_next)
    • Enhancement: Added Open Folder support for macOS and Windows
    • Bugfix: (Shikimori) Implemented new OAuth authentication method
    • Bugfix: (Curses) Avoid crashing UI when given bad regular expression
    • Bugfix: (Anilist) Avoid crash when an entry's format or status is unknown
    • Bugfix: (Twitter hook) Bugfixes and implementing new API
    • Bugfix: (inotify Tracker) Handling crash when a process isn't found on scan
    • Bugfix: (Kitsu) Fixed score decimals
    • Bugfix: (MPRIS) Fixed issue when metadata changed but status wasn't reported
    • Bugfix: Several minor fixes and cleanups
    Source code(tar.gz)
    Source code(zip)
  • v0.8.2(May 14, 2019)

    • New: Implemented MPRIS tracker
    • New: Implemented support for Taiga-style anime-relations.txt file for proper detection of multiple seasons
    • Enhancement: Library now can scan statuses other than Watching
    • Enhancement: Now user set Alternate Titles take absolute priority over other titles
    • Enhancement: (Anilist) Support for Rewatching status
    • Enhancement: (Tracker) Implemented support for timer pausing for trackers that support it
    • Enhancement: (inotify Tracker) Tracker now detects if a player is already open when starting
    • Enhancement: (Plex tracker) Support for claimed servers
    • Enhancement: (Polling tracker) Disabled warnings
    • Enhancement: (GTK) Interface refactored and redone to utilize new GTK 3 features (WIP)
    • Enhancement: (Qt) Added options for Quick and Full library scan
    • Enhancement: (Qt) Only relevant buttons get disabled when the engine is busy
    • Bugfix: Fixed bug with search directories not getting home-expanded (~)
    • Bugfix: (Anilist) Show synonyms are now fetched (and used by the tracker) properly
    • Bugfix: (Anilist) Parsing unknown show formats and statuses
    • Bugfix: (CLI) Fixed crashes with some invalid commands
    • Bugfix: (Qt) Fixed Set Score button
    • Bugfix: (Qt) Fixed the saving of columns visibility and size
    • Bugfix: (Qt) Fixed aesthetic issues
    • Bugfix: (Qt/VNDB) Fixed Unknown status not working

    NOTE TO GIT USERS AND MAINTAINERS: Cloning Trackma now requires the --recursive flag.

    Source code(tar.gz)
    Source code(zip)
  • v0.8.1(Apr 14, 2019)

    • New: (Qt) In-line score and episode editing (Can be disabled)
    • Enhancement: (Qt) Using proper MVC, helps performance and usability of lists and filters.
    • Enhancement: (Qt) A few shortcuts (Middle-click on list to play next episode, Del key as shortcut for delete show, Double click on card view to view details)
    • Enhancement: (Anilist) Retrieving and showing studio information
    • Enhancement: (curses) Quit key now gets you out of detail view instead of closing the application
    • Bugfix: (Anilist/Qt/GTK) Fixed crash when adding a show with undefined total episodes
    • Bugfix: (VNDB) Votes without a corresponding status get added to the Unknown list
    • Bugfix: (Qt) Fixed a few crashes when adding new shows
    Source code(tar.gz)
    Source code(zip)
  • v0.8(Apr 8, 2019)

    • New: (Qt) Card view in search dialog
    • New: (Qt, Anilist) Search by season
    • New: (Anilist) Support for different score formats
    • New: Support for multiple media directories
    • New: (CLI) Non-interactive mode allowing to run single commands by command line or stdin
    • Improvement: Using XDG directory names
    • Improvement: (curses) vi-like keybindings
    • Improvement: monthly.moe hook updated for Anilist support
    • Improvement: Support for forcing the use of a specified tracker_type
    • Bugfix: (Anilist) Added Rewatching status
    • Bugfix: (Anilist) Fixed crash in Python 2.5
    • Bugfix: (Anilist) Fixed Completed list not loading when they are sent split by the server
    • Bugfix: (Qt) Fixed aesthetic bugs in add show dialog
    • Bugfix: (Qt) Fixed crash when using automatic add prompt
    • Bugfix: (Qt/GTK) Fixed crash when there's an alpha channel in thumbnails
    • Bugfix: (GTK) Fixed crash when PIL is unavailable
    • Bugfix: (Kitsu) Fixed start/end dates not being sent
    • Bugfix: Fixed tracking not getting cleaned up after account/mediatype change
    Source code(tar.gz)
    Source code(zip)
  • v0.7.6(Aug 22, 2018)

    Hotfix release

    • Bugfix: (Anilist+Qt/GTK) Fixed crash when the token was old
    • Bugfix: (Qt) Undefined dates now sort properly
    • Bugfix: (GTK) List information now shows properly in details dialog
    Source code(tar.gz)
    Source code(zip)
  • v0.7.5(Aug 21, 2018)

    • New: Switched to Anilist V2 API. You will need to re-authorize your account by editing it or re-creating it.
    • Improvement: Optional whole list scanning (Settings -> Scan through whole list)
    • Improvement: Added Open containing folder functionality
    • Improvement: Added optional full path scanning (ie. directory names are show names)
    • Improvement: (Qt) Interface now shows episode numbers on progress bar
    • Improvement: (Qt) Sorting is now remembered
    • Improvement: (curses/CLI) Default account is forgotten whenever a fatal crash occurs
    • Bugfix: Fixed crash when show had no image with Kitsu
    • Bugfix: (Tracker) Fixed crash with unrecognised shows
    • Bugfix: (Tracker) Fixed Plex crashes
    • Bugfix: (Qt) Fixed Add Dialog results sorting in
    • Bugfix: (GTK) Fixed crashes when syncing
    Source code(tar.gz)
    Source code(zip)
  • v0.7.4(Jul 2, 2017)

    • Improvement: (Flex) Added optional login functionality
    • Improvement: (curses) Added Play Random function
    • Improvement: (GTK) Added -d debug command line flag
    • Improvement: (GTK) Showing checkboxes in episode number list (Play episode)
    • Bugfix: (Qt) Fixed issue when closing with KDE 5/Qt 5
    • Bugfix: (Kitsu) Fixed issue where using e-mail instead of username wouldn't work
    • Bugfix: Fixed issue where Playing flag wasn't being cleared if show got ignored
    Source code(tar.gz)
    Source code(zip)
  • v0.7.3(Mar 27, 2017)

    • Improvement: (Qt/GTK) Resizing image to a reasonable size in show details dialog
    • Improvement: (Flex) Fixed Plex tracker to work with new Plex release (1.4.4.3495)
    • Bugfix: (PyPI) Adding missing suffix for Qt4 script
    • Bugfix: (Anilist) Fixed search issue that caused a 400 error
    Source code(tar.gz)
    Source code(zip)
  • v0.7.2(Mar 10, 2017)

    Bugfix release

    • Bugfix: (Tracker) Fixing issue when subsequent episode weren't being updated if there was an episode open before (ie. playlists)
    • Bugfix: (inotify) Fixing issue with inotify ignoring open events if an open one didn't close
    • Bugfix: (Qt) Fixing crash when attempting to create account select dialog
    Source code(tar.gz)
    Source code(zip)
  • v0.7.1(Feb 27, 2017)

    • New: (Plex tracker) Adding option to use regular custom interval instead of Plex timer
    • Improvement: Showing ? instead of 0 when total number of episodes isn't known
    • Improvement: (Kitsu) Retrieving start and end dates for shows, guessing airing status from that
    • Bugfix: (Tracker) inotify trackers were picking up file close events from unrelated programs in the system due to a mistake in procfs logic.
    • Bugfix: (Tracker) Stop attempts at updating invalid episode numbers (ie. less than 0 or more than the maximum)
    • Bugfix: (Qt) Fixed crash when trying to apply settings
    • Bugfix: (Qt) Fixed crash with Discard Queue dialog
    • Bugfix: (Qt) Fixed crash when opening the Switch Account dialog manually
    • Bugfix: (Qt) Fixing strange behavior when the total number of episodes isn't known
    • Bugfix: Fixed crash when the tracker can't update the episode
    Source code(tar.gz)
    Source code(zip)
  • v0.7(Jan 18, 2017)

    • New: Added Kitsu.io support (libkitsu, experimental!)
    • New: (Tracker) Prompt to add a show if it's not in the list
    • Improvement: (Tracker) Tracker status is now shown in a separate line in the status bar
    • Improvement: (Tracker) lsof dependency is now necessary only for the polling tracker (uses procfs for inotify)
    • Improvement: Autosend interval is now expressed in minutes rather than hours
    • Improvement: (CLI) Showing tracker status messages properly now
    • Improvement: (curses) Improved default keybinds
    • Improvement: (curses) Title bar now shows total shows in list
    • Removed: Hummingbird support (switch to Kitsu)
    • Removed: Melative support
    • Bugfix: (Tracker) Polling tracker only polls the search directory
    • Bugfix: (Tracker) Fixing "closed before update" message
    • Bugfix: (Qt) Fixed crash in some cases where thumbnail could not be downloaded
    • Bugfix: (Qt) Fixed not being able to edit tags on just added items
    • Bugfix: (curses) Fixed bug when trying to do operations on an empty list
    • Bugfix: (GTK) Fixed crash when tracker attempted to change the show status
    • Bugfix: Other minor bugfixes, cosmetic changes and code refactoring
    Source code(tar.gz)
    Source code(zip)
  • v0.6.2(Nov 1, 2016)

    • New: Play Next now uses the library instead of rescanning the directory every time
    • New: Library auto-rescanning at start
    • New: (CLI) command line options
    • New: (CLI) new altname command
    • New: (GTK) Open containing folder functionality
    • Improvement: Support for multiple hooks (~/.trackma/hooks/*.py). Please move your hook.py file into the hooks directory; you can now separate them into several files. See git's hooks directory for the modified hook files that reflect this change.
    • Improvement: Tracker now can auto add or removes files from library
    • Improvement: Now Trackma uses HTTPS wherever possible.
    • Bugfix: Using HTTPS with MAL; fixes 403 error.
    • Bugfix: Fixed gi package requirement.
    • Bugfix: Fixed search function in Anilist
    Source code(tar.gz)
    Source code(zip)
  • v0.6.1(Aug 6, 2016)

    • New: (curses) Configurable colors, multiple keybinds, hide help bar
    • Improvement: (CLI) search now works in any position of the title
    • Improvement: (CLI) search now shows correct index
    • Bugfix: (CLI) Fixed problem where commands weren't working properly
    • Bugfix: (curses) Help dialog now shows keybinds correctly
    Source code(tar.gz)
    Source code(zip)
  • v0.6(Aug 6, 2016)

  • v0.5(Jul 24, 2016)

    • New: Shikimori support
    • New: Qt5 support
    • New: User hooks (~/.trackma/hook.py)
    • Improvement: (Qt) Configurable list colors
    • Improvement: (Qt) Interface improvements
    • Improvement: (curses) Implemented sort reversal
    • Improvement: (CLI) Prompt and help overhaul
    • Bugfix: (Qt/GTK) Progress bar works for shows with no total episodes (assumes 1 cour = 26 eps)
    • Bugfix: (GTK) Fixed sensitivity of several menu items
    Source code(tar.gz)
    Source code(zip)
  • v0.4(Sep 12, 2015)

    • New: Anilist support
    • New: Plex tracker support
    • New: Implemented inotify-based tracker for instant recognition (Linux only)
    • New: Added OAuth authentication support in the engine
    • New: Added local library functionality
    • New: Added option to wait for the player to close and ask before updating
    • Improvement: (Qt/GTK) New more detailed progress bar showing available and aired episodes
    • Improvement: (Qt) Option to remember position, size and state
    • Improvement: (CLI) Added indexes to make specifying a show quicker
    • Improvement: (Qt/GTK) Added shortcuts
    • Bugfix: Fixed ocassional bug where the cache got corrupted
    • Bugfix: (Qt) Fixed problem with non-western characters in the search dialog
    • Bugfix: (MAL) Fixed situations where libmal had problems with non-gzipped responses
    • Bugfix: (MAL) Fixed an error when MAL returned an empty document
    • Bugfix: (MAL) Fixed handling of HTML entities
    • Bugfix: (Hummingbird) Working around issue with empty titles
    Source code(tar.gz)
    Source code(zip)
  • v0.3(Dec 23, 2014)

    • New: Qt interface
    • New: Hummingbird support
    • New: Using new code for media tracker (AIE)
    • New: Show details dialog
    • New: Track icon in Qt and GTK interfaces
    • New: Support for alternative titles for problematic show titles
    • Improvement: Right click context menu for GTK and alternate names
    • Improvement: Few GTK aesthetic changes
    • Improvement: CLI can now point to shows by index rather than title
    • Improvement: Decimal scores
    • Improvement: Various tracker and video search improvements
    • Improvement: Support for player arguments
    • Several minor improvements and bugfixes
    Source code(tar.gz)
    Source code(zip)
  • v0.2(Feb 14, 2014)

    First public release, there are still many things to fix and implement but it seems to be stable and usable enough.

    • New: Implemented account switching and account manager
    • New: Support for viewing show details
    • New: GTK Settings window
    • New: GTK Tray icon
    • New: Aliases and manual alternative titles
    • New: Timed autosend and autoretrieve
    • New: Basic Hummingbird support
    • Improvement: libmal now uses gzipped requests
    • Improvement: Now config files are stored in JSON
    • Improvement: Shows get colored when queued or playing
    • Improvement: Better curses interface memory management
    • Several bugfixes
    Source code(tar.gz)
    Source code(zip)
Open multi-site list manager for Unix-like systems. (ex-wMAL)

Trackma Trackma aims to be a lightweight and simple but feature-rich program for Unix based systems for fetching, updating and using data from persona

z411 523 Jun 4, 2021
🔥 Open source static (serverless) status page. Uses hyperfast Go & Hugo, minimal HTML/CSS/JS, customizable, outstanding browser support (IE8+), preloaded CMS, read-only API, badges & more.

Über fast, backwards compatible (IE8+), tiny, and simple status page built with Hugo. Completely free with Netlify. Comes with Netlify CMS, read-only

cState 1.3k Jun 5, 2021
Read-only mirror of https://gitlab.gnome.org/GNOME/gparted

GPARTED ======= Gparted is the GNOME Partition Editor for creating, reorganizing, and deleting disk partitions. A hard disk is usually subdivided int

GNOME Github Mirror 169 Jun 6, 2021
Online genealogy

webtrees - online collaborative genealogy Contents License Coding styles and standards Introduction System requirements Internet browser compatibility

Greg Roach 550 Jun 7, 2021
retire your mouse.

keynav Control the mouse with the keyboard. Please see http://www.semicomplete.com/projects/keynav Compiling You may need some extra libraries to comp

Jordan Sissel 364 May 22, 2021
Make any web page a desktop application

Nativefier You want to make a native wrapper for WhatsApp Web (or any web page). nativefier 'web.whatsapp.com' You're done. Introduction Nativefier is

null 27.2k Jun 4, 2021
Workrave is a program that assists in the recovery and prevention of Repetitive Strain Injury (RSI). The program frequently alerts you to take micro-pauses, rest breaks and restricts you to your daily limit.

Workrave 1.10 Please visit https://workrave.org for more information. Install Windows: download from https://workrave.org/download Ubuntu: install wit

Rob Caelers 985 Jun 4, 2021
Mycroft Core, the Mycroft Artificial Intelligence platform.

Mycroft Mycroft is a hackable open source voice assistant. Table of Contents Getting Started Running Mycroft Using Mycroft Home Device and Account Man

Mycroft 5.1k Jun 6, 2021
Flash OS images to SD cards & USB drives, safely and easily.

Etcher Flash OS images to SD cards & USB drives, safely and easily. Etcher is a powerful OS image flasher built with web technologies to ensure flashi

balena 20.6k Jun 6, 2021
Popcorn Time is a multi-platform, free software BitTorrent client that includes an integrated media player ( Windows / Mac / Linux ) A Butter-Project Fork

Popcorn Time A multi-platform, free software BitTorrent client that includes an integrated media player. Visit the project's website at popcorntime.ap

Popcorn Software 6k Jun 4, 2021
Display and control your Android device

scrcpy (v1.17) Read in another language This application provides display and control of Android devices connected on USB (or over TCP/IP). It does no

Genymobile 49.4k Jun 4, 2021
Personal CRM. Remember everything about your friends, family and business relationships.

Personal Relationship Manager Monica is a great open source personal relationship management system. Introduction Purpose Features Who is it for? What

Monica 12.9k Jun 6, 2021
Self-hosted VirusTotal / MetaDefender wannabe with API, demo UI and Scanners running in Docker.

MalwareMultiScan Self-hosted VirusTotal / OPSWAT MetaDefender wannabe API for scanning URLs and files by multiple antivirus solutions. IMPORTANT: vers

Volodymyr Smirnov 233 Jun 6, 2021
Mobile Shell

Mosh: the mobile shell Mosh is a remote terminal application that supports intermittent connectivity, allows roaming, and provides speculative local e

Mosh (mobile shell) 10k Jun 4, 2021