Giter Site home page Giter Site logo

xkcd_viewer's Introduction

xkcd viewer

This is a viewer for the wonderful webcomic xkcd. You may ask... I can just go to the website. What is the point of this?

Well, there are a few reasons:

  • Offline viewing. It's nice for plane rides!
  • Improved "random" functionality: keeps track of what comics you've seen (and this data is saved!), so when you hit "random" you always see new content. Only when you've seen everything does it clear out the history!
  • Comic series: for comics that are part of a series (like this, for example), the 'b' and 'n' keys can be used to move back and forth in the series, even if the comics weren't published one after the other.

The hover-text works too!

Easily run just by typing python3 xkcd_viewer.py, or in a file browser, double clicking the desktop file!

Keyboard shortcuts:

  • and arrow keys go through comics in order.
  • Space goes to a random comic (that you haven't seen).
  • and go back or forward in history.
  • B and N are "before" and "next" in a series (see above).

Requirements

  • Python 3
  • PyGObject (see this website)
  • GTK+ 3
  • Acceptance of the fact that you are reading comics instead of going outside.

TODO:

There is some stuff to work on:

  • Download comics in the background, so you don't have to wait for them all
  • There are some weird encoding issues. For example when the alt-text has unusual characters in it, they display incorrectly.
  • It doesn't handle interactive comics well... maybe it should give a link instead for these!

This gist was a jumping off point for this code. :)

xkcd_viewer's People

Contributors

gregdmeyer avatar

Stargazers

 avatar

Watchers

 avatar  avatar

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.