Releases: jodal/comics
v2.0.1 (2012-10-06)
- Add dependency on
pytz
. - Make conversion from publication date to epoch used by 11 crawlers aware of the time zone.
- Set sender of feedback emails to the email address of the logged in user.
Crawlers
- New:
antics
- New:
beetlebailey
- New:
choppingblock
- New:
dungeond
- New:
dustin
- New:
exiern
- New:
pickles
- Update:
boxerhockey
after site change. - Update:
exiern
after site change. - Update:
gregcomic
schedule. - Update:
havet
with better time zone handling. - Update:
kiwiblitz
after site change. - Update:
misfile
after site change. - Update:
mysticrevolution
to be more robust. - Update:
reveland
with better time zone handling. - Update:
spikedmath
to only fetch the correct images. - Update:
tehgladiators
schedule. - Update:
thegamercat
to fetch full size images. - Update:
virtualshackles
schedule. - Update:
walkoflife
with better time zone handling. - Update:
whattheduck
schedule. - Update:
whiteninja
schedule. - Update:
wulffmorgenthaler
to fetch the previous day due to releases being delayed. - Update:
yehudamoon
after site change. - Update:
zelda
schedule. - Update:
zits
after site change.
v2.0.0 (2012-06-11)
Version 2 refreshes the entire comics web interface. The aggregation part of comics is mostly unchanged since v1.1.
-
Design: New design based on Twitter Bootstrap.
-
User accounts:
- Add user account registration flow, which includes email address verification, login, logout, password change, and password reset.
- Add account management interface.
- Add user information to the footer of emails sent from the feedback page.
- Require a user-specific secret key to allow access to feeds. (Fixes: #25)
- Add support for requiring an invitation to register as a new user. Set the setting
INVITE_MODE
toTrue
to require invitation before registration. (Fixes: #29)
-
"My comics":
- Replace named comic sets with comic subscriptions associated with users, called "my comics". An importer for converting old comics sets to "my comics" is included. (Fixes: #26, #27)
- Add buttons to all comic views for adding the comic to "my comics".
- Extend comics list in the footer to include subscription management. (Fixes: #28, #49)
-
Comics browsing:
- Orders the "latest" view by fetched time instead of the comic name. New content is always at the top. (Fixes: #13)
- Removes browsing of weeks or N days, with the exception of +1 days, which is kept as a "today" view.
- Reimplemented lots of crusty old code using Django's class-based generic views.
- Reimplement feeds using regular views instead of Django's feed abstraction to reduce the feed response time enough to not cause timeouts when using e.g. Netvibes to subscribe to feeds. (Fixes: #5)
-
Comics crawling:
- Try to verify that image files are valid by loading them with PIL before saving them. (Fixes: #17)
- Use PIL instead of server-provided MIME types to identify the image type.
- Removed unused
check_image_mime_type
crawler setting. - Whitelist GIF, JPEG, and PNG files. All other file types are rejected. (Fixes: #16)
- Blacklisted the GoComics placeholder image.
-
Development:
- The WSGI file is now also used when using Django's
run server
command while developing, making the development and deployment environments more alike.
- The WSGI file is now also used when using Django's
v1.1 to v2.0 migration guide
-
New dependencies:
- django-registration >= 0.8, < 0.9
- django-bootstrap-form >= 2.0, < 2.1
-
Updated dependencies:
- Django >= 1.4, < 1.5
- django_compressor >= 1.1, < 1.2
-
Settings:
- Removed setting
COMICS_SITE_TAGLINE
. - Replaced setting
COMICS_MAX_DAYS_IN_PAGE
withCOMICS_MAX_RELEASES_PER_PAGE
. - Removed
COMICS_MEDIA_ROOT
andCOMICS_MEDIA_URL
. As static files now are located underSTATIC_ROOT
andSTATIC_URL
, the entire namespace underMEDIA_ROOT
andMEDIA_URL
are now available for downloaded media, e.g. crawled comics.
- Removed setting
-
Commands:
loadmeta
is now calledcomics_addcomics
. It no longer defaults to adding all comics to your installation, but you must now specify-c all
to do so.getcomics
is now calledcomics_getreleases
. Remember to update your cronjobs.
-
Project layout:
- Moved
manage.py
one level higher in the directory structure, to follow the new defaults in Django 1.4. Again, remember to update your cronjobs. - Moved file with WSGI application from
wsgi/deploy.wsgi
tocomics/wsgi/__init__.py
to follow the new default structure in Django 1.4. Remember to update your web server configuration.
- Moved
-
As the comic "sets" functionality has been replaced, the app
comics.sets
is no longer activated by default. If you're upgrading from comics v1.x and have existing sets in your database, you should activate thecomics.sets
app so that your users may import their old comic sets into their new user accounts. Add the following to your local settings file,comics/settings/local.py
:from comics.settings.base import INSTALLED_APPS INSTALLED_APPS += ('comics.sets',)
-
Renamed :class:
MetaBase
to :class:ComicDataBase
, and moved it tocomics.core.comic_data
. Remember to update any custom crawlers. -
Database changes:
- The field
Comic.number_of_sets
has been removed as it is no longer used. If you would want to rollback from 2.x to 1.x the data in this field can be regenerated, as it's only a denormalization of data available elsewhere. - The datetime field
Comic.added
has been added. It is automatically populated with a date in the far past upon database migration. - Added two new database indexes to the
Release
model, which both help a lot towards making comics browsing faster. They will be automatically created on database migration.
All of these changes can be automatically applied to your database. To do so, run::
python manage.py syncdb --migrate
- The field
v1.1.6 (2012-06-10)
Bugfixes
LxmlParser.text()
now returns an empty list if :attr:allow_multiple
is :class:True
and :attr:default
is not specified. This is identical to how all other :class:LxmlParser
selector methods already work.
Crawlers
- New:
oatmeal
- New:
zelda
- Update:
abstrusegoose
has a schedule. - Update:
apokalips
is no longer published. - Update:
asofterworld
after feed change. - Update:
atheistcartoons
is no longer published. - Update:
axecop
has a schedule. - Update:
basicinstructions
has a new schedule. - Update:
bgobt
is no longer published. - Update:
boasas
is no longer published. - Update:
bunny
is no longer published. - Update:
carpediem
is no longer published. - Update:
countyoursheep
is no longer published. - Update:
crfh
after site change. - Update:
darklegacy
does not follow a schedule. - Update:
devilbear
does not follow a schedule. - Update:
dieselsweetiesweb
to be more robust to missing elements in the feed. - Update:
goblins
does not follow a schedule. - Update:
gunshow
has a new release schedule. - Update:
hijinksensue
after feed change. - Update:
icanbarelydraw
has a new release schedule. - Update:
kiwiblitz
does not follow a schedule. - Update:
littlegamers
does not follow a schedule. - Update:
m
is no longer published. - Update:
magpieluck
is no longer published. - Update:
pcweenies
does not follow a schedule. - Update:
picturesforsadchildren
after feed change. - Update:
radiogaga
has a new release schedule. - Update:
rhymeswithwitch
is no longer published. - Update:
spaceavalanche
after feed change. - Update:
stuffnoonetoldme
is no longer published. - Update:
subnormality
got a sensible history capability. - Update:
tehgladiators
does not follow a schedule. - Update:
theidlestate
does not follow a schedule. - Update:
utensokker
is no longer published. - Update:
uvod
got an updated homepage address. - Update:
virtualshackles
does not follow a schedule. - Update:
walkoflife
does not follow a schedule.
v1.1.5 (2012-05-09)
The regular crawler updates and a small bug fix.
Bugfixes
- Handle aggregated images with MIME type
image/pjpeg
as JPEG images instead of rejecting them.
Crawlers
- New:
chainsawsuit
- New:
goblins
- New:
subnormality
- Update:
applegeeks
was discontinued a long time ago. - Update:
applegeekslite
was discontinued a long time ago. - Update:
calamitesofnature
has been discontinued. - Update:
duelinganalogs
was broken due to feed changes. - Update:
fagprat
has a new schedule. - Update:
fanboys
was broken due to feed changes. - Update:
heltnils
has a new schedule. - Update:
hijinksensue
was broken due to feed changes. - Update:
playervsplayer
was broken due to feed changes. - Update:
pondus
was broken due to a site change. - Update:
savagechickens
has a new schedule. - Update:
theidlestate
after site redesign and addition of a feed. - Update:
veslemoy
has a new schedule.
v1.1.4 (2012-04-07)
The regular crawler updates and a performance improvement.
Bugfixes
-
Store only the name of recently used sets in the session, instead of full set objects. After applying this fix, you should either delete all existing sessions:
$ python manage.py shell >>> from django.contrib.sessions.models import Session >>> Session.objects.all().delete()
Or migrate the content of your existing sessions:
$ python manage.py cleanup $ python manage.py shell # Then run the following Python script in the Python shell: from django.contrib.sessions.backends.db import SessionStore from django.contrib.sessions.models import Session store = SessionStore() for session in Session.objects.all(): data = session.get_decoded() set_names = [] for set in data.get('recent_sets', []): if hasattr(set, 'name'): set_names.append(set.name) else: set_names.append(set) data['recent_sets'] = set_names session.session_data = store.encode(data) session.save() print '.',
Crawlers
- New:
kellermannen
- New:
manalanextdoor
- New:
thegamercat
- New:
walkoflife
- Update
darylcagle
after feed change. - Update
playervsplayer
after feed change.
v1.1.3 (2012-01-29)
This release adds 9 new crawlers and updates 46 existing crawlers.
Crawlers
- New:
beyondthetree
- New:
dresdencodak
- New:
extraordinary
- New:
gunnerkrigg
- New:
icanbarelydraw
. Contributed by Jim Frode Hoff. - New:
manlyguys
. Contributed by Jim Frode Hoff. - New:
menagea3
- New:
sequentialarts
- New:
somethingofthatilk
. Contributed by Jim Frode Hoff. - Update
amazingsuperpowers
with new release schedule. - Update
billy
which is no longer published. - Update
bizarro
with new release schedule. - Update
bizarrono
which is no longer published. - Update
boasas
after site change. - Update
bgobt
with new release schedule. - Update
buttersafe
with new release schedule. - Update
calvinandhobbes
after site change. - Update
carpediem
after site change. - Update
darylcagle
after site change. - Update
devilbear
with new release schedule. - Update
eatthattoast
after site change. - Update
eon
after site change. - Update
extralife
to be more robust. - Update
fanboys
after site change. - Update
gregcomic
with new release schedule. - Update
gucomics
after site change. - Update
heltnils
after site change. - Update
hipsterhitler
after site change. - Update
kalscartoon
after site change. - Update
lefthandedtoons
with new release schedule. - Update
loku
which is no longer published. - Update
m
with new release schedule. - Update
mortenm
which is no longer published. - Update
mysticrevolution
after site change. - Update
nemibt
with new release schedule. - Update
nerfnow
with new release schedule. - Update
optipess
with new release schedule. - Update
orneryboy
with new release schedule. - Update
pidjin
after site change. - Update
pondusno
which is no longer published. - Update
questionablecontent
to be more robust. - Update
radiogaga
after site change. - Update
reallife
with new release schedule. - Update
reveland
with new release schedule. - Update
romanticallyapocalyptic
to be more robust. - Update
savagechickens
with new release schedule. - Update
sheldon
with new release schedule. - Update
somethingpositive
after site change. - Update
stickycomics
after site change. - Update
tehgladiators
after site change. - Update
thedreamer
with new release schedule. - Update
threewordphrase
to be more robust. - Update
utensokker
with new release schedule. - Update
wulffmorgenthalerap
after site change. - Update
yehudamoon
with new release schedule.
v1.1.2 (2011-09-18)
A couple of bugfixes easing the transition from 1.0.x to 1.1.x by jwyllie83, and some new crawlers.
Bugfixes
-
Updated South requirement to v0.7, which is needed to support the last migration introduced by comics v1.1.0.
-
If you use WSGI, you can now add a file
wsgi/local.py
based off ofwsgi/local.py.template
to set local settings for WSGI, like the use ofvirtualenv
and debugging settings. This removes the need for changing Git tracked files, likedeploy.wsgi
for adding e.g.virtualenv
support.
Crawlers
- New:
buttersafe
- New:
doghouse
- New:
eatthattoast
- New:
hejibits
- New:
optipess
- New:
savagechickens
- New:
threewordphrase
- New:
timetrabble
- Update
pennyarcade
after site change.
v1.1.1 (2011-08-22)
Some fixes a week after the v1.1 feature release.
Bugfixes
- Fix missing whitespaces on about page after HTML minification.
- Add missing CSRF token to feedback form.
Crawlers
- Update
asofterworld
to work after feed change.
v1.1.0 (2011-08-15)
-
New/upgraded requirements:
- Django 1.3
- django_compressor
- cssmin
- jsmin
-
Page speed improvements:
- CSS and JavaScript is now merged and minified.
- HTML is minified.
- Optional Google Analytics code is upgraded to the asynchronous version.
- All icons have been replaced with sprites to reduce number of elements that
must be downloaded.
-
Slightly refreshed graphical design.
-
The "all comics" list at the bottom of the page have been changed from a cloud to lists in four columns.
-
The optional comic meta data search functionality have been removed.
-
Better handling of inactive comics:
- Add
active
flag to comics. - Marked no longer published comics as inactive.
- Inactive comics are no longer loaded by the
loadmeta
command unless explicitly specified by name or they have been previously loaded. In other words, inactive comics will not automatically be included in new installations. - Inactive comics are no longer included in the top 10 on the front page.
- Inactive comics are now marked in the comics list on the bottom of all pages.
- Inactive comics are now marked in the comics list page.
- Inactive comics are now excluded from the set edit form, effectively
removing them from the set on save.
- Add
v1.0.x to v1.1.x migration guide
Ordered steps for synchronizing your v1.0.x installation with v1.1.0. You should perform them in order.
Using virtualenv
If you choose to use virtualenv
keeping all of comics' dependencies sandboxed, be sure to activate the environment both in your cronjob and when manually executing manage.py
:
source <path_to_virtualenv>/bin/activate
python manage.py getcomics
If you use WSGI, the WSGI file must be modified to support virtualenv
. See
the source code for how the bundled WSGI file solves this.
New dependencies
There are several new dependencies. All of them are listed in the file
requirements.txt
and may be installed using pip
, optionally inside a
virtualenv
:
pip install -r requirements.txt
To avoid compiling dependencies that are not pure Python and thus requires the installation of various C libraries and Python's development packages, it may be wise to use your distribution's package manger for some packages, like lxml
and PIL
. E.g. on Ubuntu I would install the dependencies like this:
sudo apt-get install python-lxml python-imaging
pip install -r requirements.txt
This way, lxml
and PIL
are installed from APT, and pip
installs the remaining pure Python dependencies.
Settings changes
Database settings now use the new Django 1.2 format. See comics/settings/base.py
for the new default setting and use it as an example for porting your comics/settings/local.py
settings file.
Database migration
A new database field has been added. To migrate your database to work with 1.1.0, run:
python manage.py migrate
Warning
You need South v0.7 or later to perform the database migration.
comics v1.1.0's requirements.txt
file only require South v0.6 or later. This is a bug, and the migration will not work if you're using South v0.6.x.
Static files collection
We now use Django's new static files system. After installing you need to "collect" your static files. See :ref:collecting-static-files
for how to do this.
v1.0.8 (2011-08-10)
Just new and updated crawlers.
Crawlers
- New:
mysticrevolution
- New:
theidlestate
- Update
havet
to work after feed removal. - Update
reveland
to work after feed removal. - Update
thechalkboardmanifesto
to work after feed change. - Update
utensokker
to work after feed removal. - Update
whattheduck
schedule.