Code Monkey home page Code Monkey logo

glowpub's Introduction

A Glowfic-To-Epub converter

Using this software requires Rust.


To process a specific post clone this repo and, from its directory, run:

cargo run -- post <post-id>

This will download the entire thread and cache it locally, along with all images. It'll then generate a single html file in /books/html/<post-id>.html, and an epub file in /books/epub/<post-id>.epub.


To process an entire board/continuity:

cargo run -- board <board-id>

For example, if you want to download all of planecrash:

cargo run -- board 215

Additional options

Combine these by chaining them after the command.

cargo run -- board 215 --use-cache --jpeg --text-to-speech --flatten-details=mixed --single-file
  • --use-cache: re-use already cached items.
  • --jpeg: convert images in epubs to jpeg, can lead to significantly smaller file sizes.
  • --text-to-speech: change the output in a way that may be more comfortable for text-to-speech.
  • --flatten-details: flatten details tags (see example below). Valid values are --flatten-details=none (default), --flatten-details=all, --flatten-details=mixed. mixed flattens details in epubs only.
  • --single-file: if downloading a board/continuity, output the entire board in a single epub file.

With flatten-details enabled this:

This is a summary This is the hidden content

Becomes more or less:

โ–ผ This is a summary

This is the hidden content

Note that you can't close the latter, so the inherent spoiler protection is compromised, this is mostly useful for ereaders that have trouble with tags.

glowpub's People

Contributors

eggsyntax avatar hate9 avatar quartzlibrary avatar rlpowell avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

glowpub's Issues

Alternative `planecrash` ordering

An ordering suggested by @rlpowell in #6 can be found here or in their fork.

// This is my (Robin Lee Powell)'s best guess as to the correct reading order, given that I haven't
// actually read most of it yet, and given that in several places the text itself tells you to jump
// out to a subthread and come back, which makes "reading order" a bit of a miss anyway.
pub const ITEMS: [(&str, u64); 25] = [
    ("01", 4582), // MAIN: mad investor chaos and the woman of asmodeus
    ("01-subthread-01", 5310), // SUBTHREAD: kissing is not a human universal
    ("01-subthread-01-sfw-tldr", 5403), // ALTERNATE SUBTHREAD: sfw tldr kissing is not a human universal
    ("02-and-03-alternate", 5521), // ALTERNATE, less disturbing, for "some human" and "take this report"
    ("02", 5504), // MAIN: some human relationships are less universal than others
    ("03", 5506), // MAIN: take this report back and bring her a better report
    ("04", 5508), // MAIN: project lawful and their oblivious boyfriend
    ("04-subthread-01", 5610), // SUBTHREAD: cheating is cuddleroom technique
    ("04-subthread-01-sfw-tldr", 5618), // ALTERNATE SUBTHREAD: sfw tldr cheating is cuddleroom technique
    ("04-subthread-02", 5638), // SUBTHREAD: in another world we could have been trade partners
    ("04-subthread-02-sfw-tldr", 5671), // ALTERNATE SUBTHREAD: sfw tldr we could have been trade partners
    ("04-sandbox-01", 5775), // SANDBOX: totally not evil
    ("04-sandbox-02", 5778), // SANDBOX: welcome to project lawful
    ("05", 5694), // MAIN: my fun research project has more existential risk than I anticipated
    ("05-subthread-01", 5785), // SUBTHREAD / LECTURE: to hell with science
    ("05-subthread-02", 5826), // SUBTHREAD SORT OF?: to earth with science
    ("05-subthread-03", 5864), // SUBTHREAD / LECTURE: the alien maths of dath ilan
    ("05-sandbox-01", 5880), // SANDBOX: I reject your alternate reality and substitute my own
    ("06", 5930), // MAIN: what the truth can destroy
    ("06-sandbox-01", 6029), // SANDBOX: it is a beautiful day in Cheliax and you are a horrible medianworld romance novel
    ("07", 5977), // MAIN: crisis of faith
    ("08", 6075), // MAIN: the woman of irori
    ("08-sandbox-01", 6124), // SANDBOX: dear abrogail
    ("09", 6131), // MAIN: flashback: this is not a threat
    ("10", 6132), // MAIN: null action
];

Fix for requiring Rust nightly build

Just a heads-up that you're using a feature that doesn't seem to be on the Rust mainline. Up to you whether you want to refactor to not use it, add a warning, or do nothing :)

[15:58] glowpub> cargo run --example planecrash

[...]

   Compiling glowfic_to_epub v0.1.0 (/Users/egg/tmp/glowpub)
error[E0554]: `#![feature]` may not be used on the stable release channel
 --> src/lib.rs:1:12
  |
1 | #![feature(iter_intersperse)]
  |            ^^^^^^^^^^^^^^^^

For more information about this error, try `rustc --explain E0554`.
error: could not compile `glowfic_to_epub` due to previous error
warning: build failed, waiting for other jobs to finish...

[15:59] glowpub> cargo --version
cargo 1.62.0 (a748cf5a3 2022-06-08)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.