From bbbba88cf6eb914c53ace70a32ed8874d5e600c2 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Fri, 19 Apr 2024 05:01:24 +0200 Subject: Adding upstream version 1.14.1. Signed-off-by: Daniel Baumann --- scripts/download_redis_commands.py | 50 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100755 scripts/download_redis_commands.py (limited to 'scripts/download_redis_commands.py') diff --git a/scripts/download_redis_commands.py b/scripts/download_redis_commands.py new file mode 100755 index 0000000..4dda6b8 --- /dev/null +++ b/scripts/download_redis_commands.py @@ -0,0 +1,50 @@ +#!python3 + +""" +Download all Reids commands from https://redis.io/commands. +Output to csv format. +""" +import sys +import csv + +from lxml import etree +import requests + +stdout_writer = csv.writer(sys.stdout) + + +def eprint(*args, **kwargs): + print(*args, file=sys.stderr, **kwargs) + + +eprint("Download https://redis.io/commands page...") +page = requests.get("https://redis.io/commands").text +eprint("Download finished!") + +eprint("Start prase page...") +html = etree.HTML(page) +commands = html.xpath("//div[@class='container']/ul/li") +stdout_writer.writerow(["Group", "Command", "Args", "Summary", "Redis.io link"]) +command_rows = [] +# parse page +for command in commands: + group = command.attrib["data-group"] + command_name = command.xpath("./a/span[@class='command']/text()")[0].strip() + command_args = command.xpath( + "./a/span[@class='command']/span[@class='args']/text()" + )[0].strip() + command_summary = command.xpath("./a/span[@class='summary']/text()")[0].strip() + command_link = "https://redis.io" + command.xpath("./a/@href")[0].strip() + command_rows.append( + [ + group, + command_name, + " ".join(command_args.split()), + command_summary, + command_link, + ] + ) +# write to stdout +for row in sorted(command_rows): + stdout_writer.writerow(row) +eprint("Down.") -- cgit v1.2.3