issue_comments
10,495 rows sorted by updated_at descending
This data as json, CSV (advanced)
issue >30
- Port Datasette to ASGI 42
- Ability to sort (and paginate) by column 31
- Export to CSV 27
- Documentation with recommendations on running Datasette in production without using Docker 26
- base_url configuration setting 24
- Datasette Plugins 22
- Handle spatialite geometry columns better 19
- Facets 16
- Bug: Sort by column with NULL in next_page URL 15
- Support cross-database joins 15
- The ".upsert()" method is misnamed 15
- --dirs option for scanning directories for SQLite databases 15
- latest.datasette.io is no longer updating 15
- Ability to customize presentation of specific columns in HTML view 14
- Mechanism for customizing the SQL used to select specific columns in the table view 14
- .execute_write() and .execute_write_fn() methods on Database 14
- Upload all my photos to a secure S3 bucket 14
- Dockerfile should build more recent SQLite with FTS5 and spatialite support 13
- Fix all the places that currently use .inspect() data 13
- Metadata should be a nested arbitrary KV store 12
- Sanely handle Infinity/-Infinity values in JSON using ?_json_infinity=1 12
- Port Datasette from Sanic to ASGI + Uvicorn 12
- Populate "endpoint" key in ASGI scope 12
- base_url doesn't entirely work for running Datasette inside Binder 12
- Implement command-line tool interface 11
- Option to expose expanded foreign keys in JSON/CSV 11
- Full text search of all tables at once? 11
- Mechanism for adding arbitrary pages like /about 11
- Mechanism for checking if a SQLite database file is safe to open 11
- Ability for a canned query to write to the database 11
- …
id | html_url | issue_url | node_id | user | created_at | updated_at ▲ | author_association | body | reactions | issue | performed_via_github_app |
---|---|---|---|---|---|---|---|---|---|---|---|
620273692 | https://github.com/dogsheep/dogsheep-photos/issues/13#issuecomment-620273692 | https://api.github.com/repos/dogsheep/dogsheep-photos/issues/13 | MDEyOklzc3VlQ29tbWVudDYyMDI3MzY5Mg== | simonw 9599 | 2020-04-27T22:42:50Z | 2020-04-27T22:42:50Z | MEMBER | ```
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Also upload movie files 607888367 | |
620260658 | https://github.com/simonw/datasette/issues/726#issuecomment-620260658 | https://api.github.com/repos/simonw/datasette/issues/726 | MDEyOklzc3VlQ29tbWVudDYyMDI2MDY1OA== | simonw 9599 | 2020-04-27T22:05:46Z | 2020-04-27T22:05:46Z | OWNER | Aah - yes I've seen this a few times before in my own projects. The problem is that the column types don't match up - your
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Foreign key : case of a link to the associated row not displayed 600120439 | |
620177365 | https://github.com/simonw/datasette/issues/743#issuecomment-620177365 | https://api.github.com/repos/simonw/datasette/issues/743 | MDEyOklzc3VlQ29tbWVudDYyMDE3NzM2NQ== | simonw 9599 | 2020-04-27T19:11:01Z | 2020-04-27T19:11:30Z | OWNER | Huh... turns out the documentation already claims that wildcards work! Closing this as wontfix: https://datasette.readthedocs.io/en/stable/full_text_search.html#the-table-view-api |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
escape_fts() does not correctly escape * wildcards 607770595 | |
620174977 | https://github.com/simonw/datasette/issues/743#issuecomment-620174977 | https://api.github.com/repos/simonw/datasette/issues/743 | MDEyOklzc3VlQ29tbWVudDYyMDE3NDk3Nw== | simonw 9599 | 2020-04-27T19:05:56Z | 2020-04-27T19:05:56Z | OWNER | The other option would be to leave this as-is, and let people wildcard search all they want. I'm leaning in that direction. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
escape_fts() does not correctly escape * wildcards 607770595 | |
620172085 | https://github.com/simonw/datasette/issues/735#issuecomment-620172085 | https://api.github.com/repos/simonw/datasette/issues/735 | MDEyOklzc3VlQ29tbWVudDYyMDE3MjA4NQ== | simonw 9599 | 2020-04-27T19:00:30Z | 2020-04-27T19:00:30Z | OWNER | I think this may be a |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Error when I click on "View and edit SQL" 605806386 | |
620171785 | https://github.com/simonw/datasette/issues/736#issuecomment-620171785 | https://api.github.com/repos/simonw/datasette/issues/736 | MDEyOklzc3VlQ29tbWVudDYyMDE3MTc4NQ== | simonw 9599 | 2020-04-27T18:59:54Z | 2020-04-27T18:59:54Z | OWNER | Would you mind trying publishing your database using one of the other options - Heroku, Cloud Run or https://fly.io/ - and see if you have the same bug there? If you DO get the same bug with another option, please re-open this issue. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
strange behavior using accented characters 606720674 | |
620171434 | https://github.com/simonw/datasette/issues/736#issuecomment-620171434 | https://api.github.com/repos/simonw/datasette/issues/736 | MDEyOklzc3VlQ29tbWVudDYyMDE3MTQzNA== | simonw 9599 | 2020-04-27T18:59:16Z | 2020-04-27T18:59:16Z | OWNER | I'm suspicious that this might be a bug with |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
strange behavior using accented characters 606720674 | |
620170826 | https://github.com/simonw/datasette/issues/743#issuecomment-620170826 | https://api.github.com/repos/simonw/datasette/issues/743 | MDEyOklzc3VlQ29tbWVudDYyMDE3MDgyNg== | simonw 9599 | 2020-04-27T18:58:04Z | 2020-04-27T18:58:04Z | OWNER | Maybe this is moot because you can't store a Best source of information I could find was this tiny thread from 2014 about FTS4: http://sqlite.1065341.n5.nabble.com/Escaping-conventions-for-FTS4-virtual-table-queries-td74589.html
I could investigate further by learning to use the fts5vocab virtual table debugging tool to see what's actually stored in those FTS5 indexes and check if https://www.sqlite.org/fts5.html#the_fts5vocab_virtual_table_module |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
escape_fts() does not correctly escape * wildcards 607770595 | |
620166959 | https://github.com/simonw/datasette/issues/743#issuecomment-620166959 | https://api.github.com/repos/simonw/datasette/issues/743 | MDEyOklzc3VlQ29tbWVudDYyMDE2Njk1OQ== | simonw 9599 | 2020-04-27T18:50:30Z | 2020-04-27T18:50:30Z | OWNER | Here's the https://latest.datasette.io/fixtures?sql=select+escape_fts%28%27bar%2A%27%29 So apparently wrapping a SQLite FTS word like |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
escape_fts() does not correctly escape * wildcards 607770595 | |
620153909 | https://github.com/simonw/datasette/issues/742#issuecomment-620153909 | https://api.github.com/repos/simonw/datasette/issues/742 | MDEyOklzc3VlQ29tbWVudDYyMDE1MzkwOQ== | simonw 9599 | 2020-04-27T18:24:53Z | 2020-04-27T18:24:53Z | OWNER | I'm already using it extensively: |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Speed up tests with scope="session"? 607243940 | |
620095649 | https://github.com/simonw/datasette/issues/731#issuecomment-620095649 | https://api.github.com/repos/simonw/datasette/issues/731 | MDEyOklzc3VlQ29tbWVudDYyMDA5NTY0OQ== | simonw 9599 | 2020-04-27T16:32:44Z | 2020-04-27T16:32:44Z | OWNER | { "total_count": 1, "+1": 0, "-1": 0, "laugh": 0, "hooray": 1, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Option to automatically configure based on directory layout 605110015 | ||
619708914 | https://github.com/simonw/datasette/issues/741#issuecomment-619708914 | https://api.github.com/repos/simonw/datasette/issues/741 | MDEyOklzc3VlQ29tbWVudDYxOTcwODkxNA== | simonw 9599 | 2020-04-27T04:30:02Z | 2020-04-27T04:30:24Z | OWNER | This can generate a |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Replace "datasette publish --extra-options" with "--setting" 607223136 | |
619708745 | https://github.com/simonw/datasette/issues/741#issuecomment-619708745 | https://api.github.com/repos/simonw/datasette/issues/741 | MDEyOklzc3VlQ29tbWVudDYxOTcwODc0NQ== | simonw 9599 | 2020-04-27T04:29:26Z | 2020-04-27T04:29:26Z | OWNER | I can show deprecation warnings for |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Replace "datasette publish --extra-options" with "--setting" 607223136 | |
619700113 | https://github.com/simonw/datasette/pull/739#issuecomment-619700113 | https://api.github.com/repos/simonw/datasette/issues/739 | MDEyOklzc3VlQ29tbWVudDYxOTcwMDExMw== | simonw 9599 | 2020-04-27T03:58:09Z | 2020-04-27T03:58:09Z | OWNER | I think documentation goes on https://datasette.readthedocs.io/en/stable/config.html - but I'm going to need to re-arrange that page to fit in a section about configuration directories. I'll move the existing list of settings into a "configration options" section. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Configuration directory mode 607107849 | |
619698467 | https://github.com/simonw/datasette/issues/740#issuecomment-619698467 | https://api.github.com/repos/simonw/datasette/issues/740 | MDEyOklzc3VlQ29tbWVudDYxOTY5ODQ2Nw== | simonw 9599 | 2020-04-27T03:51:27Z | 2020-04-27T03:51:27Z | OWNER | Spotted this while working on #731 |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Don't throw 500 error on attempted directory browse 607211058 | |
619678614 | https://github.com/simonw/datasette/pull/739#issuecomment-619678614 | https://api.github.com/repos/simonw/datasette/issues/739 | MDEyOklzc3VlQ29tbWVudDYxOTY3ODYxNA== | simonw 9599 | 2020-04-27T02:44:21Z | 2020-04-27T02:44:21Z | OWNER | I'm going to add a |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Configuration directory mode 607107849 | |
619622311 | https://github.com/simonw/datasette/pull/739#issuecomment-619622311 | https://api.github.com/repos/simonw/datasette/issues/739 | MDEyOklzc3VlQ29tbWVudDYxOTYyMjMxMQ== | simonw 9599 | 2020-04-26T20:45:07Z | 2020-04-26T20:45:07Z | OWNER | I think ALL explicit options should over-ride options that were detected in the directory structure. This means my current implementation isn't quite right - using a class method makes it hard to merge the details with the explicit options passed to the CLI function. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Configuration directory mode 607107849 | |
619621388 | https://github.com/simonw/datasette/issues/731#issuecomment-619621388 | https://api.github.com/repos/simonw/datasette/issues/731 | MDEyOklzc3VlQ29tbWVudDYxOTYyMTM4OA== | simonw 9599 | 2020-04-26T20:38:09Z | 2020-04-26T20:38:30Z | OWNER | Work now happening in the pull request: https://github.com/simonw/datasette/issues/739 |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Option to automatically configure based on directory layout 605110015 | |
619612675 | https://github.com/simonw/datasette/issues/648#issuecomment-619612675 | https://api.github.com/repos/simonw/datasette/issues/648 | MDEyOklzc3VlQ29tbWVudDYxOTYxMjY3NQ== | simonw 9599 | 2020-04-26T19:35:09Z | 2020-04-26T19:35:09Z | OWNER | https://www.niche-museums.com/about now uses this mechanism. It used to be an empty |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Mechanism for adding arbitrary pages like /about 534492501 | |
619611417 | https://github.com/simonw/datasette/issues/731#issuecomment-619611417 | https://api.github.com/repos/simonw/datasette/issues/731 | MDEyOklzc3VlQ29tbWVudDYxOTYxMTQxNw== | simonw 9599 | 2020-04-26T19:28:12Z | 2020-04-26T19:28:12Z | OWNER | I've shipped #648 now, so no reason not to go with the |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Option to automatically configure based on directory layout 605110015 | |
619605811 | https://github.com/simonw/datasette/issues/738#issuecomment-619605811 | https://api.github.com/repos/simonw/datasette/issues/738 | MDEyOklzc3VlQ29tbWVudDYxOTYwNTgxMQ== | simonw 9599 | 2020-04-26T18:58:56Z | 2020-04-26T18:58:56Z | OWNER | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Pass a request object to custom page templates 607086780 | ||
619604720 | https://github.com/simonw/datasette/issues/648#issuecomment-619604720 | https://api.github.com/repos/simonw/datasette/issues/648 | MDEyOklzc3VlQ29tbWVudDYxOTYwNDcyMA== | simonw 9599 | 2020-04-26T18:50:30Z | 2020-04-26T18:50:30Z | OWNER | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Mechanism for adding arbitrary pages like /about 534492501 | ||
619599904 | https://github.com/simonw/datasette/pull/737#issuecomment-619599904 | https://api.github.com/repos/simonw/datasette/issues/737 | MDEyOklzc3VlQ29tbWVudDYxOTU5OTkwNA== | simonw 9599 | 2020-04-26T18:21:06Z | 2020-04-26T18:21:06Z | OWNER | Just needs documentation now. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Custom pages mechanism, refs #648 607067303 | |
619593899 | https://github.com/simonw/datasette/pull/737#issuecomment-619593899 | https://api.github.com/repos/simonw/datasette/issues/737 | MDEyOklzc3VlQ29tbWVudDYxOTU5Mzg5OQ== | simonw 9599 | 2020-04-26T17:49:06Z | 2020-04-26T17:49:06Z | OWNER | I'm going with |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Custom pages mechanism, refs #648 607067303 | |
619593811 | https://github.com/simonw/datasette/pull/737#issuecomment-619593811 | https://api.github.com/repos/simonw/datasette/issues/737 | MDEyOklzc3VlQ29tbWVudDYxOTU5MzgxMQ== | simonw 9599 | 2020-04-26T17:48:31Z | 2020-04-26T17:48:31Z | OWNER | Design challenge: the function that can be called in the custom template to return a custom status code and/or headers. Proposed design:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Custom pages mechanism, refs #648 607067303 | |
619591533 | https://github.com/simonw/datasette/pull/737#issuecomment-619591533 | https://api.github.com/repos/simonw/datasette/issues/737 | MDEyOklzc3VlQ29tbWVudDYxOTU5MTUzMw== | simonw 9599 | 2020-04-26T17:33:48Z | 2020-04-26T17:33:48Z | OWNER |
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Custom pages mechanism, refs #648 607067303 | |
619591380 | https://github.com/simonw/datasette/issues/648#issuecomment-619591380 | https://api.github.com/repos/simonw/datasette/issues/648 | MDEyOklzc3VlQ29tbWVudDYxOTU5MTM4MA== | simonw 9599 | 2020-04-26T17:33:04Z | 2020-04-26T17:33:04Z | OWNER |
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Mechanism for adding arbitrary pages like /about 534492501 | |
619489720 | https://github.com/simonw/datasette/pull/725#issuecomment-619489720 | https://api.github.com/repos/simonw/datasette/issues/725 | MDEyOklzc3VlQ29tbWVudDYxOTQ4OTcyMA== | stonebig 4312421 | 2020-04-26T06:09:59Z | 2020-04-26T06:10:13Z | NONE | as a complementary remark: the versioning of datasette dependancies will become a problem when the new pip "dependancy resolver" will be activated. for now, it's just warnings via pip checks, later it will be a "no":
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Update aiofiles requirement from ~=0.4.0 to >=0.4,<0.6 598891570 | |
619263600 | https://github.com/simonw/datasette/issues/648#issuecomment-619263600 | https://api.github.com/repos/simonw/datasette/issues/648 | MDEyOklzc3VlQ29tbWVudDYxOTI2MzYwMA== | simonw 9599 | 2020-04-24T22:23:13Z | 2020-04-24T22:23:13Z | OWNER | Idea: |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Mechanism for adding arbitrary pages like /about 534492501 | |
619259859 | https://github.com/simonw/datasette/issues/648#issuecomment-619259859 | https://api.github.com/repos/simonw/datasette/issues/648 | MDEyOklzc3VlQ29tbWVudDYxOTI1OTg1OQ== | simonw 9599 | 2020-04-24T22:10:34Z | 2020-04-24T22:10:34Z | OWNER | The trickiest part here is the 404 logic. It's spread out through a couple of places right now. It's in Then also in the `DatasetteRouter subclass of that: |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Mechanism for adding arbitrary pages like /about 534492501 | |
618796564 | https://github.com/dogsheep/dogsheep-photos/issues/12#issuecomment-618796564 | https://api.github.com/repos/dogsheep/dogsheep-photos/issues/12 | MDEyOklzc3VlQ29tbWVudDYxODc5NjU2NA== | simonw 9599 | 2020-04-24T04:35:25Z | 2020-04-24T04:35:25Z | MEMBER | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
If less than 500MB, show size in MB not GB 606033104 | ||
618775631 | https://github.com/simonw/datasette/issues/648#issuecomment-618775631 | https://api.github.com/repos/simonw/datasette/issues/648 | MDEyOklzc3VlQ29tbWVudDYxODc3NTYzMQ== | simonw 9599 | 2020-04-24T03:03:35Z | 2020-04-24T03:03:35Z | OWNER |
I think I could do that with a custom template function - if that function is called during the render then we follow those instructions instead of returning the rendered HTML. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Mechanism for adding arbitrary pages like /about 534492501 | |
618775028 | https://github.com/simonw/datasette/issues/648#issuecomment-618775028 | https://api.github.com/repos/simonw/datasette/issues/648 | MDEyOklzc3VlQ29tbWVudDYxODc3NTAyOA== | simonw 9599 | 2020-04-24T03:01:32Z | 2020-04-24T03:01:32Z | OWNER | Now that I've closed #577 this should be pretty easy to implement. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Mechanism for adding arbitrary pages like /about 534492501 | |
618772317 | https://github.com/simonw/datasette/issues/731#issuecomment-618772317 | https://api.github.com/repos/simonw/datasette/issues/731 | MDEyOklzc3VlQ29tbWVudDYxODc3MjMxNw== | simonw 9599 | 2020-04-24T02:49:46Z | 2020-04-24T02:49:46Z | OWNER | Yeah I'll do that. My original thinking on allowing the But I've proposed a better solution for that here: #648 |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Option to automatically configure based on directory layout 605110015 | |
618758326 | https://github.com/simonw/datasette/issues/731#issuecomment-618758326 | https://api.github.com/repos/simonw/datasette/issues/731 | MDEyOklzc3VlQ29tbWVudDYxODc1ODMyNg== | eyeseast 25778 | 2020-04-24T01:55:00Z | 2020-04-24T01:55:00Z | CONTRIBUTOR | Mounting |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Option to automatically configure based on directory layout 605110015 | |
618725155 | https://github.com/dogsheep/dogsheep-photos/issues/9#issuecomment-618725155 | https://api.github.com/repos/dogsheep/dogsheep-photos/issues/9 | MDEyOklzc3VlQ29tbWVudDYxODcyNTE1NQ== | simonw 9599 | 2020-04-23T23:39:14Z | 2020-04-23T23:39:14Z | MEMBER | A few minutes later...
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
upload command should be resumable, should only upload photos not already uploaded 605938063 | |
618724149 | https://github.com/dogsheep/dogsheep-photos/issues/9#issuecomment-618724149 | https://api.github.com/repos/dogsheep/dogsheep-photos/issues/9 | MDEyOklzc3VlQ29tbWVudDYxODcyNDE0OQ== | simonw 9599 | 2020-04-23T23:35:29Z | 2020-04-23T23:35:29Z | MEMBER |
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
upload command should be resumable, should only upload photos not already uploaded 605938063 | |
618155472 | https://github.com/simonw/datasette/issues/731#issuecomment-618155472 | https://api.github.com/repos/simonw/datasette/issues/731 | MDEyOklzc3VlQ29tbWVudDYxODE1NTQ3Mg== | simonw 9599 | 2020-04-23T03:28:42Z | 2020-04-23T03:28:56Z | OWNER | As an alternative to
Which would be automatically mounted at Or maybe just mount |
{ "total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Option to automatically configure based on directory layout 605110015 | |
618126449 | https://github.com/simonw/datasette/issues/731#issuecomment-618126449 | https://api.github.com/repos/simonw/datasette/issues/731 | MDEyOklzc3VlQ29tbWVudDYxODEyNjQ0OQ== | eyeseast 25778 | 2020-04-23T01:38:55Z | 2020-04-23T01:38:55Z | CONTRIBUTOR | I've almost suggested this same thing a couple times. I tend to have Makefile (because I'm doing other |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Option to automatically configure based on directory layout 605110015 | |
618100658 | https://github.com/dogsheep/dogsheep-photos/issues/8#issuecomment-618100658 | https://api.github.com/repos/dogsheep/dogsheep-photos/issues/8 | MDEyOklzc3VlQ29tbWVudDYxODEwMDY1OA== | simonw 9599 | 2020-04-23T00:03:35Z | 2020-04-23T00:03:35Z | MEMBER | Also MD5 isn't guaranteed for the ETag:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Should I have used MD5 instead of SHA256? 605147638 | |
618100434 | https://github.com/dogsheep/dogsheep-photos/issues/8#issuecomment-618100434 | https://api.github.com/repos/dogsheep/dogsheep-photos/issues/8 | MDEyOklzc3VlQ29tbWVudDYxODEwMDQzNA== | simonw 9599 | 2020-04-23T00:02:53Z | 2020-04-23T00:02:53Z | MEMBER | I don't think it matters one way or the other - I'm storing the sha256 in the filename, so the fact that I could read the MD5 back from the list bucket operation doesn't give me any benefits. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Should I have used MD5 instead of SHA256? 605147638 | |
618070791 | https://github.com/simonw/datasette/issues/731#issuecomment-618070791 | https://api.github.com/repos/simonw/datasette/issues/731 | MDEyOklzc3VlQ29tbWVudDYxODA3MDc5MQ== | simonw 9599 | 2020-04-22T22:21:27Z | 2020-04-22T22:21:27Z | OWNER | I linked to this from https://github.com/zeit/now/discussions/4055 |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Option to automatically configure based on directory layout 605110015 | |
618070541 | https://github.com/simonw/datasette/issues/731#issuecomment-618070541 | https://api.github.com/repos/simonw/datasette/issues/731 | MDEyOklzc3VlQ29tbWVudDYxODA3MDU0MQ== | simonw 9599 | 2020-04-22T22:20:38Z | 2020-04-22T22:20:38Z | OWNER | I started thinking about this while building https://github.com/simonw/datasette-publish-now The Vercel hosting platform is built on ASGI - so I need a way to provide an The plugin currently does that by generating an
This would be a whole lot easier if I could use |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Option to automatically configure based on directory layout 605110015 | |
617491607 | https://github.com/dogsheep/github-to-sqlite/issues/31#issuecomment-617491607 | https://api.github.com/repos/dogsheep/github-to-sqlite/issues/31 | MDEyOklzc3VlQ29tbWVudDYxNzQ5MTYwNw== | simonw 9599 | 2020-04-22T01:20:19Z | 2020-04-22T01:20:19Z | MEMBER | https://github-to-sqlite.dogsheep.net/github/milestones now link to repo: And so do issues: https://github-to-sqlite.dogsheep.net/github/issues |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Issue and milestone should have foreign key to repo 603624862 | |
617490914 | https://github.com/dogsheep/github-to-sqlite/issues/32#issuecomment-617490914 | https://api.github.com/repos/dogsheep/github-to-sqlite/issues/32 | MDEyOklzc3VlQ29tbWVudDYxNzQ5MDkxNA== | simonw 9599 | 2020-04-22T01:17:44Z | 2020-04-22T01:17:44Z | MEMBER | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Issue comments don't appear to populate issues foreign key 604222295 | ||
617369247 | https://github.com/dogsheep/github-to-sqlite/issues/32#issuecomment-617369247 | https://api.github.com/repos/dogsheep/github-to-sqlite/issues/32 | MDEyOklzc3VlQ29tbWVudDYxNzM2OTI0Nw== | simonw 9599 | 2020-04-21T19:33:03Z | 2020-04-21T19:33:03Z | MEMBER | Caused by #31. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Issue comments don't appear to populate issues foreign key 604222295 | |
617364956 | https://github.com/dogsheep/github-to-sqlite/issues/32#issuecomment-617364956 | https://api.github.com/repos/dogsheep/github-to-sqlite/issues/32 | MDEyOklzc3VlQ29tbWVudDYxNzM2NDk1Ng== | simonw 9599 | 2020-04-21T19:24:45Z | 2020-04-21T19:24:45Z | MEMBER | That's because I just broke this code: It expects the I should add a test for this as part of the fix. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Issue comments don't appear to populate issues foreign key 604222295 | |
617348174 | https://github.com/dogsheep/github-to-sqlite/issues/31#issuecomment-617348174 | https://api.github.com/repos/dogsheep/github-to-sqlite/issues/31 | MDEyOklzc3VlQ29tbWVudDYxNzM0ODE3NA== | simonw 9599 | 2020-04-21T18:50:29Z | 2020-04-21T18:50:29Z | MEMBER | Since this represents a breaking schema change for anyone running SQL queries against these tables, I'm going to do a major version bump to 2.0 when I release this. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Issue and milestone should have foreign key to repo 603624862 | |
617208503 | https://github.com/simonw/datasette/issues/176#issuecomment-617208503 | https://api.github.com/repos/simonw/datasette/issues/176 | MDEyOklzc3VlQ29tbWVudDYxNzIwODUwMw== | nkirsch 12976 | 2020-04-21T14:16:24Z | 2020-04-21T14:16:24Z | NONE | @eads I'm interested in helping, if there's still a need... |
{ "total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Add GraphQL endpoint 285168503 | |
616884647 | https://github.com/dogsheep/github-to-sqlite/issues/31#issuecomment-616884647 | https://api.github.com/repos/dogsheep/github-to-sqlite/issues/31 | MDEyOklzc3VlQ29tbWVudDYxNjg4NDY0Nw== | simonw 9599 | 2020-04-21T00:49:16Z | 2020-04-21T00:50:20Z | MEMBER | The API just gives us the We currently turn that into a |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Issue and milestone should have foreign key to repo 603624862 | |
616883726 | https://github.com/dogsheep/github-to-sqlite/issues/30#issuecomment-616883726 | https://api.github.com/repos/dogsheep/github-to-sqlite/issues/30 | MDEyOklzc3VlQ29tbWVudDYxNjg4MzcyNg== | simonw 9599 | 2020-04-21T00:45:23Z | 2020-04-21T00:45:23Z | MEMBER | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Issues milestone column is the wrong type 603618244 | ||
616883275 | https://github.com/dogsheep/github-to-sqlite/issues/29#issuecomment-616883275 | https://api.github.com/repos/dogsheep/github-to-sqlite/issues/29 | MDEyOklzc3VlQ29tbWVudDYxNjg4MzI3NQ== | simonw 9599 | 2020-04-21T00:43:28Z | 2020-04-21T00:43:28Z | MEMBER | I'm copying repo from issue, which surprisingly is a string, not an integer ID. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Milestones should have foreign key to creator and repo 603617013 | |
616879753 | https://github.com/dogsheep/github-to-sqlite/issues/30#issuecomment-616879753 | https://api.github.com/repos/dogsheep/github-to-sqlite/issues/30 | MDEyOklzc3VlQ29tbWVudDYxNjg3OTc1Mw== | simonw 9599 | 2020-04-21T00:29:29Z | 2020-04-21T00:29:29Z | MEMBER |
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Issues milestone column is the wrong type 603618244 | |
616029262 | https://github.com/dogsheep/twitter-to-sqlite/issues/45#issuecomment-616029262 | https://api.github.com/repos/dogsheep/twitter-to-sqlite/issues/45 | MDEyOklzc3VlQ29tbWVudDYxNjAyOTI2Mg== | simonw 9599 | 2020-04-19T04:39:21Z | 2020-04-19T04:39:21Z | MEMBER | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Use raise_for_status() everywhere 602619330 | ||
615993178 | https://github.com/dogsheep/dogsheep-photos/issues/7#issuecomment-615993178 | https://api.github.com/repos/dogsheep/dogsheep-photos/issues/7 | MDEyOklzc3VlQ29tbWVudDYxNTk5MzE3OA== | simonw 9599 | 2020-04-19T00:37:08Z | 2020-04-19T00:37:08Z | MEMBER | https://pypi.org/project/ImageHash/ Is one option. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Integrate image content hashing 602585497 | |
615983393 | https://github.com/dogsheep/dogsheep-photos/issues/6#issuecomment-615983393 | https://api.github.com/repos/dogsheep/dogsheep-photos/issues/6 | MDEyOklzc3VlQ29tbWVudDYxNTk4MzM5Mw== | simonw 9599 | 2020-04-18T23:53:10Z | 2020-04-18T23:53:10Z | MEMBER |
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Add progress bar to upload command 602575575 | |
615979923 | https://github.com/dogsheep/dogsheep-photos/issues/6#issuecomment-615979923 | https://api.github.com/repos/dogsheep/dogsheep-photos/issues/6 | MDEyOklzc3VlQ29tbWVudDYxNTk3OTkyMw== | simonw 9599 | 2020-04-18T23:36:02Z | 2020-04-18T23:36:02Z | MEMBER | I'll use a Click progress bar. To do this I need to first calculate the sum number of bytes in the photos that are going to be uploaded, then run the upload. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Add progress bar to upload command 602575575 | |
615957385 | https://github.com/dogsheep/dogsheep-photos/issues/4#issuecomment-615957385 | https://api.github.com/repos/dogsheep/dogsheep-photos/issues/4 | MDEyOklzc3VlQ29tbWVudDYxNTk1NzM4NQ== | simonw 9599 | 2020-04-18T21:56:16Z | 2020-04-18T21:58:11Z | MEMBER | Got this working! I'll do EXIF in a separate ticket #3. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Upload all my photos to a secure S3 bucket 602533539 | |
615949574 | https://github.com/dogsheep/dogsheep-photos/issues/5#issuecomment-615949574 | https://api.github.com/repos/dogsheep/dogsheep-photos/issues/5 | MDEyOklzc3VlQ29tbWVudDYxNTk0OTU3NA== | simonw 9599 | 2020-04-18T21:06:07Z | 2020-04-18T21:06:07Z | MEMBER | ``` $ photos-to-sqlite s3-auth Create S3 credentials and paste them here: Access key ID: xxx Secret access key: yyy $ cat auth.json { "access_key_id": "xxx", "secret_access_key": "yyy" } ``` |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
photos-to-sqlite s3-auth command 602551638 | |
615948102 | https://github.com/dogsheep/dogsheep-photos/issues/4#issuecomment-615948102 | https://api.github.com/repos/dogsheep/dogsheep-photos/issues/4 | MDEyOklzc3VlQ29tbWVudDYxNTk0ODEwMg== | simonw 9599 | 2020-04-18T20:56:59Z | 2020-04-18T20:56:59Z | MEMBER | I'm going to start with this:
This will scan the provided directory (and all sub-directories) for image files. It will then:
Stretch goal: grab the EXIF data and include that in the |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Upload all my photos to a secure S3 bucket 602533539 | |
615947370 | https://github.com/dogsheep/dogsheep-photos/issues/4#issuecomment-615947370 | https://api.github.com/repos/dogsheep/dogsheep-photos/issues/4 | MDEyOklzc3VlQ29tbWVudDYxNTk0NzM3MA== | simonw 9599 | 2020-04-18T20:52:13Z | 2020-04-18T20:52:13Z | MEMBER | This is great! I now have a key that can upload photos, and a separate key that can download photos OR generate signed URLs to access those photos. Next step: a script that starts uploading my photos. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Upload all my photos to a secure S3 bucket 602533539 | |
615947229 | https://github.com/dogsheep/dogsheep-photos/issues/4#issuecomment-615947229 | https://api.github.com/repos/dogsheep/dogsheep-photos/issues/4 | MDEyOklzc3VlQ29tbWVudDYxNTk0NzIyOQ== | simonw 9599 | 2020-04-18T20:51:26Z | 2020-04-18T20:51:26Z | MEMBER | Running the upload again like this resulted in the correct content-type:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Upload all my photos to a secure S3 bucket 602533539 | |
615946537 | https://github.com/dogsheep/dogsheep-photos/issues/4#issuecomment-615946537 | https://api.github.com/repos/dogsheep/dogsheep-photos/issues/4 | MDEyOklzc3VlQ29tbWVudDYxNTk0NjUzNw== | simonw 9599 | 2020-04-18T20:48:13Z | 2020-04-18T20:48:13Z | MEMBER | How about generating a signed URL?
Which does this: ``` ~ $ curl -i 'https://dogsheep-photos-simon.s3.amazonaws.com/this_is_fine.jpg?AWSAccessKeyId=AKIAWXFXAIOZNZ3JFO7I&Signature=x1zrS4w4OTGAACd7yHp9mYqXvN8%3D&Expires=1587243398' HTTP/1.1 307 Temporary Redirect x-amz-bucket-region: us-west-1 x-amz-request-id: E78CD859AEE21D33 x-amz-id-2: 648mx+1+YSGga7NDOU7Q6isfsKnEPWOLC+DI4+x2o9FCc6pSCdIaoHJUbFMI8Vsuh1ADtx46ymU= Location: https://dogsheep-photos-simon.s3-us-west-1.amazonaws.com/this_is_fine.jpg?AWSAccessKeyId=AKIAWXFXAIOZNZ3JFO7I&Signature=x1zrS4w4OTGAACd7yHp9mYqXvN8%3D&Expires=1587243398 Content-Type: application/xml Transfer-Encoding: chunked Date: Sat, 18 Apr 2020 20:47:21 GMT Server: AmazonS3 <Error> ????JFIF??C
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Upload all my photos to a secure S3 bucket 602533539 | |
615945056 | https://github.com/dogsheep/dogsheep-photos/issues/4#issuecomment-615945056 | https://api.github.com/repos/dogsheep/dogsheep-photos/issues/4 | MDEyOklzc3VlQ29tbWVudDYxNTk0NTA1Ng== | simonw 9599 | 2020-04-18T20:42:41Z | 2020-04-18T20:42:41Z | MEMBER | But... |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Upload all my photos to a secure S3 bucket 602533539 | |
615944806 | https://github.com/dogsheep/dogsheep-photos/issues/4#issuecomment-615944806 | https://api.github.com/repos/dogsheep/dogsheep-photos/issues/4 | MDEyOklzc3VlQ29tbWVudDYxNTk0NDgwNg== | simonw 9599 | 2020-04-18T20:41:39Z | 2020-04-18T20:41:39Z | MEMBER | This worked! And this worked: |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Upload all my photos to a secure S3 bucket 602533539 | |
615942116 | https://github.com/dogsheep/dogsheep-photos/issues/4#issuecomment-615942116 | https://api.github.com/repos/dogsheep/dogsheep-photos/issues/4 | MDEyOklzc3VlQ29tbWVudDYxNTk0MjExNg== | simonw 9599 | 2020-04-18T20:30:56Z | 2020-04-18T20:30:56Z | MEMBER | Next step: attempt a programmatic upload using the Also attempt a programmatic bucket listing and read using |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Upload all my photos to a secure S3 bucket 602533539 | |
615941746 | https://github.com/dogsheep/dogsheep-photos/issues/4#issuecomment-615941746 | https://api.github.com/repos/dogsheep/dogsheep-photos/issues/4 | MDEyOklzc3VlQ29tbWVudDYxNTk0MTc0Ng== | simonw 9599 | 2020-04-18T20:29:36Z | 2020-04-18T20:29:36Z | MEMBER | I'm going to create another user just for Transmit, with full S3 access. name: Rather than creating a group for that user, I'm trying the "Attach existing policies directly" option: That user DID work with Transmit. I uploaded a test HEIC image. I used Transmit to copy a signed URL for it.
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Upload all my photos to a secure S3 bucket 602533539 | |
615936880 | https://github.com/dogsheep/dogsheep-photos/issues/4#issuecomment-615936880 | https://api.github.com/repos/dogsheep/dogsheep-photos/issues/4 | MDEyOklzc3VlQ29tbWVudDYxNTkzNjg4MA== | simonw 9599 | 2020-04-18T20:04:31Z | 2020-04-18T20:04:31Z | MEMBER | Next step: create two IAM users, one for each of those groups. https://console.aws.amazon.com/iam/home#/users$new?step=details I copied the keys into a secure note in 1password. Couldn't get into Transmit with them though! https://library.panic.com/transmit/transmit5/iam-roles/ may help. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Upload all my photos to a secure S3 bucket 602533539 | |
615935577 | https://github.com/dogsheep/dogsheep-photos/issues/4#issuecomment-615935577 | https://api.github.com/repos/dogsheep/dogsheep-photos/issues/4 | MDEyOklzc3VlQ29tbWVudDYxNTkzNTU3Nw== | simonw 9599 | 2020-04-18T19:54:59Z | 2020-04-18T19:55:30Z | MEMBER | Creating IAM groups called Now I can attach an "inline policy" to each one. For the read-write group I go here: https://console.aws.amazon.com/iam/home#/groups/dogsheep-photos-simon-read-write Example policies are here: https://docs.aws.amazon.com/AmazonS3/latest/dev/example-bucket-policies.html For the read-write one I went with:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Upload all my photos to a secure S3 bucket 602533539 | |
615933273 | https://github.com/dogsheep/dogsheep-photos/issues/4#issuecomment-615933273 | https://api.github.com/repos/dogsheep/dogsheep-photos/issues/4 | MDEyOklzc3VlQ29tbWVudDYxNTkzMzI3Mw== | simonw 9599 | 2020-04-18T19:37:33Z | 2020-04-18T19:37:33Z | MEMBER | https://console.aws.amazon.com/s3/bucket/create?region=us-west-1 I created it with no public read-write access. I plan to use signed URLs via a transforming proxy to access images for display on the web. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Upload all my photos to a secure S3 bucket 602533539 | |
615932204 | https://github.com/dogsheep/dogsheep-photos/issues/4#issuecomment-615932204 | https://api.github.com/repos/dogsheep/dogsheep-photos/issues/4 | MDEyOklzc3VlQ29tbWVudDYxNTkzMjIwNA== | simonw 9599 | 2020-04-18T19:29:22Z | 2020-04-18T19:34:44Z | MEMBER | I'm going to call my bucket |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Upload all my photos to a secure S3 bucket 602533539 | |
615932007 | https://github.com/dogsheep/dogsheep-photos/issues/4#issuecomment-615932007 | https://api.github.com/repos/dogsheep/dogsheep-photos/issues/4 | MDEyOklzc3VlQ29tbWVudDYxNTkzMjAwNw== | simonw 9599 | 2020-04-18T19:27:55Z | 2020-04-18T19:27:55Z | MEMBER | Research thread: https://twitter.com/simonw/status/1249049694984011776
https://testdriven.io/blog/storing-django-static-and-media-files-on-amazon-s3/ looks useful |
{ "total_count": 2, "+1": 2, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Upload all my photos to a secure S3 bucket 602533539 | |
615931488 | https://github.com/dogsheep/dogsheep-photos/issues/2#issuecomment-615931488 | https://api.github.com/repos/dogsheep/dogsheep-photos/issues/2 | MDEyOklzc3VlQ29tbWVudDYxNTkzMTQ4OA== | simonw 9599 | 2020-04-18T19:24:02Z | 2020-04-18T19:24:02Z | MEMBER | I made a start on this last week with a https://github.com/simonw/heic-to-jpeg proxy. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Ability to convert HEIC images to JPEG 602533352 | |
615886206 | https://github.com/dogsheep/github-to-sqlite/issues/28#issuecomment-615886206 | https://api.github.com/repos/dogsheep/github-to-sqlite/issues/28 | MDEyOklzc3VlQ29tbWVudDYxNTg4NjIwNg== | simonw 9599 | 2020-04-18T15:04:59Z | 2020-04-18T15:04:59Z | MEMBER | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Pull repository contributors 601333634 | ||
615883687 | https://github.com/dogsheep/github-to-sqlite/issues/28#issuecomment-615883687 | https://api.github.com/repos/dogsheep/github-to-sqlite/issues/28 | MDEyOklzc3VlQ29tbWVudDYxNTg4MzY4Nw== | simonw 9599 | 2020-04-18T14:49:58Z | 2020-04-18T14:49:58Z | MEMBER | That happened trying to pull contributors for |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Pull repository contributors 601333634 | |
615883040 | https://github.com/dogsheep/github-to-sqlite/issues/28#issuecomment-615883040 | https://api.github.com/repos/dogsheep/github-to-sqlite/issues/28 | MDEyOklzc3VlQ29tbWVudDYxNTg4MzA0MA== | simonw 9599 | 2020-04-18T14:45:38Z | 2020-04-18T14:45:38Z | MEMBER |
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Pull repository contributors 601333634 | |
615519409 | https://github.com/dogsheep/github-to-sqlite/issues/27#issuecomment-615519409 | https://api.github.com/repos/dogsheep/github-to-sqlite/issues/27 | MDEyOklzc3VlQ29tbWVudDYxNTUxOTQwOQ== | simonw 9599 | 2020-04-18T00:19:16Z | 2020-04-18T00:19:16Z | MEMBER |
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Repos have a big blob of JSON in the organization column 601330277 | |
615518606 | https://github.com/dogsheep/github-to-sqlite/issues/27#issuecomment-615518606 | https://api.github.com/repos/dogsheep/github-to-sqlite/issues/27 | MDEyOklzc3VlQ29tbWVudDYxNTUxODYwNg== | simonw 9599 | 2020-04-18T00:14:32Z | 2020-04-18T00:14:32Z | MEMBER | https://github.com/simonw/sqlite-utils/issues/100 is done and released in sqlite-utils 2.7. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Repos have a big blob of JSON in the organization column 601330277 | |
615515867 | https://github.com/simonw/sqlite-utils/issues/89#issuecomment-615515867 | https://api.github.com/repos/simonw/sqlite-utils/issues/89 | MDEyOklzc3VlQ29tbWVudDYxNTUxNTg2Nw== | simonw 9599 | 2020-04-18T00:00:41Z | 2020-04-18T00:00:41Z | OWNER | Yes pleas, I'd love to see that pull request! |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Ability to customize columns used by extracts= feature 573578548 | |
615513491 | https://github.com/dogsheep/twitter-to-sqlite/issues/43#issuecomment-615513491 | https://api.github.com/repos/dogsheep/twitter-to-sqlite/issues/43 | MDEyOklzc3VlQ29tbWVudDYxNTUxMzQ5MQ== | simonw 9599 | 2020-04-17T23:48:28Z | 2020-04-17T23:48:28Z | MEMBER | Released in 0.21. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
"twitter-to-sqlite lists" command for retrieving a user's owned lists 602176870 | |
615510361 | https://github.com/dogsheep/twitter-to-sqlite/issues/37#issuecomment-615510361 | https://api.github.com/repos/dogsheep/twitter-to-sqlite/issues/37 | MDEyOklzc3VlQ29tbWVudDYxNTUxMDM2MQ== | simonw 9599 | 2020-04-17T23:38:27Z | 2020-04-17T23:38:27Z | MEMBER | That's a bit tricky since I'd have to rewrite the internals of a bunch of other commands. For the moment I'll exit the script with an error but at least it will be a decent error! |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Handle "User not found" error 585353598 | |
615509803 | https://github.com/dogsheep/twitter-to-sqlite/issues/37#issuecomment-615509803 | https://api.github.com/repos/dogsheep/twitter-to-sqlite/issues/37 | MDEyOklzc3VlQ29tbWVudDYxNTUwOTgwMw== | simonw 9599 | 2020-04-17T23:36:40Z | 2020-04-17T23:36:40Z | MEMBER | I'm going to print a warning to stderr, skip and continue - because if you have 100 screen names and only one of them is invalid you should still execute for the other 99. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Handle "User not found" error 585353598 | |
615509578 | https://github.com/dogsheep/twitter-to-sqlite/issues/37#issuecomment-615509578 | https://api.github.com/repos/dogsheep/twitter-to-sqlite/issues/37 | MDEyOklzc3VlQ29tbWVudDYxNTUwOTU3OA== | simonw 9599 | 2020-04-17T23:36:00Z | 2020-04-17T23:36:00Z | MEMBER |
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Handle "User not found" error 585353598 | |
615372322 | https://github.com/simonw/sqlite-utils/issues/100#issuecomment-615372322 | https://api.github.com/repos/simonw/sqlite-utils/issues/100 | MDEyOklzc3VlQ29tbWVudDYxNTM3MjMyMg== | simonw 9599 | 2020-04-17T17:31:42Z | 2020-04-17T17:31:42Z | OWNER | I'm going with |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Mechanism for forcing column-type, over-riding auto-detection 601358649 | |
614843406 | https://github.com/dogsheep/github-to-sqlite/issues/27#issuecomment-614843406 | https://api.github.com/repos/dogsheep/github-to-sqlite/issues/27 | MDEyOklzc3VlQ29tbWVudDYxNDg0MzQwNg== | simonw 9599 | 2020-04-16T19:11:53Z | 2020-04-16T19:20:23Z | MEMBER | This didn't quite work: the column type is incorrect, so the foreign key relationship isn't sticking: https://github-to-sqlite.dogsheep.net/github/repos?organization=53015001
The problem is that if the first repo inserted has no organization it's set to One solution would be to create the column explicitly with a type, but this could get messy. I think I want a new sqlite-utils feature for this instead. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Repos have a big blob of JSON in the organization column 601330277 | |
614846059 | https://github.com/simonw/sqlite-utils/issues/100#issuecomment-614846059 | https://api.github.com/repos/simonw/sqlite-utils/issues/100 | MDEyOklzc3VlQ29tbWVudDYxNDg0NjA1OQ== | simonw 9599 | 2020-04-16T19:17:56Z | 2020-04-16T19:17:56Z | OWNER | Reminder: the current list of arguments for those methods is: https://github.com/simonw/sqlite-utils/blob/13528faa817d79bc3900d3af7473300686b145d7/sqlite_utils/db.py#L951-L967 |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Mechanism for forcing column-type, over-riding auto-detection 601358649 | |
614845657 | https://github.com/simonw/sqlite-utils/issues/100#issuecomment-614845657 | https://api.github.com/repos/simonw/sqlite-utils/issues/100 | MDEyOklzc3VlQ29tbWVudDYxNDg0NTY1Nw== | simonw 9599 | 2020-04-16T19:17:05Z | 2020-04-16T19:17:05Z | OWNER | The syntax for explicitly creating a table looks like this:
I think it becomes a new optional argument to Options:
I like the first two best. I'm leaning towards Maybe something like this:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Mechanism for forcing column-type, over-riding auto-detection 601358649 | |
614831842 | https://github.com/dogsheep/github-to-sqlite/issues/27#issuecomment-614831842 | https://api.github.com/repos/dogsheep/github-to-sqlite/issues/27 | MDEyOklzc3VlQ29tbWVudDYxNDgzMTg0Mg== | simonw 9599 | 2020-04-16T18:48:18Z | 2020-04-16T18:48:18Z | MEMBER | I'm going to make |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Repos have a big blob of JSON in the organization column 601330277 | |
614831451 | https://github.com/dogsheep/github-to-sqlite/issues/27#issuecomment-614831451 | https://api.github.com/repos/dogsheep/github-to-sqlite/issues/27 | MDEyOklzc3VlQ29tbWVudDYxNDgzMTQ1MQ== | simonw 9599 | 2020-04-16T18:47:25Z | 2020-04-16T18:47:25Z | MEMBER | Is it possible for a repo to have an |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Repos have a big blob of JSON in the organization column 601330277 | |
614810417 | https://github.com/dogsheep/github-to-sqlite/issues/25#issuecomment-614810417 | https://api.github.com/repos/dogsheep/github-to-sqlite/issues/25 | MDEyOklzc3VlQ29tbWVudDYxNDgxMDQxNw== | simonw 9599 | 2020-04-16T18:07:11Z | 2020-04-16T18:07:11Z | MEMBER | Turns out the main problem was #26 - now fixed. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Improvements to demo instance 601265023 | |
614795712 | https://github.com/dogsheep/github-to-sqlite/issues/26#issuecomment-614795712 | https://api.github.com/repos/dogsheep/github-to-sqlite/issues/26 | MDEyOklzc3VlQ29tbWVudDYxNDc5NTcxMg== | simonw 9599 | 2020-04-16T17:40:27Z | 2020-04-16T17:40:27Z | MEMBER | Aha! it was missing from the |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Topics are missing from repositories 601271612 | |
614794739 | https://github.com/dogsheep/github-to-sqlite/issues/26#issuecomment-614794739 | https://api.github.com/repos/dogsheep/github-to-sqlite/issues/26 | MDEyOklzc3VlQ29tbWVudDYxNDc5NDczOQ== | simonw 9599 | 2020-04-16T17:38:28Z | 2020-04-16T17:38:28Z | MEMBER | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Topics are missing from repositories 601271612 | ||
614440032 | https://github.com/simonw/sqlite-utils/issues/76#issuecomment-614440032 | https://api.github.com/repos/simonw/sqlite-utils/issues/76 | MDEyOklzc3VlQ29tbWVudDYxNDQ0MDAzMg== | metab0t 10501166 | 2020-04-16T06:23:29Z | 2020-04-16T06:23:29Z | NONE | Thanks for your hard work! |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
order_by mechanism 549287310 | |
614400533 | https://github.com/simonw/sqlite-utils/issues/76#issuecomment-614400533 | https://api.github.com/repos/simonw/sqlite-utils/issues/76 | MDEyOklzc3VlQ29tbWVudDYxNDQwMDUzMw== | simonw 9599 | 2020-04-16T03:51:26Z | 2020-04-16T03:51:26Z | OWNER | Documentation here: https://sqlite-utils.readthedocs.io/en/stable/python-api.html#listing-rows |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
order_by mechanism 549287310 | |
614400454 | https://github.com/simonw/sqlite-utils/issues/76#issuecomment-614400454 | https://api.github.com/repos/simonw/sqlite-utils/issues/76 | MDEyOklzc3VlQ29tbWVudDYxNDQwMDQ1NA== | simonw 9599 | 2020-04-16T03:51:01Z | 2020-04-16T03:51:01Z | OWNER | Released in 2.6 |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
order_by mechanism 549287310 | |
614354219 | https://github.com/simonw/sqlite-utils/issues/76#issuecomment-614354219 | https://api.github.com/repos/simonw/sqlite-utils/issues/76 | MDEyOklzc3VlQ29tbWVudDYxNDM1NDIxOQ== | simonw 9599 | 2020-04-16T01:01:34Z | 2020-04-16T01:01:34Z | OWNER | I think a neat way to do this would be with an optional argument for
If you want everything you can use this:
It's a tiny bit weird calling |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
order_by mechanism 549287310 | |
614283842 | https://github.com/simonw/datasette/issues/727#issuecomment-614283842 | https://api.github.com/repos/simonw/datasette/issues/727 | MDEyOklzc3VlQ29tbWVudDYxNDI4Mzg0Mg== | simonw 9599 | 2020-04-15T21:14:57Z | 2020-04-15T21:14:57Z | OWNER | https://datasette.readthedocs.io/en/latest/custom_templates.html#css-classes-on-the-body has the updated documentation. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Custom CSS class on body for styling canned queries 600583271 | |
614282980 | https://github.com/simonw/datasette/issues/727#issuecomment-614282980 | https://api.github.com/repos/simonw/datasette/issues/727 | MDEyOklzc3VlQ29tbWVudDYxNDI4Mjk4MA== | simonw 9599 | 2020-04-15T21:13:00Z | 2020-04-15T21:13:00Z | OWNER | https://latest.datasette.io/fixtures/neighborhood_search now has the following: ```html <body class="query db-fixtures query-neighborhood_search"> ``` |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Custom CSS class on body for styling canned queries 600583271 | |
614278078 | https://github.com/simonw/datasette/issues/727#issuecomment-614278078 | https://api.github.com/repos/simonw/datasette/issues/727 | MDEyOklzc3VlQ29tbWVudDYxNDI3ODA3OA== | simonw 9599 | 2020-04-15T21:01:44Z | 2020-04-15T21:01:44Z | OWNER | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Custom CSS class on body for styling canned queries 600583271 | ||
614276988 | https://github.com/simonw/datasette/issues/727#issuecomment-614276988 | https://api.github.com/repos/simonw/datasette/issues/727 | MDEyOklzc3VlQ29tbWVudDYxNDI3Njk4OA== | simonw 9599 | 2020-04-15T20:59:17Z | 2020-04-15T20:59:45Z | OWNER | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Custom CSS class on body for styling canned queries 600583271 |
Advanced export
JSON shape: default, array, newline-delimited, object
CREATE TABLE [issue_comments] ( [html_url] TEXT, [issue_url] TEXT, [id] INTEGER PRIMARY KEY, [node_id] TEXT, [user] INTEGER REFERENCES [users]([id]), [created_at] TEXT, [updated_at] TEXT, [author_association] TEXT, [body] TEXT, [reactions] TEXT, [issue] INTEGER REFERENCES [issues]([id]) , [performed_via_github_app] TEXT); CREATE INDEX [idx_issue_comments_issue] ON [issue_comments] ([issue]); CREATE INDEX [idx_issue_comments_user] ON [issue_comments] ([user]);
user >30