Merge lp:~dosage-dev/dosage/bunch-of-comics-3 into lp:~dosage-dev/dosage/old

Proposed by Tristan Seligmann
Status: Merged
Approved by: Jonathan Jacobs
Approved revision: not available
Merged at revision: not available
Proposed branch: lp:~dosage-dev/dosage/bunch-of-comics-3
Merge into: lp:~dosage-dev/dosage/old
Diff against target: 1141 lines (+247/-307)
22 files modified
dosage/plugins/a.py (+2/-15)
dosage/plugins/b.py (+10/-7)
dosage/plugins/c.py (+0/-8)
dosage/plugins/d.py (+3/-2)
dosage/plugins/e.py (+12/-8)
dosage/plugins/f.py (+0/-6)
dosage/plugins/g.py (+0/-8)
dosage/plugins/h.py (+3/-3)
dosage/plugins/i.py (+3/-2)
dosage/plugins/j.py (+13/-9)
dosage/plugins/k.py (+9/-2)
dosage/plugins/l.py (+18/-45)
dosage/plugins/m.py (+11/-16)
dosage/plugins/n.py (+70/-35)
dosage/plugins/o.py (+17/-21)
dosage/plugins/p.py (+0/-7)
dosage/plugins/q.py (+6/-4)
dosage/plugins/r.py (+7/-20)
dosage/plugins/s.py (+32/-42)
dosage/plugins/t.py (+22/-33)
dosage/plugins/v.py (+4/-3)
dosage/plugins/w.py (+5/-11)
To merge this branch: bzr merge lp:~dosage-dev/dosage/bunch-of-comics-3
Reviewer Review Type Date Requested Status
Jonathan Jacobs Approve
Review via email: mp+17094@code.launchpad.net
To post a comment you must log in.
Revision history for this message
Jonathan Jacobs (jjacobs) :
review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'dosage/plugins/a.py'
2--- dosage/plugins/a.py 2010-01-07 02:02:42 +0000
3+++ dosage/plugins/a.py 2010-01-10 05:25:22 +0000
4@@ -120,14 +120,6 @@
5
6
7
8-class AnimeArcadia(BasicScraper):
9- latestUrl = 'http://www.animearcadia.com/index.php?p=comics'
10- imageUrl = 'http://www.animearcadia.com/index.php?p=comics&c=%s'
11- imageSearch = compile(r'(/comics/.+?)"')
12- prevSearch = compile(r'First.+?"(index.php\?p=comics&c=.+?)".+?Back')
13- help = 'Index format: n (unpadded)'
14-
15-
16 class AppleGeeks(BasicScraper):
17 latestUrl = 'http://www.applegeeks.com/'
18 imageUrl = 'http://www.applegeeks.com/comics/viewcomic.php?issue=%s'
19@@ -136,6 +128,7 @@
20 help = 'Index format: n (unpadded)'
21
22
23+
24 class AppleGeeksLite(BasicScraper):
25 latestUrl = 'http://www.applegeeks.com/lite/'
26 imageUrl = 'http://applegeeks.com/lite/index.php?aglitecomic=%s'
27@@ -144,13 +137,6 @@
28 help = 'Index format: yyyy-mm-dd'
29
30
31-class AsIf(BasicScraper):
32- latestUrl = 'http://asifcomic.com/404.html'
33- imageUrl = 'http://www.asifcomic.com/%s.html'
34- imageSearch = compile(r'<img src="((?:\.\./)*strips/\d+\..+?)"')
35- prevSearch = compile(r'<a href="(?:\.\./)*(\d+\..+?)"><img[^>]*src="(?:\.\./)*previous\.jpg"')
36- help = 'Index format: nn(n) (padded up to a maximum of 2 characters)'
37-
38
39 class Achewood(BasicScraper):
40 latestUrl = 'http://www.achewood.com/'
41@@ -161,6 +147,7 @@
42 namer = regexNamer(compile(r'date%3D(\d{8})'))
43
44
45+
46 class AstronomyPOTD(BasicScraper):
47 starter = bounceStarter(
48 'http://antwrp.gsfc.nasa.gov/apod/astropix.html',
49
50=== modified file 'dosage/plugins/b.py'
51--- dosage/plugins/b.py 2010-01-06 19:59:00 +0000
52+++ dosage/plugins/b.py 2010-01-10 05:25:22 +0000
53@@ -87,6 +87,7 @@
54 help = 'Index format: non'
55
56
57+
58 class Brink(BasicScraper):
59 latestUrl = 'http://paperfangs.com/brink/'
60 imageUrl = 'http://paperfangs.com/brink/?p=%s'
61@@ -95,13 +96,6 @@
62 help = 'Index format: non'
63
64
65-class BrokenMirror(BasicScraper):
66- latestUrl = 'http://www.the-broken-mirror.net/files/story/comic.php'
67- imageUrl = 'http://www.the-broken-mirror.net/files/story/comic.php\?id=%s'
68- imageSearch = compile(r'"(/files/story/.+?)"')
69- prevSearch = compile(r'href="(comic.php\?id=.+?)">&lt;&lt;BACK')
70- help = 'Index format: n'
71-
72
73 class BonoboConspiracy(BasicScraper):
74 latestUrl = 'http://ansuz.sooke.bc.ca/bonobo-conspiracy/'
75@@ -189,3 +183,12 @@
76 imageSearch = compile(r'<img src="(http://boxbrown.com/comics/[^"]+)"')
77 prevSearch = compile(r'<a href="(.+?)"><span class="prev">')
78 help = 'Index format: nnn'
79+
80+
81+
82+class BlankIt(BasicScraper):
83+ latestUrl = 'http://blankitcomics.com/'
84+ imageUrl = 'http://blankitcomics.com/%s'
85+ imageSearch = compile(r'<img src="(http://blankitcomics.com/bicomics/.+?)"')
86+ prevSearch = compile(r'<a href="([^"]+)" rel="prev">')
87+ help = 'Index format: yyyy/mm/dd/name'
88
89=== modified file 'dosage/plugins/c.py'
90--- dosage/plugins/c.py 2010-01-07 02:02:42 +0000
91+++ dosage/plugins/c.py 2010-01-10 05:25:22 +0000
92@@ -66,14 +66,6 @@
93 help = 'Index format: n (unpadded)'
94
95
96-class ChroniclesOfGaras(BasicScraper):
97- latestUrl = 'http://www.chroniclesofgaras.com/default.php'
98- imageUrl = 'http://www.chroniclesofgaras.com/archive_page.php?id=%s'
99- imageSearch = compile(r'<TD ROWSPAN=3 ALIGN="CENTER" VALIGN="CENTER"><img src="(http://www.chroniclesofgaras.com/comics/\d{8}\..+?)"')
100- prevSearch = compile(r'<a href="(http://www\.chroniclesofgaras\.com/archive_page\.php\?id=\d+?)"><img src="images/navbutton1_previous')
101- help = 'Index format: n (unpadded)'
102-
103-
104
105 class ChugworthAcademy(BasicScraper):
106 latestUrl = 'http://chugworth.com/'
107
108=== modified file 'dosage/plugins/d.py'
109--- dosage/plugins/d.py 2010-01-06 21:51:31 +0000
110+++ dosage/plugins/d.py 2010-01-10 05:25:22 +0000
111@@ -44,9 +44,10 @@
112 help = 'Index format: non'
113
114
115+
116 class DoemainOfOurOwn(BasicScraper):
117- latestUrl = 'http://www.furfolk.com/'
118- imageUrl = 'http://www.furfolk.com/index.cgi/%s'
119+ latestUrl = 'http://www.doemain.com/'
120+ imageUrl = 'http://www.doemain.com/index.cgi/%s'
121 imageSearch = compile(r"<img border='0' width='\d+' height='\d+' src='(/strips/\d{4}/\d{6}-[^\']+)'")
122 prevSearch = compile(r'<a href="(/index\.cgi/\d{4}-\d{2}-\d{2})"><img width="\d+" height="\d+" border="\d+" alt="Previous Strip"')
123 help = 'Index format: yyyy-mm-dd'
124
125=== modified file 'dosage/plugins/e.py'
126--- dosage/plugins/e.py 2010-01-06 22:54:50 +0000
127+++ dosage/plugins/e.py 2010-01-10 05:25:22 +0000
128@@ -21,6 +21,18 @@
129
130
131
132+class Eriadan(BasicScraper):
133+ imageUrl = 'http://www.shockdom.com/eriadan/?p=%s'
134+ imageSearch = compile(r'title="[^"]+?" src="http://www\.shockdom\.com/eriadan/(wp-content/uploads/.+?)"')
135+ prevSearch = compile(r"<link rel='prev' title='.+?' href='http://www\.shockdom\.com/eriadan/(\?p=.+?)'")
136+ starter = indirectStarter('http://www.shockdom.com/eriadan/', compile(r'<ul class="latest2">[^<]+?<li class="list-title"><a href="(http://www\.shockdom.com/eriadan/\?p=.+?)"'))
137+ help = 'Index format: nnn (unpadded)'
138+
139+ def namer(cls, imageUrl, pageUrl):
140+ return '%d' % (int(compile(r'p=(\d+)').search(pageUrl).group(1)))
141+
142+
143+
144 class ElGoonishShive(BasicScraper):
145 name = 'KeenSpot/ElGoonishShive'
146 latestUrl = 'http://www.egscomics.com/'
147@@ -58,14 +70,6 @@
148 help = 'God help us now!'
149
150
151-class EntertainDome(BasicScraper):
152- latestUrl = 'http://entertain-dome.com/comic.php'
153- imageUrl = 'http://entertain-dome.com/comic.php?strip_id=%s'
154- imageSearch = compile(r'<img src="(img/comics/.+?)"')
155- prevSearch = compile(r'<a href="(\?strip_id=\d+?)"><img src="img/nav/ed_prev.gif"')
156- help = 'Index format: nnn (unpadded)'
157-
158-
159
160 class ErrantStory(BasicScraper):
161 latestUrl = 'http://www.errantstory.com/'
162
163=== modified file 'dosage/plugins/f.py'
164--- dosage/plugins/f.py 2010-01-07 00:08:09 +0000
165+++ dosage/plugins/f.py 2010-01-10 05:25:22 +0000
166@@ -91,12 +91,6 @@
167
168
169
170-class Frump(PHPScraper):
171- basePath = 'http://thm.askee.net/comic/'
172- prevSearch = compile(r'<a href="(http://thm\.askee\.net/comic/daily\.php\?date=\d{6})">Previous', IGNORECASE)
173-
174-
175-
176 class FantasyRealms(BasicScraper):
177 imageUrl = 'http://www.fantasyrealmsonline.com/manga/%s.php'
178 imageSearch = compile(r'<img src="(\d{1,4}.\w{3,4})" width="540"', IGNORECASE)
179
180=== modified file 'dosage/plugins/g.py'
181--- dosage/plugins/g.py 2010-01-07 01:51:19 +0000
182+++ dosage/plugins/g.py 2010-01-10 05:25:22 +0000
183@@ -64,14 +64,6 @@
184
185
186
187-class GlueMeat(BasicScraper):
188- latestUrl = 'http://www.gluemeat.com/'
189- imageUrl = 'http://www.gluemeat.com/archives/%s.html'
190- imageSearch = compile(r'<img.+?src="(http://www.gluemeat.com/comics/\d{8}\..+?)"')
191- prevSearch = compile(r'(?:<a|<link rel="prev") href="(http://www.gluemeat.com/archives/\d{6}\.html)"(?!>Comment on this comic)(?:.+?</a> \]</font>)?')
192- help = 'Index format: nnnnnn'
193-
194-
195 class Goats(BasicScraper):
196 latestUrl = 'http://www.goats.com/'
197 imageUrl = 'http://www.goats.com/archive/%s.html'
198
199=== modified file 'dosage/plugins/h.py'
200--- dosage/plugins/h.py 2010-01-06 01:01:32 +0000
201+++ dosage/plugins/h.py 2010-01-10 05:25:22 +0000
202@@ -16,14 +16,14 @@
203 class Heliothaumic(BasicScraper):
204 latestUrl = 'http://thaumic.net/'
205 imageUrl = 'http://thaumic.net/%s'
206- imageSearch = compile(r'"(http://thaumic.net/comics/.+?)"')
207- prevSearch = compile(r'"(http://thaumic.net/.+?)".+?="prev"')
208+ imageSearch = compile(r'<img src="(http://thaumic.net/comics/.+?)"')
209+ prevSearch = compile(r'<div class="nav-previous"><a href="(http://thaumic.net/.+?)">')
210 help = 'Index format: yyyy/mm/dd/n(unpadded)-comicname'
211
212
213
214 class Housd(BasicScraper):
215- latestUrl = 'http://www.housd.net/'
216+ latestUrl = 'http://housd.net/archive_page.php?comicID=1284'
217 imageUrl = 'http://housd.net/archive_page.php?comicID=%s'
218 imageSearch = compile(r'"(.+?/comics/.+?)"')
219 prevSearch = compile(r'"(h.+?comicID=.+?)".+?prev')
220
221=== modified file 'dosage/plugins/i.py'
222--- dosage/plugins/i.py 2009-12-15 06:55:27 +0000
223+++ dosage/plugins/i.py 2010-01-10 05:25:22 +0000
224@@ -46,8 +46,9 @@
225 swo = inkTank('SorryWereOpen', 'SWO')
226
227
228+
229 class IlmanNaista(BasicScraper):
230 latestUrl = 'http://kvantti.tky.fi/in/archive_end.shtml'
231 imageUrl = 'http://kvantti.tky.fi/in/%s.shtml'
232- imageSearch = compile(r'<img src="(kuvat/in_\d+_web.png)" alt="Ilman naista -strippi" />', IGNORECASE)
233- prevSearch = compile(r'<a href="(\d+.shtml)"><img width="90" height="45" src="deco/edellinen.png" alt="Edellinen"/></a>', IGNORECASE)
234+ imageSearch = compile(r'<img src="(kuvat/in_.+?)"', IGNORECASE)
235+ prevSearch = compile(r'<a href="(\d+.shtml)"><img width="90" height="45" src="deco/edellinen.png" alt="Edellinen"/></a>')
236
237=== modified file 'dosage/plugins/j.py'
238--- dosage/plugins/j.py 2009-12-15 06:55:27 +0000
239+++ dosage/plugins/j.py 2010-01-10 05:25:22 +0000
240@@ -1,16 +1,18 @@
241-from re import compile
242+from re import compile, MULTILINE
243
244 from dosage.helpers import BasicScraper
245
246
247+
248 class Jack(BasicScraper):
249 latestUrl = 'http://www.pholph.com/'
250- imageUrl = 'http://www.pholph.com/index.php?Strip=%s'
251- imageSearch = compile(r'<img src="(strips/Jack\d{8}\..+?)"')
252- prevSearch = compile(r'<a href="(index\.php\?Strip=\d+)">Previous Strip</a>')
253+ imageUrl = 'http://www.pholph.com/strip.php?id=5&sid=%s'
254+ imageSearch = compile(r'<img src="(./artwork/.+?/Jack.+?)"')
255+ prevSearch = compile(r'\|<a href="(.+?)">Previous Strip</a>')
256 help = 'Index format: n (unpadded)'
257
258
259+
260 class JerkCity(BasicScraper):
261 latestUrl = 'http://www.jerkcity.com/'
262 imageUrl = 'http://www.jerkcity.com/jerkcity%s'
263@@ -19,17 +21,19 @@
264 help = 'Index format: unknown'
265
266
267+
268 class JoeAndMonkey(BasicScraper):
269 latestUrl = 'http://www.joeandmonkey.com/'
270- imageUrl = 'http://www.joeandmonkey.com/index.php?pageNum_Recordset2=%s'
271- imageSearch = compile(r'"(comic/.+?)"')
272- prevSearch = compile(r'"(/index.php\?.+?)">Previous')
273+ imageUrl = 'http://www.joeandmonkey.com/%s'
274+ imageSearch = compile(r'"(/comic/[^"]+)"')
275+ prevSearch = compile(r"<a href='(/\d+)'>Previous")
276 help = 'Index format: nnn'
277
278
279+
280 class JoyOfTech(BasicScraper):
281 latestUrl = 'http://www.geekculture.com/joyoftech/index.html'
282 imageUrl = 'http://www.geekculture.com/joyoftech/joyarchives/%s.html'
283- imageSearch = compile(r'<img src="((?:\.\./)?joyimages/.+?)" alt="The Joy of tech comic"')
284- prevSearch = compile(r'<a href="((?:joyarchives/)?\d+\.html)">(?:<font[^>]*>)?<img[^>]*><br>[\s\n]*Previous Joy')
285+ imageSearch = compile(r'<img src="(joyimages/.+?|../joyimages/.+?)" alt="The Joy')
286+ prevSearch = compile(r'<a href="((?:joyarchives/)?\w+\.\w{3,4})">(?:<font[^>]*>)?<img[^>]*><br>[\s\n]*Previous Joy', MULTILINE)
287 help = 'Index format: nnn'
288
289=== modified file 'dosage/plugins/k.py'
290--- dosage/plugins/k.py 2009-12-15 06:55:27 +0000
291+++ dosage/plugins/k.py 2010-01-10 05:25:22 +0000
292@@ -3,13 +3,18 @@
293 from dosage.helpers import BasicScraper
294
295
296+
297 class KernelPanic(BasicScraper):
298 latestUrl = 'http://www.ubersoft.net/kpanic/'
299 imageUrl = 'http://www.ubersoft.net/kpanic/d/%s'
300- imageSearch = compile(r'"(/.+?comics/.+?)" ')
301- prevSearch = compile(r'</a>.+?"(.+?)".+?Previous')
302+ imageSearch = compile(r'src="(.+?/kp/kp.+?)" ')
303+ prevSearch = compile(r'<li class="previous"><a href="(.+?)">')
304 help = 'Index format: yyyymmdd.html'
305
306+ def namer(cls, imageUrl, pageUrl):
307+ return imageUrl.split('/')[-1].split('.')[0]
308+
309+
310
311 class Key(BasicScraper):
312 latestUrl = 'http://key.shadilyn.com/latestpage.html'
313@@ -19,6 +24,7 @@
314 help = 'Index format: nnn'
315
316
317+
318 class Krakow(BasicScraper):
319 latestUrl = 'http://www.krakowstudios.com/'
320 imageUrl = 'http://www.krakowstudios.com/archive.php?date=%s'
321@@ -27,6 +33,7 @@
322 help = 'Index format: yyyymmdd'
323
324
325+
326 class KevinAndKell(BasicScraper):
327 latestUrl = 'http://www.kevinandkell.com/'
328 imageUrl = 'http://www.kevinandkell.com/%s/kk%s%s.html'
329
330=== modified file 'dosage/plugins/l.py'
331--- dosage/plugins/l.py 2010-01-06 00:52:47 +0000
332+++ dosage/plugins/l.py 2010-01-10 05:25:22 +0000
333@@ -17,10 +17,11 @@
334 latestUrl = 'http://www.lastblood.net/main/'
335 imageUrl = 'http://www.lastblood.net/main/%s'
336 imageSearch = compile(r'(/comicfolder/.+?)" alt')
337- prevSearch = compile(r'Previous C.+?"(http://www.lastblood.net/main/.+?)".+?</a>')
338+ prevSearch = compile(r'Previous Comic:</small><br />&laquo; <a href="(.+?)">')
339 help = 'Index format: yyyy/mm/dd/(page number and name)'
340
341
342+
343 class LesbianPiratesFromOuterSpace(BasicScraper):
344 latestUrl = 'http://rosalarian.com/lesbianpirates/'
345 imageUrl = 'http://rosalarian.com/lesbianpirates/?p=%s'
346@@ -29,6 +30,7 @@
347 help = 'Index format: n'
348
349
350+
351 class LethalDosesClassic(BasicScraper):
352 latestUrl = 'http://www.lethaldoses.com/archives.php?stripnum=99'
353 imageUrl = 'http://www.lethaldoses.com/archives.php?stripnum=%s'
354@@ -37,69 +39,40 @@
355 help = 'Index format: n (unpadded)'
356
357
358-class LifeOfConvenience(BasicScraper):
359- latestUrl = 'http://comic.idle-me.com/'
360- imageUrl = 'http://comic.idle-me.com/?strip_id=%s'
361- imageSearch = compile(r'<img src="(comics/\d{6}\..+?)"')
362- prevSearch = compile(r'<a href="(\?strip_id=\d+)">Previous</a>')
363- help = 'Index format: n (unpadded)'
364-
365
366 class Lint(BasicScraper):
367 latestUrl = 'http://www.purnicellin.com/lint/'
368 imageUrl = 'http://www.purnicellin.com/lint/%s'
369- imageSearch = compile(r'(http:.+?comics/.+?)"')
370- prevSearch = compile(r'First.+?"(http.+?)".+?Previous</a>')
371- help = 'Index format: nnn (yyyy/mm/dd/ddmmyyyy)'
372+ imageSearch = compile(r'<img src="(http://www.purnicellin.com/lint/comics/.+?)"')
373+ prevSearch = compile(r'\| <a href="([^"]+)" rel="prev">')
374+ help = 'Index format: yyyy/mm/dd/num-name'
375+
376
377
378 class LookingForGroup(BasicScraper):
379 latestUrl = 'http://www.lfgcomic.com/page/latest'
380 imageUrl = 'http://www.lfgcomic.com/page/%s'
381 imageSearch = compile(r'<img src="(http://archive.lfgcomic.com/.+?)"')
382- prevSearch = compile(r'"(/page/.+?)".+?="Previous')
383+ prevSearch = compile(r'<a href="(.+?)"><img[^>]+?src="http://images.lfgcomic.com/comic-nav-top_0_1.jpg"')
384 help = 'Index format: nnn'
385
386
387+
388 class Loserz(BasicScraper):
389- latestUrl = 'http://loserz.scribblekid.org/'
390- imageUrl = 'http://loserz.scribblekid.org/index.php?id=%s'
391- imageSearch = compile(r"<img src=\'(comics/\d{8}\..+?)\' border=1>")
392- prevSearch = compile(r"<a href=\'(index\.php\?id=\d+)\'><img src=\'elements/back.gif\' alt=\'Previous Comic\'")
393+ latestUrl = 'http://bukucomics.com/loserz/'
394+ imageUrl = 'http://bukucomics.com/loserz/go/%s'
395+ imageSearch = compile(r'<img src="(http://bukucomics.com/loserz/comics/.+?)"')
396+ prevSearch = compile(r'<a href="(.+?)"> &nbsp;&lt;&nbsp;')
397 help = 'Index format: n (unpadded)'
398
399
400+
401 class LittleGamers(BasicScraper):
402 latestUrl = 'http://www.little-gamers.com/'
403- imageUrl = 'http://www.little-gamers.com/index.php?id=%s'
404- imageSearch = compile(r'<img src="(http://www.little-gamers.com/comics/\d+\..+?)"')
405- prevSearch = compile(r'<a href="(index.php\?comicID=\d+?)">(?:Previous|PREVIOUS)</a>')
406- help = 'Index format: n (unpadded)'
407-
408- def namer(cls, imageUrl, pageUrl):
409- return '%d' % (int(imageUrl.split('/')[-1].split('.')[0]),)
410-
411-
412-# XXX: This comic no longer appears to be (easily) traversable.
413-#lethalDoses = BasicScraper(
414-# name='LethalDoses',
415-# latestUrl='http://www.lethaldoses.com/',
416-# imageUrl='http://www.lethaldoses.com/view.php?date=%s',
417-# imageSearch=compile(r'<img src="(comics/strip_\d{3}\..*?)"[^>]*>')
418-# prevSearch=compile(r'<a href=[\'"](/?index2\.php\?strip_id=\d+)[\'"]><img.+?src=[\'"]\./images/nav_prev.gif[\'"]'),
419-# help='Index format: yyyy-mm-dd',
420-# namer=queryNamer('date', usePageUrl=True))
421-
422-# XXX: not quite sure what's going on here, but there seem to be two comics at
423-# this site now, not one
424-#laurasComics = BasicScraper(
425-# name='LaurasComics',
426-# latestUrl='http://www.laurascomics.com/',
427-# imageUrl='http://www.laurascomics.com/index.php?comicid=%s',
428-# imageSearch=compile(r'<img src=(/showcomic.php\?comicid=\d+)>', IGNORECASE),
429-# prevSearch=compile(r'<a href="(index.php\?comicid=\d+)"><img src="/images/gprev.gif"', IGNORECASE),
430-# help='Index format: n (unpadded)',
431-# namer=queryNamer('comicid'))
432+ imageUrl = 'http://www.little-gamers.com/%s'
433+ imageSearch = compile(r'<img src="(http://www.little-gamers.com/comics/[^"]+)"')
434+ prevSearch = compile(r'href="(.+?)"><img id="comic-nav-prev"')
435+ help = 'Index format: yyyy/mm/dd/name'
436
437
438
439
440=== modified file 'dosage/plugins/m.py'
441--- dosage/plugins/m.py 2009-12-15 06:55:27 +0000
442+++ dosage/plugins/m.py 2010-01-10 05:25:22 +0000
443@@ -11,6 +11,7 @@
444 help = 'Index format: (none)'
445
446
447+
448 class MagicHigh(BasicScraper):
449 latestUrl = 'http://www.doomnstuff.com/magichigh/index.php'
450 imageUrl = 'http://www.doomnstuff.com/magichigh/index.php?strip_id=%s'
451@@ -19,13 +20,6 @@
452 help = 'Index format: n'
453
454
455-class MakeWithTheFunny(BasicScraper):
456- latestUrl = 'http://www.mwtfunny.com/'
457- imageUrl = 'http://www.mwtfunny.com/index.php?ComicID=%s'
458- imageSearch = compile(r'<img src=".+?(strips/\d{4}-\d{2}-\d{2}\..+?)">')
459- prevSearch = compile(r'href="(index.php\?ComicID=.+?)" alt=".+?previous')
460- help = 'Index format: n (unpadded)'
461-
462
463 class Marilith(BasicScraper):
464 latestUrl = 'http://www.marilith.com/'
465@@ -35,14 +29,16 @@
466 help = 'Index format: yyyymmdd'
467
468
469+
470 class MarryMe(BasicScraper):
471 latestUrl = 'http://marrymemovie.com/main/'
472 imageUrl = 'http://marrymemovie.com/main/%s'
473 imageSearch = compile(r'(/comicfolder/.+?)"')
474- prevSearch = compile(r'Previous.+?(/main/.+?)">Page')
475+ prevSearch = compile(r'Previous Comic:</small><br />&#171; <a href="(.+?)">')
476 help = 'Index format: good luck !'
477
478
479+
480 class MegaTokyo(BasicScraper):
481 latestUrl = 'http://www.megatokyo.com/'
482 imageUrl = 'http://www.megatokyo.com/strip/%s'
483@@ -59,12 +55,14 @@
484 help = 'Index format: mm/dd/yyyy'
485
486
487+
488 class MacHall(BasicScraper):
489 latestUrl = 'http://www.machall.com/'
490- imageUrl = 'http://www.machall.com/index.php?strip_id=%s'
491- imageSearch = compile(r'<img src="(comics/\d{4}\d{2}\d{2}\..*?)" border=0>')
492- prevSearch = compile(r'<a href="(view\.php\?date=\d{4}-\d{2}-\d{2})"><img border=0 src=\'drop_shadow/previous.gif\'>')
493- help = 'Index format: n (unpadded)'
494+ imageUrl = 'http://www.machall.com/view.php?date=%s'
495+ imageSearch = compile(r'<img src="(comics/.+?)"')
496+ prevSearch = compile(r'<a href="(.+?)"><img[^>]+?src=\'drop_shadow/previous.gif\'>')
497+ help = 'Index format: yyyy-mm-dd'
498+
499
500
501 class Misfile(BasicScraper):
502@@ -76,10 +74,6 @@
503 namer = queryNamer('pageCalled')
504
505
506-class MinesBigger(BasicScraper):
507- basePath = 'http://minesbigger.novablade.com/phpcomic/'
508- prevSearch = compile(r'<a href="(http://minesbigger\.novablade\.com/phpcomic/daily\.php\?date=\d{6})"><img src="../../images/phpprevious.gif')
509-
510
511 class MysteriesOfTheArcana(BasicScraper):
512 latestUrl = 'http://mysteriesofthearcana.com/'
513@@ -89,6 +83,7 @@
514 help = 'Index format: n (unpadded)'
515
516
517+
518 class MysticRevolution(BasicScraper):
519 latestUrl = 'http://www.mysticrev.com/index.php'
520 imageUrl = 'http://www.mysticrev.com/index.php?cid=%s'
521
522=== modified file 'dosage/plugins/n.py'
523--- dosage/plugins/n.py 2010-01-06 00:59:37 +0000
524+++ dosage/plugins/n.py 2010-01-10 05:25:22 +0000
525@@ -1,6 +1,6 @@
526 from re import compile, IGNORECASE
527
528-from dosage.helpers import BasicScraper, indirectStarter
529+from dosage.helpers import BasicScraper, indirectStarter, PHPScraper
530
531
532 class NamirDeiter(BasicScraper):
533@@ -19,12 +19,14 @@
534 help = 'Index format: yyyy-mm-dd'
535
536
537+
538 class NeoEarth(BasicScraper):
539- latestUrl = 'http://www.neo-earth.com/latest.php'
540- imageUrl = 'http://www.neo-earth.com/daily.php?date=%s'
541- imageSearch = compile(r'(/comics/.+?)"')
542- prevSearch = compile(r'first.+?(/daily.+?)".+?prev')
543- help = 'Index format: yymmdd'
544+ latestUrl = 'http://www.neo-earth.com/NE/'
545+ imageUrl = 'http://www.neo-earth.com/NE/index.php?date=%s'
546+ imageSearch = compile(r'<img src="(strips/.+?)"')
547+ prevSearch = compile(r'<a href="(.+?)">Previous</a>')
548+ help = 'Index format: yyyy-mm-dd'
549+
550
551
552 class Nervillsaga(BasicScraper):
553@@ -35,20 +37,23 @@
554 help = 'Index format: nnn'
555
556
557+
558 class NewAdventuresOfBobbin(BasicScraper):
559 latestUrl = 'http://bobbin-comic.com/'
560- imageUrl = 'http://bobbin-comic.com/show.php?id=%s'
561- imageSearch = compile(r'"(\./strips/.*?)"')
562- prevSearch = compile(r'"(show.php\?[^"\r\n]+)">PREVIOUS')
563- help = 'Index format: n (unpadded)'
564+ imageUrl = 'http://www.bobbin-comic.com/wordpress/?p=%s'
565+ imageSearch = compile(r'<img src="(http://www.bobbin-comic.com/wordpress/comics/.+?)"')
566+ prevSearch = compile(r'<a href="(.+?)"><span class="prev">')
567+ help = 'Index format: n'
568+
569
570
571 class NewWorld(BasicScraper):
572 latestUrl = 'http://www.tfsnewworld.com/'
573- imageUrl = 'http://www.tfsnewworld.com/index.php?date=%s'
574- imageSearch = compile(r'<(?:img|embed)[^>]+src="([^"]+/\w+/\d+\.[^"]+)"')
575- prevSearch = compile(r'class="nav_back"[^>]+href="(/index\.php\?date=\d+)"')
576- help = 'Index format: yyyymmdd'
577+ imageUrl = 'http://www.tfsnewworld.com/%s'
578+ imageSearch = compile(r'<img src="(http://www.tfsnewworld.com/comics/.+?)"')
579+ prevSearch = compile(r'<div class="nav-previous"><a href="([^"]+)" rel="prev">')
580+ help = 'Index format: yyyy/mm/dd/stripn'
581+
582
583
584 class Nicky510(BasicScraper):
585@@ -59,20 +64,14 @@
586 help = 'Index format: non'
587
588
589-class Nihilism(BasicScraper):
590- latestUrl = 'http://nihilism.danseibi.net/'
591- imageUrl = 'http://nihilism.danseibi.net/?date=%s'
592- imageSearch = compile(r'"(strips/.+?)"')
593- prevSearch = compile(r'"(.+?)">previous')
594- help = 'Index format: yyyymmdd'
595-
596
597 class NoNeedForBushido(BasicScraper):
598- latestUrl = 'http://www.noneedforbushido.com/archive.php'
599- imageUrl = 'http://www.noneedforbushido.com/archive.php?strip_id=%s'
600- imageSearch = compile(r'"(istrip_files/strips/.+?)"')
601- prevSearch = compile(r'</a><a href="(archive.php\?strip_id=.+?)".+?_back')
602- help = 'Index format: nnn'
603+ latestUrl = 'http://www.noneedforbushido.com/latest/'
604+ imageUrl = 'http://www.noneedforbushido.com/%s'
605+ imageSearch = compile(r'<div class="comics"><img src="([^"]+)"')
606+ prevSearch = compile(r'<a href="([^"]+)" title="[^"]*" class="previous-comic-link')
607+ help = 'Index format: yyyy/comic/nnn'
608+
609
610
611 class Nukees(BasicScraper):
612@@ -83,20 +82,56 @@
613 help = 'Index format: yyyymmdd.html'
614
615
616+
617 class NuklearPower(BasicScraper):
618- basePath = 'http://www.nuklearpower.com/'
619- prevSearch = compile(r'<a href="(http://www\.nuklearpower\.com/daily\.php\?date=\d{6})" class="nav3">Previous Comic')
620-
621-
622-class NekoTheKitty(BasicScraper):
623+ abstract = True
624+ imageSearch = compile(r'<img src="(http://www.nuklearpower.com/comics/.+?)"')
625+ prevSearch = compile(r'><a href="(.+?)">Previous</a>')
626+ help = 'Index format: yyyy/mm/dd/name'
627+
628+ @property
629+ def baseUrl(self):
630+ return 'http://www.nuklearpower.com/%s/' % (self.shortName,)
631+
632+ def starter(self):
633+ return self.baseUrl
634+
635+ @property
636+ def imageUrl(self):
637+ return self.baseUrl + '%s'
638+
639+
640+
641+class NP8BitTheater(NuklearPower):
642+ name = 'NuklearPower/8BitTheater'
643+ shortName = '8-bit-theater'
644+
645+
646+
647+class NPWarbot(NuklearPower):
648+ name = 'NuklearPower/Warbot'
649+ shortName = 'warbot'
650+
651+
652+
653+class NPHIKYM(NuklearPower):
654+ name = 'NuklearPower/HowIKilledYourMaster'
655+ shortName = 'hikym'
656+
657+
658+
659+class NPAtomicRobo(NuklearPower):
660+ name = 'NuklearPower/AtomicRobo'
661+ shortName = 'atomic-robo'
662+
663+
664+
665+class NekoTheKitty(PHPScraper):
666 basePath = 'http://www.nekothekitty.net/cusp/'
667+ latestUrl = 'latest.php'
668 prevSearch = compile(r"<a href=\"(http://www\.nekothekitty\.net/cusp/daily\.php\?date=\d+)\"><img[^>]+alt='Previous Comic'")
669
670
671-class NeoGreenwood(BasicScraper):
672- basePath = 'http://neogreenwood.1upshop.com/'
673- prevSearch = compile(r'<a href="(http://neogreenwood\.1upshop\.com/daily\.php\?date=\d{6})"><img src="http://neogreenwood.1upshop.com/nav/sbac.gif')
674-
675
676 class NichtLustig(BasicScraper):
677 imageUrl = 'http://www.nichtlustig.de/toondb/%s.html'
678
679=== modified file 'dosage/plugins/o.py'
680--- dosage/plugins/o.py 2010-01-06 19:43:17 +0000
681+++ dosage/plugins/o.py 2010-01-10 05:25:22 +0000
682@@ -11,36 +11,32 @@
683 help = 'Index format: yyyy-mm-dd/n-name/'
684
685
686+
687 class OddFish(BasicScraper):
688 latestUrl = 'http://www.odd-fish.net/'
689- imageUrl = 'http://www.odd-fish.net/viewing.php?comic_id=%s'
690- imageSearch = compile(r'<img src="(images/.+?)"')
691- prevSearch = compile(r'"(viewing.php.+?)".+?older')
692+ imageUrl = 'http://www.odd-fish.net/viewing.php?&comic_id=%s'
693+ imageSearch = compile(r'<img src="(images/\d{1,4}.\w{3,4})" ')
694+ prevSearch = compile(r'<a href="(.+?)"><img src="http://www.odd-fishing.net/i/older.gif" ')
695 help = 'Index format: n (unpadded)'
696
697
698+
699 class OhMyGods(BasicScraper):
700- latestUrl = 'http://ohmygods.timerift.net/'
701- imageUrl = 'http://ohmygods.timerift.net/strips/%s.php'
702- imageSearch = compile(r'<\!-- \#BeginEditable "strip" --><img src="((?:strips/\d{4}/\d{2}/)?\d{2}\..+?)" width="\d+" height="\d+" border="\d+">')
703- prevSearch = compile(r'<a href="((?:strips/\d{4}/\d{2}/)?\d{2}\.php)">previous')
704- help = 'Index format: yyyy/mm/dd'
705-
706-
707-class OkayPants(BasicScraper):
708- latestUrl = 'http://www.okaypants.com/comic.php'
709- imageUrl = 'http://www.okaypants.com/comic.php?st=%s'
710- imageSearch = compile(r'"(comic/.+?)"')
711- prevSearch = compile(r'"(.+?)".+previous')
712- help = 'Index format: unknown'
713+ latestUrl = 'http://ohmygods.co.uk/'
714+ imageUrl = 'http://ohmygods.co.uk/strips/%s'
715+ imageSearch = compile(r'<p class="omgs-strip"><img src="(/system/files/.+?)"')
716+ prevSearch = compile(r'<li class="custom_pager_prev"><a href="(/strips/.+?)"')
717+ help = 'Index format: yyyy-mm-dd'
718+
719
720
721 class OnTheEdge(BasicScraper):
722- latestUrl = 'http://www.ontheedgecomics.com'
723- imageUrl = 'http://www.ontheedgecomics.com/comic/%s'
724- imageSearch = compile(r'ontheedgecomics.com(/comics/.+?)"')
725- prevSearch = compile(r'previous"><a href="http://ontheedgecomics.com(/comic.+?)">&lsaquo; Previous<')
726- help = 'Index format: non'
727+ latestUrl = 'http://www.ontheedgecomics.com/'
728+ imageUrl = 'http://ontheedgecomics.com/comic/ote%s'
729+ imageSearch = compile(r'<img src="(http://ontheedgecomics.com/comics/.+?)"')
730+ prevSearch = compile(r'<a href="([^"]+)" rel="prev">')
731+ help = 'Index format: nnn (unpadded)'
732+
733
734
735 class OneQuestion(BasicScraper):
736
737=== modified file 'dosage/plugins/p.py'
738--- dosage/plugins/p.py 2010-01-06 19:26:02 +0000
739+++ dosage/plugins/p.py 2010-01-10 05:25:22 +0000
740@@ -74,13 +74,6 @@
741 help = 'Index format: nnn'
742
743
744-class PockyBot(BasicScraper):
745- latestUrl = 'http://www.pockybot.com/home/index.php'
746- imageUrl = 'http://www.pockybot.com/home/archive.php?did=%s'
747- imageSearch = compile(r'<img src="(\.\./strips/comic\d+\..+?)">')
748- prevSearch = compile(r'<a href="(\.\./home/archive\.php\?bdid=\d+)">')
749- help = 'Index format: n (unpadded)'
750-
751
752 class PiledHigherAndDeeper(BasicScraper):
753 starter = bounceStarter('http://www.phdcomics.com/comics/archive.php', compile(r'<a href=(archive\.php\?comicid=\d+)><img height=52 width=49 src=images/next_button\.gif border=0 align=middle>'))
754
755=== modified file 'dosage/plugins/q.py'
756--- dosage/plugins/q.py 2009-12-15 06:55:27 +0000
757+++ dosage/plugins/q.py 2010-01-10 05:25:22 +0000
758@@ -3,6 +3,7 @@
759 from dosage.helpers import BasicScraper
760
761
762+
763 class QuestionableContent(BasicScraper):
764 latestUrl = 'http://www.questionablecontent.net/'
765 imageUrl = 'http://www.questionablecontent.net/view.php?comic=%s'
766@@ -11,9 +12,10 @@
767 help = 'Index format: n (unpadded)'
768
769
770+
771 class Qwantz(BasicScraper):
772- latestUrl = 'http://www.qwantz.com/'
773- imageUrl = 'http://www.qwantz.com/index.pl?comic=%s'
774- imageSearch = compile(r'"(http://www.qwantz.com/comics/.+?)"')
775- prevSearch = compile(r'(/archive/.+?)">previous')
776+ latestUrl = 'http://www.qwantz.com/index.php'
777+ imageUrl = 'http://www.qwantz.com/index.php?comic=%s'
778+ imageSearch = compile(r'<img src="(http://www.qwantz.com/comics/.+?)" class="comic"')
779+ prevSearch = compile(r'"><a href="(.+?)">&larr; previous</a>')
780 help = 'Index format: n'
781
782=== modified file 'dosage/plugins/r.py'
783--- dosage/plugins/r.py 2009-12-15 06:55:27 +0000
784+++ dosage/plugins/r.py 2010-01-10 05:25:22 +0000
785@@ -3,21 +3,6 @@
786 from dosage.helpers import BasicScraper, bounceStarter
787
788
789-class RWWR(BasicScraper):
790- latestUrl = 'http://www.rwwr.com/'
791- imageUrl = 'http://www.rwwr.com/view.php?comic=%s'
792- imageSearch = compile(r'(http.+?/strips/.+?)>')
793- prevSearch = compile(r'"(view.+?)".+?back')
794- help = 'Index format: nnn'
795-
796-
797-class RabidMonkeys(BasicScraper):
798- latestUrl = 'http://www.rabid-monkeys.com/'
799- imageUrl = 'http://rabid-monkeys.com/?file=%s'
800- imageSearch = compile(r"\'(comics/.*?)\'")
801- prevSearch = compile(r"</a><a href=\'(\?file=.*?)\'.*?nav-prev")
802- help = 'Index format: nnnn'
803-
804
805 class RadioactivePanda(BasicScraper):
806 latestUrl = 'http://www.radioactivepanda.com/'
807@@ -43,12 +28,14 @@
808 help = 'Index format: yymmdd)'
809
810
811+
812 class RedString(BasicScraper):
813- latestUrl = 'http://redstring.strawberrycomics.com/index.html'
814- imageUrl = 'http://redstring.strawberrycomics.com/comic/%s.html'
815- imageSearch = compile(r'<IMG SRC="(.+?.jpg)" width="50')
816- prevSearch = compile(r'\* <a href="(.+?)">PREVIOUS')
817- help = 'Index format: chnn-pnn'
818+ latestUrl = 'http://www.redstring.strawberrycomics.com/'
819+ imageUrl = 'http://www.redstring.strawberrycomics.com/?p=%s'
820+ imageSearch = compile(r'<img src="(http://www.redstring.strawberrycomics.com/comics/.+?)"')
821+ prevSearch = compile(r'<a href="(.+?)">Previous Comic</a>')
822+ help = 'Index format: nnn'
823+
824
825
826 class Roza(BasicScraper):
827
828=== modified file 'dosage/plugins/s.py'
829--- dosage/plugins/s.py 2010-01-06 20:31:05 +0000
830+++ dosage/plugins/s.py 2010-01-10 05:25:22 +0000
831@@ -12,30 +12,34 @@
832 help = 'Index format: n (unpadded)'
833
834
835+
836 class SamAndFuzzy(BasicScraper):
837 latestUrl = 'http://www.samandfuzzy.com/'
838- imageUrl = 'http://www.samandfuzzy.com/archive.php?comicID=%s'
839+ imageUrl = 'http://samandfuzzy.com/%s'
840 imageSearch = compile(r'(/comics/.+?)" alt')
841- prevSearch = compile(r'(/archive.php\?comicID=.+?)".+?nav_prev')
842- help = 'Index format: n'
843+ prevSearch = compile(r'"><a href="(.+?)"><img src="imgint/nav_prev.gif"')
844+ help = 'Index format: nnnn'
845+
846
847
848 class SarahZero(BasicScraper):
849 latestUrl = 'http://www.sarahzero.com/'
850 imageUrl = 'http://www.sarahzero.com/sz_%s.html'
851 imageSearch = compile(r'<img src="(z_(?:(?:spreads)|(?:temp)).+?)" alt=""')
852- prevSearch = compile(r'href="(.+?)".+?sz_05_nav')
853+ prevSearch = compile(r'onmouseout="changeImages\(\'sz_05_nav\',\'z_site/sz_05_nav.gif\'\);return true" href="(sz_.+?)">')
854 help = 'Index format: nnnn'
855
856
857+
858 class ScaryGoRound(BasicScraper):
859 latestUrl = 'http://www.scarygoround.com/'
860 imageUrl = 'http://www.scarygoround.com/?date=%s'
861 imageSearch = compile(r'<img src="(strips/\d{8}\..{3})"')
862- prevSearch = compile(r'<a href="(\?date=\d{8})" class=\'newmenus\'>Previous')
863+ prevSearch = compile(r'f><a href="(.+?)"><img src="site-images/previous.png"')
864 help = 'Index format: n (unpadded)'
865
866
867+
868 class SchoolBites(BasicScraper):
869 latestUrl = 'http://www.schoolbites.net/'
870 imageUrl = 'http://www.schoolbites.net/d/%s.html'
871@@ -61,14 +65,16 @@
872 help = 'Index format: n (unpadded)'
873
874
875+
876 class SluggyFreelance(BasicScraper):
877 latestUrl = 'http://www.sluggy.com/'
878- imageUrl = 'http://www.sluggy.com/daily.php?date=%s'
879- imageSearch = compile(r'<img[^>]+src="((?:http://www\.sluggy\.com|\.\.)/images/comics/\d{6}.*?\..+?)"')
880- prevSearch = compile(r'<a href="(http://www\.sluggy\.com/daily\.php\?date=\d{6})"><img border="." src="[^"]+" alt="Previous Comic">')
881+ imageUrl = 'http://www.sluggy.com/comics/archives/daily/%s'
882+ imageSearch = compile(r'<img src="(/images/comics/.+?)"')
883+ prevSearch = compile(r'<a href="(.+?)"[^>]+?><span class="ui-icon ui-icon-seek-prev">')
884 help = 'Index format: yymmdd'
885
886
887+
888 class SodiumEyes(BasicScraper):
889 imageUrl = 'http://sodiumeyes.com/%s'
890 imageSearch = compile(r'(/comic/.+?)"')
891@@ -78,13 +84,6 @@
892 compile(r'<a href="http://sodiumeyes.com/(\d\d\d\d.+?/)">'))
893
894
895-class Sokora(BasicScraper):
896- latestUrl = 'http://www.sokora.com/'
897- imageUrl = 'http://www.sokora.com/index.php?strip_id=%s'
898- imageSearch = compile(r'<img.+?src="(istrip_files/strips/.+?)"')
899- prevSearch = compile(r'<a href="(/?index\.php\?strip_id=\d+?)"[^>]+><img[^>]+src="images/back_off.jpg"')
900- help = 'Index format: nnnn'
901-
902
903 class SpareParts(BasicScraper):
904 latestUrl = 'http://www.sparepartscomics.com/'
905@@ -94,30 +93,16 @@
906 help = 'Index format: yyyymmdd'
907
908
909-class Spoonies(BasicScraper):
910- latestUrl = 'http://www.spoonies.net/main.htm'
911- imageUrl = 'http://www.spoonies.net/d/%s.htm'
912- imageSearch = compile(r'<img border="0" src="(.*?comics/\d{4}/\d{4}%20\d{3}\..+?)"')
913- prevSearch = compile(r'<a href="(.*?\d{6}\.htm)">')
914- help = 'Index format: yyyy/mmddyy'
915-
916-
917-class Sternstaub(BasicScraper):
918- latestUrl = 'http://www.sternstaub.com/'
919- imageUrl = 'http://www.sternstaub.com/?page=archive&comicid=%s'
920- imageSearch = compile(r'<img src="(comics/.+?)" /><br />')
921- prevSearch = compile(r'<a href="(\?page=archive&comicid=\d{10})">Previous')
922- help = 'Index format: yyyymmddnn'
923-
924
925 class Stubble(BasicScraper):
926- latestUrl = 'http://www.stubblecomics.com/'
927+ latestUrl = 'http://www.stubblecomics.com/d/20051230.html'
928 imageUrl = 'http://www.stubblecomics.com/d/%s.html'
929 imageSearch = compile(r'"(/comics/.*?)"')
930 prevSearch = compile(r'"(.*?)".*?backarrow')
931 help = 'Index format: yyyymmdd'
932
933
934+
935 class StrawberryDeathCake(BasicScraper):
936 latestUrl = 'http://rainchildstudios.com/strawberry/'
937 imageUrl = 'http://rainchildstudios.com/strawberry/?p=%s'
938@@ -126,22 +111,25 @@
939 help = 'Index format: n (good luck)'
940
941
942+
943 class SuburbanTribe(BasicScraper):
944- latestUrl = 'http://www.suburbantribe.net/'
945- imageUrl = 'http://www.suburbantribe.net/showArchive.asp?archive=%s'
946- imageSearch = compile(r'<img src="(strips/\d+?.+?)"')
947- prevSearch = compile(r'<a href="(showArchive\.asp\?archive=\d+?)"><img src="images/PreviousStrip.gif"')
948- help = 'Index format: yyyymmdd'
949+ latestUrl = 'http://www.pixelwhip.com/'
950+ imageUrl = 'http://www.pixelwhip.com/?p%s'
951+ imageSearch = compile(r'<img src="(http://www.pixelwhip.com/comics/.+?)"')
952+ prevSearch = compile(r'<div class="nav-previous"><a href="([^"]+)" rel="prev">')
953+ help = 'Index format: nnnn'
954+
955
956
957 class SuccubusJustice(BasicScraper):
958 latestUrl = 'http://www.succubus-justice.com/Com%20main%20frame.htm'
959 imageUrl = 'http://www.succubus-justice.com/%s%%20frame.htm'
960- imageSearch = compile(r'<p align="center"><img src="((?:reworked%20gifs/)?[\w%]+\.\w+)"')
961- prevSearch = compile(r'<a href="([\w%]+\.htm)"[^>]*><img src="124.gif"')
962+ imageSearch = compile(r'<p align="center"><img src="(/\d+.\w{3,4})"')
963+ prevSearch = compile(r'<a href="(/[\w%]+\.htm|[\w%]+\.htm)"[^>]+?><img src="124.gif"')
964 help = 'Index format: nnn'
965
966
967+
968 class Supafine(BasicScraper):
969 latestUrl = 'http://www.supafine.com/comics/view.shtml'
970 imageUrl = 'http://www.supafine.com/comics/news-archive-%s.shtml'
971@@ -150,24 +138,26 @@
972 help = 'Index format: dd-mm-yyyy'
973
974
975+
976 class SomethingPositive(BasicScraper):
977- starter = bounceStarter('http://www.somethingpositive.net/', compile(r'<a\s*\n?\s*href="(sp\d{8}\.shtml)">Next<br>Comic', MULTILINE | IGNORECASE))
978+ latestUrl = 'http://www.somethingpositive.net/'
979 imageUrl = 'http://www.somethingpositive.net/sp%s.shtml'
980- imageSearch = compile(r'<img src="(/?arch/.+\..+?)"')
981- prevSearch = compile(r'<a \n?href="(sp\d{8}\.shtml)">(?:<font size=1\nface=".+?"\nSTYLE=".+?">)?(?:Previous|<img src="images2/previous)', MULTILINE | IGNORECASE)
982+ imageSearch = compile(r'<img src="(/arch/sp\d+.\w{3,4}|/sp\d+.\w{3,4})"')
983+ prevSearch = compile(r'<a \n?href="(sp\d{8}\.shtml)">(<font size=1\nface=".+?"\nSTYLE=".+?">Previous|<img src="images2/previous|<img src="images/previous.gif")', MULTILINE | IGNORECASE)
984 help = 'Index format: mmddyyyy'
985
986 def namer(cls, imageUrl, pageUrl):
987 return pageUrl.split('/')[-1].split('.')[0]
988
989
990+
991 class SexyLosers(BasicScraper):
992 imageUrl = 'http://www.sexylosers.com/%s.html'
993 imageSearch = compile(r'<img src\s*=\s*"\s*(comics/[\w\.]+?)"', IGNORECASE)
994 prevSearch = compile(r'<a href="(/\d{3}\.\w+?)"><font color = FFAAAA><<', IGNORECASE)
995 help = 'Index format: nnn'
996 starter = indirectStarter('http://www.sexylosers.com/',
997- compile(r'latest comic</b>: <a href = "(/[\w\.]+?)">', IGNORECASE))
998+ compile(r'SEXY LOSERS <A HREF="(.+?)">Latest SL Comic \(#\d+\)</A>', IGNORECASE))
999
1000 def namer(cls, imageUrl, pageUrl):
1001 index = pageUrl.split('/')[-1].split('.')[0]
1002
1003=== modified file 'dosage/plugins/t.py'
1004--- dosage/plugins/t.py 2009-12-15 06:55:27 +0000
1005+++ dosage/plugins/t.py 2010-01-10 05:25:22 +0000
1006@@ -2,20 +2,24 @@
1007
1008 from dosage.helpers import BasicScraper, indirectStarter
1009
1010+
1011+
1012 class TalesOfPylea(BasicScraper):
1013 latestUrl = 'http://talesofpylea.com/'
1014- imageUrl = 'http://talesofpylea.com/?p=%s'
1015- imageSearch = compile(r"/(comics/.+?)'")
1016- prevSearch = compile(r'\|.+?(\?p=.+?)">Back')
1017- help = 'Index format: non'
1018+ imageUrl = 'http://talesofpylea.com/%s/'
1019+ imageSearch = compile(r'<img src="(istrip_files/strips/.+?)"')
1020+ prevSearch = compile(r' <a href="(.+?)">Back</a>')
1021+ help = 'Index format: nnn'
1022+
1023
1024
1025 class TheNoob(BasicScraper):
1026- latestUrl = 'http://www.thenoobcomic.com/'
1027- imageUrl = 'http://www.thenoobcomic.com/daily/strip%s.html'
1028- imageSearch = compile(r'<img src="((\.\.)?/images/\d{8}\.jpg)"')
1029- prevSearch = compile(r'<a href="((/daily/)?strip\d+\.html)">Previous</a>')
1030- help = 'Index format: n (unpadded)'
1031+ latestUrl = 'http://www.thenoobcomic.com/index.php'
1032+ imageUrl = 'http://www.thenoobcomic.com/index.php?pos=%'
1033+ imageSearch = compile(r'<img src="(/headquarters/comics/.+?)"')
1034+ prevSearch = compile(r'<a class="comic_nav_previous_button" href="(.+?)"></a>')
1035+ help = 'Index format: nnnn'
1036+
1037
1038
1039 class TheOrderOfTheStick(BasicScraper):
1040@@ -51,34 +55,19 @@
1041 help = 'Index format: nnn'
1042
1043
1044+
1045 class TwoTwoOneFour(BasicScraper):
1046- latestUrl = 'http://www.nitrocosm.com/comic.php'
1047- imageUrl = 'http://www.nitrocosm.com/comic.php?page=%s'
1048- imageSearch = compile(r'<img src="(comic/\d{3}.+?)"')
1049- prevSearch = compile(r'<a href="(comic.php\?page=\d+)"><img src="http://www.nitrocosm.com/skins/07/back.gif"')
1050+ latestUrl = 'http://www.nitrocosm.com/go/2214_classic/'
1051+ imageUrl = 'http://www.nitrocosm.com/go/2214_classic/%s/'
1052+ imageSearch = compile(r'<img class="gallery_display" src="([^"]+)"')
1053+ prevSearch = compile(r'<a href="([^"]+)"[^>]*><button type="submit" class="nav_btn_previous">')
1054 help = 'Index format: n (unpadded)'
1055
1056
1057-def theFray():
1058- class TheFray(BasicScraper):
1059- imageUrl = 'http://www.funnybonecomics.com/thefray/thefray_%s.shtml'
1060- imageSearch = compile(r'<img src="(images/archive/thefray_\d{8}\..+?)"')
1061- prevSearch = compile(r'<area href="(thefray_\d{8}\.shtml)" shape="rect" coords="[\d, ]+" alt="Previous">')
1062- help = 'Index format: yyyymmdd'
1063-
1064- comics = {
1065- 'ThePreface': 'thepreface',
1066- 'TheHole': 'thehole',
1067- }
1068-
1069- return dict((name, TheFray.make('TheFray/' + name, latestUrl='http://www.funnybonecomics.com/thefray/%s.html' % value)) for name, value in comics.iteritems())
1070-
1071-globals().update(theFray())
1072-
1073
1074 class TheWhiteboard(BasicScraper):
1075 latestUrl = 'http://www.the-whiteboard.com/'
1076- imageUrl = 'http://www.the-whiteboard.com/autowb%s.html'
1077- imageSearch = compile(r'SRC="(auto.+?)">', IGNORECASE)
1078- prevSearch = compile(r'p<a href="(auto.+?.html)">prev', IGNORECASE)
1079- help = 'Index format: n'
1080+ imageUrl = 'http://www.the-whiteboard.com/auto%s.html'
1081+ imageSearch = compile(r'<img SRC="(autotwb\d{1,4}.+?|autowb\d{1,4}.+?)">', IGNORECASE)
1082+ prevSearch = compile(r'&nbsp<a href="(.+?)">previous</a>', IGNORECASE)
1083+ help = 'Index format: twb or wb + n wg. twb1000'
1084
1085=== modified file 'dosage/plugins/v.py'
1086--- dosage/plugins/v.py 2010-01-07 02:02:42 +0000
1087+++ dosage/plugins/v.py 2010-01-10 05:25:22 +0000
1088@@ -1,4 +1,4 @@
1089-from re import compile, IGNORECASE
1090+from re import compile, IGNORECASE, MULTILINE
1091
1092 from dosage.helpers import BasicScraper
1093
1094@@ -31,5 +31,6 @@
1095 class ViiviJaWagner(BasicScraper):
1096 latestUrl = 'http://www.hs.fi/viivijawagner/'
1097 imageUrl = 'http://www.hs.fi/viivijawagner/%s'
1098- imageSearch = compile(r'<img src="(/kuvat/iso_webkuva/\d+\.gif)" align="center" BORDER="0" ALT="" TITLE="">', IGNORECASE)
1099- prevSearch = compile(r'<a href="(/viivijawagner/\d+)" class="pro85"><img src="http://www\.hs\.fi/static/hs/img/viivitaakse\.gif" width="60" height="56" border="0" alt="edellinen" title="edellinen">EDELLINEN</a>', IGNORECASE)
1100+ imageSearch = compile(r'<img id="strip\d+"\s+src="([^"]+)"', IGNORECASE)
1101+ prevSearch = compile(r'<a href="(.+?)"[^>]+?>\nEdellinen&nbsp;\n<img src="http://www.hs.fi/static/hs/img/viivitaakse.gif"', MULTILINE | IGNORECASE)
1102+ help = 'Index format: shrugs!'
1103
1104=== modified file 'dosage/plugins/w.py'
1105--- dosage/plugins/w.py 2010-01-06 00:34:04 +0000
1106+++ dosage/plugins/w.py 2010-01-10 05:25:22 +0000
1107@@ -27,14 +27,16 @@
1108 help = 'Index format: n'
1109
1110
1111+
1112 class WhyTheLongFace(BasicScraper):
1113- latestUrl = 'http://www.absurdnotions.org/'
1114+ latestUrl = 'http://www.absurdnotions.org/wtlf200709.html'
1115 imageUrl = 'http://www.absurdnotions.org/wtlf%s.html'
1116- imageSearch = compile(r'<IMG SRC="(lf\d+\..+?)"')
1117- prevSearch = compile(r'<A.*?HREF="(wtlf\d+\.html)"><img SRC="nprev\.gif"')
1118+ imageSearch = compile(r'<img src="(http://www.absurdnotions.org/wtlf.+?|lf\d+.\w{1,4})"', IGNORECASE)
1119+ prevSearch = compile(r'HREF="(.+?)"><IMG SRC="nprev.gif" ')
1120 help = 'Index format: yyyymm'
1121
1122
1123+
1124 class Wigu(BasicScraper):
1125 latestUrl = 'http://www.wigu.com/wigu/'
1126 imageUrl = 'http://www.wigu.com/wigu/?date=%s'
1127@@ -58,14 +60,6 @@
1128 help = 'Index format: n (unpadded)'
1129
1130
1131-class Winter(BasicScraper):
1132- latestUrl = 'http://www.wintercomic.com/'
1133- imageUrl = 'http://www.wintercomic.com/index.php?strip_id=%s'
1134- imageSearch = compile(r'<img src=\'(/index\.php\?do_command=show_strip&strip_id=\d+.+?)\'')
1135- prevSearch = compile(r'<a href=[\'"](/?index\.php\?strip_id=\d+)[\'"]><img.+?src=[\'"]\./img/lastpage.gif[\'"]')
1136- help = 'Index format: n (unpadded)'
1137- namer = queryNamer('strip_id')
1138-
1139
1140 class WorldOfWarcraftEh(BasicScraper):
1141 latestUrl = 'http://woweh.com/'

Subscribers

People subscribed via source and target branches

to all changes: