Skip to content

DiscoDOS v3.0

Compare
Choose a tag to compare
@github-actions github-actions released this 31 Dec 11:10
· 0 commits to 24dd644f98caa60ce6f94d609d46bd8e9123b902 since this release

Overview

DiscoDOS 3.0 is huge! The plan was to support "selling records" on the Discogs Marketplace. A lot of fixing seemed to be essential to achieve that goal nicely, refactoring madness started, some unplanned features where suddenly more easily possible, the developer couldn't resist and in the end....all went overboard and dozens of features "just happened" along the road.

Some highlights:

  • dsc ls - a TUI app to manage Discogs Marketplace listings using the beautiful Textual framework.
  • A bunch of new dsc subcommands and loads of usability improvements and reworks of existing commands.
  • Progress bars for longer running process using Rich Progress.
  • Generally making more use of the wonderful Rich library which goal is to make CLI applications more coloful, better usable and visually appealing in general.

New Features and Improvements

  • Importing is now divided into several subcommands and new things can be imported:
    • dsc import release for single releases (fixed and performance improved).
    • dsc import basic for a minimal full-collection import (more data is imported, a new 'collection' table saves each collection item instance, notes, collection folder).
    • dsc import sales for the Marketplace inventory (new).
    • dsc import listing for single Marketplace listings (new).
  • Cleanup commands group:
    • dsc clean sales
    • dsc clean collection
  • Incorporated Rich indicators for each and every (potentially long running) import and clean operation
  • All print statements in DiscoDOS use Rich print which gives a basic set of colors certain CLI elements (numbers, strings, json) but also "enables" futher use of Rich console markup.
  • dsc sell - a "wizard type" CLI command guiding through the process of listing a record for sale.
  • dsc stats - More statistics.
  • dsc links - From the ashes of "dsc search all", a key/value search based report view - get every hyperlink DiscoDOS can generate in one view.
  • dsc ls - a Textual App for displaying collection and sales data. Its main purpose is "managing Marketplace listings":
    • Key/value search for what you want to see/edit, for example: dsc ls artist=squarepusher status=forsale
    • A table view displaying search results
    • A three column subpanel viewing details about: 1. sales listing, 2. Your price and marketplace stats, 3. A list of YouTube videos
    • Supersimple "one-key-commands" v - fetch video links, l - fetch sales listing, return - fetch marketplace stats and suggested prices
    • A "non-tui" version of dsc ls is available too (-x/--no-tui or config option - see below).

New config options

  • enable_tui - toggle Textual-based UI for the dsc ls command.
  • discogs_sold_folder_id - collection items in this Discogs collection folder are marked "sold" during import basic automatically.

Documentation

Fixes and improvements under the hood

  • Restructured almost everything. Introduced Python subpackages ctrl, model, view and separated a lot of 1000+ lines long files to smaller module files.
  • Online operations moved to a separate mix-in class DiscogsMixin
  • Use TableDefaults descriptor class more often - column/field/shortcut/naming-magic
  • Almost everything touched, now black-formatted.
  • f-strings instead of .format()
  • Wherever possible refactored to "early returns", modularization, pythonic variable/class naming, comprehensions to improve code quality
  • Logging now uses %s-formatting and loads of INFO level clutter was changed to DEBUG or removed.
  • Refactored fundamental database functions, supporting new useful flags like as_dict, join, union
  • Streamlined "getters" and Discogs "fetchers" naming
  • There is still a lot of room for improvement, but it's definitely a start!

Known issues

  • Collection folders not yet displayed with names, just ID's in dsc ls TUI.