mirror of
https://github.com/moparisthebest/xeps
synced 2024-11-24 10:12:19 -05:00
58 lines
1.4 KiB
Python
58 lines
1.4 KiB
Python
|
#!/usr/bin/env python3
|
||
|
import xml.etree.ElementTree as etree
|
||
|
|
||
|
from datetime import datetime, timedelta
|
||
|
|
||
|
from xeplib import load_xepinfos, Status
|
||
|
|
||
|
|
||
|
def get_deferred(accepted):
|
||
|
now = datetime.utcnow().replace(hour=0, minute=0, second=0, microsecond=0)
|
||
|
threshold = now.replace(year=now.year - 1)
|
||
|
|
||
|
for number, info in sorted(accepted.items()):
|
||
|
if info["status"] == Status.EXPERIMENTAL and "last_revision" in info:
|
||
|
last_update = info["last_revision"]["date"]
|
||
|
if last_update <= threshold:
|
||
|
yield info
|
||
|
|
||
|
|
||
|
def main():
|
||
|
import argparse
|
||
|
|
||
|
parser = argparse.ArgumentParser(
|
||
|
description="Show the XEPs which need to be changed to deferred."
|
||
|
)
|
||
|
|
||
|
parser.add_argument(
|
||
|
"-l", "--xeplist",
|
||
|
type=argparse.FileType("rb"),
|
||
|
default=None,
|
||
|
help="XEP list to use (defaults to ./build/xeplist.xml)"
|
||
|
)
|
||
|
|
||
|
parser.add_argument(
|
||
|
"-m", "--modify",
|
||
|
action="store_true",
|
||
|
default=False,
|
||
|
help="Modify the XEP files in-place."
|
||
|
)
|
||
|
|
||
|
args = parser.parse_args()
|
||
|
|
||
|
if args.xeplist is None:
|
||
|
args.xeplist = open("./build/xeplist.xml", "rb")
|
||
|
|
||
|
with args.xeplist as f:
|
||
|
tree = etree.parse(f)
|
||
|
|
||
|
accepted, _ = load_xepinfos(tree)
|
||
|
deferred = list(get_deferred(accepted))
|
||
|
|
||
|
for deferred_info in deferred:
|
||
|
print(deferred_info["number"])
|
||
|
|
||
|
|
||
|
if __name__ == "__main__":
|
||
|
main()
|