From: Guillaume Pellerin Date: Thu, 28 Oct 2021 16:53:55 +0000 (+0200) Subject: add python version of the statifier X-Git-Url: https://git.parisson.com/?a=commitdiff_plain;h=89b55070eac4afccd22faec62870819d236cf370;p=docker-django-scripts.git add python version of the statifier --- diff --git a/misc/statifier.py b/misc/statifier.py new file mode 100644 index 0000000..512881e --- /dev/null +++ b/misc/statifier.py @@ -0,0 +1,65 @@ +#!/usr/bin/python3 + +import os +from optparse import OptionParser +import shutil + +class Statifier: + + def __init__(self, domain, languages): + self.domain = domain + self.languages = languages + + def wget(self, language, dir): + command = 'wget -q --mirror -p --adjust-extension --header="Accept-Language: %s" -e robots=off --base=./ -k -P %s https://%s' % (language, dir, self.domain) + print(command) + os.system(command) + + def sed(self, dir, rule): + command = "find %s -type f -print0 | xargs -0 sed -r -i -e '%s'" % (dir, rule) + print(command) + os.system(command) + + def fix_languages(self, dir, language): + rule = 's,
,,g' % self.domain + self.sed(dir, rule) + + rule = 's,,,g' \ + % (language, language.upper(), language, language, language.upper()) + self.sed(dir, rule) + + rule = 's,,,g' \ + % (language, language.upper(), language, language, language.upper()) + self.sed(dir, rule) + + rule = 's,
,,g' \ + % (language, language.upper(), language, language, language.upper()) + self.sed(dir, rule) + + rule = 's,,,g' \ + % (language, language.upper(), language, language, language.upper()) + self.sed(dir, rule) + + def main(self): + for language in self.languages: + self.wget(language, self.domain) + shutil.move(self.domain + os.sep + self.domain, self.domain + os.sep + language) + + for language in self.languages: + self.fix_languages(self.domain, language) + + +def main(): + parser = OptionParser() + parser.add_option("-d", "--domain", dest="domain", help="domain") + parser.add_option("-l", "--languages", + dest="languages", nargs=2, + help="languages") + (options, args) = parser.parse_args() + + s = Statifier(options.domain, options.languages) + s.main() + +if __name__ == "__main__": + main() +