Giter VIP home page Giter VIP logo

cosmere-books's Introduction

cosmere-books Docker Cloud Build Status Docker Pulls Docker Image Size (tag) GitHub GitHub last commit

Books in the Cosmere

Scripts to generate books from the Cosmere using various public sources. Currently supports the following books:

Books

  1. Rhythm of War (Serialized till Chapter 18) (with Annotations and Illustrations)
  2. Oathbringer (Serialized till Chapter 32)
  3. Warbreaker Prime: Mythwalker
  4. Skyward (Serialized till Chapter 15)
  5. The Lost Metal (To be serialized till Chapter 9, In Progress)

Short Stories

  1. Defending Elysium

Graphic Novels

  1. Dark One (Preview Chapter)

Tor.com Rereads

  1. Way of Kings Reread
  2. Words of Radiance Reread
  3. Edgedancer Reread
  4. Oathbringer Reread

For obvious reasons, the converted ebooks are not part of this repo. You must download and run the script on your own machine to generate the ebook files.

Requirements

Docker installed.

Generation

Instructions are available for Windows, Mac, and Linux.

Book Codes

dark-one
edgedancer-reread
mythwalker
oathbringer
oathbringer-reread
row
skyward
wok-reread
wor-reread
lost-metal

If none is passed, all books will be generated. The entire build (for all books combined) roughly takes 15 minutes on a single core system (excluding the Docker pull). Generating the defending-elysium ebook requires generating all ebooks currently.

As an example, you'd like to get a ebook for Rhythm of War, run the following command:

docker run --rm --volume "$(pwd):/output" captn3m0/cosmere-books:latest row

For directions specific to your OS, see above.

Rhythm of War

The chapter-by-chapter serialization of Rhythm of War, Brandon Sanderson’s fourth volume in The Stormlight Archive series. New chapters go live every Tuesday up to the November 17, 2020 release date.

This supports the annotations that Brandon is publishing on Reddit along with 3 illustrations from Part 1. This covers the entire Part 1 of the book.

Oathbringer

Tor.com is published Oathbringer in serialized form till Chapter 32. This script downloads all of these posts and converts them into a publishable format, including epub, mobi, pdf and html. You can find the tor.com announcement at https://www.tor.com/2017/08/15/brandon-sanderson-oathbringer-serialization-announcement/. This covers the entire Part 1 of the book.

Way of Kings Reread

Join Michael Pye (aka The Mad Hatter) and Carl Engle-Laird as they dive into the details of Sanderson’s complex new world of Roshar.

Find out more at https://www.tor.com/features/series/the-way-of-kings-reread-on-torcom/.

Words of Radiance Reread

Welcome to the reread of Brandon Sanderson’s second Stormlight Archive series book Words of Radiance! This reread will be a collaborative effort between Tor.com’s own editorial assistant Carl Engle-Laird and long-time Tor.com commenter and Sanderson beta-reader Alice Arneson. This new partnership promises to be as potent as that between spren and Radiant. Join them in the Storm Cellar as they evaluate, discuss, question, and generally kibitz their way through the Words of Radiance.

More details at https://www.tor.com/series/words-of-radiance-reread-on-torcom/

Edgedancer Reread

Join Alice Arneson and Lyndsey Luther for a reread of Brandon Sanderson’s Cosmere novella, Edgedancer, which fills in some of the details for Lift and Nalan between their appearances in Words of Radiance and the next time we see them in Oathbringer.

More details at https://www.tor.com/series/edgedancer-reread-brandon-sanderson/

Way of Kings: Prime

Brandon published Way of Kings Prime as a free ebook, which you can download from here: https://www.brandonsanderson.com/the-way-of-kings-prime/. It is now available for free in EPUB/MOBI/PDF formats from the link.

Oathbringer Reread

Join Alice Arneson and Lyndsey Luther for a reread of Brandon Sanderson’s Oathbringer, the third novel in the Stormlight Archive epic fantasy series.

More details at https://www.tor.com/series/oathbringer-reread-brandon-sanderson/

Skyward

Skyward by #1 New York Times bestselling author Brandon Sanderson is the first book in an epic new series about a girl who dreams of becoming a pilot in a dangerous world at war for humanity’s future. We know you can't wait for the book to finally hit shelves on 11/6/18, so we're releasing new chapters here every week!

See more details at underlined or brandonsanderson.com. This covers Chapters 1-15 of the book.

Defending Elysium

This story originally appeared in the October/November 2008 Asimov’s Science Fiction (in the US) and the UPC Science Fiction collection (in Europe). It was winner of the UPC science fiction award, and was the last short story Brandon wrote before he sold Elantris to Tor.

The story was first named honorable mention in a Writers of the Future contest in early 2003. (Brandon got the phone call from an editor buying Elantris in April 2003.) A few years later, he did a couple of serious revisions of the story and then submitted it to the UPC award in Spain. It won first place, and subsequently sold in the US to Asimov’s Science Fiction—which was Brandon’s first (and so far only) fiction appearance in a major print magazine. It was given an honorable mention in Gardner Dozois’s The Year’s Best Science Fiction anthology for 2008.

More details at https://brandonsanderson.com/defending-elysium/. Annotations at https://brandonsanderson.com/annotation-Recent-Short-Stories-Defending-Elysium/

Dark One

Brandon Sanderson’s Dark One is a break from the norm; it’s a graphic novel from Vault Comics, originally announced as being in the works two years ago, based on an original idea from Sanderson. The book will be written by Collin Kelly and Jackson Lanzing from a story by Sanderson, with art by Nathan Gooden and colors from Kurt Michael Russell. Lettering on the project comes from Deron Bennett.

The chapter below was originally intended to be Vault Comics’ Free Comic Book Day release this year.

More details at https://www.hollywoodreporter.com/heat-vision/dark-one-excerpt-brandon-sanderson-unveils-fantasy-graphic-novel-1297122.

The script generates a CBZ file.

Warbreaker Prime: Mythwalker

Below description from Sanderson's website, written by Peter:

When Brandon shelved Mythwalker in August 2001 because he felt it wasn’t working (one of its issues was that it felt clichéd, but there are other issues that I’ll discuss following later chapters), he planned to get back to it eventually. But there were still elements and characters left over in those books that could be used to tell other stories. Warbreaker follows one of the storylines from Mythwalker that was left when the elements used in the Mistborn trilogy were taken out. But that is not all that Mythwalker is. Its main character and its magic system have not been cannibalized. What you will read here [...] is an interesting story in its own right, even though it has problems. And some of you will be frustrated that the story remains unfinished.

So it is probably best to view these chapters just as a window on early Brandon Sanderson, when he tried something and failed. This was the first novel in Brandon’s adult writing career that he started writing but never finished. If you want insight into his creative process, I think this is a great place to look.

The Lost Metal

Tor.com is serializing The Lost Metal from now until its release on November 15. New chapters will go live every Monday at 12pm ET.

In progress, only Chapter 1 so far.

Extra

If you'd like to see any other books covered here, please create an issue, or reach out to me: https://captnemo.in/contact/

Development

If you'd like to hack on the project locally, see HACKING.md.

LICENSE

This is licensed under WTFPL. See COPYING file for the full text.

Other Projects

cosmere-books's People

Contributors

allanburleson avatar captn3m0 avatar dependabot-preview[bot] avatar dependabot-support avatar dependabot[bot] avatar kakaroto avatar mikaelbergquist avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

cosmere-books's Issues

Windows can't find ebook-convert

I'm on Win10. I have Calibre installed. I can run ebook-convert via command line and get the man page, but running ruby oathbringer.rb with an output of :mobi will always result in:

[html] Generated HTML file
[error] Can't generate MOBI without ebook-convert
[error] Please check README for PDF dependencies

I have all other dependencies (except PDF, but I'm running :mobi specifically).

Edit: Ran it in my Ubuntu VM and it worked fine. Windows still does not work.

Text alignment

In the epub, the chapter number and title are left aligned while the entire chapter text itself is center-aligned. It makes for a weird reading experience when all the text is centered.
I've checked the html file it generated, and it seems to center align the chapter title only, then right justify the epigraph, then the text is normal, but that's not what I see in the epub, so is this a configuration issue or a bug in pandoc ?

Rhythm of War Illustrations missing in epub and mobi formats

They're present in the html and pdf versions, but are missing from the epub and mobi versions. Some warnings are being thrown when I run the script:

> docker run --rm --volume "$(pwd):/output" captn3m0/cosmere-books:latest row
Downloading all found links
Download https://www.tor.com/2020/07/23/read-rhythm-of-war-by-brandon-sanderson-prologue-and-chapter-one/
Download https://www.tor.com/2020/07/28/read-rhythm-of-war-by-brandon-sanderson-chapters-two-and-three/
Download https://www.tor.com/2020/08/04/read-rhythm-of-war-by-brandon-sanderson-chapters-four-and-five/
Download https://www.tor.com/2020/08/11/read-rhythm-of-war-by-brandon-sanderson-chapter-six/
Download https://www.tor.com/2020/08/18/read-rhythm-of-war-by-brandon-sanderson-chapter-seven/
Download https://www.tor.com/2020/08/25/read-rhythm-of-war-by-brandon-sanderson-chapter-eight/
Download https://www.tor.com/2020/09/01/read-rhythm-of-war-by-brandon-sanderson-chapter-nine/
Download https://www.tor.com/2020/09/08/read-rhythm-of-war-by-brandon-sanderson-chapter-ten/
Download https://www.tor.com/2020/09/15/read-rhythm-of-war-by-brandon-sanderson-chapter-eleven/
Download https://www.tor.com/2020/09/22/read-rhythm-of-war-by-brandon-sanderson-chapter-twelve/
Download https://www.tor.com/2020/09/29/read-rhythm-of-war-by-brandon-sanderson-chapter-thirteen/
Download https://www.tor.com/2020/10/06/read-rhythm-of-war-by-brandon-sanderson-chapter-fourteen/
Download https://www.tor.com/2020/10/13/read-rhythm-of-war-by-brandon-sanderson-chapter-fifteen/
Download https://www.tor.com/2020/10/20/read-rhythm-of-war-by-brandon-sanderson-chapter-sixteen/
Download https://www.tor.com/2020/10/27/read-rhythm-of-war-by-brandon-sanderson-chapter-seventeen/
Download https://www.tor.com/2020/11/03/read-rhythm-of-war-by-brandon-sanderson-chapter-eighteen/
Download https://www.tor.com/2020/11/10/read-rhythm-of-war-by-brandon-sanderson-chapter-nineteen/
[html] Generated HTML file
[epub] Generated EPUB file
[WARNING] Could not fetch resource 'https://www.17thshard.com/forum/uploads/monthly_2020_11/5fa8c8182f0d8_Screenshot2020-11-09at04_34_59.png.bff6d91cfbdb0fc6f5d0b8760b82dd34.png': PandocHttpError "https://www.17thshard.com/forum/uploads/monthly_2020_11/5fa8c8182f0d8_Screenshot2020-11-09at04_34_59.png.bff6d91cfbdb0fc6f5d0b8760b82dd34.png" (HttpExceptionRequest Request {
    host                 = "www.17thshard.com"
    port                 = 443
    secure               = True
    requestHeaders       = []
    path                 = "/forum/uploads/monthly_2020_11/5fa8c8182f0d8_Screenshot2020-11-09at04_34_59.png.bff6d91cfbdb0fc6f5d0b8760b82dd34.png"
    queryString          = ""
    method               = "GET"
    proxy                = Nothing
    rawBody              = False
    redirectCount        = 10
    responseTimeout      = ResponseTimeoutDefault
    requestVersion       = HTTP/1.1
  }
   (ConnectionFailure Network.BSD.getProtocolByName: does not exist (no such protocol name: tcp)))
[WARNING] Could not fetch resource 'https://www.17thshard.com/forum/uploads/monthly_2020_11/5fa8c82234b92_Screenshot2020-11-09at04_35_28.png.5407ea8837260facc3a36b7eb9442e56.png': PandocHttpError "https://www.17thshard.com/forum/uploads/monthly_2020_11/5fa8c82234b92_Screenshot2020-11-09at04_35_28.png.5407ea8837260facc3a36b7eb9442e56.png" (HttpExceptionRequest Request {
    host                 = "www.17thshard.com"
    port                 = 443
    secure               = True
    requestHeaders       = []
    path                 = "/forum/uploads/monthly_2020_11/5fa8c82234b92_Screenshot2020-11-09at04_35_28.png.5407ea8837260facc3a36b7eb9442e56.png"
    queryString          = ""
    method               = "GET"
    proxy                = Nothing
    rawBody              = False
    redirectCount        = 10
    responseTimeout      = ResponseTimeoutDefault
    requestVersion       = HTTP/1.1
  }
   (ConnectionFailure Network.BSD.getProtocolByName: does not exist (no such protocol name: tcp)))
[WARNING] Could not fetch resource 'https://www.17thshard.com/forum/uploads/monthly_2020_11/5fa8c7ac2d020_Screenshot2020-11-09at04_34_33.png.dfab9f8de252466659c25db72d835cf5.png': PandocHttpError "https://www.17thshard.com/forum/uploads/monthly_2020_11/5fa8c7ac2d020_Screenshot2020-11-09at04_34_33.png.dfab9f8de252466659c25db72d835cf5.png" (HttpExceptionRequest Request {
    host                 = "www.17thshard.com"
    port                 = 443
    secure               = True
    requestHeaders       = []
    path                 = "/forum/uploads/monthly_2020_11/5fa8c7ac2d020_Screenshot2020-11-09at04_34_33.png.dfab9f8de252466659c25db72d835cf5.png"
    queryString          = ""
    method               = "GET"
    proxy                = Nothing
    rawBody              = False
    redirectCount        = 10
    responseTimeout      = ResponseTimeoutDefault
    requestVersion       = HTTP/1.1
  }
   (ConnectionFailure Network.BSD.getProtocolByName: does not exist (no such protocol name: tcp)))
[WARNING] This document format requires a nonempty <title> element.
  Please specify either 'title' or 'pagetitle' in the metadata,
  e.g. by using --metadata pagetitle="..." on the command line.
  Falling back to 'Untitled'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-root'
[mobi] Generated MOBI file
[WARNING] This document format requires a nonempty <title> element.
  Please specify either 'title' or 'pagetitle' in the metadata,
  e.g. by using --metadata pagetitle="..." on the command line.
  Falling back to 'row'
[pdf] Generated html for pdf
[pdf] Generated PDF without cover
[pdf] Generated PDF file

Page misalignment

This is a weird new bug that seems to be a side effect of 46e302c. The page is somehow misaligned in my reader. The text is properly aligned at the start of each chapter, then it slowly moves to the left with the next page shifting out from the right, the farther away you move from the chapter start.
It's hard to explain so I took some screenshots instead :
ob-issue-3
ob-issue-3_2
ob-issue-3_3

I don't understand why this would even happen in the epub reader since the reader is just supposed to render text.
Hopefully, it makes sense to you.

Dragonsteel Prime in own section?

How it is right now, the Dragonsteel Prime chapters are with the WoK Prime chapters under the same name, which seems a little confusing to me. Is it a better idea to split them up?

Chapter positions are wrong

Tried the script, thanks for that. I sent a PR #2 already, but I never did any ruby (and not willing to learn it either) so I'm filing an issue instead for this.
In the epub format, going directly to chapters in the table of contents jumps to the wrong page for some reason. It seems to be a few pages beyond the actual chapter. I tried Chapter 1, it jumped to page 17 instead of 13, and Chapter 7 jumps to page 90 insetad of 79. So it's not even a constant offset.

Windows: undefined method `epub_stylesheet` for Paru/Pandoc

I tried to find an API where epub_stylesheet was referenced for Paru or Pandoc, but I couldn't find anything. Again, this worked fine in my Ubuntu VM. Doesn't work in Windows.

[html] Generated HTML file
C:/Users/dkark/Documents/GitHub/cosmere-books/methods.rb:54:in `block in gen_epub': undefined method `epub_stylesheet' for #<Paru::Pandoc:0x0000000005389de8> (NoMethodError)
Did you mean?  epub_chapter_level
        from C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/paru-0.3.0.0/lib/paru/pandoc.rb:137:in `instance_eval'
        from C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/paru-0.3.0.0/lib/paru/pandoc.rb:137:in `configure'
        from C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/paru-0.3.0.0/lib/paru/pandoc.rb:107:in `initialize'
        from C:/Users/dkark/Documents/GitHub/cosmere-books/methods.rb:49:in `new'
        from C:/Users/dkark/Documents/GitHub/cosmere-books/methods.rb:49:in `gen_epub'
        from C:/Users/dkark/Documents/GitHub/cosmere-books/methods.rb:93:in `generate'
        from oathbringer.rb:67:in `<main>'

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.