MCPcopy Index your code
hub / github.com/asivery/ElectronWMD

github.com/asivery/ElectronWMD @v0.5.2-1.5.3

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.5.2-1.5.3 ↗ · + Follow
299 symbols 483 edges 15 files 0 documented · 0%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Electron Web MiniDisc

Electron version of Web MiniDisc Pro

For all the people who want to use all of Web MiniDisc Pro's features but don't want to use Google Chrome


Note for users only

If you're not a developer, and are just looking for a pre-built app, you can download it from the releases section.

MacOS users might need to run some Terminal commands for the app to work due to Apple's restrictive security policies. These commands are listed from here onwards.

Building

The project consists of two parts: - The main electron code - The renderer (GUI) code (The Web MiniDisc project itself)

This repository contains only the main electron app. Upon building, it will clone the renderer repository (https://github.com/asivery/webminidisc), and build that too.

You can: - Install node modules (npm i) (the --legacy-peer-deps switch might be required for newer node.js versions) - Start the development version (npm start) - Deploy the production version (npm run dist) - Deploy the production versions for macOS (npm run dist-mac)


Important development changes

Because of Web Minidisc Pro's reliance on older versions of packages such as React and material-ui, you might need to change

npm i

to

npm i --legacy-peer-deps

in build-renderer.sh depending on your node.js version.

Development on macOS

Install Xcode Build Tools CLI & Homebrew

Make sure Xcode Build Tools CLI & Homebrew are properly installed - in the Terminal run: - xcode-select install - to install XCode Command Line Tools - /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" - to install Homebrew

Install gcc & libvips

In macOS Terminal: brew install --build-from-source gcc, wait for it to finish then run brew install vips (this command may install gcc again from an available pre-built binary, if one exists for your current macOS version, this is normal behaviour as gcc is needed for vips to work).

Build

Assuming you've completed the above steps, you should be able to follow the standard procedure - run:

  • npm i --legacy-peer-deps to install the dependencies
  • npm run dist-mac to create the binary packages

De-quarantine the application

(For users unfamiliar, the following commands may also need Xcode CLI installed, so start with this, then return to this step.)

To de-quarantine the app on macOS run the following command in the terminal:

  • xattr -d com.apple.quarantine "/path/to/your.app"

Sign the binary

To codesign the local binary with a self-signing certificate run:

  • codesign --sign - --force --deep "/path/to/your.app"

This should be all that is needed, enjoy the application.


Final thoughts

Should you run into any issue, you can, of course, open a new issue on this github or reach out to any of the current contributors via the MiniDisc.wiki Discord in the #research or #software-help channels

Many thanks to cybercase for writing the original Web MiniDisc and letting so many people experience this forgotten format again.

Extension points exported contracts — how you extend this code

MinidiscSpec (Interface)
(no doc) [4 implementers]
src/wmd/original/services/interfaces/netmd.ts
ChangelogVersion (Interface)
(no doc)
src/preload.ts
Setting (Interface)
(no doc)
src/main.ts
NetMDFactoryService (Interface)
(no doc) [2 implementers]
src/wmd/original/services/interfaces/netmd.ts
ChangelogVersionInjection (Interface)
(no doc)
src/preload.ts
SettingFunction (Interface)
(no doc)
src/main.ts
RecordingCodec (Interface)
(no doc)
src/wmd/original/services/interfaces/netmd.ts
SettingInterface (Interface)
(no doc)
src/preload.ts

Core symbols most depended-on inside this repo

dropCachedContentList
called by 11
src/wmd/original/services/interfaces/netmd.ts
dropCachedContentList
called by 10
src/wmd/original/services/interfaces/himd.ts
listContentUsingCache
called by 9
src/wmd/original/services/interfaces/netmd.ts
convertDiscToNJS
called by 7
src/wmd/original/services/interfaces/netmd.ts
canFail
called by 5
src/macos/server.ts
traverseObject
called by 4
src/main.ts
create
called by 4
src/wusb-interop.ts
getSocketDir
called by 4
src/macos/socket-path.ts

Shape

Method 198
Function 64
Class 23
Interface 12
Enum 2

Languages

TypeScript100%

Modules by API surface

src/wmd/original/services/interfaces/netmd.ts117 symbols
src/wmd/original/services/interfaces/himd.ts69 symbols
src/wmd/networkwm-service.ts37 symbols
src/wmd/original/utils.ts14 symbols
src/main.ts14 symbols
src/preload.ts12 symbols
src/macos/server-bootstrap.ts10 symbols
src/wmd/translations.ts7 symbols
src/wusb-interop.ts4 symbols
src/macos/socket-path.ts4 symbols
src/macos/server.ts4 symbols
scripts/test-socket-path.js3 symbols

For agents

$ claude mcp add ElectronWMD \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact