aboutsummaryrefslogtreecommitdiffstats
path: root/gallery_dl/postprocessor/common.py
blob: 64f978e9e8ba2f64edf50114e079c9f77e8013d6 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# -*- coding: utf-8 -*-

# Copyright 2018-2020 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.

"""Common classes and constants used by postprocessor modules."""


class PostProcessor():
    """Base class for postprocessors"""

    def __init__(self, job):
        name = self.__class__.__name__[:-2].lower()
        self.log = job.get_logger("postprocessor." + name)

    @staticmethod
    def prepare(pathfmt):
        """Update file paths, etc."""

    @staticmethod
    def run(pathfmt):
        """Execute the postprocessor for a file"""

    @staticmethod
    def run_metadata(pathfmt):
        """Execute the postprocessor for a file"""

    @staticmethod
    def run_after(pathfmt):
        """Execute postprocessor after moving a file to its target location"""

    @staticmethod
    def run_final(pathfmt, status):
        """Postprocessor finalization after all files have been downloaded"""

    def __repr__(self):
        return self.__class__.__name__