Tweet by @{{ display.screen_name }} ({{ display.user_name }}, {{ \"{:,}\".format(display.followers_count or 0) }} followers)\r\n on {{ display.created_at }}
\r\n \r\n{{ display.full_text }}\r\n {% if display.media_urls and json.loads(display.media_urls) %}\r\n {% for url in json.loads(display.media_urls) %}\r\n \r\n {% endfor %}\r\n {% endif %}\r\n
Taken in {{ display.place_city }} on {{ display.date }}
\r\n```", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 691521965, "label": "Mechanism for defining custom display of results"}, "performed_via_github_app": null}, {"html_url": "https://github.com/dogsheep/dogsheep-beta/issues/9#issuecomment-686154486", "issue_url": "https://api.github.com/repos/dogsheep/dogsheep-beta/issues/9", "id": 686154486, "node_id": "MDEyOklzc3VlQ29tbWVudDY4NjE1NDQ4Ng==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2020-09-03T00:18:54Z", "updated_at": "2020-09-03T00:18:54Z", "author_association": "MEMBER", "body": "`display_sql` could be optional. If it's not defined, a `row` object is passed to the template which is the row that's stored in `search_index`. If `display_sql` IS defined then it's executed and the result is made available as a `display` object in addition to the `row` object.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 691521965, "label": "Mechanism for defining custom display of results"}, "performed_via_github_app": null}, {"html_url": "https://github.com/dogsheep/dogsheep-beta/issues/9#issuecomment-686154627", "issue_url": "https://api.github.com/repos/dogsheep/dogsheep-beta/issues/9", "id": 686154627, "node_id": "MDEyOklzc3VlQ29tbWVudDY4NjE1NDYyNw==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2020-09-03T00:19:22Z", "updated_at": "2020-09-03T00:19:22Z", "author_association": "MEMBER", "body": "If this performs well enough (100 displayed items will be 100 extra `display_sql` calls) then I'll go with this as the design for the feature.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 691521965, "label": "Mechanism for defining custom display of results"}, "performed_via_github_app": null}, {"html_url": "https://github.com/dogsheep/dogsheep-beta/issues/9#issuecomment-686158454", "issue_url": "https://api.github.com/repos/dogsheep/dogsheep-beta/issues/9", "id": 686158454, "node_id": "MDEyOklzc3VlQ29tbWVudDY4NjE1ODQ1NA==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2020-09-03T00:32:42Z", "updated_at": "2020-09-03T00:32:42Z", "author_association": "MEMBER", "body": "If this turns out to be too inefficient I could add a `display` text column to the `search_index` table which is designed to be populated with arbitrary JSON by the indexing query, which can then be used to render the template fragment.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 691521965, "label": "Mechanism for defining custom display of results"}, "performed_via_github_app": null}, {"html_url": "https://github.com/dogsheep/dogsheep-beta/issues/9#issuecomment-686163754", "issue_url": "https://api.github.com/repos/dogsheep/dogsheep-beta/issues/9", "id": 686163754, "node_id": "MDEyOklzc3VlQ29tbWVudDY4NjE2Mzc1NA==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2020-09-03T00:46:21Z", "updated_at": "2020-09-03T00:46:21Z", "author_association": "MEMBER", "body": "Challenge: the `dogsheep-beta.yml` configuration file that is passed to the `dogsheep-beta index` command needs to also be made available to Datasette itself, so that it can read the configuration.\r\n\r\nLet's say it can either be duplicated in the `plugins` configuration block of the `metadata.yml` OR you can do this in `metadata.yml`:\r\n\r\n```yaml\r\nplugins:\r\n dogsheep-beta:\r\n config_file: dogsheep-beta.yml\r\n```", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 691521965, "label": "Mechanism for defining custom display of results"}, "performed_via_github_app": null}, {"html_url": "https://github.com/dogsheep/dogsheep-beta/issues/9#issuecomment-686688963", "issue_url": "https://api.github.com/repos/dogsheep/dogsheep-beta/issues/9", "id": 686688963, "node_id": "MDEyOklzc3VlQ29tbWVudDY4NjY4ODk2Mw==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2020-09-03T18:42:59Z", "updated_at": "2020-09-03T18:42:59Z", "author_association": "MEMBER", "body": "I'm pleased with how this works now.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 691521965, "label": "Mechanism for defining custom display of results"}, "performed_via_github_app": null}, {"html_url": "https://github.com/dogsheep/dogsheep-beta/issues/9#issuecomment-686689122", "issue_url": "https://api.github.com/repos/dogsheep/dogsheep-beta/issues/9", "id": 686689122, "node_id": "MDEyOklzc3VlQ29tbWVudDY4NjY4OTEyMg==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2020-09-03T18:43:20Z", "updated_at": "2020-09-03T18:43:20Z", "author_association": "MEMBER", "body": "Needs documentation.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 691521965, "label": "Mechanism for defining custom display of results"}, "performed_via_github_app": null}, {"html_url": "https://github.com/dogsheep/dogsheep-beta/issues/9#issuecomment-686767208", "issue_url": "https://api.github.com/repos/dogsheep/dogsheep-beta/issues/9", "id": 686767208, "node_id": "MDEyOklzc3VlQ29tbWVudDY4Njc2NzIwOA==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2020-09-03T21:12:14Z", "updated_at": "2020-09-03T21:12:14Z", "author_association": "MEMBER", "body": "Documentation: https://github.com/dogsheep/dogsheep-beta/blob/0.4/README.md#custom-results-display", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 691521965, "label": "Mechanism for defining custom display of results"}, "performed_via_github_app": null}, {"html_url": "https://github.com/dogsheep/dogsheep-photos/issues/1#issuecomment-623193947", "issue_url": "https://api.github.com/repos/dogsheep/dogsheep-photos/issues/1", "id": 623193947, "node_id": "MDEyOklzc3VlQ29tbWVudDYyMzE5Mzk0Nw==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2020-05-03T22:36:17Z", "updated_at": "2020-05-03T22:36:17Z", "author_association": "MEMBER", "body": "I'm going to use [osxphotos](https://github.com/RhetTbull/osxphotos) for this.\r\n\r\nSince I've already got code to upload photos and insert them into a table based on their `sha256` hash, my first go at this will be to import data using the tool and foreign-key it to the `sha256` hash in the existing table.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 602533300, "label": "Import photo metadata from Apple Photos into SQLite"}, "performed_via_github_app": null}, {"html_url": "https://github.com/dogsheep/dogsheep-photos/issues/1#issuecomment-623195197", "issue_url": "https://api.github.com/repos/dogsheep/dogsheep-photos/issues/1", "id": 623195197, "node_id": "MDEyOklzc3VlQ29tbWVudDYyMzE5NTE5Nw==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2020-05-03T22:44:33Z", "updated_at": "2020-05-03T22:44:33Z", "author_association": "MEMBER", "body": "Command will be this:\r\n\r\n $ photos-to-sqlite apple-photos photos.db\r\n\r\nThis will populate a `apple_photos` table with the data imported by the `osxphotos` library, plus the calculated sha256.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 602533300, "label": "Import photo metadata from Apple Photos into SQLite"}, "performed_via_github_app": null}, {"html_url": "https://github.com/dogsheep/dogsheep-photos/issues/1#issuecomment-623198653", "issue_url": "https://api.github.com/repos/dogsheep/dogsheep-photos/issues/1", "id": 623198653, "node_id": "MDEyOklzc3VlQ29tbWVudDYyMzE5ODY1Mw==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2020-05-03T23:09:57Z", "updated_at": "2020-05-03T23:09:57Z", "author_association": "MEMBER", "body": "For locations: I'll add `place_x` columns for all of these:\r\n```\r\n(Pdb) photo.place.address._asdict()\r\n{'street': None, 'sub_locality': None, 'city': 'Loreto', 'sub_administrative_area': 'Loreto', 'state_province': 'BCS', 'postal_code': None, 'country': 'Mexico', 'iso_country_code': 'MX'}\r\n```", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 602533300, "label": "Import photo metadata from Apple Photos into SQLite"}, "performed_via_github_app": null}, {"html_url": "https://github.com/dogsheep/dogsheep-photos/issues/1#issuecomment-623198986", "issue_url": "https://api.github.com/repos/dogsheep/dogsheep-photos/issues/1", "id": 623198986, "node_id": "MDEyOklzc3VlQ29tbWVudDYyMzE5ODk4Ng==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2020-05-03T23:12:31Z", "updated_at": "2020-05-03T23:12:46Z", "author_association": "MEMBER", "body": "To get the taken date in UTC:\r\n```\r\nfrom datetime import timezone\r\n(Pdb) photo.date.astimezone(timezone.utc).isoformat()\r\n'2018-02-13T20:21:31.620000+00:00'\r\n(Pdb) photo.date.astimezone(timezone.utc).isoformat().split(\".\")\r\n['2018-02-13T20:21:31', '620000+00:00']\r\n(Pdb) photo.date.astimezone(timezone.utc).isoformat().split(\".\")[0]\r\n'2018-02-13T20:21:31'\r\n(Pdb) photo.date.astimezone(timezone.utc).isoformat().split(\".\")[0] + \"+00:00\"\r\n'2018-02-13T20:21:31+00:00'\r\n\r\n```", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 602533300, "label": "Import photo metadata from Apple Photos into SQLite"}, "performed_via_github_app": null}, {"html_url": "https://github.com/dogsheep/dogsheep-photos/issues/1#issuecomment-623199214", "issue_url": "https://api.github.com/repos/dogsheep/dogsheep-photos/issues/1", "id": 623199214, "node_id": "MDEyOklzc3VlQ29tbWVudDYyMzE5OTIxNA==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2020-05-03T23:14:08Z", "updated_at": "2020-05-03T23:14:08Z", "author_association": "MEMBER", "body": "Albums have UUIDs:\r\n```\r\n(Pdb) photo.album_info[0].__dict__\r\n{'_uuid': '17816791-ABF3-447B-942C-9FA8065EEBBA', '_db': osxphotos.PhotosDB(dbfile='/Users/simon/Pictures/Photos Library.photoslibrary/database/photos.db'), '_title': 'Geotaggable Photos geotagged'}\r\n```", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 602533300, "label": "Import photo metadata from Apple Photos into SQLite"}, "performed_via_github_app": null}, {"html_url": "https://github.com/dogsheep/dogsheep-photos/issues/1#issuecomment-623199701", "issue_url": "https://api.github.com/repos/dogsheep/dogsheep-photos/issues/1", "id": 623199701, "node_id": "MDEyOklzc3VlQ29tbWVudDYyMzE5OTcwMQ==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2020-05-03T23:17:38Z", "updated_at": "2020-05-03T23:17:38Z", "author_association": "MEMBER", "body": "Record burst_uuid as a column:\r\n```\r\n(Pdb) with_bursts[0]._info[\"burstUUID\"]\r\n'703FAA23-57BF-40B4-8A33-D9CEB143391B'\r\n```", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 602533300, "label": "Import photo metadata from Apple Photos into SQLite"}, "performed_via_github_app": null}, {"html_url": "https://github.com/dogsheep/dogsheep-photos/issues/1#issuecomment-623199750", "issue_url": "https://api.github.com/repos/dogsheep/dogsheep-photos/issues/1", "id": 623199750, "node_id": "MDEyOklzc3VlQ29tbWVudDYyMzE5OTc1MA==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2020-05-03T23:17:58Z", "updated_at": "2020-05-03T23:17:58Z", "author_association": "MEMBER", "body": "Reading this source code is really useful for figuring out how to store a photo in a DB table: https://github.com/RhetTbull/osxphotos/blob/7444b6d173918a3ad2a07aefce5ecf054786c787/osxphotos/photoinfo.py", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 602533300, "label": "Import photo metadata from Apple Photos into SQLite"}, "performed_via_github_app": null}, {"html_url": "https://github.com/dogsheep/dogsheep-photos/issues/1#issuecomment-623232984", "issue_url": "https://api.github.com/repos/dogsheep/dogsheep-photos/issues/1", "id": 623232984, "node_id": "MDEyOklzc3VlQ29tbWVudDYyMzIzMjk4NA==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2020-05-04T02:41:32Z", "updated_at": "2020-05-04T02:41:32Z", "author_association": "MEMBER", "body": "Needs documentation.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 602533300, "label": "Import photo metadata from Apple Photos into SQLite"}, "performed_via_github_app": null}, {"html_url": "https://github.com/dogsheep/dogsheep-photos/issues/12#issuecomment-618796564", "issue_url": "https://api.github.com/repos/dogsheep/dogsheep-photos/issues/12", "id": 618796564, "node_id": "MDEyOklzc3VlQ29tbWVudDYxODc5NjU2NA==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2020-04-24T04:35:25Z", "updated_at": "2020-04-24T04:35:25Z", "author_association": "MEMBER", "body": "Code: https://github.com/dogsheep/photos-to-sqlite/blob/a388cf1f1b6b67752d669466cda8b171b6582171/photos_to_sqlite/cli.py#L109-L114", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 606033104, "label": "If less than 500MB, show size in MB not GB"}, "performed_via_github_app": null}, {"html_url": "https://github.com/dogsheep/dogsheep-photos/issues/13#issuecomment-620273692", "issue_url": "https://api.github.com/repos/dogsheep/dogsheep-photos/issues/13", "id": 620273692, "node_id": "MDEyOklzc3VlQ29tbWVudDYyMDI3MzY5Mg==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2020-04-27T22:42:50Z", "updated_at": "2020-04-27T22:42:50Z", "author_association": "MEMBER", "body": "```\r\n>>> def ext_counts(directory):\r\n... counts = {}\r\n... for path in pathlib.Path(directory).glob(\"**/*\"):\r\n... ext = path.suffix\r\n... counts[ext] = counts.get(ext, 0) + 1\r\n... return counts\r\n... \r\n>>> \r\n>>> ext_counts(\"/Users/simon/Pictures/Photos Library.photoslibrary/originals\")\r\n{'': 16, '.heic': 15478, '.jpeg': 21691, '.mov': 946, '.png': 2262, '.gif': 38, '.mp4': 116, '.aae': 2}\r\n```", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 607888367, "label": "Also upload movie files"}, "performed_via_github_app": null}, {"html_url": "https://github.com/dogsheep/dogsheep-photos/issues/13#issuecomment-620309185", "issue_url": "https://api.github.com/repos/dogsheep/dogsheep-photos/issues/13", "id": 620309185, "node_id": "MDEyOklzc3VlQ29tbWVudDYyMDMwOTE4NQ==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2020-04-28T00:39:45Z", "updated_at": "2020-04-28T00:39:45Z", "author_association": "MEMBER", "body": "I'm going to leave this until I have the mechanism for associating a live photo video with the photo.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 607888367, "label": "Also upload movie files"}, "performed_via_github_app": null}, {"html_url": "https://github.com/dogsheep/dogsheep-photos/issues/14#issuecomment-620769348", "issue_url": "https://api.github.com/repos/dogsheep/dogsheep-photos/issues/14", "id": 620769348, "node_id": "MDEyOklzc3VlQ29tbWVudDYyMDc2OTM0OA==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2020-04-28T18:09:21Z", "updated_at": "2020-04-28T18:09:21Z", "author_association": "MEMBER", "body": "Pricing is pretty good: free for first 1,000 calls per month, then $1.50 per thousand after that.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 608512747, "label": "Annotate photos using the Google Cloud Vision API"}, "performed_via_github_app": null}, {"html_url": "https://github.com/dogsheep/dogsheep-photos/issues/14#issuecomment-620771067", "issue_url": "https://api.github.com/repos/dogsheep/dogsheep-photos/issues/14", "id": 620771067, "node_id": "MDEyOklzc3VlQ29tbWVudDYyMDc3MTA2Nw==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2020-04-28T18:12:34Z", "updated_at": "2020-04-28T18:15:38Z", "author_association": "MEMBER", "body": "Python library docs: https://googleapis.dev/python/vision/latest/index.html\r\n\r\nI'm creating a new project for this called simonwillison-photos: https://console.cloud.google.com/projectcreate\r\n\r\nhttps://console.cloud.google.com/home/dashboard?project=simonwillison-photos\r\n\r\nThen I enabled the Vision API. The direct link to https://console.cloud.google.com/flows/enableapi?apiid=vision-json.googleapis.com which they provided in the docs didn't work - it gave me a \"You don't have sufficient permissions to use the requested API\" error - but starting at the \"Enable APIs\" page and searching for it worked fine.\r\n\r\nI created a new service account as an \"owner\" of that project: https://console.cloud.google.com/apis/credentials/serviceaccountkey (and complained about it on Twitter and through their feedback form)\r\n\r\n`pip install google-cloud-vision`\r\n\r\n```python\r\nfrom google.cloud import vision\r\nclient = vision.ImageAnnotatorClient.from_service_account_file(\"simonwillison-photos-18c570b301fe.json\")\r\n# Photo of a lemur\r\nresponse = client.annotate_image(\r\n {\r\n \"image\": {\r\n \"source\": {\r\n \"image_uri\": \"https://photos.simonwillison.net/i/1b3414ee9ade67ce04ade9042e6d4b433d1e523c9a16af17f490e2c0a619755b.jpeg\"\r\n }\r\n },\r\n \"features\": [\r\n {\"type\": vision.enums.Feature.Type.IMAGE_PROPERTIES},\r\n {\"type\": vision.enums.Feature.Type.OBJECT_LOCALIZATION},\r\n {\"type\": vision.enums.Feature.Type.LABEL_DETECTION},\r\n ],\r\n }\r\n)\r\nresponse\r\n```\r\nOutput is:\r\n```\r\nlabel_annotations {\r\n mid: \"/m/09686\"\r\n description: \"Vertebrate\"\r\n score: 0.9851104021072388\r\n topicality: 0.9851104021072388\r\n}\r\nlabel_annotations {\r\n mid: \"/m/04rky\"\r\n description: \"Mammal\"\r\n score: 0.975814163684845\r\n topicality: 0.975814163684845\r\n}\r\nlabel_annotations {\r\n mid: \"/m/01280g\"\r\n description: \"Wildlife\"\r\n score: 0.8973650336265564\r\n topicality: 0.8973650336265564\r\n}\r\nlabel_annotations {\r\n mid: \"/m/02f9pk\"\r\n description: \"Lemur\"\r\n score: 0.8270352482795715\r\n topicality: 0.8270352482795715\r\n}\r\nlabel_annotations {\r\n mid: \"/m/0fbf1m\"\r\n description: \"Terrestrial animal\"\r\n score: 0.7443860769271851\r\n topicality: 0.7443860769271851\r\n}\r\nlabel_annotations {\r\n mid: \"/m/06z_nw\"\r\n description: \"Tail\"\r\n score: 0.6934166550636292\r\n topicality: 0.6934166550636292\r\n}\r\nlabel_annotations {\r\n mid: \"/m/0b5gs\"\r\n description: \"Branch\"\r\n score: 0.6203985214233398\r\n topicality: 0.6203985214233398\r\n}\r\nlabel_annotations {\r\n mid: \"/m/05s2s\"\r\n description: \"Plant\"\r\n score: 0.585474967956543\r\n topicality: 0.585474967956543\r\n}\r\nlabel_annotations {\r\n mid: \"/m/089v3\"\r\n description: \"Zoo\"\r\n score: 0.5488107800483704\r\n topicality: 0.5488107800483704\r\n}\r\nlabel_annotations {\r\n mid: \"/m/02tcwp\"\r\n description: \"Trunk\"\r\n score: 0.5200017690658569\r\n topicality: 0.5200017690658569\r\n}\r\nimage_properties_annotation {\r\n dominant_colors {\r\n colors {\r\n color {\r\n red: 172.0\r\n green: 146.0\r\n blue: 116.0\r\n }\r\n score: 0.24523821473121643\r\n pixel_fraction: 0.027533333748579025\r\n }\r\n colors {\r\n color {\r\n red: 54.0\r\n green: 50.0\r\n blue: 42.0\r\n }\r\n score: 0.10449723154306412\r\n pixel_fraction: 0.12893334031105042\r\n }\r\n colors {\r\n color {\r\n red: 141.0\r\n green: 121.0\r\n blue: 97.0\r\n }\r\n score: 0.1391485631465912\r\n pixel_fraction: 0.039133332669734955\r\n }\r\n colors {\r\n color {\r\n red: 28.0\r\n green: 25.0\r\n blue: 20.0\r\n }\r\n score: 0.08589499443769455\r\n pixel_fraction: 0.11506666988134384\r\n }\r\n colors {\r\n color {\r\n red: 87.0\r\n green: 82.0\r\n blue: 74.0\r\n }\r\n score: 0.0845794677734375\r\n pixel_fraction: 0.16113333404064178\r\n }\r\n colors {\r\n color {\r\n red: 121.0\r\n green: 117.0\r\n blue: 108.0\r\n }\r\n score: 0.05901569500565529\r\n pixel_fraction: 0.13379999995231628\r\n }\r\n colors {\r\n color {\r\n red: 94.0\r\n green: 83.0\r\n blue: 66.0\r\n }\r\n score: 0.049011144787073135\r\n pixel_fraction: 0.03946666792035103\r\n }\r\n colors {\r\n color {\r\n red: 155.0\r\n green: 117.0\r\n blue: 90.0\r\n }\r\n score: 0.04164913296699524\r\n pixel_fraction: 0.0023333332501351833\r\n }\r\n colors {\r\n color {\r\n red: 178.0\r\n green: 143.0\r\n blue: 102.0\r\n }\r\n score: 0.02993861958384514\r\n pixel_fraction: 0.0012666666880249977\r\n }\r\n colors {\r\n color {\r\n red: 61.0\r\n green: 51.0\r\n blue: 35.0\r\n }\r\n score: 0.027391711249947548\r\n pixel_fraction: 0.01953333243727684\r\n }\r\n }\r\n}\r\ncrop_hints_annotation {\r\n crop_hints {\r\n bounding_poly {\r\n vertices {\r\n x: 2073\r\n }\r\n vertices {\r\n x: 4008\r\n }\r\n vertices {\r\n x: 4008\r\n y: 3455\r\n }\r\n vertices {\r\n x: 2073\r\n y: 3455\r\n }\r\n }\r\n confidence: 0.65625\r\n importance_fraction: 0.746666669845581\r\n }\r\n}\r\nlocalized_object_annotations {\r\n mid: \"/m/0jbk\"\r\n name: \"Animal\"\r\n score: 0.7008256912231445\r\n bounding_poly {\r\n normalized_vertices {\r\n x: 0.0390297956764698\r\n y: 0.26235100626945496\r\n }\r\n normalized_vertices {\r\n x: 0.8466796875\r\n y: 0.26235100626945496\r\n }\r\n normalized_vertices {\r\n x: 0.8466796875\r\n y: 0.9386426210403442\r\n }\r\n normalized_vertices {\r\n x: 0.0390297956764698\r\n y: 0.9386426210403442\r\n }\r\n }\r\n}\r\n```", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 608512747, "label": "Annotate photos using the Google Cloud Vision API"}, "performed_via_github_app": null}, {"html_url": "https://github.com/dogsheep/dogsheep-photos/issues/14#issuecomment-620771698", "issue_url": "https://api.github.com/repos/dogsheep/dogsheep-photos/issues/14", "id": 620771698, "node_id": "MDEyOklzc3VlQ29tbWVudDYyMDc3MTY5OA==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2020-04-28T18:13:48Z", "updated_at": "2020-04-28T18:13:48Z", "author_association": "MEMBER", "body": "For face detection:\r\n```\r\n {\"type\": vision.enums.Feature.Type.Type.FACE_DETECTION}\r\n```\r\nFor OCR:\r\n```\r\n {\"type\": vision.enums.Feature.Type.DOCUMENT_TEXT_DETECTION}\r\n```", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 608512747, "label": "Annotate photos using the Google Cloud Vision API"}, "performed_via_github_app": null}], "truncated": false, "filtered_table_rows_count": 9947, "expanded_columns": ["issue", "user"], "expandable_columns": [[{"column": "issue", "other_table": "issues", "other_column": "id"}, "title"], [{"column": "user", "other_table": "users", "other_column": "id"}, "name"]], "columns": ["html_url", "issue_url", "id", "node_id", "user", "created_at", "updated_at", "author_association", "body", "reactions", "issue", "performed_via_github_app"], "primary_keys": ["id"], "units": {}, "query": {"sql": "select html_url, issue_url, id, node_id, user, created_at, updated_at, author_association, body, reactions, issue, performed_via_github_app from issue_comments order by html_url limit 101", "params": {}}, "facet_results": {"created_at": {"name": "created_at", "type": "date", "results": [{"value": "2021-03-22", "label": "2021-03-22", "count": 66, "toggle_url": "https://datasette-graphql-demo.datasette.io/github/issue_comments.json?_facet_date=created_at&_sort=html_url&_facet_date=updated_at&_labels=on&created_at__date=2021-03-22", "selected": false}, {"value": "2021-11-19", "label": "2021-11-19", "count": 60, "toggle_url": "https://datasette-graphql-demo.datasette.io/github/issue_comments.json?_facet_date=created_at&_sort=html_url&_facet_date=updated_at&_labels=on&created_at__date=2021-11-19", "selected": false}, {"value": "2022-11-16", "label": "2022-11-16", "count": 59, "toggle_url": "https://datasette-graphql-demo.datasette.io/github/issue_comments.json?_facet_date=created_at&_sort=html_url&_facet_date=updated_at&_labels=on&created_at__date=2022-11-16", "selected": false}, {"value": "2020-10-15", "label": "2020-10-15", "count": 52, "toggle_url": "https://datasette-graphql-demo.datasette.io/github/issue_comments.json?_facet_date=created_at&_sort=html_url&_facet_date=updated_at&_labels=on&created_at__date=2020-10-15", "selected": false}, {"value": "2020-09-22", "label": "2020-09-22", "count": 51, "toggle_url": "https://datasette-graphql-demo.datasette.io/github/issue_comments.json?_facet_date=created_at&_sort=html_url&_facet_date=updated_at&_labels=on&created_at__date=2020-09-22", "selected": false}, {"value": "2020-10-30", "label": "2020-10-30", "count": 49, "toggle_url": "https://datasette-graphql-demo.datasette.io/github/issue_comments.json?_facet_date=created_at&_sort=html_url&_facet_date=updated_at&_labels=on&created_at__date=2020-10-30", "selected": false}, {"value": "2022-10-26", "label": "2022-10-26", "count": 47, "toggle_url": "https://datasette-graphql-demo.datasette.io/github/issue_comments.json?_facet_date=created_at&_sort=html_url&_facet_date=updated_at&_labels=on&created_at__date=2022-10-26", "selected": false}, {"value": "2022-03-21", "label": "2022-03-21", "count": 46, "toggle_url": "https://datasette-graphql-demo.datasette.io/github/issue_comments.json?_facet_date=created_at&_sort=html_url&_facet_date=updated_at&_labels=on&created_at__date=2022-03-21", "selected": false}, {"value": "2020-12-18", "label": "2020-12-18", "count": 43, "toggle_url": "https://datasette-graphql-demo.datasette.io/github/issue_comments.json?_facet_date=created_at&_sort=html_url&_facet_date=updated_at&_labels=on&created_at__date=2020-12-18", "selected": false}, {"value": "2020-06-09", "label": "2020-06-09", "count": 42, "toggle_url": "https://datasette-graphql-demo.datasette.io/github/issue_comments.json?_facet_date=created_at&_sort=html_url&_facet_date=updated_at&_labels=on&created_at__date=2020-06-09", "selected": false}, {"value": "2022-10-27", "label": "2022-10-27", "count": 42, "toggle_url": "https://datasette-graphql-demo.datasette.io/github/issue_comments.json?_facet_date=created_at&_sort=html_url&_facet_date=updated_at&_labels=on&created_at__date=2022-10-27", "selected": false}, {"value": "2022-12-13", "label": "2022-12-13", "count": 42, "toggle_url": "https://datasette-graphql-demo.datasette.io/github/issue_comments.json?_facet_date=created_at&_sort=html_url&_facet_date=updated_at&_labels=on&created_at__date=2022-12-13", "selected": false}, {"value": "2020-06-18", "label": "2020-06-18", "count": 41, "toggle_url": "https://datasette-graphql-demo.datasette.io/github/issue_comments.json?_facet_date=created_at&_sort=html_url&_facet_date=updated_at&_labels=on&created_at__date=2020-06-18", "selected": false}, {"value": "2022-10-25", "label": "2022-10-25", "count": 41, "toggle_url": "https://datasette-graphql-demo.datasette.io/github/issue_comments.json?_facet_date=created_at&_sort=html_url&_facet_date=updated_at&_labels=on&created_at__date=2022-10-25", "selected": false}, {"value": "2020-10-20", "label": "2020-10-20", "count": 40, "toggle_url": "https://datasette-graphql-demo.datasette.io/github/issue_comments.json?_facet_date=created_at&_sort=html_url&_facet_date=updated_at&_labels=on&created_at__date=2020-10-20", "selected": false}, {"value": "2022-01-09", "label": "2022-01-09", "count": 40, "toggle_url": "https://datasette-graphql-demo.datasette.io/github/issue_comments.json?_facet_date=created_at&_sort=html_url&_facet_date=updated_at&_labels=on&created_at__date=2022-01-09", "selected": false}, {"value": "2022-06-14", "label": "2022-06-14", "count": 40, "toggle_url": "https://datasette-graphql-demo.datasette.io/github/issue_comments.json?_facet_date=created_at&_sort=html_url&_facet_date=updated_at&_labels=on&created_at__date=2022-06-14", "selected": false}, {"value": "2020-05-27", "label": "2020-05-27", "count": 39, "toggle_url": "https://datasette-graphql-demo.datasette.io/github/issue_comments.json?_facet_date=created_at&_sort=html_url&_facet_date=updated_at&_labels=on&created_at__date=2020-05-27", "selected": false}, {"value": "2021-11-16", "label": "2021-11-16", "count": 39, "toggle_url": "https://datasette-graphql-demo.datasette.io/github/issue_comments.json?_facet_date=created_at&_sort=html_url&_facet_date=updated_at&_labels=on&created_at__date=2021-11-16", "selected": false}, {"value": "2021-12-16", "label": "2021-12-16", "count": 39, "toggle_url": "https://datasette-graphql-demo.datasette.io/github/issue_comments.json?_facet_date=created_at&_sort=html_url&_facet_date=updated_at&_labels=on&created_at__date=2021-12-16", "selected": false}, {"value": "2020-12-30", "label": "2020-12-30", "count": 38, "toggle_url": "https://datasette-graphql-demo.datasette.io/github/issue_comments.json?_facet_date=created_at&_sort=html_url&_facet_date=updated_at&_labels=on&created_at__date=2020-12-30", "selected": false}, {"value": "2022-12-15", "label": "2022-12-15", "count": 37, "toggle_url": "https://datasette-graphql-demo.datasette.io/github/issue_comments.json?_facet_date=created_at&_sort=html_url&_facet_date=updated_at&_labels=on&created_at__date=2022-12-15", "selected": false}, {"value": "2023-03-08", "label": "2023-03-08", "count": 37, "toggle_url": "https://datasette-graphql-demo.datasette.io/github/issue_comments.json?_facet_date=created_at&_sort=html_url&_facet_date=updated_at&_labels=on&created_at__date=2023-03-08", "selected": false}, {"value": "2020-10-09", "label": "2020-10-09", "count": 36, "toggle_url": "https://datasette-graphql-demo.datasette.io/github/issue_comments.json?_facet_date=created_at&_sort=html_url&_facet_date=updated_at&_labels=on&created_at__date=2020-10-09", "selected": false}, {"value": "2021-11-20", "label": "2021-11-20", "count": 36, "toggle_url": "https://datasette-graphql-demo.datasette.io/github/issue_comments.json?_facet_date=created_at&_sort=html_url&_facet_date=updated_at&_labels=on&created_at__date=2021-11-20", "selected": false}, {"value": "2022-01-20", "label": "2022-01-20", "count": 36, "toggle_url": "https://datasette-graphql-demo.datasette.io/github/issue_comments.json?_facet_date=created_at&_sort=html_url&_facet_date=updated_at&_labels=on&created_at__date=2022-01-20", "selected": false}, {"value": "2022-03-19", "label": "2022-03-19", "count": 36, "toggle_url": "https://datasette-graphql-demo.datasette.io/github/issue_comments.json?_facet_date=created_at&_sort=html_url&_facet_date=updated_at&_labels=on&created_at__date=2022-03-19", "selected": false}, {"value": "2020-09-15", "label": "2020-09-15", "count": 34, "toggle_url": "https://datasette-graphql-demo.datasette.io/github/issue_comments.json?_facet_date=created_at&_sort=html_url&_facet_date=updated_at&_labels=on&created_at__date=2020-09-15", "selected": false}, {"value": "2021-11-29", "label": "2021-11-29", "count": 34, "toggle_url": "https://datasette-graphql-demo.datasette.io/github/issue_comments.json?_facet_date=created_at&_sort=html_url&_facet_date=updated_at&_labels=on&created_at__date=2021-11-29", "selected": false}, {"value": "2022-11-18", "label": "2022-11-18", "count": 34, "toggle_url": "https://datasette-graphql-demo.datasette.io/github/issue_comments.json?_facet_date=created_at&_sort=html_url&_facet_date=updated_at&_labels=on&created_at__date=2022-11-18", "selected": false}], "hideable": true, "toggle_url": "/github/issue_comments.json?_sort=html_url&_facet_date=updated_at&_labels=on", "truncated": true}, "updated_at": {"name": "updated_at", "type": "date", "results": [{"value": "2021-03-22", "label": "2021-03-22", "count": 66, "toggle_url": "https://datasette-graphql-demo.datasette.io/github/issue_comments.json?_facet_date=created_at&_sort=html_url&_facet_date=updated_at&_labels=on&updated_at__date=2021-03-22", "selected": false}, {"value": "2021-11-19", "label": "2021-11-19", "count": 60, "toggle_url": "https://datasette-graphql-demo.datasette.io/github/issue_comments.json?_facet_date=created_at&_sort=html_url&_facet_date=updated_at&_labels=on&updated_at__date=2021-11-19", "selected": false}, {"value": "2022-11-16", "label": "2022-11-16", "count": 58, "toggle_url": "https://datasette-graphql-demo.datasette.io/github/issue_comments.json?_facet_date=created_at&_sort=html_url&_facet_date=updated_at&_labels=on&updated_at__date=2022-11-16", "selected": false}, {"value": "2020-09-22", "label": "2020-09-22", "count": 53, "toggle_url": "https://datasette-graphql-demo.datasette.io/github/issue_comments.json?_facet_date=created_at&_sort=html_url&_facet_date=updated_at&_labels=on&updated_at__date=2020-09-22", "selected": false}, {"value": "2020-10-15", "label": "2020-10-15", "count": 52, "toggle_url": "https://datasette-graphql-demo.datasette.io/github/issue_comments.json?_facet_date=created_at&_sort=html_url&_facet_date=updated_at&_labels=on&updated_at__date=2020-10-15", "selected": false}, {"value": "2020-10-30", "label": "2020-10-30", "count": 49, "toggle_url": "https://datasette-graphql-demo.datasette.io/github/issue_comments.json?_facet_date=created_at&_sort=html_url&_facet_date=updated_at&_labels=on&updated_at__date=2020-10-30", "selected": false}, {"value": "2022-10-26", "label": "2022-10-26", "count": 47, "toggle_url": "https://datasette-graphql-demo.datasette.io/github/issue_comments.json?_facet_date=created_at&_sort=html_url&_facet_date=updated_at&_labels=on&updated_at__date=2022-10-26", "selected": false}, {"value": "2022-03-21", "label": "2022-03-21", "count": 46, "toggle_url": "https://datasette-graphql-demo.datasette.io/github/issue_comments.json?_facet_date=created_at&_sort=html_url&_facet_date=updated_at&_labels=on&updated_at__date=2022-03-21", "selected": false}, {"value": "2020-06-09", "label": "2020-06-09", "count": 43, "toggle_url": "https://datasette-graphql-demo.datasette.io/github/issue_comments.json?_facet_date=created_at&_sort=html_url&_facet_date=updated_at&_labels=on&updated_at__date=2020-06-09", "selected": false}, {"value": "2022-10-27", "label": "2022-10-27", "count": 43, "toggle_url": "https://datasette-graphql-demo.datasette.io/github/issue_comments.json?_facet_date=created_at&_sort=html_url&_facet_date=updated_at&_labels=on&updated_at__date=2022-10-27", "selected": false}, {"value": "2022-12-13", "label": "2022-12-13", "count": 43, "toggle_url": "https://datasette-graphql-demo.datasette.io/github/issue_comments.json?_facet_date=created_at&_sort=html_url&_facet_date=updated_at&_labels=on&updated_at__date=2022-12-13", "selected": false}, {"value": "2022-01-09", "label": "2022-01-09", "count": 42, "toggle_url": "https://datasette-graphql-demo.datasette.io/github/issue_comments.json?_facet_date=created_at&_sort=html_url&_facet_date=updated_at&_labels=on&updated_at__date=2022-01-09", "selected": false}, {"value": "2022-10-25", "label": "2022-10-25", "count": 41, "toggle_url": "https://datasette-graphql-demo.datasette.io/github/issue_comments.json?_facet_date=created_at&_sort=html_url&_facet_date=updated_at&_labels=on&updated_at__date=2022-10-25", "selected": false}, {"value": "2020-10-20", "label": "2020-10-20", "count": 40, "toggle_url": "https://datasette-graphql-demo.datasette.io/github/issue_comments.json?_facet_date=created_at&_sort=html_url&_facet_date=updated_at&_labels=on&updated_at__date=2020-10-20", "selected": false}, {"value": "2020-06-18", "label": "2020-06-18", "count": 39, "toggle_url": "https://datasette-graphql-demo.datasette.io/github/issue_comments.json?_facet_date=created_at&_sort=html_url&_facet_date=updated_at&_labels=on&updated_at__date=2020-06-18", "selected": false}, {"value": "2020-12-18", "label": "2020-12-18", "count": 39, "toggle_url": "https://datasette-graphql-demo.datasette.io/github/issue_comments.json?_facet_date=created_at&_sort=html_url&_facet_date=updated_at&_labels=on&updated_at__date=2020-12-18", "selected": false}, {"value": "2021-11-16", "label": "2021-11-16", "count": 39, "toggle_url": "https://datasette-graphql-demo.datasette.io/github/issue_comments.json?_facet_date=created_at&_sort=html_url&_facet_date=updated_at&_labels=on&updated_at__date=2021-11-16", "selected": false}, {"value": "2021-12-16", "label": "2021-12-16", "count": 39, "toggle_url": "https://datasette-graphql-demo.datasette.io/github/issue_comments.json?_facet_date=created_at&_sort=html_url&_facet_date=updated_at&_labels=on&updated_at__date=2021-12-16", "selected": false}, {"value": "2022-06-14", "label": "2022-06-14", "count": 39, "toggle_url": "https://datasette-graphql-demo.datasette.io/github/issue_comments.json?_facet_date=created_at&_sort=html_url&_facet_date=updated_at&_labels=on&updated_at__date=2022-06-14", "selected": false}, {"value": "2020-05-27", "label": "2020-05-27", "count": 38, "toggle_url": "https://datasette-graphql-demo.datasette.io/github/issue_comments.json?_facet_date=created_at&_sort=html_url&_facet_date=updated_at&_labels=on&updated_at__date=2020-05-27", "selected": false}, {"value": "2020-12-30", "label": "2020-12-30", "count": 38, "toggle_url": "https://datasette-graphql-demo.datasette.io/github/issue_comments.json?_facet_date=created_at&_sort=html_url&_facet_date=updated_at&_labels=on&updated_at__date=2020-12-30", "selected": false}, {"value": "2020-10-09", "label": "2020-10-09", "count": 37, "toggle_url": "https://datasette-graphql-demo.datasette.io/github/issue_comments.json?_facet_date=created_at&_sort=html_url&_facet_date=updated_at&_labels=on&updated_at__date=2020-10-09", "selected": false}, {"value": "2022-03-19", "label": "2022-03-19", "count": 37, "toggle_url": "https://datasette-graphql-demo.datasette.io/github/issue_comments.json?_facet_date=created_at&_sort=html_url&_facet_date=updated_at&_labels=on&updated_at__date=2022-03-19", "selected": false}, {"value": "2022-12-15", "label": "2022-12-15", "count": 37, "toggle_url": "https://datasette-graphql-demo.datasette.io/github/issue_comments.json?_facet_date=created_at&_sort=html_url&_facet_date=updated_at&_labels=on&updated_at__date=2022-12-15", "selected": false}, {"value": "2021-11-20", "label": "2021-11-20", "count": 36, "toggle_url": "https://datasette-graphql-demo.datasette.io/github/issue_comments.json?_facet_date=created_at&_sort=html_url&_facet_date=updated_at&_labels=on&updated_at__date=2021-11-20", "selected": false}, {"value": "2022-01-20", "label": "2022-01-20", "count": 36, "toggle_url": "https://datasette-graphql-demo.datasette.io/github/issue_comments.json?_facet_date=created_at&_sort=html_url&_facet_date=updated_at&_labels=on&updated_at__date=2022-01-20", "selected": false}, {"value": "2023-03-08", "label": "2023-03-08", "count": 36, "toggle_url": "https://datasette-graphql-demo.datasette.io/github/issue_comments.json?_facet_date=created_at&_sort=html_url&_facet_date=updated_at&_labels=on&updated_at__date=2023-03-08", "selected": false}, {"value": "2022-11-18", "label": "2022-11-18", "count": 35, "toggle_url": "https://datasette-graphql-demo.datasette.io/github/issue_comments.json?_facet_date=created_at&_sort=html_url&_facet_date=updated_at&_labels=on&updated_at__date=2022-11-18", "selected": false}, {"value": "2021-05-27", "label": "2021-05-27", "count": 34, "toggle_url": "https://datasette-graphql-demo.datasette.io/github/issue_comments.json?_facet_date=created_at&_sort=html_url&_facet_date=updated_at&_labels=on&updated_at__date=2021-05-27", "selected": false}, {"value": "2023-05-08", "label": "2023-05-08", "count": 34, "toggle_url": "https://datasette-graphql-demo.datasette.io/github/issue_comments.json?_facet_date=created_at&_sort=html_url&_facet_date=updated_at&_labels=on&updated_at__date=2023-05-08", "selected": false}], "hideable": true, "toggle_url": "/github/issue_comments.json?_facet_date=created_at&_sort=html_url&_labels=on", "truncated": true}}, "suggested_facets": [{"name": "author_association", "toggle_url": "https://datasette-graphql-demo.datasette.io/github/issue_comments.json?_facet_date=created_at&_sort=html_url&_facet_date=updated_at&_labels=on&_facet=author_association"}], "next": "https~3A~2F~2Fgithub~2Ecom~2Fdogsheep~2Fdogsheep-photos~2Fissues~2F14~23issuecomment-620771698,620771698", "next_url": "https://datasette-graphql-demo.datasette.io/github/issue_comments.json?_facet_date=created_at&_facet_date=updated_at&_labels=on&_next=https~3A~2F~2Fgithub~2Ecom~2Fdogsheep~2Fdogsheep-photos~2Fissues~2F14~23issuecomment-620771698%2C620771698&_sort=html_url", "private": false, "allow_execute_sql": true, "query_ms": 1002.9318279994186}