update
This commit is contained in:
@@ -1,69 +1,158 @@
|
||||
<div align="center">
|
||||
<h1>MEDEIA-MACINA</h1>
|
||||
<img src="https://code.glowers.club/goyimnose/Medios-Macina/raw/branch/main/docs/img/MM.png"></img>
|
||||
<h3>4 TEXT BASED FILE ONTOLOGY </h3>
|
||||
</div>
|
||||
# MEDEIA-MACINA
|
||||
|
||||
Medios-Macina is a API driven file media manager and virtual toolbox capable of downloading, tagging, archiving, sharing, and connecting you to HydrusNetwork backends. It is designed around a compact, pipeable command language ("cmdlets") so complex workflows can be composed simply and repeatably.
|
||||

|
||||
|
||||
<h3>ELEVATED PITCH</h3>
|
||||
<ul>
|
||||
<li><i>Have you ever wanted one app that can manage all your media files and is completely in your control?</i></li>
|
||||
<li><i>Do you want a no-brainer one-stop shop for finding & downloading applications?</i></li>
|
||||
<li><i>Are you one that has an unorganized & unapologetic mess of files that are loosely organized in random folders?</i></li>
|
||||
<li><i>Does it take you several brainfarts until you get a scent of where that file is at that your looking for?</i></li>
|
||||
<li><i>Do you have trouble struggling with filenames so that you can find the file you want later?</i></li>
|
||||
</ul>
|
||||
<li><i>Would you like to have your media library available with you even when you are away from home?</i></li>
|
||||
</ul>
|
||||
<hr>
|
||||
<h2>CONTENTS</H2>
|
||||
<a href="#features">FEATURES</a><br>
|
||||
<a href="#installation">INSTALLATION</a><br>
|
||||
<a href="docs/tag_template_syntax.md">TAG TEMPLATE SYNTAX</a><br>
|
||||
<a href="https://code.glowers.club/goyimnose/Medios-Macina/wiki/Config.conf">CONFIG</a><br>
|
||||
<a href="https://code.glowers.club/goyimnose/Medios-Macina/wiki/Hydrus-Network">HYDRUS NETWORK</a><br>
|
||||
<a href="https://code.glowers.club/goyimnose/Medios-Macina/wiki/cookies.txt">COOKIES</a><br>
|
||||
<a href="https://code.glowers.club/goyimnose/Medios-Macina/wiki/Tutorial">TUTORIAL</a><br>
|
||||
<BR>
|
||||
Medeia-Macina is a text-first media manager and plugin runtime for searching, downloading, tagging, archiving, replaying, and moving media through one CLI. It is built around pipeable commands, rich result tables, and row replay so you can move from search to action without leaving the terminal.
|
||||
|
||||
<div id="features"><h2> Features</h2>
|
||||
<ul>
|
||||
<li><b>Connects to HydrusNetwork, which is an open-source privacy orientated database-driven file manager</li>
|
||||
<li><i>Medios-Macina uses multiple python module downloaders for your specific needs, it is highly configurable and customizable</i></li>
|
||||
<li><i>no opening of folders neccessary! You can add multiple tags to a file and use the search engine to immediately find and retrieve that file your looking for</i></li>
|
||||
<li><b>Flexible syntax structure:</b> chain commands with `|` and select options from tables with `@N`.</li>
|
||||
<li><b>Multiple file stores:</b> *HYDRUSNETWORK*
|
||||
- **Plugin integration:** *YOUTUBE, OPENLIBRARY, INTERNETARCHIVE, SOULSEEK, LIBGEN, ALLDEBRID, TELEGRAM, BANDCAMP*</li>
|
||||
<li><b>Module Mixing:</b> *[Playwright](https://github.com/microsoft/playwright), [yt-dlp](https://github.com/yt-dlp/yt-dlp), [typer](https://github.com/fastapi/typer)*</li>
|
||||
<li><b>Optional stacks:</b> Telethon (Telegram), aioslsk (Soulseek), and the FlorenceVision tooling install automatically when you configure the corresponding plugin/tool blocks.
|
||||
<li><b>MPV Manager:</b> Play audio, video, and even images in a custom designed MPV with trimming, screenshotting, and more built right in!</li>
|
||||
<li><i>Supports remote access and networked setups for offsite servers and sharing workflows.</i></li>
|
||||
<li><b>Reusable tag templates:</b> derive new tags from existing ones with placeholder and padding syntax documented in <a href="docs/tag_template_syntax.md">docs/tag_template_syntax.md</a>.</li>
|
||||
</ul>
|
||||
</ul
|
||||
The current UX is plugin-first. Older internal names like `provider` and `tool` still exist in some code paths and authoring APIs, but the user-facing model is now centered on plugins.
|
||||
|
||||
</div>
|
||||
<div id="installation"><h2> INSTALLATION</h2>
|
||||
<h4><b>Requirements:</b> <a href="https://www.python.org/downloads/">Python</a>
|
||||
<h4><a href="https://git-scm.com/">GIT</a>
|
||||
<br>
|
||||
## What Medeia-Macina Does
|
||||
|
||||
<details>
|
||||
<summary>COMMAND LINE</summary>
|
||||
- Search local and remote sources through plugins.
|
||||
- Browse results as tables and replay rows with `@N`.
|
||||
- Chain follow-up actions with `|`.
|
||||
- Add or move files into configured backends such as HydrusNetwork.
|
||||
- Inspect metadata, tags, URLs, and file details from the same CLI.
|
||||
- Hand media off to MPV for playback, screenshots, and related workflows.
|
||||
- Load bundled plugins or drop-in plugins from external paths.
|
||||
|
||||
<pre><code>
|
||||
curl -sSL https://code.glowers.club/goyimnose/Medios-Macina/raw/branch/main/scripts/bootstrap.py | python -
|
||||
</code></pre>
|
||||
## How The App Works
|
||||
|
||||
</details>
|
||||
The basic interaction loop is:
|
||||
|
||||
you may need to change python3 to python depending on your python installation
|
||||
<br>
|
||||
<b>After install, start the CLI by simply inputting "mm" into terminal/console, once the application is up and running you will need to connect to a HydrusNetwork sever to get the full experience. To access the config simply input ".config" while the application is running</b>
|
||||
</div>
|
||||
<img src="https://avatars.githubusercontent.com/u/79589310?s=48&v=4">ytdlp</img>
|
||||
<img src="https://avatars.githubusercontent.com/u/3878678?s=48&v=4
|
||||
">hydrusnetwork</img>
|
||||
1. Run a command that returns a table.
|
||||
2. Use `@N` to select a row.
|
||||
3. Let the row replay its plugin-defined action, or pipe it into another command.
|
||||
4. Use `.config` any time to inspect or update configuration.
|
||||
|
||||
That means rows are not just display data. A row can carry selection arguments or a full replay action. Depending on the plugin and row type, plain `@N` might open a nested table, download a file, show details, or trigger another plugin-specific workflow.
|
||||
|
||||
## Plugin System
|
||||
|
||||
Plugins are the main integration surface for the app.
|
||||
|
||||
- Built-in integrations such as HydrusNetwork, yt-dlp/YouTube, FTP, SCP, Soulseek, Telegram, Internet Archive, OpenLibrary, Bandcamp, and others are treated as plugins.
|
||||
- Plugins can expose named instances, so one plugin can target multiple endpoints, accounts, or servers via `-instance <name>`.
|
||||
- Bundled and external plugins use the same `plugins/<name>/` layout.
|
||||
- External plugin search paths include the repo `plugins/` folder, the current working directory `plugins/` folder, `MM_PLUGIN_PATH`, and `MEDEIA_PLUGIN_PATH`.
|
||||
- Plugin authoring still uses the current Python base class name `ProviderCore.base.Provider`. That is an implementation detail rather than the preferred user-facing term.
|
||||
|
||||
See [plugins/README.md](plugins/README.md) for plugin packaging and discovery details.
|
||||
|
||||
## Configuration
|
||||
|
||||
The old interactive TUI config editor has been discontinued.
|
||||
|
||||
Use `.config` from inside the CLI instead:
|
||||
|
||||
- `.config` opens the root configuration table.
|
||||
- `@N` drills into a selected section.
|
||||
- `@..` goes back.
|
||||
- `.config plugins` jumps straight to the user-facing plugin section.
|
||||
- Selecting a value row and running `.config <value>` updates that setting.
|
||||
|
||||
This keeps configuration inside the same table-and-selection model as the rest of the app.
|
||||
|
||||
## Installation From A Git Checkout
|
||||
|
||||
Requirements:
|
||||
|
||||
- Python 3.9 through 3.13
|
||||
- Git
|
||||
- PowerShell on Windows
|
||||
- `mpv` recommended for playback workflows
|
||||
|
||||
From the repository root, run:
|
||||
|
||||
```powershell
|
||||
Set-Location C:\path\to\Medios-Macina
|
||||
|
||||
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
|
||||
.\scripts\bootstrap.ps1 -Editable
|
||||
|
||||
.\.venv\Scripts\Activate.ps1
|
||||
mm
|
||||
```
|
||||
|
||||
Notes:
|
||||
|
||||
- The bootstrap script creates `.venv`, installs the project, and exposes the `mm` and `medeia` console commands.
|
||||
- On Windows, the bootstrap script will try to ensure `mpv` is available.
|
||||
- Playwright browser support is installed by default unless you pass `-NoPlaywright`.
|
||||
- The repository also ships `scripts/bootstrap.py` and `scripts/bootstrap.sh`, but the examples here use PowerShell.
|
||||
|
||||
## First Run
|
||||
|
||||
After launching `mm`, start with configuration:
|
||||
|
||||
```powershell
|
||||
.config
|
||||
.config plugins
|
||||
```
|
||||
|
||||
If you want the full archive/tag/search workflow, HydrusNetwork is usually the first plugin to configure.
|
||||
|
||||
## Example Workflows
|
||||
|
||||
Browse plugin configuration:
|
||||
|
||||
```powershell
|
||||
.config
|
||||
.config plugins
|
||||
```
|
||||
|
||||
Search a configured plugin instance:
|
||||
|
||||
```powershell
|
||||
search-file -plugin ftp -instance work "invoice"
|
||||
```
|
||||
|
||||
Replay a selected row:
|
||||
|
||||
```powershell
|
||||
@1
|
||||
```
|
||||
|
||||
Ingest a selected remote result into a configured backend:
|
||||
|
||||
```powershell
|
||||
@1 | add-file -instance tutorial
|
||||
```
|
||||
|
||||
Upload a local file through a plugin:
|
||||
|
||||
```powershell
|
||||
add-file -plugin ftp -instance archive -path C:\Media\report.pdf
|
||||
```
|
||||
|
||||
The exact meaning of `@1` depends on the current table and plugin. For example, one row may open a nested directory table while another row may download or replay a file-specific action.
|
||||
|
||||
## Core Concepts
|
||||
|
||||
- `search-file`: search a plugin, source, or configured backend and produce a table.
|
||||
- `@N`: replay or select row `N` from the most recent table.
|
||||
- `|`: pipe the selected result into the next command.
|
||||
- `add-file`: ingest a file into a configured backend or upload through a plugin.
|
||||
- `.config`: browse and edit configuration from inside the CLI.
|
||||
- `.mpv`: hand media off to the integrated MPV workflow.
|
||||
|
||||
## Documentation
|
||||
|
||||
- [docs/tag_template_syntax.md](docs/tag_template_syntax.md)
|
||||
- [plugins/README.md](plugins/README.md)
|
||||
- [docs/provider_guide.md](docs/provider_guide.md)
|
||||
- [docs/provider_authoring.md](docs/provider_authoring.md)
|
||||
- [docs/ftp_plugin_tutorial.md](docs/ftp_plugin_tutorial.md)
|
||||
- [docs/scp_plugin_tutorial.md](docs/scp_plugin_tutorial.md)
|
||||
- [docs/BOOTSTRAP_TROUBLESHOOTING.md](docs/BOOTSTRAP_TROUBLESHOOTING.md)
|
||||
|
||||
## Current Direction
|
||||
|
||||
Medeia-Macina is moving toward one canonical plugin model:
|
||||
|
||||
- user-facing integrations are described as plugins
|
||||
- plugin rows carry their own replay actions when needed
|
||||
- nested tables use the same `@N` and `@..` interaction model across config and plugin workflows
|
||||
- Hydrus-backed archiving, metadata, and playback flows are treated as part of the same CLI pipeline rather than separate apps
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user