]> git.scottworley.com Git - paperdoorknob/blob - paperdoorknob.py
fetch: Multiple fetches per session
[paperdoorknob] / paperdoorknob.py
1 # paperdoorknob: Print glowfic
2 #
3 # This program is free software: you can redistribute it and/or modify it
4 # under the terms of the GNU General Public License as published by the
5 # Free Software Foundation, version 3.
6
7
8 from argparse import ArgumentParser
9 import requests
10
11
12 def command_line_parser() -> ArgumentParser:
13 parser = ArgumentParser(prog='paperdoorknob', description='Print glowfic')
14 parser.add_argument(
15 '--timeout',
16 help='How long to wait for HTTP requests, in seconds',
17 default=30)
18 parser.add_argument('url', help='URL to retrieve')
19 return parser
20
21
22 def fetch(url: str, session: requests.Session, timeout: int) -> None:
23 with session.get(url, timeout=timeout) as r:
24 r.raise_for_status()
25
26
27 def main() -> None:
28 args = command_line_parser().parse_args()
29 with requests.session() as session:
30 fetch(args.url, session, args.timeout)
31
32
33 if __name__ == '__main__':
34 main()