1# Changelog
2All notable changes to this project will be documented in this file.
3
4The format is based on
5[Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
6
7## [Unreleased]
8
9## [2.17] - 2020-02-02
10
11This will be the last release with Python 2 support. This comes shortly after
12the 2.16 release to fix the broken update check in that release.
13
14### Added
15- Comic SmackJeeves/WhatWeRememberTheMost
16- Engine for WebToons (big thanks to Daniel Ring)
17
18### Fixed
19- Update check now always shows assets instead of the repo tarball.
20- Fixes Wapsi Square (#149).
21
22## [2.16] - 2020-01-12
23
24### Added
25- Many, many comics :D
26- Comic modules can now use a proper HTML parser (based on [lxml]) with XPath
27  or CSS expressions.
28- Users are notified if they are using modules which were
29  removed/moved/renamed.
30- Use [CodeClimate] to analyse source code quality and [CodeCov] to track test
31  coverage.
32
33[lxml]: https://FIXME
34[CodeClimate]: https://codeclimate.com/github/webcomics/dosage
35[CodeCov]: https://codecov.io/gh/webcomics/dosage
36
37### Changed
38- Annotation text can now be optional (Fetching a comic doesn't fail if it
39  doesn't appear on every page).
40- When using HTML output, next and previous links are now also at the end of
41  the page.
42- Use the Python import system (previously PEP-302) instead of the file system
43  to find modules.
44- Remove embedded colorama, depend on it instead.
45- Replace homegrown PY2/3 compatibility with six.
46- Build dosage [website] with staticsite.
47- Reworked comic module structure. Webcomics are now class instances instead of
48  classes. While this doesn't change that much for single comic modules,
49  "virtual" modules covering multiple comics can now be written much more
50  concise. See issue #42 for details.
51- Windows build is now one standalone EXE file (thanks to [PyInstaller]).
52- Allow combining -n with -c or -a (related to #90). This allows to set an
53  upper bound to normally "unconstrained" fetch modes.
54- Replace forced "sleep" between requests with a simple host-based throttling
55  mechanism.
56- Uses [imagesize] instead of Pillow to get image sizes. (Pillow is a very big
57  libary with many binary dependencies and we were using only this feature from
58  it)
59
60[website]: https://dosage.rocks/
61[PyInstaller]: https://www.pyinstaller.org/
62[imagesize]: https://pypi.org/project/imagesize/
63
64### Removed
65- Many, many broken/disappered comics :(
66
67### Fixed
68- Many, many comics :D
69- Let Requests figure out encodings.
70- Don't crash when HTML output is run more than once per day. Closes: wummel#78
71
72
73## [2.15] - 2014-07-03
74
75### Added
76- TheThinHLine, Whomp. Closes: wummel#64, wummel#67
77
78### Fixed
79- DungeonsAndDenizens, GirlGenius, GirlsWithSlingshots, LookingForGroup,
80  ScandinaviaAndTheWorld. Closes: wummel#63, wummel#66
81
82
83## [2.14] - 2014-06-08
84
85### Changed
86- Source releases are now available from PyPI.
87
88### Fixed
89- LoadingArtist, PennyArcade, ZenPencils. Closes: wummel#62
90
91
92## [2.13] - 2014-03-03
93
94### Added
95- OhJoySexToy, TheGentlemansArmchair, Underling, DongeonsAndDenizens,
96  GrimTalesFromDownBelow, TheLandscaper, DieFruehreifen, MonsieurLeChien.
97
98### Fixed
99- EvilInc, FredoAndPidjin.
100- Make download threads interruptable with Ctrl-C.
101
102
103## [2.12] - 2014-01-24
104
105### Changed
106- The --basepath option now replaces "~" or "~user" with the users home
107  directory.
108
109### Fixed
110- AbstruseGoose, AxeCop, BardsWorth, DemolitionSquad.
111
112### Removed
113- ChugWorth (broken).
114
115
116## [2.11] - 2014-01-15
117
118### Added
119- CampComic, EatThatToast, FoulLanguage, PoorlyDrawnLines and
120  StandStillStaySilent.
121
122
123## [2.10] - 2014-01-05
124
125### Added
126- Comic strips are downloaded in parallel. To prevent overload of comic sites,
127  no more than one download thread per host is allowed.
128
129### Changed
130- Ensure only one instance of dosage is running to prevent accidental DoS when
131  fetching multiple comics of one site.
132- Wait up to 1 second between two URL page downloads.
133
134
135## [2.9] - 2013-12-22
136
137### Added
138- EdmundFinney, Gaia, GaiaGerman, InternetWebcomic, NotInventedHere,
139  RedsPlanet, RomanticallyApocalyptic, ScandinaviaAndTheWorld, TheGamerCat,
140  Weregeek. Thanks to Null000 for the patches.
141  Closes: wummel#48
142
143### Fixed
144- Ensure maximum display width on images in RSS and HTML output.
145- Get larger images from GoComics.
146- AbstruseGoose and QuestionabelContent.  Closes: wummel#50
147
148
149## [2.8] - 2013-12-08
150
151### Added
152- Added image text saving for comic strips. Used in xkcd and AbstruseGoose
153  comics to store the image title text. Closes: wummel#42
154
155### Fixed
156- ForLackOfABetterComic.
157- Store large xkcd images if available. Closes: wummel#43
158
159
160## [2.7] - 2013-11-24
161
162### Fixed
163- Fixed GoComic image URL matcher.
164- Fixed AxeCop, PensAndTales_FireflyCross.
165
166### Removed
167- ComicFury_Rosie, InsideOut, SodiumEyes (broken).
168
169
170## [2.6] - 2013-11-12
171
172### Added
173- DarthsAndDroid.
174- Document how to add new comics. Closes: wummel#39
175
176### Fixed
177- Fixed all DrunkDuck comics since the domain has moved.
178- Fixed AllTheGrowingThings, AxeCop, BookOfBiff, BroodHollow, Carciphona,
179  CatAndGirl, CatsAndCameras, ChainsawSuit, ElGoonishShive, EvilInc, Garanos,
180  GleefulNihilism, LeastICouldDo, MysteriesOfTheArcana, NineteenNinetySeven,
181  NoNeedForBushido, Oglaf, OneQuestion, OverCompensating,
182  ScenesFromAMultiverse, Shivae, Spinnerette, Wigu, Wonderella,
183  Wulffmorgenthaler. Closes: wummel#41
184
185### Removed
186- AetheriaEpics, ChuckBrain, Fallen, HMHigh, IanJay, InsideOut, Nodwick,
187  WebcomicsNation_ClownSamurai (broken).
188
189### Changed
190- Display genres in module help (dosage -m).
191
192
193## [2.5] - 2013-07-18
194
195### Added
196- EatLiver, ICanBarelyDraw, JimBenton, MarriedToTheSea and NatalieDee.
197  Closes: wummel#37
198
199### Fixed
200- AxeCop, GoblinsComic, KevinAndKell and other comics.
201
202
203## [2.4] - 2013-06-24
204
205### Added
206- LinuxComFridayFunnies and OnTheFasttrack.
207
208### Fixed
209- The `--continue` option fetched only one image. Closes: wummel#32
210
211
212## [2.3] - 2013-05-26
213
214### Added
215- Script to create a CBZ archive for a given comic directory.
216
217### Fixed
218- LookingForGroup and other comics. Closes: wummel#31
219
220
221## [2.2] - 2013-04-30
222
223### Added
224- ARedTailsDream, Carciphona, Curtailed, GirlGenius, Lackadaisy, SabrinaOnline,
225  TheDreamlandChronicles, TwoGuysAndGuy and Unsound. Patches by Dirk Reiners.
226  Closes: wummel#29
227- Comics which are not updated anymore can now be marked. Closes: wummel#30
228
229### Changed
230- Ignore trailing '/' at end of comic names. Useful when using shell completion
231  to pick comics. Patch by Dirk Reiners.
232
233### Fixed
234- DorkTower, MadamAndEve and Saturday Morning Breakfast Cereal, and improve
235  image filenames of CtrlAltDel. Patches by Dirk Reiners.
236
237
238## [2.1] - 2013-04-14
239
240### Added
241- Some comic descriptions from their webpages.
242
243### Fixed
244- Fix output encoding errors on comic listing. Closes: wummel#24
245
246
247## [2.0] - 2013-04-11
248
249### Added
250- DamnLol, EverydayBlues, ExtraOrdinary, ForLackOfABetterComic, GoblinsComic,
251  RealmOfAtland, Science, SnowFlakes, StuffNoOneToldMe, WebDesignerCOTW and
252  ZenPencils.
253- Added the `--vote` option to vote for popular comics.
254
255### Fixed
256- Add `install_requires` to setup.py to fix pip install. Closes: wummel#22
257- Curvy, DasLebenIstKeinPonyhof, ExtraLife, EyeOfRamalach,
258  KatzenfutterGeleespritzer, Oglaf, Precocious, SnowFlame. Closes: wummel#23
259
260### Removed
261- Remove deprecated mainline script.
262- CaribbeanBlue, GreystoneInn, SarahZero.
263
264
265## [1.15] - 2013-04-01
266
267### Added
268- DrMcNinja, Schuelert.
269- Added a new JSON output logger.
270
271### Changed
272- Add better source for HagarTheHorrible. Closes: wummel#21
273- Display error traceback information in verbose mode.
274
275### Fixed
276- Fixed GoComics by downloading zoomed images.
277- Fixed WorlWorldSaga* and Eriadan.
278
279### Removed
280- DerFlix.
281
282
283## [1.14] - 2013-03-21
284
285### Added
286- Added KeenSpot comic strips and enable ComicGenesis comic strips.
287- CucumberQuest, DasLebenIstKeinPonyHof, DemolitionSquad, DerFlix,
288  DerTodUndDasMaedchen, DogHouseDiaries, FonFlatter, FullFrontalNerdity,
289  GeeksNextDoor, Hipsters, KatzenfutterGeleespritzer, KickInTheHead,
290  MyCartoons, OrnerBoy, ParallelUniversum, Ruthe, SandraAndWooGerman,
291  WormWorldSaga. Closes: wummel#15, #19
292
293### Changed
294- The scraper can check a list of previous and image link regular expressions,
295  not only a single one.
296- Continue searching for images if one image is not found. Closes: wummel#18
297
298### Fixed
299- Fix Dilbert image naming. Closes: wummel#20
300
301
302## [1.13] - 2013-03-11
303
304### Added
305- AhoiPolloi, AxeCop, Bearmageddon, DeadWinter, HarkAVagrant, IAmArg,
306  LoadingArtist, Nnewts, PHDComics, PokeyThePenguin, SnowFlame, WorldOfMrToast
307  and Zwarwald.
308
309### Changed
310- Comic lists are displayed one page at a time.
311- HTML output embeds the images in the page and show the page URLs.
312- The `--output` option can be given multiple times.
313
314### Fixed
315- Catch error when piping output to another program or file under Windows.
316  Closes: wummel#13
317- Catch error when multiple comics match.  Closes: wummel#16
318- Retry download on empty content to reduce empty file errors.
319- Don't save thumbnails in LookingForGroup. Closes: wummel#17
320
321
322## [1.12] - 2013-03-04
323
324### Added
325- AlphaLuna, AlphaLunaSpanish, BrentalFloss, BrentalFlossFit,
326  BrentalFlossGuest, DangerouslyChloe, MagickChicks, MenageA3, Namesake,
327  ShadowGirls, StickyDillyBuns.
328
329### Fixed
330- Fix option parsing for `-l`, `--singlelist` and `--version`.
331  Closes: wummel#10
332- Ensure the file is written to disk on save and detect empty files as an
333  error. Closes: wummel#11
334
335
336## [1.11] - 2013-03-01
337
338### Added
339- Caggage, ManlyGuysDoingManlyThings, SandraAndWoo and SupernormalStep.
340
341### Changed
342- Always use connection pooling when downloading pages or files.
343- Replace the deprecated argument parser optparse with argparse.
344- The Windows installer now adds a help entry to the start menu and has a flag
345  to add dosage.exe to the PATH.
346
347### Fixed
348- Correct the list of characters not to quote for URL path encoding.  This
349  fixes a lot of download errors of DrunkDuck comics.
350- Fixed a lot of comic strips. Closes: wummel#8
351
352
353## [1.10] - 2013-02-10
354
355### Added
356- SequentialArt, VampireCheerleader, GrrlPower, Spinnerette, HijinksEnsue,
357  Nedroid, Antics, ChannelAte, ToonHole, ThisIsIndexed, WastedTalent,
358  ChainsawSuit, ThreePanelSoul, SpaceTrawler, ScenesFromAMultiverse,
359  BroodHollow, BoxerHockey, Wonderella, BadMachinery, TheBrads,
360  FirstWorldProblems, OmakeTheater, SkinDeep, ParadigmShift.
361- Added the `--continue` option.
362
363### Changed
364- Add encoding, inline images and guid tags to RSS output.
365
366### Fixed
367- Gunnerkrigcourt.
368
369
370## [1.9] - 2013-01-28
371
372### Added
373- AmazingSuperPowers, PandyLand.
374- Added all comic strips from Arcamax (including Hagar the horrible).
375- Document parallel download example with xargs on Unix systems.
376
377### Changed
378- CyanideAndHappiness image filename now has the strip number prefixed.
379- Indexed retrieval can now retrieve all (`-a`) or some (`-n`) strips, not only
380  one.
381
382### Fixed
383- Fixed LeastICouldDo image URL.  Closes: wummel#1
384- Fix URL norming. Closes: wummel#2
385- Fix wrong option name in docs: it's `-a` instead of `-c`. Closes: wummel#3
386- Fix UnboundLocalError when using indexed retrieval. Closes: wummel#4
387- Ensure the generated comic names do not exceed 100 characters so they do not
388  cause problems with path length restrictions.
389- Set correct homepage url so "pip install dosage" works. Closes: wummel#5
390
391
392## [1.8] - 2012-12-20
393
394### Changed
395- Add compatibility to requests module >= 1.0.
396- Updated the comic list with the generator scripts.
397
398
399## 1.7 - 2012-12-18
400
401### Added
402- Added proper return codes for error conditions.
403- Added more robust regular expressions for HTML tags. They match case
404  insensitive and ignore whitespaces now.
405- Respect the robots.txt of downloaded HTML pages
406
407### Changed
408- Use the python-requests module for HTTP requests.
409- Added support for dynamic configuration values.
410- Require and use Python 2.7
411- Removed the zope dependencies by adding an internal plugin search mechanism.
412- Replace the disable mechanism with an adult option.
413- Add scripts to automate comic listings for Creators, Universal, KeenSpot,
414  GoComics and DrunkDuck.
415- Refactored the test comic routine into fully automatic and complete tests
416  cases for every comic.
417- Improved terminal feature detection.
418
419### Fixed
420- Fix all comics!
421- Don't add empty URLs to the list of found URLs.
422
423### Removed
424- Download progress bars
425
426## 1.6.0
427
428- The "Not Dead Yet" release.
429
430### Added
431- Too many comics to list, really.
432
433### Changed
434- Revamped plugin system, the first step on the road to Twisted (Needs twisted
435  and zope.interface).
436
437## 1.5.8
438
439### Added
440- BonoboConspiracy, ChasingTheSunset, Comedity, GoneWithTheBlastwave,
441  `KeenSpot/*` (a *LOT* of KeenSpot submodules), NichtLustig, OtenbaFiles,
442  Wulffmorgenthaler, Y.
443
444### Changed
445- AbstractGender, AlienLovesPredator, AppleGeeks, EarthsongSaga, NewWorld,
446  WhiteNinja.
447- Renamed CatLegend to KeenSpot/CatLegend.
448- All `KeenSpot/*` comic subnames no longer have "The" prefixes.
449- All `UComics/*` and `UComicsEspanol/*` are now `UClick/*`.
450
451### Removed
452- KeenSpot/TheDevilsPanties (duplicate of KeenSpot/DevilsPanties)
453
454## 1.5.7
455
456### Added
457- AbleAndBaker, AcademyVale, Aikida, Angels2200, BetterDays, BlankLabel
458  (virtual module), BoredAndEvil, Catharsis, ChuckAndElmo,
459  CloneManga/PennyTribute, CourtingDisaster, DeathToTheExtremist, DogComplex,
460  DownToEarth, Dracula, DragonTails, DrFun, DungeonCrawlInc, ExtraLife,
461  FalconTwin, FightCastOrEvade, Flipside, Housd, JerkCity, JoeAndMonkey,
462  KeenSpot/SuicideForHire, LasLindas, Nekobox, Nervillsaga, NewAdventures,
463  NewAdventuresOfBobbin, Nihilism, Nukees, OkayPants, PartiallyClips,
464  PensAndTales, RWWR, WebcomicsNation (virtual module), Yirmumah.
465
466### Fixed
467- Important SmackJeeves module fix. Catchup used to loop around from the first
468  strip to the last one, thus potentially hammering the SmackJeeves servers
469  with floods of requests from neverending catchups.
470- Asif, CatLegend, CloneManga/NanasEverydayLife, CloneManga/PaperEleven,
471  DrunkDuck, EarthsongSaga, ErrantStory, InkTank, KiagiSwordscat, Qwantz, SGVY,
472  SmackJeeves, Smamusement, SnafuComics, UComicsEspanol.
473
474### Changed
475- Renamed KeenSpot/Stubble to Stubble.
476- `KeenSpot/<various>` (ComicGenesis migration).
477
478### Removed
479- Various DrunkDuck comics.
480
481
482## 1.5.6
483
484### Added
485- CandyCartoon, CloneManga/Kanami, Drowtales, KeenSpot/FoxTails, Krakow,
486  SmackJeeves (virtual module).
487
488### Fixed
489- CrapIDrewOnMyLunchBreak, CtrlAltDel, DMFA, EarthsongSaga,
490  EverybodyLovesEricRaymond, GirlsWithSlingshots, KeenSpot,
491  KeenSpot/WapsiSquare, NewWorld, PennyArcade, PiledHigherAndDeeper,
492  QuestionableContent, SluggyFreelance, SnafuComics, Sokora, UComicsEspanol
493  (updated submodules), UComics (updated submodules).
494
495### Changed
496- Renamed KeenSpot/CatLegend to CatLegend.
497- Renamed KeenSpot/DominicDeegan to DominicDeegan.
498- Renamed DrunkDuck/TriquetraCats to KeenSpot/TriquetraCats.
499- Renamed KeenSpot/NekoTheKitty to NekoTheKitty.
500- Renamed KeenSpot/TheNoob to TheNoob.
501
502
503## 1.5.5
504
505### Added
506- AbstractGender, AnimeArcadia, CaptainSNES, DrunkDuck/Holy_Zen, EarthsongSaga,
507  NinthElsewhere (9th Elsewhere), PebbleVersion, SGVY (Sparkling Generation
508  Valkyrie Yuuki), SuccubusJustice.
509
510### Changed
511- Renamed KeenSpot/ErrantStory to ErrantStory.
512
513### Fixed
514- DrunkDuck, PvPonline, SluggyFreelance.
515
516
517## 1.5.4
518
519### Added
520- Andiwear, DrunkDuck (virtual), EverybodyLovesEricRaymond, FantasyRealms,
521  KeenSpot/2WayMirror, KeenSpot/ANT, KeenSpot/AngelTheDemoness,
522  KeenSpot/Apotheosis, KeenSpot/Aquatica, KeenSpot/BadlyDrawnKitties,
523  KeenSpot/BobAndFred, KeenSpot/BrunoTheBandit, KeenSpot/CatLegend,
524  KeenSpot/EdibleDirt, KeenSpot/FelicityFlint, KeenSpot/Flem,
525  KeenSpot/GreenAvenger, KeenSpot/LangLang, KeenSpot/Picatrix,
526  KeenSpot/ScandalSheet, KeenSpot/Shifters, KeenSpot/SoapOnARope,
527  KeenSpot/SuburbanJungle, KeenSpot/TheClassMenagerie,
528  KeenSpot/TheDevilsPanties, KeenSpot/ToddAndPenguin, KeenSpot/TwoLumps,
529  KeenSpot/Wereworld, KeenSpot/YouDamnKid, SokoraRefugees.
530
531### Fixed
532- AbsurdNotions, CloneManga, PastelDefender, PennyArcade, SluggyFreelance.
533
534
535## 1.5.3
536
537### Added
538- CatAndGirl, CloneManga, Commissioned, JoyOfTech, KeenSpot/AlphaLuna,
539  KeenSpot/Lowroad75, KeenSpot/Werechild, TheWotch, TonjaSteele.
540
541### Fixed
542- DieselSweeties, LittleGamers, PennyArcade, StarCrossdDestiny, VGCats.
543- Fixed a bug that caused RSS output to crash if the file already existed, but
544  had no items.
545
546
547## 1.5.2
548
549### Added
550- KeenSpot/TheNoob, PiledHigherAndDeeper.
551
552### Fixed
553- ALessonIsLearned, Misfile, RealLife, UComics, UComicsEspanol.
554- Removed some debugging cruft that slipped through in the last release.
555
556
557## 1.5.1
558
559### Added
560- BadBlood, BetterYouThanMe, Marilith, MyWarWithCulture.
561- AModestDestiny, AbsurdNotions, Altermeta, Evercrest, GUComics,
562  KeenSpot/BoomerExpress, KevinAndKell, LethalDoses, LethalDosesClassic,
563  ListeningTo11975MHz, MyPrivateLittleHell, PerkiGoth, WhyTheLongFace, Winter
564  (contributed by TobiX).
565- Bhag, ChroniclesOfGaras, CrapIDrewOnMyLunchBreak, EternalVenture, Frump,
566  MinesBigger, NeoGreenwood, NuklearPower, PreludesEnd, ShadowInTheMirror
567  (contributed by Shrimp).
568
569### Fixed
570- Creators, PennyArcade, UnicornJelly.
571- RSS output tweaked.
572
573### Changed
574- `--list` now outputs in columns; pass `--single-list` to get the old
575  behaviour (thanks TobiX).
576- Split UComics/UComicsEspanol (and removed comics no longer supported)
577- Output event modules now generate proper URLs. You can now pass a base URL
578  with --base-url, which should correspond to --base-path. If not passed,
579  Dosage will try to generate a working file:/// URL, but this may not work in
580  some circumstances.
581
582
583## 1.5.0
584
585### Added
586- Creators/Archie, Creators/AskShagg, Creators/ForHeavensSake,
587  Creators/Rugrats, Creators/StateOfTheUnion, Creators/TheDinetteSet,
588  Creators/TheMeaningOfLila, Creators/WeePals, Creators/ZackHill,
589  DoemainOfOurOwn, JamesFrancis/gonzo, JamesFrancis/psycindom0,
590  JamesFrancis/psycindom1, JamesFrancis/psycindom2, KeenSpot/AlienDice,
591  KeenSpot/Avalon, KeenSpot/CountYourSheep, KeenSpot/DominicDeegan,
592  KeenSpot/ElGoonishShive, KeenSpot/ElfLife, KeenSpot/ErrantStory,
593  KeenSpot/EverythingJake, KeenSpot/FriendlyHostility, KeenSpot/FunnyFarm,
594  KeenSpot/GamingGuardians, KeenSpot/GeneCatlow, KeenSpot/GreystoneInn,
595  KeenSpot/NaughtFramed, KeenSpot/PastelDefender, KeenSpot/RoadWaffles,
596  KeenSpot/Scatterplot, KeenSpot/SchlockMercenary, KeenSpot/UberSoft,
597  KeenSpot/UnicornJelly, KeenSpot/ZebraGirl, Spamusement, TheOrderOfTheStick,
598  UComics/animatedoliphant, UComics/anntelnaes, UComics/askcaptainribman,
599  UComics/baldoespanol, UComics/barbarabrandon, UComics/bensargent,
600  UComics/billdeore, UComics/brewsterrockit, UComics/brucehammond,
601  UComics/calvinandhobbesespanol, UComics/cathyespanol, UComics/chanlowe,
602  UComics/condorito, UComics/danasummers, UComics/danwasserman,
603  UComics/davidhorsey, UComics/dicklocher, UComics/dickwright,
604  UComics/donwright, UComics/dougmarlette, UComics/drewsheneman,
605  UComics/facesinthenews, UComics/foxtrotespanol, UComics/fredbassetespanol,
606  UComics/garfieldespanol, UComics/garyvarvel, UComics/gaturro,
607  UComics/glennmccoy, UComics/hubertandabby, UComics/jackhiggins,
608  UComics/jackohman, UComics/jeffdanziger, UComics/laloalcaraz,
609  UComics/mattdavies, UComics/modestyblaise, UComics/muttandjeffespanol,
610  UComics/neurotica, UComics/overboardespanol, UComics/patoliphant,
611  UComics/paulconrad, UComics/pepe, UComics/poochcafeespanol,
612  UComics/pricklycity, UComics/sigmund, UComics/smallworld, UComics/stevesack,
613  UComics/stuartcarlson, UComics/tedrall, UComics/thebigpicture,
614  UComics/theelderberries, UComics/thefifthwave, UComics/thefuscobrothers,
615  UComics/themiddletons, UComics/thequigmans, UComics/tomtoles,
616  UComics/tonyauth, UComics/tutelandia, UComics/walthandelsman,
617  UComics/waynestayskal, UComics/ziggyespanol, WiguTV.
618- AlienLovesPredator, AllGrownUp, AsylumOn5thStreet, BizarreUprising,
619  DoctorRoboto, EntertainDome, LessThanKate, OurHomePlanet, Sternstaub,
620  TheLounge (contributed by Shrimp).
621- DMFA, FauxPas, IrregularWebcomic, KeenSpot/DexLives, KeenSpot/GoblinHollow,
622  KeenSpot/InAPerfectWorld, KeenSpot/JoeAverage, KeenSpot/MariposaRevelation,
623  KeenSpot/NekoTheKitty, KeenSpot/NipAndTuck, KeenSpot/OneOverZero,
624  KeenSpot/TalesOfTheQuestor, KeenSpot/WorldOfFenninRo (contributed by TobiX).
625- Added an RSS output event. (contributed by Colin Alston)
626
627### Changed
628- Dosage now sends a more descriptive User-Agent HTTP header.
629- Specific modules can now be disabled by specifying them in
630  /etc/dosage/disabled (global) and ~/.dosage/disabled (local).
631
632### Fixed
633- Dominion, SluggyFreelance, UserFriendly, Wigu.
634- KeenSpot/GeneralProtectionFault, VGCats (contributed by TobiX).
635- Dosage will now continue downloading strips until no new strips are
636  downloaded, this fixed problems with comics that had multiple strips per page
637  or comics that employed "precache" methods.
638- Fixed problem with division by zero error often occuring under Windows.
639
640
641## 1.4.0
642
643### Added
644- SnafuComics/Grim, SnafuComics/KOF, SnafuComics/PowerPuffGirls,
645  SnafuComics/Snafu, SnafuComics/Tin, TheParkingLotIsFull.
646- MadamAndEve, Zapiro (contributed by Anthony Caetano)
647- A manual page for 'mainline' is now inculded.
648- Events output; currently the only useful handler is 'html', which outputs an
649  HTML page with all of the downloaded comics. These files are named by date,
650  and have links to the previous and next days (similar to dailystrips).
651
652### Fixed
653- UserFriendly (naming fix).
654
655
656## 1.3.0
657
658### Added
659- AstronomyPOTD, CounterCulture, Dominion, Fallen, Freefall, GenrezvousPoint,
660  KeenSpot/Blindworks, KeenSpot/BoyMeetsBoy, KeenSpot/Scrued, KeenSpot/Stubble,
661  KeenSpot/TAVision, KeenSpot/TangsWeeklyComic, KingFeatures, OhMyGods,
662  RedMeat, WotNow.
663
664### Changed
665- Main script is now 'mainline' (used to be 'dosage').
666
667### Fixed
668- MegaTokyo, SomethingPositive.
669- TheFray (now a virtual module)
670- Progress bar has been improved; specifically for gauging downloads of unknown
671  size.
672- All relevant images are now downloaded where necessary; thanks bruce :)
673- Incomplete downloads are discarded.
674
675### Removed
676- Removed junview.
677
678
679## 1.2.0
680
681### Added
682- BiggerThanCheeses, BrickShitHouse, ChugworthAcademy, DandyAndCompany, Girly,
683  HighPingBastard, Jack, KeenSpot/ChoppingBlock,
684  KeenSpot/SaturdayMorningBreakfastCereal, KeenSpot/StrangeCandy,
685  KeenSpot/WapsiSquare, KiagiSwordscat, MakeWithTheFunny, Pixel, PockyBot,
686  SamAndFuzzy, Spoonies.
687
688### Fixed
689- Progress bar is now disabled if the window size cannot be determined
690
691### Changed
692- Source was restructured; the dosage script is now located in the bin/
693  directory.
694
695
696## 1.1.0
697
698### Added
699- ALessonIsLearned, ASofterWorld, BoyOnAStickAndSlither, Chisuji,
700  ExploitationNow, KeenSpot/Ghastly, KeenSpot/Saturnalia, Loserz, Qwantz,
701  StarCrossdDestiny.
702- A download progress bar is now available on Linux (and probably other
703  UNIX-like systems).
704
705### Fixed
706- LittleGamers.
707
708### Changed
709- Timestamps are now updated even if the strip is not redownloaded.
710
711
712## 1.0.1
713
714### Fixed
715- Fix embarassing typo in 1.0.0 which rendered it completely unusable (albeit a
716  trivial fix).
717
718
719## 1.0.0
720
721- 1.0 release, yay!
722
723### Added
724- TwoTwoOneFour.
725- Set modified time on downloaded images based on Last-Modified header: Patch
726  provided by gopalv82@yahoo.com, thanks :)
727
728### Fixed
729- SluggyFreelance.
730- Fixed `--basepath` on Windows: Passing a path that included a drive letter
731  didn't work.
732
733
734## 0.3.2
735
736### Added
737- FreakCentral, KeenSpot/AntiHeroForHire, KeenSpot/ElfOnlyInn,
738  KeenSpot/GeneralProtectionFault, KeenSpot/LimitedSpace,
739  KeenSpot/LostAndFound, KeenSpot/Zortic, RabidMonkeys, SluggyFreelance,
740  SpellsAndWhistles, SuburbanTribe, TheFray.
741
742
743## 0.3.1
744
745### Added
746- SomethingPositive, UnderPower, UserFriendly, KeenSpot/QueenOfWands,
747  CombustibleOrange, InkTank/*, QuestionableContent.
748- Filesize displayed for downloaded files.
749- Added `--timestamps`: Displays timestamps before every message.
750
751### Fixed
752- ComicsDotCom/flightdeck, ComicsDotCom/peanuts, ButternutSquash,
753  LifeOfConvenience.
754
755### Removed
756- Removed external helper scripts.
757
758
759## 0.3.0
760
761### Added
762- AppleGeeks, ButternutSquash, Comet7, CtrlAltDel, EightBitTheater,
763  FragileGravity, KeenSpot/24fps, KeenSpot/Alice, KeenSpot/DeltaVenture,
764  KeenSpot/ItsWalky, KeenSpot/PurplePussy, KeenSpot/TheShadows, LaurasComics,
765  MacHall, Supafine, VGCats, WhiteNinja.
766- ComicsDotCom (Lots of submodules, most of them are untested).
767- Comic wildcards: `@` expands to every comic already present in the basepath,
768  and `@@` expands to every single comic supported by Dosage.
769
770### Changed
771- Better feedback: The various info levels (up to 3 now) provide much more
772  informative output.
773
774### Removed
775- Removed filename override: Since the comic modules now generally have sane
776  names, this is no longer of much use.
777
778### Fixed
779- KeenSpot/CollegeRoomiesFromHell, KeenSpot/Wigu (renamed to Wigu),
780  UComics/{mullets, nonsequitur, tomthedancingbug}.
781- PennyArcade: Switch back to the "low" resolution comics; some of the "high"
782  resolution comics are broken, and the "low" ones seem to be identical anyway.
783- Junview: Lots of fixes / enhancements, still fairly alpha.
784
785
786## 0.2.0
787
788### Added
789- FilibusterCartoons, GlueMeat, RPGWorld, RealLife, UComics.
790- Virtual comic modules.
791- URL retrying: Also, if you specify multiple comics, and one of them errors
792  out for some reason, Dosage will continue with the others.
793- Indexed catchup: You can now start a catchup from a specific index.
794- Comic help: You can now pass `--module-help` to see module-specific help for
795  comic modules.
796- Junview: Image viewer written in wxPython, pretty alpha at this stage, but
797  feel free to play around with it if you're brave.
798
799### Fixed
800- BasilFlint, DiselSweeties, SexyLosers.
801
802
803## 0.1.0
804
805### Added
806- LittleGamers, ClanOfTheCats, DieselSweeties, PvPonline, RadioactivePanda,
807  ScaryGoRound.
808
809### Fixed
810- PennyArcade (The comic "bounces" when you get to the first strip, the
811  "previous" link points to the second comic. Work around this by checking for
812  the first comic).
813- SexyLosers seems to have implemented referrer checking recently, this is
814  handled by the new referrer passing support.
815- Fix indexed mode up a bit: The documentation has better examples now.
816
817
818## 0.0.1
819
820- Initial public release
821
822
823[Unreleased]: https://github.com/webcomics/dosage/compare/2.17...HEAD
824[2.17]: https://github.com/webcomics/dosage/compare/2.16...2.17
825[2.16]: https://github.com/webcomics/dosage/compare/2.15...2.16
826[2.15]: https://github.com/webcomics/dosage/compare/2.14...2.15
827[2.14]: https://github.com/webcomics/dosage/compare/2.13...2.14
828[2.13]: https://github.com/webcomics/dosage/compare/2.12...2.13
829[2.12]: https://github.com/webcomics/dosage/compare/2.11...2.12
830[2.11]: https://github.com/webcomics/dosage/compare/2.10...2.11
831[2.10]: https://github.com/webcomics/dosage/compare/2.9...2.10
832[2.9]: https://github.com/webcomics/dosage/compare/2.8...2.9
833[2.8]: https://github.com/webcomics/dosage/compare/2.7...2.8
834[2.7]: https://github.com/webcomics/dosage/compare/2.6...2.7
835[2.6]: https://github.com/webcomics/dosage/compare/2.5...2.6
836[2.5]: https://github.com/webcomics/dosage/compare/2.4...2.5
837[2.4]: https://github.com/webcomics/dosage/compare/2.3...2.4
838[2.3]: https://github.com/webcomics/dosage/compare/2.2...2.3
839[2.2]: https://github.com/webcomics/dosage/compare/2.1...2.2
840[2.1]: https://github.com/webcomics/dosage/compare/2.0...2.1
841[2.0]: https://github.com/webcomics/dosage/compare/1.15...2.0
842[1.15]: https://github.com/webcomics/dosage/compare/1.14...1.15
843[1.14]: https://github.com/webcomics/dosage/compare/1.13...1.14
844[1.13]: https://github.com/webcomics/dosage/compare/1.12...1.13
845[1.12]: https://github.com/webcomics/dosage/compare/1.11...1.12
846[1.11]: https://github.com/webcomics/dosage/compare/1.10...1.11
847[1.10]: https://github.com/webcomics/dosage/compare/1.9...1.10
848[1.9]: https://github.com/webcomics/dosage/compare/1.8...1.9
849[1.8]: https://github.com/webcomics/dosage/compare/1.7...1.8
850
851