Compare commits
2
Commits
e11e808613
...
fc00034361
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
fc00034361 | ||
|
|
9bd20bf1ae |
No files matched your search
+10
-8
@@ -1,7 +1,7 @@
|
||||
import requests
|
||||
from bs4 import BeautifulSoup
|
||||
import urllib.parse
|
||||
import pdfkit
|
||||
from weasyprint import HTML
|
||||
|
||||
class MLWerk:
|
||||
class SubSite:
|
||||
@@ -31,22 +31,24 @@ class MLWerk:
|
||||
if limit != None and i > limit:
|
||||
break
|
||||
link = link.get('href')
|
||||
if not (link == None and ("#" in link or "/" in link)):
|
||||
if not link == None and not ("#" in link or "/" in link):
|
||||
self.subsites.append(self.SubSite(urllib.parse.urljoin(self.baseurl, link)))
|
||||
i += 1
|
||||
|
||||
def concatsubsites(self):
|
||||
for subsite in self.subsites:
|
||||
for element in subsite.soup.body:
|
||||
self.soup.body.append(element)
|
||||
for tag in subsite.soup.body:
|
||||
if (tag != "\n" and tag.name != "a"):
|
||||
self.soup.body.append(tag)
|
||||
|
||||
def genpdf(self, path):
|
||||
pdfkit.from_string(str(self.soup), path, options={"enable-local-file-access": ""})
|
||||
HTML(string=str(self.soup)).write_pdf(path)
|
||||
|
||||
def text2pdf(self, path):
|
||||
def text2pdf(self, path, dry=False):
|
||||
print("gettings subsites")
|
||||
self.getsubsites
|
||||
self.getsubsites()
|
||||
print("concatting subsites")
|
||||
self.concatsubsites
|
||||
self.concatsubsites()
|
||||
if not dry:
|
||||
print("generating pdf")
|
||||
self.genpdf(path)
|
||||
@@ -7,7 +7,8 @@ parser = argparse.ArgumentParser(
|
||||
epilog='published under GPL-3 at https://git.roteserver.de/humorhenker/mlwerke2pdf')
|
||||
parser.add_argument('-u', '--url', dest='url', help='base / table of contents of a text like http://www.mlwerke.de/me/me04/me04_459.htm', required=True)
|
||||
parser.add_argument('-o', '--pdfpath', dest='pdfpath', help='path for the output pdf', required=True)
|
||||
parser.add_argument('--dry', dest='dryrun', default=False, help="dont store any files just dry fetch")
|
||||
|
||||
args = parser.parse_args()
|
||||
|
||||
mlwerke2pdf.MLWerk(args.url).text2pdf(args.pdfpath)
|
||||
mlwerke2pdf.MLWerk(args.url).text2pdf(args.pdfpath, args.dryrun)
|
||||
Reference in new issue
Block a user