OSDN Git Service

add wp_imgswap2.py for new OSDN Magazine
[otptools/otptools.git] / htproc.py
1 #!/usr/bin/env python\r
2 #\r
3 """htproc.py - HTML Processor"""\r
4 \r
5 import sys\r
6 from BeautifulSoup import BeautifulSoup\r
7 \r
8 from rules import rules\r
9 \r
10 usage = """%s <src> <dest>""" % sys.argv[0]\r
11 \r
12 try:\r
13     src = sys.argv[1]\r
14     dest = sys.argv[2]\r
15 except IndexError:\r
16     sys.exit(usage)\r
17 \r
18 f_src = open(src, "r")\r
19 f_dest = open(dest, "w")\r
20 \r
21 html = f_src.read()\r
22 bsp = BeautifulSoup(html)\r
23 \r
24 for tag in rules:\r
25     for result in bsp.findAll(tag):\r
26         if rules[tag].has_key("begin"):\r
27             result.insert(0, rules[tag]["begin"])\r
28         if rules[tag].has_key("pre"):\r
29             rawtag = result.prettify()\r
30             if rules[tag].has_key("post"):\r
31                 rawtag = rules[tag]["pre"] + rawtag + rules[tag]["post"]\r
32             else:\r
33                 rawtag = rules[tag]["pre"] + rawtag\r
34             result.replaceWith(rawtag)\r
35 \r
36         elif rules[tag].has_key("pre"):\r
37             rawtag = result.prettify() + rules[tag]["post"]\r
38             result.replaceWith(rawtag)\r
39 \r
40 #f_dest.write(bsp.prettify())\r
41 f_dest.write(bsp.renderContents())\r
42 \r
43 f_src.close()\r
44 f_dest.close()\r
45 \r