diff --git a/dosagelib/plugins/m.py b/dosagelib/plugins/m.py
index c60c184a5..d69531e36 100644
--- a/dosagelib/plugins/m.py
+++ b/dosagelib/plugins/m.py
@@ -4,7 +4,7 @@
# SPDX-FileCopyrightText: © 2015 Tobias Gruetzmacher
# SPDX-FileCopyrightText: © 2019 Daniel Ring
import json
-from re import compile, escape, IGNORECASE
+from re import compile, IGNORECASE
from ..helpers import indirectStarter
from ..scraper import ParserScraper, _BasicScraper, _ParserScraper
@@ -13,13 +13,10 @@ from ..xml import NS
from .common import ComicControlScraper, WordPressScraper, WordPressWebcomic
-class MacHall(_BasicScraper):
- url = 'http://www.machall.com/'
- stripUrl = url + 'view.php?date=%s'
- firstStripUrl = stripUrl % '2000-11-07'
- imageSearch = compile(r']+?src=\'drop_shadow/previous.gif\'>')
- help = 'Index format: yyyy-mm-dd'
+class MacHall(ComicControlScraper):
+ url = 'https://www.machall.com/'
+ stripUrl = url + 'comic/%s'
+ firstStripUrl = stripUrl % 'moving-in'
class MadamAndEve(_BasicScraper):
@@ -58,12 +55,12 @@ class MareInternum(WordPressScraper):
firstStripUrl = stripUrl % 'intro-page-1'
-class Marilith(_BasicScraper):
- url = 'http://www.marilith.com/'
+class Marilith(ParserScraper):
+ url = 'https://web.archive.org/web/20170619193143/http://www.marilith.com/'
stripUrl = url + 'archive.php?date=%s'
firstStripUrl = stripUrl % '20041215'
- imageSearch = compile(r'')
- help = 'Index Format: n'
-
-
-class MyCartoons(_BasicScraper):
- url = 'http://mycartoons.de/'
- rurl = escape(url)
- stripUrl = url + 'page/%s'
- imageSearch = (
- compile(tagre("img", "src", r'(%swp-content/cartoons/(?:[^"]+/)?\d+-\d+-\d+[^"]+)' % rurl)),
- compile(tagre("img", "src", r'(%scartoons/[^"]+/\d+-\d+-\d+[^"]+)' % rurl)),
- )
- prevSearch = compile(tagre("a", "href", r'(%spage/[^"]+)' % rurl) +
- "«")
- help = 'Index format: number'
- lang = 'de'
+class Moonsticks(ParserScraper):
+ url = "https://moonsticks.org/"
+ imageSearch = "//div[d:class('entry-content')]//img"
+ prevSearch = ('//a[@rel="prev"]', "//a[text()='\u00AB Prev']")
class MyLifeWithFel(ParserScraper):
diff --git a/dosagelib/plugins/o.py b/dosagelib/plugins/o.py
index 5706d2ba2..2f85ee765 100644
--- a/dosagelib/plugins/o.py
+++ b/dosagelib/plugins/o.py
@@ -11,6 +11,12 @@ from ..util import tagre
from .common import WordPressScraper, WordPressNavi
+class OccasionalComicsDisorder(WordPressScraper):
+ url = 'https://occasionalcomics.com/'
+ stripUrl = url + 'comic/%s/'
+ firstStripUrl = stripUrl % 'latest-comic-2'
+
+
class OctopusPie(_ParserScraper):
url = 'http://www.octopuspie.com/'
rurl = escape(url)
diff --git a/dosagelib/plugins/old.py b/dosagelib/plugins/old.py
index 1c37f90c5..4ca85ba18 100644
--- a/dosagelib/plugins/old.py
+++ b/dosagelib/plugins/old.py
@@ -1605,6 +1605,8 @@ class Removed(Scraper):
cls('KemonoCafe/PrincessBunny'),
cls('Lackadaisy', 'block'),
cls('MangaDex/ImTheMaxLevelNewbie', 'legal'),
+ cls('MrLovenstein', 'jsh'),
+ cls('MyCartoons'),
cls('StudioKhimera/Mousechevious'),
cls('TalesAndTactics'),
cls('VampireHunterBoyfriends'),
@@ -1716,5 +1718,6 @@ class Renamed(Scraper):
# Renamed in 3.1
cls('Exiern', 'ComicFury/Exiern'),
+ cls('MaxOveracts', 'OccasionalComicsDisorder'),
cls('SafelyEndangered', 'WebToons/SafelyEndangered'),
)