Skip to main content

Overview

The Settings page is your central hub for managing UNS configuration, checking for updates, and installing provider plugins from the marketplace. It features two main tabs: General and Provider Store.

App Information

View version, license, and project details

Update Checker

Check for new UNS releases on GitHub

Provider Store

Browse and install community providers

Provider Management

View and delete installed providers

General Tab

The General tab displays application information and update status.

App Information Card

Shows project metadata from package.json:
FieldValueDescription
Product NameUNSApplication display name
Package Namenovel-scraper-desktopInternal package identifier
Version1.1.0Current installed version
AuthorOsamaProject author
LicenseCC-BY-NC-4.0Creative Commons Non-Commercial
App IDcom.universalnovelscraper.appElectron app identifier
This data is hardcoded in Settings.jsx:21-31 and reflects the values in package.json.

Update Checker

UNS checks for new releases by querying the GitHub API:
// From Settings.jsx:81-92
const response = await fetch(
  `https://api.github.com/repos/OsamaTab/UNS/releases/latest`
);
const data = await response.json();

if (data.tag_name) {
  const latest = data.tag_name.replace('v', '');
  if (latest !== packageInfo.version) {
    setUpdateAvailable(true);
  }
}
1

Check for Updates

Click the Refresh icon in the Update card header. The app queries the GitHub API for the latest release.
2

View Update Status

If a newer version exists, a blue notification appears:
“New Version Available! Version vX.X.X is ready for download.”
3

Download Update

Click Download Update to open the GitHub releases page in your browser. Download and install the new version manually.
UNS does not have auto-update functionality. Updates must be downloaded and installed manually from GitHub.
Quick access buttons for:
  • GitHub Repository - Opens https://github.com/OsamaTab/UNS
  • Report Issue - Opens the GitHub Issues page
  • Providers Repo - Opens https://github.com/OsamaTab/UNS-Providers

Provider Store Tab

The Provider Store lets you browse and install community-maintained website scrapers.

How the Store Works

1

Fetch Manifest

When you open the Store tab, UNS fetches a manifest file from GitHub:
const res = await fetch(
  'https://raw.githubusercontent.com/OsamaTab/UNS-Providers/main/manifest.json'
);
const manifest = await res.json();
The manifest contains metadata for all available providers (name, icon, version, type).
2

Map Download URLs

Each provider is mapped to its raw GitHub URL:
const scripts = manifest.map(item => ({
  ...item,
  download_url: `https://raw.githubusercontent.com/OsamaTab/UNS-Providers/main/${item.id}.js`
}));
3

Display Providers

The UI renders provider cards with:
  • Icon/logo
  • Name
  • Description
  • Version
  • Install button (or “Installed” badge if already added)

Installing Providers

1

Search for Provider

Use the search bar to filter providers by name. The search is case-insensitive and matches provider names.
2

Click Install

Click the Install button on a provider card. This triggers the IPC channel:
await window.electronAPI.installFromUrl({
  id: 'lightnovelworld',
  url: 'https://raw.githubusercontent.com/OsamaTab/UNS-Providers/main/lightnovelworld.js'
});
3

Download and Save

The main process downloads the provider script and saves it to:
  • macOS/Linux: ~/Library/Application Support/UNS/providers/
  • Windows: %APPDATA%/UNS/providers/
The provider is immediately loaded and available for use.
4

Confirmation

The “Install” button changes to a green “Installed” badge.
Providers are JavaScript files that define scraping logic for specific websites. See the Provider System guide for details on creating custom providers.

Installed Providers

Below the Store grid, you’ll see a list of installed providers with:
  • Name - Provider display name
  • Version - Semantic version (e.g., “1.0.0”)
  • Delete Button - Remove the provider

Deleting Providers

1

Click Delete

Click the trash icon next to an installed provider.
2

IPC Delete

This triggers:
await window.electronAPI.deleteProvider('lightnovelworld');
3

File Removal

The main process deletes the .js file from the providers directory and unloads the provider from memory.
4

Refresh

The installed providers list refreshes automatically.
Deleting a provider removes it permanently. You can reinstall it from the Store, but any custom modifications to the provider script will be lost.

Provider Marketplace Repository

The official provider repository is hosted at: https://github.com/OsamaTab/UNS-Providers

Manifest Structure

The manifest.json file lists all available providers:
[
  {
    "id": "lightnovelworld",
    "name": "LightNovelWorld",
    "version": "1.0.0",
    "icon": "🌍",
    "type": "novel",
    "beta": false,
    "description": "Scraper for LightNovelWorld.com"
  },
  {
    "id": "allnovel",
    "name": "AllNovel",
    "version": "1.2.0",
    "icon": "📚",
    "type": "novel",
    "beta": false
  }
]

Contributing Providers

To add your provider to the marketplace:
  1. Create a provider script following the Provider API
  2. Test it locally in your providers/ directory
  3. Submit a pull request to the UNS-Providers repository
  4. Include an entry in manifest.json with metadata
All providers in the marketplace are reviewed before merging to ensure they follow best practices and don’t contain malicious code.

Configuration Details

Application Metadata

// From Settings.jsx:21-31
const packageInfo = {
  name: "novel-scraper-desktop",
  productName: "UNS",
  description: "Desktop app for scraping web novels into EPUB format",
  version: "1.1.0",
  author: "Osama",
  license: "CC-BY-NC-4.0",
  appId: "com.universalnovelscraper.app",
  repo: "OsamaTab/UNS",
  providersRepo: "OsamaTab/UNS-Providers"
};

Provider Storage Paths

Providers are stored in platform-specific directories:
PlatformPath
macOS~/Library/Application Support/UNS/providers/
Linux~/.config/UNS/providers/
Windows%APPDATA%\UNS\providers\
These paths are determined by Electron’s app.getPath('userData').

Troubleshooting

  • Check your internet connection
  • Verify you can access https://github.com in your browser
  • The manifest file may be temporarily unavailable; try refreshing later
  • Ensure you have write permissions to the providers directory
  • Check if the provider ID is already in use
  • Verify the download URL is accessible
  • Click the refresh icon to re-check
  • Clear your browser cache and restart UNS
  • The GitHub API may be rate-limited; wait a few minutes and try again

Next Steps

Provider System

Learn how to create custom providers

Search & Discovery

Use installed providers to find novels

IPC Channels

Explore provider installation IPC methods

Troubleshooting

Common issues and solutions