Last active 1625748957

A tool to get the size of an archive.org bucket

Alyssa Smith revised this gist 1625784957. Go to revision

1 file changed, 32 insertions

archive_size(file created)

@@ -0,0 +1,32 @@
1 + #!/usr/bin/env python3
2 + import xmltodict
3 + import requests
4 +
5 + def sizeof_fmt(num, suffix='B'):
6 + for unit in ['','Ki','Mi','Gi','Ti','Pi','Ei','Zi']:
7 + if abs(num) < 1024.0:
8 + return "%3.1f%s%s" % (num, unit, suffix)
9 + num /= 1024.0
10 + return "%.1f%s%s" % (num, 'Yi', suffix)
11 +
12 + def get_size_of_bucket(bucket):
13 + data = xmltodict.parse(
14 + requests.get(f"https://archive.org/download/{bucket}/{bucket}_files.xml").text
15 + )
16 + return sum(int(f["size"]) for f in data["files"]["file"] if "size" in f)
17 +
18 + def main():
19 + from argparse import ArgumentParser
20 + parser = ArgumentParser()
21 + parser.add_argument("bucket")
22 + parser.add_argument("-u", "--human", help="(hUman): Returns output as human-readable (e.g 1.1MiB)", action="store_true")
23 + args = parser.parse_args()
24 + size = get_size_of_bucket(args.bucket)
25 + if args.human:
26 + print(sizeof_fmt(size))
27 + else:
28 + print(size)
29 + return 0
30 +
31 + if __name__ == "__main__":
32 + exit(main())
Newer Older