Giter Club home page Giter Club logo

comics's Introduction

πŸ—ž Comics

Comics is a webcomics aggregator.

CI Docs Coverage


Comics is a webcomics aggregator. Out of the box it can crawl and archive about two hundred comics every day. The comics are made available through an easy to use web interface were users can build personalized collections of their favorite comics, and then read them on the site or using a feed reader.

Adding a new comic to your installation requires only the addition of a single Python file with some metadata and a few lines of code. To make crawler development easy, Comics comes with both documentation and powerful APIs for crawling web sites and feeds.

Installation and usage

Comics runs on Python and Django. For instructions on how to install and use it, see the documentation.

Development status

The Comics project is almost as old as Django itself, with the code base originating back to 2007. However, as of 2021, the project isn't entirely dead: the project maintainer is still running his own instance with a number of regular users. There are no immediate plans for any new features, but the project is up-to-date with recent releases of Python, Django, and other dependencies, with a modern and maintainable deployment setup.

License

Comics is copyright 2009-2021 Stein Magnus Jodal and contributors. Comics is licensed under the GNU Affero General Public License version 3.

comics's People

Contributors

adamcik avatar datagutten avatar dependabot-preview[bot] avatar dependabot[bot] avatar jimtrim avatar jodal avatar jwyllie83 avatar klette avatar knutz3n avatar ninamargrethe avatar torkildr avatar xim avatar yaunj 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  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  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  avatar  avatar  avatar  avatar  avatar  avatar

comics's Issues

User sets

Reimplement comics sets to be associated with users instead of names.

  • The old front page should be removed.
  • The old set views at /s/setname should be the new front page.

Support fetching related text with more formatting

E.g. Darths & Drois has a huge formatted text associated with each comic. Since these texts often are half the fun, comics should support fetching larger pieces of text with formatting, and keep a sane amount of this formatting, e.g. headers and bullet lists.

Convert tif images to web friendly format

Some comics are released as tif, in this case it should probably be converted to a web friendly format. Comics should also probably have a whitelist of accepted web formats.

Documentation is missing a dependency for Ubuntu 9.04

I imagine that 10.04 fixes this, but in the documentation for 9.04, installing South from pip doesn't pull in Python's setuptools unless you already have them. You'll get lines that look like this:

Downloading/unpacking South
  Downloading South-0.6.2.tar.gz (51Kb): 51Kb downloaded
  Running setup.py egg_info for package South
    Traceback (most recent call last):
      File "<string>", line 3, in <module>
    ImportError: No module named setuptools.command
    Complete output from command python setup.py egg_info:
    Traceback (most recent call last):  

  File "<string>", line 3, in <module>

ImportError: No module named setuptools.command

----------------------------------------
Command python setup.py egg_info failed with error code 1 
Storing complete log in ./pip-log.txt

Solution is to add python-setuptools as a dependency in the 9.04 install line. Python-pip isn't pulling it in if you have python-pkg-resources already installed, though the above package seems to not want "either-or."

Smush comic images to save disk space and reduce page load time

The size of comic images can be reduced without loosing any quality by pushing them through lossless optimization, like e.g. Yahoo's www.smushit.com can do for you. Smushing comics would save a lot of disk space and reduce page load time.

Some work have already been done by @adamcik on a tool for smushing the images in comics' archive. See the file bin/smush in the repo for details.

Add comic author's comic text

For XKCD the "alt" (or mouseover) text is displayed alongside the comic.
Certain other comics, such as "Scandinavia and the World" and "Nerf Now" also got some descriptive text for the comic, it would be nice if this text also is displayed next to the comic.

Make the 'new releases' notification go to the oldest new comic.

When it shows up with '20 new releases', it can be a chore finding the correct place to start reading. It could be solved by reading from the top and downwards, but then you could encounter multi-issue stories in the wrong order.

It would be nice for the new page load to start out scrolled to the oldest unread comic, so you could just read from there 'till the top.

Link to specific comic

Would be nice with a link to the specific comic aggregated and not just the comic site.
Example:
When displaying XKCD strip 1286 then link to http://xkcd.com/1286/ and not just http://xkcd.com/.

Also, is it really necessary to redirect through the aggregator when clicking on the link to the comic site? What is the gain? It makes it (slightly) harder to share the link to the comic with friends who don't have an account for the comic aggregator.

Log in using Google/Twitter/Facebook account

Consider allowing an existing user to connect his account with his Google/Twitter/Facebook account, and to authenticate using this external account.

This may not be necessary, given long enough validity of the session cookie.

Comics text search

Feature request from Einar Ryeng:

Add a text area for each comic for entering the text of the comic into. The comic texts should be searchable.

Database File Permissions Issues created via setup

When running ./manage.py to set up the local sqlite3 database, it's created with the permissions of the user running manage.py. In basically all setups, this won't be the user of the webserver.

This doesn't manifest itself typically at first (the comics application will have read access to the database via default global-read file permissions); it showed up for me when I tried to create a new comics set. This was the first time that it tried to actually write to the database.

I'm using Apache as my webserver: the solution for me was to move the sqlite3 database into its own directory ("database" in my case), giving ownership / write permissions to the webserver group for the database directory as well as the file.

The problem is that this just manifests itself as a 500 in production mode (or a more-helpful traceback in dev mode); a test for good permissions on the database file and a helpful message / debugging steps would be more useful.

Another solution is to add a couple steps in the documentation that fix the permissions ownership problem.

Set feeds are slow

Feeds for sets with many comics can be so slow (>10s response time) that e.g. Netvibes fails to fetch the feed.

Reported 2010-04-07 by Berge

Create a REST API

A REST API for accessing comics, releases, images and a user's set have been requested by users multiple times.

One should consider using one of:

The API should probably have a service for authenticating using a user's username and password. This service will return the user's secret key. This key should be used to authenticate the client on all further requests, and may be stored by the client for future usage. A user should be able to reset the secret key from his account management page.

Invite system

Add the option of turning off open user registration and require new users to have an invite from an existing user.

Axecop feed changed

The axecop crawler is no longer working after they have changed the feed. It seems like the full resolution image is no longer in the feed.

Private feeds

The feeds should be updated to only work given a personal secret key in the feed URL.

"Previous" link from "latest view" isn't always correct

Given the following scenario:

  • The latest XKCD comic is from yesterday, 2011-11-21.
  • I'm at XKCD's "latest view" at /c/xkcd/ and see the release from yesterday.
  • I press "Previous".

I would expect to get to the release before the one I was just viewing, e.g. the latest release from before yesterday, e.g. from 2011-11-18.

In reality, I arrive at /c/xkcd/2011/11/21/ and see the exact same release. If I press "Previous" once more, I get to the release I wanted to get to in the first place: /c/xkcd/2011/11/18/

Improved set editing

When user sets (#26) have been implemented, set editing should be improved:

  • The "Automatically add new comics to the set" and "Hide comics without matching releases from view" settings can be moved to the account editing page.
  • Adding to or removing from a comics set should be possible to do with a small add/remove widget in any comic view.
    • The static widget should just be a stupid toggle, which doesn't change when the comic is or is not in the user's set. This is to make the page more cacheable.
    • Using JavaScript, the widget should be improved to vary with the comic being in the user's set or not.

Preload comics in 'next' page

The natural action once a page of comics has been read is to go to the next. If the images where preloaded in the background while you read the page load would be incredibly faster. That would be like way cool.... They don't even need to ever be shown as just loading them in the background will cache them in the browser.

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.