(
date_since, resources=None, languages=None, verbosity=0
)
| 80 | |
| 81 | |
| 82 | def list_resources_with_updates( |
| 83 | date_since, resources=None, languages=None, verbosity=0 |
| 84 | ): |
| 85 | api_token = get_api_token() |
| 86 | project = "o:django:p:django" |
| 87 | date_since_iso = date_since.isoformat().strip("Z") + "Z" |
| 88 | if verbosity: |
| 89 | print(f"\n== Starting list_resources_with_updates at {date_since_iso=}") |
| 90 | |
| 91 | if not languages: |
| 92 | languages = [ # List languages using Transifex projects API. |
| 93 | d["attributes"]["code"] |
| 94 | for d in get_api_response( |
| 95 | f"projects/{project}/languages", api_token, verbosity=verbosity |
| 96 | ) |
| 97 | ] |
| 98 | if verbosity > 1: |
| 99 | print(f"\n=== Languages to process: {languages=}") |
| 100 | |
| 101 | if not resources: |
| 102 | resources = [ # List resources using Transifex resources API. |
| 103 | d["attributes"]["slug"] |
| 104 | for d in get_api_response( |
| 105 | "resources", |
| 106 | api_token, |
| 107 | params={"filter[project]": project}, |
| 108 | verbosity=verbosity, |
| 109 | ) |
| 110 | ] |
| 111 | else: |
| 112 | resources = [_tx_resource_slug_for_name(r) for r in resources] |
| 113 | if verbosity > 1: |
| 114 | print(f"\n=== Resources to process: {resources=}") |
| 115 | |
| 116 | resource_lang_changed = defaultdict(list) |
| 117 | for lang, resource in product(languages, resources): |
| 118 | if verbosity: |
| 119 | print(f"\n=== Getting data for: {lang=} {resource=} {date_since_iso=}") |
| 120 | data = get_api_response( |
| 121 | "resource_translations", |
| 122 | api_token, |
| 123 | params={ |
| 124 | "filter[resource]": f"{project}:r:{resource}", |
| 125 | "filter[language]": f"l:{lang}", |
| 126 | "filter[date_translated][gt]": date_since_iso, |
| 127 | }, |
| 128 | verbosity=verbosity, |
| 129 | ) |
| 130 | local_resource = resource.replace("contrib-", "", 1) |
| 131 | local_lang = lang # XXX: LANG_OVERRIDES.get(lang, lang) |
| 132 | if data: |
| 133 | resource_lang_changed[local_resource].append(local_lang) |
| 134 | if verbosity > 2: |
| 135 | fname = f"{local_resource}-{local_lang}.json" |
| 136 | with open(fname, "w") as f: |
| 137 | f.write(json.dumps(data, sort_keys=True, indent=2)) |
| 138 | print(f"==== Stored full data JSON in: {fname}") |
| 139 | if verbosity > 1: |
no test coverage detected