)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":14482,"name":"Ian Y. Choi","email":"ianyrchoi@gmail.com","username":"ianychoi"},"change_message_id":"51dfa81328cee5b8cd8b1ca392422843853c505a","unresolved":true,"context_lines":[{"line_number":10,"context_line":"- weblate_records.py"},{"line_number":11,"context_line":"- __init__.py"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"story: 2010915"},{"line_number":14,"context_line":"tast: 48768"},{"line_number":15,"context_line":"Change-Id: Ie196e43f418e730d6fee7f0a107d198e7daacbc4"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"667fc1fd_e2255742","line":14,"range":{"start_line":13,"start_character":0,"end_line":14,"end_character":11},"updated":"2023-10-27 18:45:21.000000000","message":"I18n SIG is not using Storyboard now and even the link is for opendev/sandbox project, not for I18n SIG.\n\nYou can revise to link a blueprint like \"Implements: blueprint weblate-tools\"","commit_id":"fb84a414da9877051a08073adcfe53de9da31278"},{"author":{"_account_id":36162,"name":"Kuemjong Jeong","display_name":"Goldenbell","email":"gsniper777@gmail.com","username":"jjongmin77"},"change_message_id":"f71031f778895634d315d9a225ba6eb250d1ba25","unresolved":false,"context_lines":[{"line_number":10,"context_line":"- weblate_records.py"},{"line_number":11,"context_line":"- __init__.py"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"story: 2010915"},{"line_number":14,"context_line":"tast: 48768"},{"line_number":15,"context_line":"Change-Id: Ie196e43f418e730d6fee7f0a107d198e7daacbc4"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"4750a2af_50abc69f","line":14,"range":{"start_line":13,"start_character":0,"end_line":14,"end_character":11},"in_reply_to":"667fc1fd_e2255742","updated":"2023-11-08 14:32:03.000000000","message":"Done! Thank you for your review.","commit_id":"fb84a414da9877051a08073adcfe53de9da31278"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":14482,"name":"Ian Y. Choi","email":"ianyrchoi@gmail.com","username":"ianychoi"},"change_message_id":"51dfa81328cee5b8cd8b1ca392422843853c505a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"6ae5db2c_5dd3ecfb","updated":"2023-10-27 18:45:21.000000000","message":"Would you address the key review comments and rebase on the top of this patch: https://review.opendev.org/c/openstack/i18n/+/896308 ? Also, sharing my quick review comments on this patch. Thank you.","commit_id":"fb84a414da9877051a08073adcfe53de9da31278"},{"author":{"_account_id":14482,"name":"Ian Y. Choi","email":"ianyrchoi@gmail.com","username":"ianychoi"},"change_message_id":"9cb6404fa5a0eefa79486a27492e0ef154e3fd76","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"87d77e1b_877c7e0b","in_reply_to":"6ae5db2c_5dd3ecfb","updated":"2023-11-10 15:46:34.000000000","message":"I meant https://review.opendev.org/c/openstack/i18n/+/895763/comment/ab8f315d_27844069/ and other review comments which needs to be reflected to this patch.","commit_id":"fb84a414da9877051a08073adcfe53de9da31278"},{"author":{"_account_id":36162,"name":"Kuemjong Jeong","display_name":"Goldenbell","email":"gsniper777@gmail.com","username":"jjongmin77"},"change_message_id":"df7c7bc857d35cd6404bc64388baa57300b1eb5a","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":10,"id":"d562e5b9_f26a14c6","in_reply_to":"87d77e1b_877c7e0b","updated":"2023-11-28 05:41:18.000000000","message":"I think there\u0027s a misunderstanding.\nI\u0027ll apply it.","commit_id":"fb84a414da9877051a08073adcfe53de9da31278"},{"author":{"_account_id":36162,"name":"Kuemjong Jeong","display_name":"Goldenbell","email":"gsniper777@gmail.com","username":"jjongmin77"},"change_message_id":"46022cd4d67f1cb63fed414ee0972bc04133ade2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"7b06218a_b2209510","in_reply_to":"d562e5b9_f26a14c6","updated":"2023-12-12 08:16:05.000000000","message":"Done","commit_id":"fb84a414da9877051a08073adcfe53de9da31278"},{"author":{"_account_id":14482,"name":"Ian Y. Choi","email":"ianyrchoi@gmail.com","username":"ianychoi"},"change_message_id":"23fdd892ba47f082cf525b7844dc7806d4353c4a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":17,"id":"c90aa176_f27527d2","updated":"2024-02-28 14:20:37.000000000","message":"(Waiting for more reviews as discussed on previous IRC meeting)","commit_id":"d3a062cd63080f52bc993ade659fa7ee542d3f6b"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"5501caf7b9840d2a84b83b506079f8ef74636d52","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":17,"id":"62f95cb1_88846e26","updated":"2024-03-19 13:17:32.000000000","message":"Sorry to be so late in reviewing this.  Is there any way we can use the weblate Python API instead of rolling our own classes?  That way we wouldn\u0027t have to worry about our weblate classes drifting from the weblate response content.\n\nThe source code for the wlc classes is here:\nhttps://github.com/WeblateOrg/wlc/blob/main/wlc/__init__.py\n\nThe wlc is released on pypi and can be pip-installed:\nhttps://pypi.org/project/wlc/\n\nMaybe this won\u0027t work for our purposes, but I want to make sure you take a look before we go down the do-it-yourself road.","commit_id":"d3a062cd63080f52bc993ade659fa7ee542d3f6b"},{"author":{"_account_id":14482,"name":"Ian Y. Choi","email":"ianyrchoi@gmail.com","username":"ianychoi"},"change_message_id":"9a29a4e2bf18730d6e90f21382811887475aa17d","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":17,"id":"14012367_61a87456","in_reply_to":"0396567d_90521da3","updated":"2024-04-02 21:10:55.000000000","message":"Thank you Brian for the review!\n\nNow I am more on merging this if there is no significant blocker on the code since this patch was originally from the result of Korea OpenStack upstream mentoring program led by @seongsoocho and other key mentors and some active members focused on migrating tools/zanata Python codes on opendev.org/openstack/i18n to make Weblate compatible. Per the migration perspective, I am now fine under two situations 1) this works fine with current Weblate 5.4 version (addressing by him on another patch: https://review.opendev.org/c/openstack/i18n/+/914654 ) and 2) all the stats retrieval on this code are working well.\n\nAnd fully agree that leveraging wlc (with version specification through like requirements.txt) is a great idea. Let\u0027s discuss on upcoming PTG.","commit_id":"d3a062cd63080f52bc993ade659fa7ee542d3f6b"},{"author":{"_account_id":36162,"name":"Kuemjong Jeong","display_name":"Goldenbell","email":"gsniper777@gmail.com","username":"jjongmin77"},"change_message_id":"9a13c8982338998eb5360a191715e3215199f39d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":17,"id":"31a2fc05_021e782a","in_reply_to":"14012367_61a87456","updated":"2024-05-21 13:22:28.000000000","message":"Done","commit_id":"d3a062cd63080f52bc993ade659fa7ee542d3f6b"},{"author":{"_account_id":36162,"name":"Kuemjong Jeong","display_name":"Goldenbell","email":"gsniper777@gmail.com","username":"jjongmin77"},"change_message_id":"1a6a55944240ab0db81bb5ce141ff5faa74898db","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":17,"id":"0396567d_90521da3","in_reply_to":"62f95cb1_88846e26","updated":"2024-03-28 15:17:10.000000000","message":"I\u0027ll check this python api! thanks!","commit_id":"d3a062cd63080f52bc993ade659fa7ee542d3f6b"},{"author":{"_account_id":14482,"name":"Ian Y. Choi","email":"ianyrchoi@gmail.com","username":"ianychoi"},"change_message_id":"52e45cbd7985aa0d09243d5a84cc433f4cf2b65c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":18,"id":"5e892838_68479219","updated":"2024-04-02 21:19:56.000000000","message":"@Goldenbell: maybe you also need to rebase from upstream master. I am getting the error like https://paste.opendev.org/show/bvEYrzrYoET8IZuduCg2/","commit_id":"95c6a535f3f9cd7ed717f9bbb34b8376e676198a"},{"author":{"_account_id":14482,"name":"Ian Y. Choi","email":"ianyrchoi@gmail.com","username":"ianychoi"},"change_message_id":"b7e74f9610d9f98e65499f851017209251ac4054","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":20,"id":"9c818a58_98377a9d","updated":"2024-05-08 13:29:03.000000000","message":"I see another error like https://paste.opendev.org/show/bRxtkM4RoHQz0dNKCUhu/ so could investigate in the comments.","commit_id":"5ac34cca40d615b9be575c39ef554b9a5ed6a87e"},{"author":{"_account_id":23279,"name":"Seongsoo Cho","display_name":"Seongsoo Cho","email":"ppiyakk2@printf.kr","username":"seongsoo.cho"},"change_message_id":"d307a75653fbce69cab1483c1fee15905b66ef5f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":22,"id":"27b3b6eb_1eda79ee","updated":"2024-05-22 14:00:28.000000000","message":"Minor changes are required, but not necessary.\n\nLooks good to me","commit_id":"ea37664d79a9bc3c089f176bb098d476210bb83e"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"c46c4b39e435a8038e37212c29dd35ace1ec54d0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":22,"id":"9f38b759_91c75be5","updated":"2024-05-22 14:09:47.000000000","message":"Question inline.  I\u0027m fine with Ian\u0027s suggestion that we merge this as soon as it\u0027s working, and investigate using the weblate-supplied objects for a followup patch.","commit_id":"ea37664d79a9bc3c089f176bb098d476210bb83e"}],"tools/weblate/weblate_records.py":[{"author":{"_account_id":12898,"name":"Tony Breeds","email":"tony@bakeyournoodle.com","username":"tonyb"},"change_message_id":"3cdc073cffd32e0942e14c12de4a40da666aca7a","unresolved":true,"context_lines":[{"line_number":1,"context_line":"#!/usr/bin/env python3"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\");"},{"line_number":4,"context_line":"# you may not use this file except in compliance with the License."}],"source_content_type":"text/x-python","patch_set":16,"id":"3548252a_2c478e9e","line":1,"range":{"start_line":1,"start_character":0,"end_line":1,"end_character":22},"updated":"2024-02-24 03:38:13.000000000","message":"NIT: this isn\u0027t a script it\u0027s a library/set of classes","commit_id":"ae7cbb9bd0023c3bcaa1107e52e73ebf9a16c70a"},{"author":{"_account_id":36162,"name":"Kuemjong Jeong","display_name":"Goldenbell","email":"gsniper777@gmail.com","username":"jjongmin77"},"change_message_id":"537d380a0c857638017be409dd1a1fe62e9540c5","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#!/usr/bin/env python3"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\");"},{"line_number":4,"context_line":"# you may not use this file except in compliance with the License."}],"source_content_type":"text/x-python","patch_set":16,"id":"20bae107_e13419dc","line":1,"range":{"start_line":1,"start_character":0,"end_line":1,"end_character":22},"in_reply_to":"3548252a_2c478e9e","updated":"2024-02-28 14:20:04.000000000","message":"Thanks! I\u0027ll check this.","commit_id":"ae7cbb9bd0023c3bcaa1107e52e73ebf9a16c70a"}],"tools/weblate/weblate_stats.py":[{"author":{"_account_id":14482,"name":"Ian Y. Choi","email":"ianyrchoi@gmail.com","username":"ianychoi"},"change_message_id":"51dfa81328cee5b8cd8b1ca392422843853c505a","unresolved":true,"context_lines":[{"line_number":323,"context_line":""},{"line_number":324,"context_line":"class User(object):"},{"line_number":325,"context_line":"    trans_fields \u003d ["},{"line_number":326,"context_line":"        \"translated\","},{"line_number":327,"context_line":"        \"approved\","},{"line_number":328,"context_line":"        \"needReview\","},{"line_number":329,"context_line":"        \"fuzzy\","},{"line_number":330,"context_line":"        \"failingCheck\","},{"line_number":331,"context_line":"        \"pending\","},{"line_number":332,"context_line":"    ]"},{"line_number":333,"context_line":"    review_fields \u003d [\"total\", \"approved\"]  # Todo"},{"line_number":334,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"76e3bf4f_c38da07e","line":331,"range":{"start_line":326,"start_character":8,"end_line":331,"end_character":17},"updated":"2023-10-27 18:45:21.000000000","message":"Those are for Zanata, not Weblate - would you revised according to the field names for Weblate?","commit_id":"fb84a414da9877051a08073adcfe53de9da31278"},{"author":{"_account_id":36162,"name":"Kuemjong Jeong","display_name":"Goldenbell","email":"gsniper777@gmail.com","username":"jjongmin77"},"change_message_id":"7e0d63a67ac5d0e2365af323eff3c081bc320ad7","unresolved":true,"context_lines":[{"line_number":323,"context_line":""},{"line_number":324,"context_line":"class User(object):"},{"line_number":325,"context_line":"    trans_fields \u003d ["},{"line_number":326,"context_line":"        \"translated\","},{"line_number":327,"context_line":"        \"approved\","},{"line_number":328,"context_line":"        \"needReview\","},{"line_number":329,"context_line":"        \"fuzzy\","},{"line_number":330,"context_line":"        \"failingCheck\","},{"line_number":331,"context_line":"        \"pending\","},{"line_number":332,"context_line":"    ]"},{"line_number":333,"context_line":"    review_fields \u003d [\"total\", \"approved\"]  # Todo"},{"line_number":334,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"2939b1eb_04f920e2","line":331,"range":{"start_line":326,"start_character":8,"end_line":331,"end_character":17},"in_reply_to":"251179a9_a54dc2f0","updated":"2023-11-08 14:33:57.000000000","message":"\u003e \"needReview\" aggregated statistics related to the suppression and comment.\n\nIn this clause, suppression is a typo.\nsuggestion is correct.","commit_id":"fb84a414da9877051a08073adcfe53de9da31278"},{"author":{"_account_id":14482,"name":"Ian Y. Choi","email":"ianyrchoi@gmail.com","username":"ianychoi"},"change_message_id":"9cb6404fa5a0eefa79486a27492e0ef154e3fd76","unresolved":true,"context_lines":[{"line_number":323,"context_line":""},{"line_number":324,"context_line":"class User(object):"},{"line_number":325,"context_line":"    trans_fields \u003d ["},{"line_number":326,"context_line":"        \"translated\","},{"line_number":327,"context_line":"        \"approved\","},{"line_number":328,"context_line":"        \"needReview\","},{"line_number":329,"context_line":"        \"fuzzy\","},{"line_number":330,"context_line":"        \"failingCheck\","},{"line_number":331,"context_line":"        \"pending\","},{"line_number":332,"context_line":"    ]"},{"line_number":333,"context_line":"    review_fields \u003d [\"total\", \"approved\"]  # Todo"},{"line_number":334,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"66785201_6ae40b9e","line":331,"range":{"start_line":326,"start_character":8,"end_line":331,"end_character":17},"in_reply_to":"2939b1eb_04f920e2","updated":"2023-11-10 15:46:34.000000000","message":"Let me ask in another way: Why there is \u0027approved\u0027 field at least here which it seems that Weblate does not support according to this REST API spec - https://docs.weblate.org/en/latest/api.html#get--api-users-(str-username)-statistics- ?","commit_id":"fb84a414da9877051a08073adcfe53de9da31278"},{"author":{"_account_id":36162,"name":"Kuemjong Jeong","display_name":"Goldenbell","email":"gsniper777@gmail.com","username":"jjongmin77"},"change_message_id":"26209424223286cc055ce1d69ba2dd2cad2369a5","unresolved":true,"context_lines":[{"line_number":323,"context_line":""},{"line_number":324,"context_line":"class User(object):"},{"line_number":325,"context_line":"    trans_fields \u003d ["},{"line_number":326,"context_line":"        \"translated\","},{"line_number":327,"context_line":"        \"approved\","},{"line_number":328,"context_line":"        \"needReview\","},{"line_number":329,"context_line":"        \"fuzzy\","},{"line_number":330,"context_line":"        \"failingCheck\","},{"line_number":331,"context_line":"        \"pending\","},{"line_number":332,"context_line":"    ]"},{"line_number":333,"context_line":"    review_fields \u003d [\"total\", \"approved\"]  # Todo"},{"line_number":334,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"6c443d83_953989e5","line":331,"range":{"start_line":326,"start_character":8,"end_line":331,"end_character":17},"in_reply_to":"66785201_6ae40b9e","updated":"2023-11-10 21:07:38.000000000","message":"Oh I got \"approved\" from the following API.\n- https://docs.weblate.org/en/latest/api.html#get--api-units-(int-id)-\n\nI think I need to unify fields according to API spec. I\u0027ll check it again and use the statistics I need.","commit_id":"fb84a414da9877051a08073adcfe53de9da31278"},{"author":{"_account_id":36162,"name":"Kuemjong Jeong","display_name":"Goldenbell","email":"gsniper777@gmail.com","username":"jjongmin77"},"change_message_id":"8560f0870efa2250cfa04a9c525ab1d9ffd399a1","unresolved":true,"context_lines":[{"line_number":323,"context_line":""},{"line_number":324,"context_line":"class User(object):"},{"line_number":325,"context_line":"    trans_fields \u003d ["},{"line_number":326,"context_line":"        \"translated\","},{"line_number":327,"context_line":"        \"approved\","},{"line_number":328,"context_line":"        \"needReview\","},{"line_number":329,"context_line":"        \"fuzzy\","},{"line_number":330,"context_line":"        \"failingCheck\","},{"line_number":331,"context_line":"        \"pending\","},{"line_number":332,"context_line":"    ]"},{"line_number":333,"context_line":"    review_fields \u003d [\"total\", \"approved\"]  # Todo"},{"line_number":334,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"0f1c5294_3230690d","line":331,"range":{"start_line":326,"start_character":8,"end_line":331,"end_character":17},"in_reply_to":"6c443d83_953989e5","updated":"2023-11-21 14:19:59.000000000","message":"https://docs.weblate.org/en/latest/api.html#get--api-users-(str-username)-statistics-\n\nin this api, it show total statistic per user.\nif it need to see a certain period of time, it should combine multiple api.\n\nHowever, if stats will show user\u0027s total statistic, this api can be simple and effective.\n- https://docs.weblate.org/en/latest/api.html#get--api-users-(str-username)-statistics-\n\nI want to here your opinion.","commit_id":"fb84a414da9877051a08073adcfe53de9da31278"},{"author":{"_account_id":36162,"name":"Kuemjong Jeong","display_name":"Goldenbell","email":"gsniper777@gmail.com","username":"jjongmin77"},"change_message_id":"f71031f778895634d315d9a225ba6eb250d1ba25","unresolved":true,"context_lines":[{"line_number":323,"context_line":""},{"line_number":324,"context_line":"class User(object):"},{"line_number":325,"context_line":"    trans_fields \u003d ["},{"line_number":326,"context_line":"        \"translated\","},{"line_number":327,"context_line":"        \"approved\","},{"line_number":328,"context_line":"        \"needReview\","},{"line_number":329,"context_line":"        \"fuzzy\","},{"line_number":330,"context_line":"        \"failingCheck\","},{"line_number":331,"context_line":"        \"pending\","},{"line_number":332,"context_line":"    ]"},{"line_number":333,"context_line":"    review_fields \u003d [\"total\", \"approved\"]  # Todo"},{"line_number":334,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"251179a9_a54dc2f0","line":331,"range":{"start_line":326,"start_character":8,"end_line":331,"end_character":17},"in_reply_to":"76e3bf4f_c38da07e","updated":"2023-11-08 14:32:03.000000000","message":"Excluding \"needReview\", the rest of the fields were taken from weblate.\n\n\"translated\" and \"applied\" are commonly used by weblets with zanata.\n\n\"needReview\" aggregated statistics related to the suppression and comment.\n\nCould you suggest additional changes in this part?","commit_id":"fb84a414da9877051a08073adcfe53de9da31278"},{"author":{"_account_id":14482,"name":"Ian Y. Choi","email":"ianyrchoi@gmail.com","username":"ianychoi"},"change_message_id":"52e45cbd7985aa0d09243d5a84cc433f4cf2b65c","unresolved":true,"context_lines":[{"line_number":17,"context_line":"import collections"},{"line_number":18,"context_line":"import csv"},{"line_number":19,"context_line":"import datetime"},{"line_number":20,"context_line":"from datetime import timedelta"},{"line_number":21,"context_line":"import io"},{"line_number":22,"context_line":"import json"},{"line_number":23,"context_line":"import logging"}],"source_content_type":"text/x-python","patch_set":18,"id":"aa74dfae_fda5998e","line":20,"updated":"2024-04-02 21:19:56.000000000","message":"Maybe \"from datetime import datetime\" is explicitly needed.\n\nI am getting an error: https://paste.opendev.org/show/bjBmr8uj3jr68ahaWG3J/","commit_id":"95c6a535f3f9cd7ed717f9bbb34b8376e676198a"},{"author":{"_account_id":36162,"name":"Kuemjong Jeong","display_name":"Goldenbell","email":"gsniper777@gmail.com","username":"jjongmin77"},"change_message_id":"a11bc6bbd856b6a34bf0ebd6bf2a0e1ea0b96949","unresolved":false,"context_lines":[{"line_number":17,"context_line":"import collections"},{"line_number":18,"context_line":"import csv"},{"line_number":19,"context_line":"import datetime"},{"line_number":20,"context_line":"from datetime import timedelta"},{"line_number":21,"context_line":"import io"},{"line_number":22,"context_line":"import json"},{"line_number":23,"context_line":"import logging"}],"source_content_type":"text/x-python","patch_set":18,"id":"38f78622_7be71519","line":20,"in_reply_to":"aa74dfae_fda5998e","updated":"2024-04-20 04:24:27.000000000","message":"I fixed it. Thank you!","commit_id":"95c6a535f3f9cd7ed717f9bbb34b8376e676198a"},{"author":{"_account_id":14482,"name":"Ian Y. Choi","email":"ianyrchoi@gmail.com","username":"ianychoi"},"change_message_id":"b7e74f9610d9f98e65499f851017209251ac4054","unresolved":true,"context_lines":[{"line_number":35,"context_line":"import yaml"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"WEBLATE_HOST \u003d \"https://openstack.weblate.cloud\""},{"line_number":38,"context_line":"EXAMPLE_HOST \u003d \"http://weblate.example.com\""},{"line_number":39,"context_line":"WEBLATE_URI \u003d WEBLATE_HOST + \"/%s\""},{"line_number":40,"context_line":"LOG \u003d logging.getLogger(\"weblate_stats\")"},{"line_number":41,"context_line":""}],"source_content_type":"text/x-python","patch_set":20,"id":"2d490bfd_8236316f","line":38,"updated":"2024-05-08 13:29:03.000000000","message":"Why there are two variables: WEBLATE_HOST and EXAMPLE_HOST?","commit_id":"5ac34cca40d615b9be575c39ef554b9a5ed6a87e"},{"author":{"_account_id":36162,"name":"Kuemjong Jeong","display_name":"Goldenbell","email":"gsniper777@gmail.com","username":"jjongmin77"},"change_message_id":"9a13c8982338998eb5360a191715e3215199f39d","unresolved":false,"context_lines":[{"line_number":35,"context_line":"import yaml"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"WEBLATE_HOST \u003d \"https://openstack.weblate.cloud\""},{"line_number":38,"context_line":"EXAMPLE_HOST \u003d \"http://weblate.example.com\""},{"line_number":39,"context_line":"WEBLATE_URI \u003d WEBLATE_HOST + \"/%s\""},{"line_number":40,"context_line":"LOG \u003d logging.getLogger(\"weblate_stats\")"},{"line_number":41,"context_line":""}],"source_content_type":"text/x-python","patch_set":20,"id":"96d66b77_b081c89e","line":38,"in_reply_to":"2d490bfd_8236316f","updated":"2024-05-21 13:22:28.000000000","message":"EXAMPLE_HOST was written at the time of testing for the possibility of changing the url of WEBLATE_HOST.\nI deleted it because because it was no longer needed.","commit_id":"5ac34cca40d615b9be575c39ef554b9a5ed6a87e"},{"author":{"_account_id":14482,"name":"Ian Y. Choi","email":"ianyrchoi@gmail.com","username":"ianychoi"},"change_message_id":"b7e74f9610d9f98e65499f851017209251ac4054","unresolved":true,"context_lines":[{"line_number":104,"context_line":""},{"line_number":105,"context_line":"        if \"url\" in kargs:"},{"line_number":106,"context_line":"            uri \u003d kargs.get(\"url\")"},{"line_number":107,"context_line":"            uri.replace(EXAMPLE_HOST, WEBLATE_HOST, 1)"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"        LOG.debug(\"Reading projects from %s\" % uri)"},{"line_number":110,"context_line":"        projects_data \u003d self.read_json_from_uri(uri)"}],"source_content_type":"text/x-python","patch_set":20,"id":"8f825596_349c9a5d","line":107,"updated":"2024-05-08 13:29:03.000000000","message":"Does this indeed need?","commit_id":"5ac34cca40d615b9be575c39ef554b9a5ed6a87e"},{"author":{"_account_id":36162,"name":"Kuemjong Jeong","display_name":"Goldenbell","email":"gsniper777@gmail.com","username":"jjongmin77"},"change_message_id":"9a13c8982338998eb5360a191715e3215199f39d","unresolved":false,"context_lines":[{"line_number":104,"context_line":""},{"line_number":105,"context_line":"        if \"url\" in kargs:"},{"line_number":106,"context_line":"            uri \u003d kargs.get(\"url\")"},{"line_number":107,"context_line":"            uri.replace(EXAMPLE_HOST, WEBLATE_HOST, 1)"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"        LOG.debug(\"Reading projects from %s\" % uri)"},{"line_number":110,"context_line":"        projects_data \u003d self.read_json_from_uri(uri)"}],"source_content_type":"text/x-python","patch_set":20,"id":"73529755_ac95f29e","line":107,"in_reply_to":"8f825596_349c9a5d","updated":"2024-05-21 13:22:28.000000000","message":"Done","commit_id":"5ac34cca40d615b9be575c39ef554b9a5ed6a87e"},{"author":{"_account_id":14482,"name":"Ian Y. Choi","email":"ianyrchoi@gmail.com","username":"ianychoi"},"change_message_id":"b7e74f9610d9f98e65499f851017209251ac4054","unresolved":true,"context_lines":[{"line_number":222,"context_line":""},{"line_number":223,"context_line":"        if \"url\" in kargs:"},{"line_number":224,"context_line":"            uri \u003d kargs.get(\"url\")"},{"line_number":225,"context_line":"            uri \u003d WEBLATE_HOST + uri.split(EXAMPLE_HOST)[1]"},{"line_number":226,"context_line":"            uri.replace(EXAMPLE_HOST, WEBLATE_HOST, 1)"},{"line_number":227,"context_line":""},{"line_number":228,"context_line":"        if \"checksum\" in kargs:"}],"source_content_type":"text/x-python","patch_set":20,"id":"2b4acd4d_e976f738","line":225,"updated":"2024-05-08 13:29:03.000000000","message":"Not sure how it works - would you explain?","commit_id":"5ac34cca40d615b9be575c39ef554b9a5ed6a87e"},{"author":{"_account_id":36162,"name":"Kuemjong Jeong","display_name":"Goldenbell","email":"gsniper777@gmail.com","username":"jjongmin77"},"change_message_id":"9a13c8982338998eb5360a191715e3215199f39d","unresolved":false,"context_lines":[{"line_number":222,"context_line":""},{"line_number":223,"context_line":"        if \"url\" in kargs:"},{"line_number":224,"context_line":"            uri \u003d kargs.get(\"url\")"},{"line_number":225,"context_line":"            uri \u003d WEBLATE_HOST + uri.split(EXAMPLE_HOST)[1]"},{"line_number":226,"context_line":"            uri.replace(EXAMPLE_HOST, WEBLATE_HOST, 1)"},{"line_number":227,"context_line":""},{"line_number":228,"context_line":"        if \"checksum\" in kargs:"}],"source_content_type":"text/x-python","patch_set":20,"id":"19822501_4880df13","line":225,"in_reply_to":"2b4acd4d_e976f738","updated":"2024-05-21 13:22:28.000000000","message":"Acknowledged","commit_id":"5ac34cca40d615b9be575c39ef554b9a5ed6a87e"}],"tools/weblate/weblate_utils.py":[{"author":{"_account_id":23279,"name":"Seongsoo Cho","display_name":"Seongsoo Cho","email":"ppiyakk2@printf.kr","username":"seongsoo.cho"},"change_message_id":"d307a75653fbce69cab1483c1fee15905b66ef5f","unresolved":true,"context_lines":[{"line_number":75,"context_line":"            r \u003d requests.get("},{"line_number":76,"context_line":"                request_url,"},{"line_number":77,"context_line":"                headers\u003dself.headers,"},{"line_number":78,"context_line":"                verify\u003dself.verify,"},{"line_number":79,"context_line":"                )"},{"line_number":80,"context_line":"        except requests.exceptions.ConnectionError as e:"},{"line_number":81,"context_line":"            # raise ValueError(\"Connection Error: %s\" % e)"}],"source_content_type":"text/x-python","patch_set":22,"id":"1a828a37_c4626a31","line":78,"updated":"2024-05-22 14:00:28.000000000","message":"We can remove this options. Because if SSL doesn\u0027t work, there\u0027s something wrong with weblate, and it\u0027s good to know it\u0027s an error.","commit_id":"ea37664d79a9bc3c089f176bb098d476210bb83e"},{"author":{"_account_id":14482,"name":"Ian Y. Choi","email":"ianyrchoi@gmail.com","username":"ianychoi"},"change_message_id":"2b1b7550a6dbd08d32a858f890c2bbf2c8d75fc1","unresolved":true,"context_lines":[{"line_number":75,"context_line":"            r \u003d requests.get("},{"line_number":76,"context_line":"                request_url,"},{"line_number":77,"context_line":"                headers\u003dself.headers,"},{"line_number":78,"context_line":"                verify\u003dself.verify,"},{"line_number":79,"context_line":"                )"},{"line_number":80,"context_line":"        except requests.exceptions.ConnectionError as e:"},{"line_number":81,"context_line":"            # raise ValueError(\"Connection Error: %s\" % e)"}],"source_content_type":"text/x-python","patch_set":22,"id":"11fa79a2_db92e645","line":78,"in_reply_to":"1a828a37_c4626a31","updated":"2024-05-22 14:07:06.000000000","message":"Agree","commit_id":"ea37664d79a9bc3c089f176bb098d476210bb83e"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"c46c4b39e435a8038e37212c29dd35ace1ec54d0","unresolved":true,"context_lines":[{"line_number":78,"context_line":"                verify\u003dself.verify,"},{"line_number":79,"context_line":"                )"},{"line_number":80,"context_line":"        except requests.exceptions.ConnectionError as e:"},{"line_number":81,"context_line":"            # raise ValueError(\"Connection Error: %s\" % e)"},{"line_number":82,"context_line":"            print(e)"},{"line_number":83,"context_line":"        if raise_errors and r.status_code !\u003d 200:"},{"line_number":84,"context_line":"            raise ValueError("},{"line_number":85,"context_line":"                \"Got status code %s for %s\" % (r.status_code, request_url)"}],"source_content_type":"text/x-python","patch_set":22,"id":"7689595c_749c23da","line":82,"range":{"start_line":81,"start_character":0,"end_line":82,"end_character":20},"updated":"2024-05-22 14:09:47.000000000","message":"Is this left over from debugging?","commit_id":"ea37664d79a9bc3c089f176bb098d476210bb83e"}]}
