mirror of
https://github.com/chatmail/core.git
synced 2026-04-05 23:22:11 +03:00
Add lint environment to `deltachat-rpc-client/` and set line length to 120, same as in `python/`. Switch from flake8 to ruff. Fix ruff warnings.
74 lines
2.2 KiB
Python
74 lines
2.2 KiB
Python
"""
|
|
Remove old "dc" indices except for master which always stays.
|
|
|
|
"""
|
|
import datetime
|
|
import subprocess
|
|
import sys
|
|
|
|
from requests import Session
|
|
|
|
MAXDAYS = 7
|
|
|
|
session = Session()
|
|
session.headers["Accept"] = "application/json"
|
|
|
|
|
|
def get_indexes(baseurl, username):
|
|
response = session.get(baseurl + username)
|
|
assert response.status_code == 200
|
|
result = response.json()["result"]
|
|
return result["indexes"]
|
|
|
|
|
|
def get_projectnames(baseurl, username, indexname):
|
|
response = session.get(baseurl + username + "/" + indexname)
|
|
assert response.status_code == 200
|
|
result = response.json()["result"]
|
|
return result["projects"]
|
|
|
|
|
|
def get_release_dates(baseurl, username, indexname, projectname):
|
|
response = session.get(baseurl + username + "/" + indexname + "/" + projectname)
|
|
assert response.status_code == 200
|
|
result = response.json()["result"]
|
|
dates = set()
|
|
for value in result.values():
|
|
if "+links" not in value:
|
|
continue
|
|
for link in value["+links"]:
|
|
for log in link["log"]:
|
|
dates.add(tuple(log["when"]))
|
|
return dates
|
|
|
|
|
|
def run():
|
|
baseurl = "https://m.devpi.net/"
|
|
username = "dc"
|
|
for indexname in get_indexes(baseurl, username):
|
|
projectnames = get_projectnames(baseurl, username, indexname)
|
|
if indexname == "master" or not indexname:
|
|
continue
|
|
clear_index = not projectnames
|
|
for projectname in projectnames:
|
|
dates = get_release_dates(baseurl, username, indexname, projectname)
|
|
if not dates:
|
|
print(
|
|
"%s has no releases" % (baseurl + username + "/" + indexname),
|
|
file=sys.stderr,
|
|
)
|
|
date = datetime.datetime.now()
|
|
else:
|
|
date = datetime.datetime(*max(dates))
|
|
if (datetime.datetime.now() - date) > datetime.timedelta(days=MAXDAYS):
|
|
assert username and indexname
|
|
clear_index = True
|
|
break
|
|
if clear_index:
|
|
url = baseurl + username + "/" + indexname
|
|
subprocess.check_call(["devpi", "index", "-y", "--delete", url])
|
|
|
|
|
|
if __name__ == "__main__":
|
|
run()
|