)]}'
{"fenix/db/migration/alembic_migrations/versions/001_initial.py":[{"author":{"_account_id":27068,"name":"Trinh Nguyen","email":"dangtrinhnt@gmail.com","username":"dangtrinhnt"},"change_message_id":"b0d4c44ae27c827dee3010097524c189b40b34f0","unresolved":false,"context_lines":[{"line_number":130,"context_line":""},{"line_number":131,"context_line":"    op.create_table("},{"line_number":132,"context_line":"        \u0027downloads\u0027,"},{"line_number":133,"context_line":"        sa.Column(\u0027created_at\u0027, sa.DateTime(), nullable\u003dTrue),"},{"line_number":134,"context_line":"        sa.Column(\u0027updated_at\u0027, sa.DateTime(), nullable\u003dTrue),"},{"line_number":135,"context_line":"        sa.Column(\u0027id\u0027, sa.String(36), primary_key\u003dTrue,"},{"line_number":136,"context_line":"                  default\u003d_generate_unicode_uuid),"}],"source_content_type":"text/x-python","patch_set":1,"id":"ffb9cba7_ff3c07c9","line":133,"range":{"start_line":133,"start_character":47,"end_line":133,"end_character":60},"updated":"2019-04-30 03:22:45.000000000","message":"I don\u0027t think it should be null. There\u0027s also a way to update this automatically.","commit_id":"f189e9aeef867975542a77503857bfa8aa1ecfc3"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"f2e4248f4e62efa79858a6bb1b823b4dfc4e570e","unresolved":false,"context_lines":[{"line_number":130,"context_line":""},{"line_number":131,"context_line":"    op.create_table("},{"line_number":132,"context_line":"        \u0027downloads\u0027,"},{"line_number":133,"context_line":"        sa.Column(\u0027created_at\u0027, sa.DateTime(), nullable\u003dTrue),"},{"line_number":134,"context_line":"        sa.Column(\u0027updated_at\u0027, sa.DateTime(), nullable\u003dTrue),"},{"line_number":135,"context_line":"        sa.Column(\u0027id\u0027, sa.String(36), primary_key\u003dTrue,"},{"line_number":136,"context_line":"                  default\u003d_generate_unicode_uuid),"}],"source_content_type":"text/x-python","patch_set":1,"id":"ffb9cba7_c21b5bc7","line":133,"range":{"start_line":133,"start_character":47,"end_line":133,"end_character":60},"in_reply_to":"ffb9cba7_ff3c07c9","updated":"2019-04-30 21:09:36.000000000","message":"Ok, so this is in all tables and origin might be more or less copy/paste. So if this always exist then, I could change all of these.","commit_id":"f189e9aeef867975542a77503857bfa8aa1ecfc3"}],"fenix/utils/download.py":[{"author":{"_account_id":27068,"name":"Trinh Nguyen","email":"dangtrinhnt@gmail.com","username":"dangtrinhnt"},"change_message_id":"b0d4c44ae27c827dee3010097524c189b40b34f0","unresolved":false,"context_lines":[{"line_number":24,"context_line":"    h \u003d requests.head(url, allow_redirects\u003dTrue)"},{"line_number":25,"context_line":"    header \u003d h.headers"},{"line_number":26,"context_line":"    content_type \u003d header.get(\u0027content-type\u0027)"},{"line_number":27,"context_line":"    if \u0027text\u0027 in content_type.lower():"},{"line_number":28,"context_line":"        return False"},{"line_number":29,"context_line":"    if \u0027html\u0027 in content_type.lower():"},{"line_number":30,"context_line":"        return False"},{"line_number":31,"context_line":"    return True"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"ffb9cba7_7f857759","line":30,"range":{"start_line":27,"start_character":0,"end_line":30,"end_character":20},"updated":"2019-04-30 03:22:45.000000000","message":"if any(ft in content_type.lower() for ft in [\u0027text\u0027, \u0027html\u0027]):\n    return False","commit_id":"f189e9aeef867975542a77503857bfa8aa1ecfc3"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"f2e4248f4e62efa79858a6bb1b823b4dfc4e570e","unresolved":false,"context_lines":[{"line_number":24,"context_line":"    h \u003d requests.head(url, allow_redirects\u003dTrue)"},{"line_number":25,"context_line":"    header \u003d h.headers"},{"line_number":26,"context_line":"    content_type \u003d header.get(\u0027content-type\u0027)"},{"line_number":27,"context_line":"    if \u0027text\u0027 in content_type.lower():"},{"line_number":28,"context_line":"        return False"},{"line_number":29,"context_line":"    if \u0027html\u0027 in content_type.lower():"},{"line_number":30,"context_line":"        return False"},{"line_number":31,"context_line":"    return True"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"ffb9cba7_228037bf","line":30,"range":{"start_line":27,"start_character":0,"end_line":30,"end_character":20},"in_reply_to":"ffb9cba7_7f857759","updated":"2019-04-30 21:09:36.000000000","message":"Great, thanks","commit_id":"f189e9aeef867975542a77503857bfa8aa1ecfc3"},{"author":{"_account_id":27068,"name":"Trinh Nguyen","email":"dangtrinhnt@gmail.com","username":"dangtrinhnt"},"change_message_id":"b0d4c44ae27c827dee3010097524c189b40b34f0","unresolved":false,"context_lines":[{"line_number":57,"context_line":""},{"line_number":58,"context_line":"def download_url(target_dir, url):"},{"line_number":59,"context_line":"    if not check_url(url):"},{"line_number":60,"context_line":"        raise Exception(\"%s is not downloadable file\" % url)"},{"line_number":61,"context_line":"    fname \u003d url_to_filename(target_dir, url)"},{"line_number":62,"context_line":"    if fname is None:"},{"line_number":63,"context_line":"        raise Exception(\"cannot make filename from: %s \" % url)"}],"source_content_type":"text/x-python","patch_set":1,"id":"ffb9cba7_9f8aab67","line":60,"updated":"2019-04-30 03:22:45.000000000","message":"a","commit_id":"f189e9aeef867975542a77503857bfa8aa1ecfc3"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"f2e4248f4e62efa79858a6bb1b823b4dfc4e570e","unresolved":false,"context_lines":[{"line_number":57,"context_line":""},{"line_number":58,"context_line":"def download_url(target_dir, url):"},{"line_number":59,"context_line":"    if not check_url(url):"},{"line_number":60,"context_line":"        raise Exception(\"%s is not downloadable file\" % url)"},{"line_number":61,"context_line":"    fname \u003d url_to_filename(target_dir, url)"},{"line_number":62,"context_line":"    if fname is None:"},{"line_number":63,"context_line":"        raise Exception(\"cannot make filename from: %s \" % url)"}],"source_content_type":"text/x-python","patch_set":1,"id":"ffb9cba7_62638f43","line":60,"in_reply_to":"ffb9cba7_9f8aab67","updated":"2019-04-30 21:09:36.000000000","message":"ok, thanks","commit_id":"f189e9aeef867975542a77503857bfa8aa1ecfc3"},{"author":{"_account_id":27068,"name":"Trinh Nguyen","email":"dangtrinhnt@gmail.com","username":"dangtrinhnt"},"change_message_id":"b0d4c44ae27c827dee3010097524c189b40b34f0","unresolved":false,"context_lines":[{"line_number":60,"context_line":"        raise Exception(\"%s is not downloadable file\" % url)"},{"line_number":61,"context_line":"    fname \u003d url_to_filename(target_dir, url)"},{"line_number":62,"context_line":"    if fname is None:"},{"line_number":63,"context_line":"        raise Exception(\"cannot make filename from: %s \" % url)"},{"line_number":64,"context_line":"    r \u003d requests.get(url, allow_redirects\u003dTrue)"},{"line_number":65,"context_line":"    if not os.path.isdir(target_dir):"},{"line_number":66,"context_line":"        os.mkdir(target_dir)"}],"source_content_type":"text/x-python","patch_set":1,"id":"ffb9cba7_3f7b7f7b","line":63,"range":{"start_line":63,"start_character":25,"end_line":63,"end_character":26},"updated":"2019-04-30 03:22:45.000000000","message":"C","commit_id":"f189e9aeef867975542a77503857bfa8aa1ecfc3"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"f2e4248f4e62efa79858a6bb1b823b4dfc4e570e","unresolved":false,"context_lines":[{"line_number":60,"context_line":"        raise Exception(\"%s is not downloadable file\" % url)"},{"line_number":61,"context_line":"    fname \u003d url_to_filename(target_dir, url)"},{"line_number":62,"context_line":"    if fname is None:"},{"line_number":63,"context_line":"        raise Exception(\"cannot make filename from: %s \" % url)"},{"line_number":64,"context_line":"    r \u003d requests.get(url, allow_redirects\u003dTrue)"},{"line_number":65,"context_line":"    if not os.path.isdir(target_dir):"},{"line_number":66,"context_line":"        os.mkdir(target_dir)"}],"source_content_type":"text/x-python","patch_set":1,"id":"ffb9cba7_8268031d","line":63,"range":{"start_line":63,"start_character":25,"end_line":63,"end_character":26},"in_reply_to":"ffb9cba7_3f7b7f7b","updated":"2019-04-30 21:09:36.000000000","message":"Thanks","commit_id":"f189e9aeef867975542a77503857bfa8aa1ecfc3"}]}
