From cec8f4d12456db727404043ba0b17a51d33bcc81 Mon Sep 17 00:00:00 2001 From: Alessio Date: Sun, 24 Dec 2023 22:43:14 -0600 Subject: [PATCH] Update CHANGELOG.txt for v0.6.0 --- CHANGELOG.txt | 11 ++++++++ cmd/twitter/help_message.txt | 17 ++++++++++++ doc/TODO.txt | 19 +++++++------- pkg/persistence/versions.go | 50 ++++++++++++++++++++++++++++++++++++ sample_data/seed_data.sql | 2 +- 5 files changed, 88 insertions(+), 11 deletions(-) diff --git a/CHANGELOG.txt b/CHANGELOG.txt index 5469359..a650705 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -197,3 +197,14 @@ v0.5.1 - Add a preliminary Lists page which shows all offline-follows - Add search page support for searching users - Automatic background scraping of logged-in user's Likes + +v0.6.0 +------ + +- Add DMs +- Bugfixes: + - Fix crashing because of the composer button when scraping logged-in user's threads + - Fix crashing when loading the user feed of a user who isn't scraped yet +- UI improvements: + - Make page loads much faster by moving image/video downloading to non-blocking background tasks + - Get rid of dropdown button on tweets (buttons are just inline now) diff --git a/cmd/twitter/help_message.txt b/cmd/twitter/help_message.txt index 080c2a1..93c76cb 100644 --- a/cmd/twitter/help_message.txt +++ b/cmd/twitter/help_message.txt @@ -67,6 +67,23 @@ This application downloads tweets from twitter and saves them in a SQLite databa "Like" or un-"like" the tweet indicated by . (Requires authentication) + + fetch_inbox + Update all DMs. + is ignored. + + fetch_dm + Update a specific DM chat room. + is the chat room ID to update + + send_dm + Send a DM. + is the chat room ID to send the DM to. + An additional argument is required after , which is the text of the message to send. + Another additional argument can be added, which is the message ID that this new message is + in reply to. + + webserver Start a webserver that serves a web UI to browse the tweet archive diff --git a/doc/TODO.txt b/doc/TODO.txt index 10b2552..5e7d5ee 100644 --- a/doc/TODO.txt +++ b/doc/TODO.txt @@ -38,11 +38,6 @@ TODO post-tweets - quote-tweet a tweet - retweet a tweet -TODO fetch-DMs - -TODO fix-spaces-participants-duplicates -- It is creating a new copy of the participants every time it gets scraped again - TODO spaces-fetch-participants-info - some user information is available in a Spaces result. Right now we just render them as null users (handle = "", id = 0) if they're not fetched already - distinguish whether someone was an admin in the space or not @@ -50,9 +45,6 @@ TODO spaces-fetch-participants-info TODO spaces-fetch-sharings - you can fetch the stuff that was posted in the jumbotron -TODO authenticated-not-fetching-images -- Images in tweets don't fetch when you're authenticated - TODO tweets-with-italics - https://twitter.com/exit_org/status/1656813511572443141 @@ -120,8 +112,6 @@ TODO: paste-twitter-urls-in-search-bar - space TODO: ui-deuglifying -- Download buttons ("..." dropdown) - - on a tweet - "Follow" / "Unfollow" button TODO: show-errors-in-UI @@ -132,3 +122,12 @@ TODO: refactor-compound_queries_test-file TODO: search-bar/preserve-contents-on-search - When performing a search, keep the search text in the search bar + +TODO: features-from-qt-version +- Add all features from the Qt app to the web UI + - when previous tweet in thread is missing, put a "fetch tweet" button to get it + - Create a default profile on first launch + +TODO: dms-embedded-image-and-video + +TODO: dms-unshorten-urls diff --git a/pkg/persistence/versions.go b/pkg/persistence/versions.go index 71faa7a..fe93750 100644 --- a/pkg/persistence/versions.go +++ b/pkg/persistence/versions.go @@ -151,6 +151,56 @@ var MIGRATIONS = []string{ vacuum;`, `insert into tombstone_types(rowid, short_name, tombstone_text) values (8, 'newer-version-available', 'There’s a new version of this Tweet')`, + `create table chat_rooms (rowid integer primary key, + id text unique not null, + type text not null, + last_messaged_at integer not null, + is_nsfw boolean not null, + + -- Group DM info + created_at integer not null, + created_by_user_id integer not null, + name text not null default '', + avatar_image_remote_url text not null default '', + avatar_image_local_path text not null default '' + ); + + create table chat_room_participants(rowid integer primary key, + chat_room_id text not null, + user_id integer not null, + last_read_event_id integer not null, + is_chat_settings_valid boolean not null default 0, + is_notifications_disabled boolean not null, + is_mention_notifications_disabled boolean not null, + is_read_only boolean not null, + is_trusted boolean not null, + is_muted boolean not null, + status text not null, + unique(chat_room_id, user_id) + ); + + create table chat_messages (rowid integer primary key, + id integer unique not null check(typeof(id) = 'integer'), + chat_room_id text not null, + sender_id integer not null, + sent_at integer not null, + request_id text not null, + in_reply_to_id integer, + text text not null, + embedded_tweet_id integer not null default 0, + foreign key(chat_room_id) references chat_rooms(id) + foreign key(sender_id) references users(id) + ); + + create table chat_message_reactions (rowid integer primary key, + id integer unique not null check(typeof(id) = 'integer'), + message_id integer not null, + sender_id integer not null, + sent_at integer not null, + emoji text not null, + foreign key(message_id) references chat_messages(id) + foreign key(sender_id) references users(id) + );`, } var ENGINE_DATABASE_VERSION = len(MIGRATIONS) diff --git a/sample_data/seed_data.sql b/sample_data/seed_data.sql index a2d5ed6..b4578b4 100644 --- a/sample_data/seed_data.sql +++ b/sample_data/seed_data.sql @@ -416,6 +416,6 @@ insert into fake_user_sequence values(0x4000000000000000); create table database_version(rowid integer primary key, version_number integer not null unique ); -insert into database_version(version_number) values (24); +insert into database_version(version_number) values (25); COMMIT;