Skip to content

hongkiulam/nekostorm

Repository files navigation

Nekostorm

Anime-torrent search and torrenting application


Uses AnimeTosho, Nyaa Pantsu API and Nyaapi to search for torrents.

Downloads torrents with WebTorrent.

Built with Svelte, Typescript, Scss, Snowpack, WebTorrent, Electron

Used nyaaclient as a starting point.


Download

You can download Nekostorm here, find the desired release and download the binary files or source code from the Assets section.

Please note that currently this app is unsigned, thus you may run into issues when trying to install on Mac or Windows. Continuing with the installation should be done at the user's sole risk.

All content available through Nekostorm are hosted on servers and databases externally, they are pulled in via external APIs and scrapers i.e. AnimeTosho, Nyaa.net and Nyaa.si. Any content downloaded/ watched with this app is the sole responsibility of the user, the developer makes no liabilities for infringements committed by a 3rd party.

Screenshots

Search Starred Torrents Torrent Detail Stream

Development

Run npm start for a basic Snowpack development server. Hosted on port 8080

Run npm run dev for a Netlify-Snowpack development server which also builds the netlify serverless functions locally. Hosted on port 3000

Run npm run electron for an Electron-Snowpack development build

Build

To build for the web simply run npm run build, however this is assuming the build is hosted on Netlify, otherwise the anime search feature will not work

Package

electron-builder is used to package for multiple-platforms, for convenience I've used their provided Docker images which will allow us to build for Windows and Linux.

docker-compose up -d

docker run containername

This will build the packaged apps within the container, to access the files we can use docker cp

docker cp containerid:/app/out-eb ./

Component Structure

The components in this project are structured based on the Atomic Design system.

In short:

atoms - The basic building blocks, on their own they aren't very useful but can be combined and configured into more useful components

molecules - Typically a collection of atoms, molecules should aim to do one task and do it well. They can range from being simple to very complex but should still be built with reuse in mind

organisms - Groups of atoms and molecules joined to form a notable section of the page, at this level they should be slottable into pages and still function on its own

templates - A component used to stitch other components together to form the basis of a page

pages - Usually an instance of a template, this is the highest level of fidelity and should be quite self explantory