From dbdd43cff53f589fad3ab77cadd165c5f448fa0c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mike=20F=C3=A4hrmann?= Date: Thu, 8 Sep 2016 07:56:52 +0200 Subject: [PATCH] [imgcandy] add extractor --- gallery_dl/extractor/__init__.py | 3 ++- gallery_dl/extractor/imgcandy.py | 40 ++++++++++++++++++++++++++++++++ 2 files changed, 42 insertions(+), 1 deletion(-) create mode 100644 gallery_dl/extractor/imgcandy.py diff --git a/gallery_dl/extractor/__init__.py b/gallery_dl/extractor/__init__.py index 8365f252..5d026035 100644 --- a/gallery_dl/extractor/__init__.py +++ b/gallery_dl/extractor/__init__.py @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- -# Copyright 2015 Mike Fährmann +# Copyright 2015,2016 Mike Fährmann # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License version 2 as @@ -33,6 +33,7 @@ modules = [ "imagefap", "imagetwist", "imgbox", + "imgcandy", "imgchili", "imgth", "imgur", diff --git a/gallery_dl/extractor/imgcandy.py b/gallery_dl/extractor/imgcandy.py new file mode 100644 index 00000000..a784c66c --- /dev/null +++ b/gallery_dl/extractor/imgcandy.py @@ -0,0 +1,40 @@ +# -*- coding: utf-8 -*- + +# Copyright 2016 Mike Fährmann +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License version 2 as +# published by the Free Software Foundation. + +"""Extract images from http://imgcandy.net/""" + +from .common import Extractor, Message +from .. import text + +class ImgcandyImageExtractor(Extractor): + """Extractor for single images from imgcandy.net""" + category = "imgcandy" + directory_fmt = ["{category}"] + filename_fmt = "{filename}" + pattern = [(r"(?:https?://)?(?:www\.)?imgcandy\.net/img-([a-z0-9]+)" + r"(?:_(.+))?\.html")] + test = [("http://imgcandy.net/img-57d02527efee8_test-テスト.png.html", { + "url": "bc3c9207b10dbfe8e65ccef5b9e3194a7427b4fa", + "keyword": "381e036374742a091cac7dd7a3eca90ee725afa3", + "content": "0c8768055e4e20e7c7259608b67799171b691140", + })] + + def __init__(self, match): + Extractor.__init__(self) + self.token, self.filename = match.groups() + + def items(self): + data = {"category": self.category, "token": self.token} + params = {"imgContinue": "Continue+to+image+...+"} + page = self.request("http://imgcandy.net/img-" + self.token + ".html", + method="post", data=params).text + url = text.extract(page, "