)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":308,"name":"Thierry Carrez","email":"thierry@openstack.org","username":"ttx"},"change_message_id":"850a7c8851478e8cad7915c76e199b56ccab0e7b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"aad0578c_dc4a0757","updated":"2023-06-09 21:16:24.000000000","message":"Probably needs some more work but we can iterate on it","commit_id":"31c9a9fedb4a7e2f1047a733b4a794ea1fa44a58"},{"author":{"_account_id":12898,"name":"Tony Breeds","email":"tony@bakeyournoodle.com","username":"tonyb"},"change_message_id":"e69987a1f59d10aefc72d93d207f23e3e26de6f5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"6f444da9_1ea53248","updated":"2023-09-25 02:05:16.000000000","message":"@diablo_rojo can you confirm my thinking about vPTG session lengths?","commit_id":"f3060c080671445bf3b432c7f820886089a314c7"},{"author":{"_account_id":16708,"name":"Kendall Nelson","display_name":"Kendall (diablo_rojo)","email":"kennelson11@gmail.com","username":"kjnelson"},"change_message_id":"646164c8372545e8cac9048bc112d5ea09be354c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"4e15a4d3_ab5ab1ca","in_reply_to":"6f444da9_1ea53248","updated":"2023-10-03 05:10:32.000000000","message":"Yep. They are 1 hour blocks.","commit_id":"f3060c080671445bf3b432c7f820886089a314c7"}],"ptgbot/ics.py":[{"author":{"_account_id":5263,"name":"Jeremy Stanley","display_name":"fungi","email":"fungi@yuggoth.org","username":"fungi","status":"missing, presumed fed"},"change_message_id":"a29170b54fc21a4371c0e30ef920cd80bafe7db2","unresolved":false,"context_lines":[{"line_number":1,"context_line":""},{"line_number":2,"context_line":"import datetime"},{"line_number":3,"context_line":"import icalendar"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":""},{"line_number":6,"context_line":"def json2ical(db, include_teams\u003d\"ALL\"):"}],"source_content_type":"text/x-python","patch_set":3,"id":"5713a1c9_fadfb85e","line":3,"updated":"2023-09-25 00:50:55.000000000","message":"Where is the icalendar module getting installed?","commit_id":"1affa3616c19f48147ee07b86071794c2ae29cdd"},{"author":{"_account_id":12898,"name":"Tony Breeds","email":"tony@bakeyournoodle.com","username":"tonyb"},"change_message_id":"a70dca53125a5f027dfac76eb699ea152762d4fc","unresolved":false,"context_lines":[{"line_number":1,"context_line":""},{"line_number":2,"context_line":"import datetime"},{"line_number":3,"context_line":"import icalendar"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":""},{"line_number":6,"context_line":"def json2ical(db, include_teams\u003d\"ALL\"):"}],"source_content_type":"text/x-python","patch_set":3,"id":"45b55153_dda8d6fa","line":3,"in_reply_to":"3d71a40a_820878c7","updated":"2023-09-25 02:05:39.000000000","message":"fixed","commit_id":"1affa3616c19f48147ee07b86071794c2ae29cdd"},{"author":{"_account_id":12898,"name":"Tony Breeds","email":"tony@bakeyournoodle.com","username":"tonyb"},"change_message_id":"1755910357c7af87a193a7a8110dfdf02ca51447","unresolved":false,"context_lines":[{"line_number":1,"context_line":""},{"line_number":2,"context_line":"import datetime"},{"line_number":3,"context_line":"import icalendar"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":""},{"line_number":6,"context_line":"def json2ical(db, include_teams\u003d\"ALL\"):"}],"source_content_type":"text/x-python","patch_set":3,"id":"3d71a40a_820878c7","line":3,"in_reply_to":"5713a1c9_fadfb85e","updated":"2023-09-25 01:01:37.000000000","message":"Well shoot you are correct.  I need to list it in requirements.","commit_id":"1affa3616c19f48147ee07b86071794c2ae29cdd"},{"author":{"_account_id":12898,"name":"Tony Breeds","email":"tony@bakeyournoodle.com","username":"tonyb"},"change_message_id":"e69987a1f59d10aefc72d93d207f23e3e26de6f5","unresolved":true,"context_lines":[{"line_number":35,"context_line":"            url \u003d db[\"schedule\"].get(location, {}).get(\"url\", \"\")"},{"line_number":36,"context_line":"            etherpad \u003d db[\"etherpads\"].get(team, \"\")"},{"line_number":37,"context_line":"            time \u003d slots.get(slot, {}).get(\"realtime\")"},{"line_number":38,"context_line":"            # TODO(tonyb): 60 mins is a default picked to make the existing"},{"line_number":39,"context_line":"            # DB work unchanged.  We can leave this as is or pick another"},{"line_number":40,"context_line":"            # number. Longer term we could also potentially add a"},{"line_number":41,"context_line":"            # \u0027default_duration\u0027 to the DB as a per-event not hard-coded"},{"line_number":42,"context_line":"            # value to save adding a \u0027duration\u0027 to each slot."},{"line_number":43,"context_line":"            duration \u003d slots.get(slot, {}).get(\"duration\", 60)"},{"line_number":44,"context_line":"            dtstart \u003d datetime.datetime.fromisoformat(time)"},{"line_number":45,"context_line":"            name \u003d summary \u003d \"[PTG] \" + team"},{"line_number":46,"context_line":"            desc \u003d \"Etherpad: \" + etherpad + \"\\n\""}],"source_content_type":"text/x-python","patch_set":4,"id":"b58f2406_dfbbd4a8","line":43,"range":{"start_line":38,"start_character":0,"end_line":43,"end_character":62},"updated":"2023-09-25 02:05:16.000000000","message":"I beleve this should make it safe to merge this.  It looks like all sessions are an hour long, except the possibility of the last session for a block running over.  I don\u0027t know that this is an issue we\u0027d need to solve though.\n\nIn the future I guess we could add a #trackname duration [time in minutes] to the irc bot but I\u0027d rather not destabalise that right now.","commit_id":"f3060c080671445bf3b432c7f820886089a314c7"}]}
