All Projects → evan-buss → openbooks

evan-buss / openbooks

Licence: MIT license
Search and Download eBooks

Programming Languages

go
31211 projects - #10 most used programming language
typescript
32286 projects

Projects that are alternatives of or similar to openbooks

autobrr
Automation for downloads.
Stars: ✭ 288 (-61.7%)
Mutual labels:  irc, self-hosted
neko
A self hosted virtual browser that runs in docker and uses WebRTC.
Stars: ✭ 2,266 (+201.33%)
Mutual labels:  self-hosted
eggdrop-docker
No description or website provided.
Stars: ✭ 20 (-97.34%)
Mutual labels:  irc
Snippet2
A simple Code Snippet with user account and share feature
Stars: ✭ 20 (-97.34%)
Mutual labels:  self-hosted
dproofreaders
Distributed Proofreaders is a web application intended to ease the process of converting public domain books into e-texts.
Stars: ✭ 35 (-95.35%)
Mutual labels:  ebooks
irc-socket
A simple IRC socket for use with Node IRC libraries.
Stars: ✭ 17 (-97.74%)
Mutual labels:  irc
ass
The superior self-hosted ShareX server
Stars: ✭ 331 (-55.98%)
Mutual labels:  self-hosted
openeats
Recipe Management Site created in Django
Stars: ✭ 15 (-98.01%)
Mutual labels:  self-hosted
kobo-book-downloader
A tool to download and remove DRM from your purchased Kobo.com ebooks and audiobooks.
Stars: ✭ 171 (-77.26%)
Mutual labels:  ebooks
martianpins
Self hosted IPFS pinning service.
Stars: ✭ 23 (-96.94%)
Mutual labels:  self-hosted
JSpeak
A Text to Speech Reader Front-end that Reads from the Clipboard and with Exceptionable Features
Stars: ✭ 16 (-97.87%)
Mutual labels:  ebooks
Slack-IRC-Gateway
Bridge Slack rooms to IRC channels
Stars: ✭ 33 (-95.61%)
Mutual labels:  irc
auddly
Self hosted music streaming app
Stars: ✭ 60 (-92.02%)
Mutual labels:  self-hosted
krane
Open-source, self-hosted, container management solution
Stars: ✭ 76 (-89.89%)
Mutual labels:  self-hosted
mailgun logger
Simple Mailgun log persistence in Phoenix/Elixir
Stars: ✭ 73 (-90.29%)
Mutual labels:  self-hosted
insobot
C99 modular IRC bot with markov chains
Stars: ✭ 71 (-90.56%)
Mutual labels:  irc
Cardinal
A Python IRC bot, designed to make adding functionality quick and simple.
Stars: ✭ 92 (-87.77%)
Mutual labels:  irc
selfhosted
Selfhosted services docker-compose manifests
Stars: ✭ 64 (-91.49%)
Mutual labels:  self-hosted
slackbridge
Bridge between IRC and Slack running on Kubernetes
Stars: ✭ 12 (-98.4%)
Mutual labels:  irc
visited
Securely collect browsing history over browsers.
Stars: ✭ 60 (-92.02%)
Mutual labels:  self-hosted

openbooks

NOTE: Going forward only the latest release will be supported. If you encounter any issues, be sure you are using the latest version.

Docker Pulls

Openbooks allows you to download ebooks from irc.irchighway.net quickly and easily.

openbooks screenshot

Getting Started

Binary

  1. Download the latest release for your platform from the releases page.
  2. Run the binary
    • Linux users may have to run chmod +x [binary name] to make it executable
  3. ./openbooks --help
    • This will display all possible configuration values and introduce the two modes; CLI or Server.

Docker

  • Basic config
    • docker run -p 8080:80 evanbuss/openbooks
  • Config to persist all eBook files to disk
    • docker run -p 8080:80 -v /home/evan/Downloads/openbooks:/books evanbuss/openbooks --persist

Setting the Base Path

OpenBooks server doesn't have to be hosted at the root of your webserver. The basepath value allows you to host it behind a reverse proxy. The base path value must have opening and closing forward slashes (default "/").

  • Docker
    • docker run -p 8080:80 -e BASE_PATH=/openbooks/ evanbuss/openbooks
  • Binary
    • ./openbooks server --basepath /openbooks/

Usage

For a complete list of features use the --help flags on all subcommands. For example openbooks cli --help or openbooks cli download --help. There are two modes; Server or CLI. In CLI mode you interact and download books through a terminal interface. In server mode the application runs as a web application that you can visit in your browser.

Double clicking the executable will open the UI in your browser. In the future it may use webviews to provide a "native-like" desktop application.

Development

Install the dependencies

  • go get
  • cd server/app && npm install
  • cd ../..
  • go run main.go

Build the React SPA and compile binaries for multiple platforms.

  • Run ./build.sh
  • This will install npm packages, build the React app, and compile the executable.

Build the go binary (if you haven't changed the frontend)

  • go build

Mock Development Server

  • The mock server allows you to debug responses and requests to simplified IRC / DCC servers that mimic the responses received from IRC Highway.
  • cd cmd/mock_server
    go run .
    # Another Terminal
    cd cmd/openbooks
    go run . server --server localhost --log

Desktop App

Compile OpenBooks with experimental webview support:

cd cmd/openbooks
go build -tags webview

Why / How

  • I wrote this as an easier way to search and download books from irchighway.net. It handles all the extraction and data processing for you. You just have to click the book you want. Hopefully you find it much easier than the IRC interface.
  • It was also interesting to learn how the IRC and DCC protocols work and write custom implementations.

Technology

  • Backend
    • Golang
    • Chi
    • gorilla/websocket
    • Archiver (extract files from various archive formats)
  • Frontend
    • React.js
    • TypeScript
    • Redux / Redux Toolkit
    • Mantine UI / @emotion/react
    • Framer Motion
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].