damus-github-export

Damus issue data exported from github
git clone git://jb55.com/damus-github-export
Log | Files | Refs | README | LICENSE

commit 95bd213c424788aef7921a1ca42645324172a67d
parent ec109d85cbe977b68b74ef113ef59ead232caa65
Author: William Casarin <jb55@jb55.com>
Date:   Thu, 21 Mar 2024 04:09:08 -0700

update data

Signed-off-by: William Casarin <jb55@jb55.com>

Diffstat:
Mexported/android.json | 236+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--
Mexported/api.json | 306+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--
Mexported/damus.json | 12613+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------
Mexported/nostrdb.json | 30+++++++++++++++---------------
Mexported/notecrumbs.json | 150+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
5 files changed, 11699 insertions(+), 1636 deletions(-)

diff --git a/exported/android.json b/exported/android.json @@ -5408,9 +5408,117 @@ "due_on": null, "closed_at": null }, - "comments": 0, + "comments": 1, + "created_at": "2023-11-29T20:26:17Z", + "updated_at": "2024-03-21T01:16:23Z", + "closed_at": null, + "author_association": "CONTRIBUTOR", + "active_lock_reason": null, + "body": "_context_\r\nAndroid users not on unlimited Wi-Fi or network connection, have requested a \"lite\", or economical data mode. \r\n\r\nThings that could reduce bandwidth:\r\n\r\n-no images pre-loaded\r\n-no PFP pre-loaded\r\n-somehow reduce note, profile loading\r\n-reduce relay queries/increase relay query efficiency", + "reactions": { + "url": "https://api.github.com/repos/damus-io/android/issues/14/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/damus-io/android/issues/14/timeline", + "performed_via_github_app": null, + "state_reason": null + } + }, + { + "issue": { + "url": "https://api.github.com/repos/damus-io/android/issues/14", + "repository_url": "https://api.github.com/repos/damus-io/android", + "labels_url": "https://api.github.com/repos/damus-io/android/issues/14/labels{/name}", + "comments_url": "https://api.github.com/repos/damus-io/android/issues/14/comments", + "events_url": "https://api.github.com/repos/damus-io/android/issues/14/events", + "html_url": "https://github.com/damus-io/android/issues/14", + "id": 2017362572, + "node_id": "I_kwDOKzWMZs54PoKM", + "number": 14, + "title": "Economical data mode", + "user": { + "login": "alltheseas", + "id": 64376233, + "node_id": "MDQ6VXNlcjY0Mzc2MjMz", + "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/alltheseas", + "html_url": "https://github.com/alltheseas", + "followers_url": "https://api.github.com/users/alltheseas/followers", + "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", + "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", + "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", + "organizations_url": "https://api.github.com/users/alltheseas/orgs", + "repos_url": "https://api.github.com/users/alltheseas/repos", + "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", + "received_events_url": "https://api.github.com/users/alltheseas/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "id": 6264778307, + "node_id": "LA_kwDOKzWMZs8AAAABdWjuQw", + "url": "https://api.github.com/repos/damus-io/android/labels/enhancement", + "name": "enhancement", + "color": "a2eeef", + "default": true, + "description": "New feature or request" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "assignees": [], + "milestone": { + "url": "https://api.github.com/repos/damus-io/android/milestones/3", + "html_url": "https://github.com/damus-io/android/milestone/3", + "labels_url": "https://api.github.com/repos/damus-io/android/milestones/3/labels", + "id": 10252520, + "node_id": "MI_kwDOKzWMZs4AnHDo", + "number": 3, + "title": "0.3 Android ⚡️", + "description": null, + "creator": { + "login": "alltheseas", + "id": 64376233, + "node_id": "MDQ6VXNlcjY0Mzc2MjMz", + "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/alltheseas", + "html_url": "https://github.com/alltheseas", + "followers_url": "https://api.github.com/users/alltheseas/followers", + "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", + "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", + "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", + "organizations_url": "https://api.github.com/users/alltheseas/orgs", + "repos_url": "https://api.github.com/users/alltheseas/repos", + "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", + "received_events_url": "https://api.github.com/users/alltheseas/received_events", + "type": "User", + "site_admin": false + }, + "open_issues": 3, + "closed_issues": 0, + "state": "open", + "created_at": "2023-11-30T20:20:05Z", + "updated_at": "2023-11-30T22:05:40Z", + "due_on": null, + "closed_at": null + }, + "comments": 1, "created_at": "2023-11-29T20:26:17Z", - "updated_at": "2023-11-30T22:10:43Z", + "updated_at": "2024-03-21T01:16:23Z", "closed_at": null, "author_association": "CONTRIBUTOR", "active_lock_reason": null, @@ -5430,6 +5538,12 @@ "timeline_url": "https://api.github.com/repos/damus-io/android/issues/14/timeline", "performed_via_github_app": null, "state_reason": null + }, + "comment": { + "user": "alltheseas", + "created_at": "2024-03-21T01:16:22Z", + "updated_at": "2024-03-21T01:16:22Z", + "body": "Realized that mutiny blastr relay will be the most data economical outbound relay with the most reach\n\nwss://nostr.mutinywallet.com" } }, { @@ -6641,9 +6755,9 @@ "due_on": null, "closed_at": null }, - "comments": 0, + "comments": 1, "created_at": "2023-11-29T20:19:16Z", - "updated_at": "2023-11-30T19:39:57Z", + "updated_at": "2024-03-20T21:36:52Z", "closed_at": null, "author_association": "CONTRIBUTOR", "active_lock_reason": null, @@ -6667,6 +6781,120 @@ }, { "issue": { + "url": "https://api.github.com/repos/damus-io/android/issues/3", + "repository_url": "https://api.github.com/repos/damus-io/android", + "labels_url": "https://api.github.com/repos/damus-io/android/issues/3/labels{/name}", + "comments_url": "https://api.github.com/repos/damus-io/android/issues/3/comments", + "events_url": "https://api.github.com/repos/damus-io/android/issues/3/events", + "html_url": "https://github.com/damus-io/android/issues/3", + "id": 2017352983, + "node_id": "I_kwDOKzWMZs54Pl0X", + "number": 3, + "title": "Login with existing keypair (copypasta nsec)", + "user": { + "login": "alltheseas", + "id": 64376233, + "node_id": "MDQ6VXNlcjY0Mzc2MjMz", + "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/alltheseas", + "html_url": "https://github.com/alltheseas", + "followers_url": "https://api.github.com/users/alltheseas/followers", + "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", + "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", + "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", + "organizations_url": "https://api.github.com/users/alltheseas/orgs", + "repos_url": "https://api.github.com/users/alltheseas/repos", + "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", + "received_events_url": "https://api.github.com/users/alltheseas/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "id": 6264778307, + "node_id": "LA_kwDOKzWMZs8AAAABdWjuQw", + "url": "https://api.github.com/repos/damus-io/android/labels/enhancement", + "name": "enhancement", + "color": "a2eeef", + "default": true, + "description": "New feature or request" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "assignees": [], + "milestone": { + "url": "https://api.github.com/repos/damus-io/android/milestones/1", + "html_url": "https://github.com/damus-io/android/milestone/1", + "labels_url": "https://api.github.com/repos/damus-io/android/milestones/1/labels", + "id": 10252427, + "node_id": "MI_kwDOKzWMZs4AnHCL", + "number": 1, + "title": "0.1 Android", + "description": null, + "creator": { + "login": "alltheseas", + "id": 64376233, + "node_id": "MDQ6VXNlcjY0Mzc2MjMz", + "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/alltheseas", + "html_url": "https://github.com/alltheseas", + "followers_url": "https://api.github.com/users/alltheseas/followers", + "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", + "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", + "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", + "organizations_url": "https://api.github.com/users/alltheseas/orgs", + "repos_url": "https://api.github.com/users/alltheseas/repos", + "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", + "received_events_url": "https://api.github.com/users/alltheseas/received_events", + "type": "User", + "site_admin": false + }, + "open_issues": 15, + "closed_issues": 0, + "state": "open", + "created_at": "2023-11-30T19:39:43Z", + "updated_at": "2023-12-03T10:58:26Z", + "due_on": null, + "closed_at": null + }, + "comments": 1, + "created_at": "2023-11-29T20:19:16Z", + "updated_at": "2024-03-20T21:36:52Z", + "closed_at": null, + "author_association": "CONTRIBUTOR", + "active_lock_reason": null, + "body": null, + "reactions": { + "url": "https://api.github.com/repos/damus-io/android/issues/3/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/damus-io/android/issues/3/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + "comment": { + "user": "kernelkind", + "created_at": "2024-03-20T21:36:51Z", + "updated_at": "2024-03-20T21:36:51Z", + "body": "working on this" + } + }, + { + "issue": { "url": "https://api.github.com/repos/damus-io/android/issues/2", "repository_url": "https://api.github.com/repos/damus-io/android", "labels_url": "https://api.github.com/repos/damus-io/android/issues/2/labels{/name}", diff --git a/exported/api.json b/exported/api.json @@ -1,6 +1,156 @@ [ { "issue": { + "url": "https://api.github.com/repos/damus-io/api/issues/4", + "repository_url": "https://api.github.com/repos/damus-io/api", + "labels_url": "https://api.github.com/repos/damus-io/api/issues/4/labels{/name}", + "comments_url": "https://api.github.com/repos/damus-io/api/issues/4/comments", + "events_url": "https://api.github.com/repos/damus-io/api/issues/4/events", + "html_url": "https://github.com/damus-io/api/issues/4", + "id": 2193183686, + "node_id": "I_kwDOKx9L3s6CuVPG", + "number": 4, + "title": "Add arabic support to DeepL translations", + "user": { + "login": "alltheseas", + "id": 64376233, + "node_id": "MDQ6VXNlcjY0Mzc2MjMz", + "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/alltheseas", + "html_url": "https://github.com/alltheseas", + "followers_url": "https://api.github.com/users/alltheseas/followers", + "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", + "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", + "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", + "organizations_url": "https://api.github.com/users/alltheseas/orgs", + "repos_url": "https://api.github.com/users/alltheseas/repos", + "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", + "received_events_url": "https://api.github.com/users/alltheseas/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "id": 6709193700, + "node_id": "LA_kwDOKx9L3s8AAAABj-Yr5A", + "url": "https://api.github.com/repos/damus-io/api/labels/deepl", + "name": "deepl", + "color": "BF2756", + "default": false, + "description": "" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "assignees": [], + "milestone": null, + "comments": 1, + "created_at": "2024-03-18T19:59:03Z", + "updated_at": "2024-03-18T20:51:20Z", + "closed_at": null, + "author_association": "NONE", + "active_lock_reason": null, + "body": "cc @jb55 @tyiu \r\n\r\nhttps://www.deepl.com/en/blog/deepl-welcomes-arabic\r\n", + "reactions": { + "url": "https://api.github.com/repos/damus-io/api/issues/4/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/damus-io/api/issues/4/timeline", + "performed_via_github_app": null, + "state_reason": null + } + }, + { + "issue": { + "url": "https://api.github.com/repos/damus-io/api/issues/4", + "repository_url": "https://api.github.com/repos/damus-io/api", + "labels_url": "https://api.github.com/repos/damus-io/api/issues/4/labels{/name}", + "comments_url": "https://api.github.com/repos/damus-io/api/issues/4/comments", + "events_url": "https://api.github.com/repos/damus-io/api/issues/4/events", + "html_url": "https://github.com/damus-io/api/issues/4", + "id": 2193183686, + "node_id": "I_kwDOKx9L3s6CuVPG", + "number": 4, + "title": "Add arabic support to DeepL translations", + "user": { + "login": "alltheseas", + "id": 64376233, + "node_id": "MDQ6VXNlcjY0Mzc2MjMz", + "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/alltheseas", + "html_url": "https://github.com/alltheseas", + "followers_url": "https://api.github.com/users/alltheseas/followers", + "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", + "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", + "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", + "organizations_url": "https://api.github.com/users/alltheseas/orgs", + "repos_url": "https://api.github.com/users/alltheseas/repos", + "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", + "received_events_url": "https://api.github.com/users/alltheseas/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "id": 6709193700, + "node_id": "LA_kwDOKx9L3s8AAAABj-Yr5A", + "url": "https://api.github.com/repos/damus-io/api/labels/deepl", + "name": "deepl", + "color": "BF2756", + "default": false, + "description": "" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "assignees": [], + "milestone": null, + "comments": 1, + "created_at": "2024-03-18T19:59:03Z", + "updated_at": "2024-03-18T20:51:20Z", + "closed_at": null, + "author_association": "NONE", + "active_lock_reason": null, + "body": "cc @jb55 @tyiu \r\n\r\nhttps://www.deepl.com/en/blog/deepl-welcomes-arabic\r\n", + "reactions": { + "url": "https://api.github.com/repos/damus-io/api/issues/4/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/damus-io/api/issues/4/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + "comment": { + "user": "jb55", + "created_at": "2024-03-18T20:07:56Z", + "updated_at": "2024-03-18T20:07:56Z", + "body": "just need to update\r\n\r\nhttps://github.com/damus-io/api/blob/03900ce67c6f4a5e7e7a153eac32c52fd8c78530/src/translate.js#L6-L7" + } + }, + { + "issue": { "url": "https://api.github.com/repos/damus-io/api/issues/3", "repository_url": "https://api.github.com/repos/damus-io/api", "labels_url": "https://api.github.com/repos/damus-io/api/issues/3/labels{/name}", @@ -31,7 +181,17 @@ "type": "User", "site_admin": false }, - "labels": [], + "labels": [ + { + "id": 6709193700, + "node_id": "LA_kwDOKx9L3s8AAAABj-Yr5A", + "url": "https://api.github.com/repos/damus-io/api/labels/deepl", + "name": "deepl", + "color": "BF2756", + "default": false, + "description": "" + } + ], "state": "open", "locked": false, "assignee": null, @@ -39,13 +199,75 @@ "milestone": null, "comments": 0, "created_at": "2024-03-16T08:16:40Z", - "updated_at": "2024-03-16T08:16:41Z", + "updated_at": "2024-03-18T20:53:00Z", "closed_at": null, "author_association": "CONTRIBUTOR", "active_lock_reason": null, "body": "If DeepL is ever down, it can cause our translation endpoint to crash. Noticed this on staging with a fake api key:\r\n\r\n```\r\nMar 14 09:21:23 purple damus-api[2632765]: SyntaxError: Unexpected end of JSON input\r\nMar 14 09:21:23 purple damus-api[2632765]: at JSON.parse (<anonymous>) \r\nMar 14 09:21:23 purple damus-api[2632765]: at parseJSONFromBytes (node:internal/deps/undici/undici:4747:19)\r\nMar 14 09:21:23 purple damus-api[2632765]: at successSteps (node:internal/deps/undici/undici:4718:27)\r\nMar 14 09:21:23 purple damus-api[2632765]: at fullyReadBody (node:internal/deps/undici/undici:1433:9)\r\nMar 14 09:21:23 purple damus-api[2632765]: at process.processTicksAndRejections (node:internal/process/task_queues:95:5) Mar 14 09:21:23 purple damus-api[2632765]: at async specConsumeBody (node:internal/deps/undici/undici:4727:7)\r\nMar 14 09:21:23 purple damus-api[2632765]: at async deepl_translate_text (/nix/store/ijbjsgpn1l55jn43ibg43j18x8srg5kc-damu\r\ns-api-0.1.0/lib/node_modules/damus-api/src/translate.js:52:14)\r\nMar 14 09:21:23 purple damus-api[2632765]: at async translate_payload (/nix/store/ijbjsgpn1l55jn43ibg43j18x8srg5kc-damus-a\r\npi-0.1.0/lib/node_modules/damus-api/src/translate.js:84:14)\r\nMar 14 09:21:23 purple damus-api[2632765]: Node.js v18.19.0 \r\nMar 14 09:21:23 purple systemd[1]: damus-api-staging.service: Main process exited, code=exited, status=1/FAILURE\r\nMar 14 09:21:23 purple systemd[1]: damus-api-staging.service: Failed with result 'exit-code'.\r\nMar 14 09:21:23 purple systemd[1]: damus-api-staging.service: Consumed 696ms CPU time, received 20.2K IP traffic, sent 4.1K IP\r\n traffic. \r\nMar 14 09:21:23 purple systemd[1]: damus-api-staging.service: Scheduled restart job, restart counter is at 153.\r\nMar 14 09:21:23 purple systemd[1]: damus-api-staging.service: Start request repeated too quickly.\r\nMar 14 09:21:23 purple systemd[1]: damus-api-staging.service: Failed with result 'exit-code'.\r\nMar 14 09:21:23 purple systemd[1]: Failed to start damus-api-staging.\r\n\r\n```", "reactions": { "url": "https://api.github.com/repos/damus-io/api/issues/3/reactions", + "total_count": 1, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 1 + }, + "timeline_url": "https://api.github.com/repos/damus-io/api/issues/3/timeline", + "performed_via_github_app": null, + "state_reason": null + } + }, + { + "issue": { + "url": "https://api.github.com/repos/damus-io/api/issues/2", + "repository_url": "https://api.github.com/repos/damus-io/api", + "labels_url": "https://api.github.com/repos/damus-io/api/issues/2/labels{/name}", + "comments_url": "https://api.github.com/repos/damus-io/api/issues/2/comments", + "events_url": "https://api.github.com/repos/damus-io/api/issues/2/events", + "html_url": "https://github.com/damus-io/api/issues/2", + "id": 2061545918, + "node_id": "I_kwDOKx9L3s564LG-", + "number": 2, + "title": "Database backups", + "user": { + "login": "jb55", + "id": 45598, + "node_id": "MDQ6VXNlcjQ1NTk4", + "avatar_url": "https://avatars.githubusercontent.com/u/45598?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/jb55", + "html_url": "https://github.com/jb55", + "followers_url": "https://api.github.com/users/jb55/followers", + "following_url": "https://api.github.com/users/jb55/following{/other_user}", + "gists_url": "https://api.github.com/users/jb55/gists{/gist_id}", + "starred_url": "https://api.github.com/users/jb55/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/jb55/subscriptions", + "organizations_url": "https://api.github.com/users/jb55/orgs", + "repos_url": "https://api.github.com/users/jb55/repos", + "events_url": "https://api.github.com/users/jb55/events{/privacy}", + "received_events_url": "https://api.github.com/users/jb55/received_events", + "type": "User", + "site_admin": false + }, + "labels": [], + "state": "open", + "locked": false, + "assignee": null, + "assignees": [], + "milestone": null, + "comments": 2, + "created_at": "2024-01-01T12:56:30Z", + "updated_at": "2024-03-20T09:07:04Z", + "closed_at": null, + "author_association": "CONTRIBUTOR", + "active_lock_reason": null, + "body": "I've used [bup(1)][bup] in the past and it works really well\r\n\r\n[bup]: https://github.com/bup/bup\r\n", + "reactions": { + "url": "https://api.github.com/repos/damus-io/api/issues/2/reactions", "total_count": 0, "+1": 0, "-1": 0, @@ -56,7 +278,7 @@ "rocket": 0, "eyes": 0 }, - "timeline_url": "https://api.github.com/repos/damus-io/api/issues/3/timeline", + "timeline_url": "https://api.github.com/repos/damus-io/api/issues/2/timeline", "performed_via_github_app": null, "state_reason": null } @@ -99,9 +321,77 @@ "assignee": null, "assignees": [], "milestone": null, - "comments": 0, + "comments": 2, + "created_at": "2024-01-01T12:56:30Z", + "updated_at": "2024-03-20T09:07:04Z", + "closed_at": null, + "author_association": "CONTRIBUTOR", + "active_lock_reason": null, + "body": "I've used [bup(1)][bup] in the past and it works really well\r\n\r\n[bup]: https://github.com/bup/bup\r\n", + "reactions": { + "url": "https://api.github.com/repos/damus-io/api/issues/2/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/damus-io/api/issues/2/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + "comment": { + "user": "alltheseas", + "created_at": "2024-03-18T20:53:39Z", + "updated_at": "2024-03-18T20:53:39Z", + "body": "Which database is this issue for? Paid subscriber database?" + } + }, + { + "issue": { + "url": "https://api.github.com/repos/damus-io/api/issues/2", + "repository_url": "https://api.github.com/repos/damus-io/api", + "labels_url": "https://api.github.com/repos/damus-io/api/issues/2/labels{/name}", + "comments_url": "https://api.github.com/repos/damus-io/api/issues/2/comments", + "events_url": "https://api.github.com/repos/damus-io/api/issues/2/events", + "html_url": "https://github.com/damus-io/api/issues/2", + "id": 2061545918, + "node_id": "I_kwDOKx9L3s564LG-", + "number": 2, + "title": "Database backups", + "user": { + "login": "jb55", + "id": 45598, + "node_id": "MDQ6VXNlcjQ1NTk4", + "avatar_url": "https://avatars.githubusercontent.com/u/45598?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/jb55", + "html_url": "https://github.com/jb55", + "followers_url": "https://api.github.com/users/jb55/followers", + "following_url": "https://api.github.com/users/jb55/following{/other_user}", + "gists_url": "https://api.github.com/users/jb55/gists{/gist_id}", + "starred_url": "https://api.github.com/users/jb55/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/jb55/subscriptions", + "organizations_url": "https://api.github.com/users/jb55/orgs", + "repos_url": "https://api.github.com/users/jb55/repos", + "events_url": "https://api.github.com/users/jb55/events{/privacy}", + "received_events_url": "https://api.github.com/users/jb55/received_events", + "type": "User", + "site_admin": false + }, + "labels": [], + "state": "open", + "locked": false, + "assignee": null, + "assignees": [], + "milestone": null, + "comments": 2, "created_at": "2024-01-01T12:56:30Z", - "updated_at": "2024-01-01T12:56:30Z", + "updated_at": "2024-03-20T09:07:04Z", "closed_at": null, "author_association": "CONTRIBUTOR", "active_lock_reason": null, @@ -121,6 +411,12 @@ "timeline_url": "https://api.github.com/repos/damus-io/api/issues/2/timeline", "performed_via_github_app": null, "state_reason": null + }, + "comment": { + "user": "jb55", + "created_at": "2024-03-20T09:07:02Z", + "updated_at": "2024-03-20T09:07:02Z", + "body": "yes and cached translations" } }, { diff --git a/exported/damus.json b/exported/damus.json @@ -1,6 +1,7023 @@ [ { "issue": { + "url": "https://api.github.com/repos/damus-io/damus/issues/2091", + "repository_url": "https://api.github.com/repos/damus-io/damus", + "labels_url": "https://api.github.com/repos/damus-io/damus/issues/2091/labels{/name}", + "comments_url": "https://api.github.com/repos/damus-io/damus/issues/2091/comments", + "events_url": "https://api.github.com/repos/damus-io/damus/issues/2091/events", + "html_url": "https://github.com/damus-io/damus/issues/2091", + "id": 2198341094, + "node_id": "I_kwDOHHF5A86DCAXm", + "number": 2091, + "title": "Configurable WOT hop per relay", + "user": { + "login": "alltheseas", + "id": 64376233, + "node_id": "MDQ6VXNlcjY0Mzc2MjMz", + "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/alltheseas", + "html_url": "https://github.com/alltheseas", + "followers_url": "https://api.github.com/users/alltheseas/followers", + "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", + "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", + "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", + "organizations_url": "https://api.github.com/users/alltheseas/orgs", + "repos_url": "https://api.github.com/users/alltheseas/repos", + "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", + "received_events_url": "https://api.github.com/users/alltheseas/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "id": 5684118006, + "node_id": "LA_kwDOHHF5A88AAAABUszB9g", + "url": "https://api.github.com/repos/damus-io/damus/labels/experimental", + "name": "experimental", + "color": "41BC18", + "default": false, + "description": "" + }, + { + "id": 6158662124, + "node_id": "LA_kwDOHHF5A88AAAABbxW57A", + "url": "https://api.github.com/repos/damus-io/damus/labels/signal-to-noise-ratio", + "name": "signal-to-noise-ratio", + "color": "0E8A16", + "default": false, + "description": "" + }, + { + "id": 6448018691, + "node_id": "LA_kwDOHHF5A88AAAABgFT1Aw", + "url": "https://api.github.com/repos/damus-io/damus/labels/wot", + "name": "wot", + "color": "2E30D4", + "default": false, + "description": "web of trust" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "assignees": [], + "milestone": null, + "comments": 0, + "created_at": "2024-03-20T19:06:00Z", + "updated_at": "2024-03-20T19:06:19Z", + "closed_at": null, + "author_association": "COLLABORATOR", + "active_lock_reason": null, + "body": "### user story \n\nTo follow\n\n### what happens\n\nA lot of noise exists on mostr. In order to find signal, I want a filter setting where I dont want to see mostr posts not followed by someone in my WOT, +1 hop and so on (Iris implemented this a while back for all relays, and not per relay)", + "reactions": { + "url": "https://api.github.com/repos/damus-io/damus/issues/2091/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/2091/timeline", + "performed_via_github_app": null, + "state_reason": null + } + }, + { + "issue": { + "url": "https://api.github.com/repos/damus-io/damus/issues/2090", + "repository_url": "https://api.github.com/repos/damus-io/damus", + "labels_url": "https://api.github.com/repos/damus-io/damus/issues/2090/labels{/name}", + "comments_url": "https://api.github.com/repos/damus-io/damus/issues/2090/comments", + "events_url": "https://api.github.com/repos/damus-io/damus/issues/2090/events", + "html_url": "https://github.com/damus-io/damus/issues/2090", + "id": 2197873821, + "node_id": "I_kwDOHHF5A86DAOSd", + "number": 2090, + "title": "Play webm in Damus", + "user": { + "login": "alltheseas", + "id": 64376233, + "node_id": "MDQ6VXNlcjY0Mzc2MjMz", + "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/alltheseas", + "html_url": "https://github.com/alltheseas", + "followers_url": "https://api.github.com/users/alltheseas/followers", + "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", + "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", + "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", + "organizations_url": "https://api.github.com/users/alltheseas/orgs", + "repos_url": "https://api.github.com/users/alltheseas/repos", + "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", + "received_events_url": "https://api.github.com/users/alltheseas/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "id": 5811380900, + "node_id": "LA_kwDOHHF5A88AAAABWmKipA", + "url": "https://api.github.com/repos/damus-io/damus/labels/video", + "name": "video", + "color": "F4D9A3", + "default": false, + "description": "" + }, + { + "id": 5895705605, + "node_id": "LA_kwDOHHF5A88AAAABX2lUBQ", + "url": "https://api.github.com/repos/damus-io/damus/labels/unexpected", + "name": "unexpected", + "color": "553300", + "default": false, + "description": "" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "assignees": [], + "milestone": null, + "comments": 1, + "created_at": "2024-03-20T15:44:28Z", + "updated_at": "2024-03-20T16:38:50Z", + "closed_at": null, + "author_association": "COLLABORATOR", + "active_lock_reason": null, + "body": "## current behavior\r\n\r\n.webm either opens a browser (safari), or prompts a download link to .webm files (brave) on mobile\r\n\r\nOn MacOS .webm opens default browser.\r\n\r\n## what I expect to happen\r\n\r\nembed webm, so I can play the video in Damus without leaving the app\r\n\r\nhttps://damus.io/note1uher5jxu2cvptdcguxuhdx38a7s24eds0553jq6vsa9gsh6u7k9spnq0c3\r\n\r\n![Screenshot 2024-03-20 at 10 44 53 AM](https://github.com/damus-io/damus/assets/64376233/5c53b337-93bb-41f5-b902-1fbcdf248ed6)\r\n\n![image](https://github.com/damus-io/damus/assets/64376233/2c84620f-1346-445d-b469-eaf8d993a404)", + "reactions": { + "url": "https://api.github.com/repos/damus-io/damus/issues/2090/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/2090/timeline", + "performed_via_github_app": null, + "state_reason": null + } + }, + { + "issue": { + "url": "https://api.github.com/repos/damus-io/damus/issues/2090", + "repository_url": "https://api.github.com/repos/damus-io/damus", + "labels_url": "https://api.github.com/repos/damus-io/damus/issues/2090/labels{/name}", + "comments_url": "https://api.github.com/repos/damus-io/damus/issues/2090/comments", + "events_url": "https://api.github.com/repos/damus-io/damus/issues/2090/events", + "html_url": "https://github.com/damus-io/damus/issues/2090", + "id": 2197873821, + "node_id": "I_kwDOHHF5A86DAOSd", + "number": 2090, + "title": "Play webm in Damus", + "user": { + "login": "alltheseas", + "id": 64376233, + "node_id": "MDQ6VXNlcjY0Mzc2MjMz", + "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/alltheseas", + "html_url": "https://github.com/alltheseas", + "followers_url": "https://api.github.com/users/alltheseas/followers", + "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", + "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", + "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", + "organizations_url": "https://api.github.com/users/alltheseas/orgs", + "repos_url": "https://api.github.com/users/alltheseas/repos", + "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", + "received_events_url": "https://api.github.com/users/alltheseas/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "id": 5811380900, + "node_id": "LA_kwDOHHF5A88AAAABWmKipA", + "url": "https://api.github.com/repos/damus-io/damus/labels/video", + "name": "video", + "color": "F4D9A3", + "default": false, + "description": "" + }, + { + "id": 5895705605, + "node_id": "LA_kwDOHHF5A88AAAABX2lUBQ", + "url": "https://api.github.com/repos/damus-io/damus/labels/unexpected", + "name": "unexpected", + "color": "553300", + "default": false, + "description": "" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "assignees": [], + "milestone": null, + "comments": 1, + "created_at": "2024-03-20T15:44:28Z", + "updated_at": "2024-03-20T16:38:50Z", + "closed_at": null, + "author_association": "COLLABORATOR", + "active_lock_reason": null, + "body": "## current behavior\r\n\r\n.webm either opens a browser (safari), or prompts a download link to .webm files (brave) on mobile\r\n\r\nOn MacOS .webm opens default browser.\r\n\r\n## what I expect to happen\r\n\r\nembed webm, so I can play the video in Damus without leaving the app\r\n\r\nhttps://damus.io/note1uher5jxu2cvptdcguxuhdx38a7s24eds0553jq6vsa9gsh6u7k9spnq0c3\r\n\r\n![Screenshot 2024-03-20 at 10 44 53 AM](https://github.com/damus-io/damus/assets/64376233/5c53b337-93bb-41f5-b902-1fbcdf248ed6)\r\n\n![image](https://github.com/damus-io/damus/assets/64376233/2c84620f-1346-445d-b469-eaf8d993a404)", + "reactions": { + "url": "https://api.github.com/repos/damus-io/damus/issues/2090/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/2090/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + "comment": { + "user": "alltheseas", + "created_at": "2024-03-20T16:38:48Z", + "updated_at": "2024-03-20T16:38:48Z", + "body": "recreated by @tyiu " + } + }, + { + "issue": { + "url": "https://api.github.com/repos/damus-io/damus/issues/2089", + "repository_url": "https://api.github.com/repos/damus-io/damus", + "labels_url": "https://api.github.com/repos/damus-io/damus/issues/2089/labels{/name}", + "comments_url": "https://api.github.com/repos/damus-io/damus/issues/2089/comments", + "events_url": "https://api.github.com/repos/damus-io/damus/issues/2089/events", + "html_url": "https://github.com/damus-io/damus/issues/2089", + "id": 2197848046, + "node_id": "I_kwDOHHF5A86DAH_u", + "number": 2089, + "title": "Fix MacOS formatting of link preview", + "user": { + "login": "alltheseas", + "id": 64376233, + "node_id": "MDQ6VXNlcjY0Mzc2MjMz", + "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/alltheseas", + "html_url": "https://github.com/alltheseas", + "followers_url": "https://api.github.com/users/alltheseas/followers", + "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", + "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", + "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", + "organizations_url": "https://api.github.com/users/alltheseas/orgs", + "repos_url": "https://api.github.com/users/alltheseas/repos", + "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", + "received_events_url": "https://api.github.com/users/alltheseas/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "id": 5667437035, + "node_id": "LA_kwDOHHF5A88AAAABUc456w", + "url": "https://api.github.com/repos/damus-io/damus/labels/MacOS", + "name": "MacOS", + "color": "fef2c0", + "default": false, + "description": "" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "assignees": [], + "milestone": null, + "comments": 0, + "created_at": "2024-03-20T15:33:33Z", + "updated_at": "2024-03-20T15:33:33Z", + "closed_at": null, + "author_association": "COLLABORATOR", + "active_lock_reason": null, + "body": "![Screenshot 2024-03-20 at 10 32 59 AM](https://github.com/damus-io/damus/assets/64376233/6169e55a-7a35-41b6-b022-2897aae3ae49)\r\n\r\n\r\nnote160qxlpxehhm7ah446n7z5gn74xtr42w0kkkdn0puz83jk6azk3yqsklzgs", + "reactions": { + "url": "https://api.github.com/repos/damus-io/damus/issues/2089/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/2089/timeline", + "performed_via_github_app": null, + "state_reason": null + } + }, + { + "issue": { + "url": "https://api.github.com/repos/damus-io/damus/issues/2088", + "repository_url": "https://api.github.com/repos/damus-io/damus", + "labels_url": "https://api.github.com/repos/damus-io/damus/issues/2088/labels{/name}", + "comments_url": "https://api.github.com/repos/damus-io/damus/issues/2088/comments", + "events_url": "https://api.github.com/repos/damus-io/damus/issues/2088/events", + "html_url": "https://github.com/damus-io/damus/issues/2088", + "id": 2197796690, + "node_id": "I_kwDOHHF5A86C_7dS", + "number": 2088, + "title": "highlight followed hashtags", + "user": { + "login": "alltheseas", + "id": 64376233, + "node_id": "MDQ6VXNlcjY0Mzc2MjMz", + "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/alltheseas", + "html_url": "https://github.com/alltheseas", + "followers_url": "https://api.github.com/users/alltheseas/followers", + "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", + "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", + "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", + "organizations_url": "https://api.github.com/users/alltheseas/orgs", + "repos_url": "https://api.github.com/users/alltheseas/repos", + "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", + "received_events_url": "https://api.github.com/users/alltheseas/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "id": 5667222085, + "node_id": "LA_kwDOHHF5A88AAAABUcryRQ", + "url": "https://api.github.com/repos/damus-io/damus/labels/design", + "name": "design", + "color": "5319E7", + "default": false, + "description": "Design exploration & definition is required" + }, + { + "id": 5799632461, + "node_id": "LA_kwDOHHF5A88AAAABWa9eTQ", + "url": "https://api.github.com/repos/damus-io/damus/labels/hashtags", + "name": "hashtags", + "color": "6EFEB9", + "default": false, + "description": "" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "assignees": [], + "milestone": null, + "comments": 0, + "created_at": "2024-03-20T15:14:39Z", + "updated_at": "2024-03-20T15:14:47Z", + "closed_at": null, + "author_association": "COLLABORATOR", + "active_lock_reason": null, + "body": "## user story\r\n\r\nAs a Damus hashtag peruser who follows some (and not all) hashtags, when I see a note with multiple hashtags I would like Damus to highlight the hashtags I follow, so that I can differentiate between hashtags I follow, and hashtags I don't follow.\r\n\r\n### acceptance criteria\r\n\r\nGiven I follow one or more hashtags, AND\r\nI see one or more hashtags that I follow in a note in Damus\r\n\r\n1. Damus highlights the hashtags I follow (and conversely, does not highlight the hashtags I do not follow)\r\n\r\n### mockup/design\r\n\r\n", + "reactions": { + "url": "https://api.github.com/repos/damus-io/damus/issues/2088/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/2088/timeline", + "performed_via_github_app": null, + "state_reason": null + } + }, + { + "issue": { + "url": "https://api.github.com/repos/damus-io/damus/issues/2087", + "repository_url": "https://api.github.com/repos/damus-io/damus", + "labels_url": "https://api.github.com/repos/damus-io/damus/issues/2087/labels{/name}", + "comments_url": "https://api.github.com/repos/damus-io/damus/issues/2087/comments", + "events_url": "https://api.github.com/repos/damus-io/damus/issues/2087/events", + "html_url": "https://github.com/damus-io/damus/issues/2087", + "id": 2197726795, + "node_id": "I_kwDOHHF5A86C_qZL", + "number": 2087, + "title": "disappearing onlyzaps flag", + "user": { + "login": "alltheseas", + "id": 64376233, + "node_id": "MDQ6VXNlcjY0Mzc2MjMz", + "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/alltheseas", + "html_url": "https://github.com/alltheseas", + "followers_url": "https://api.github.com/users/alltheseas/followers", + "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", + "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", + "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", + "organizations_url": "https://api.github.com/users/alltheseas/orgs", + "repos_url": "https://api.github.com/users/alltheseas/repos", + "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", + "received_events_url": "https://api.github.com/users/alltheseas/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "id": 5895705605, + "node_id": "LA_kwDOHHF5A88AAAABX2lUBQ", + "url": "https://api.github.com/repos/damus-io/damus/labels/unexpected", + "name": "unexpected", + "color": "553300", + "default": false, + "description": "" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "assignees": [], + "milestone": null, + "comments": 1, + "created_at": "2024-03-20T14:46:40Z", + "updated_at": "2024-03-21T08:58:29Z", + "closed_at": null, + "author_association": "COLLABORATOR", + "active_lock_reason": null, + "body": "## what happens\r\n\r\nsometimes when I use a different app, my onlyzaps icon disappears\r\n\r\n## prospective solution\r\n\r\nper @jb55 \r\n\r\nchange from flag on profile to a settings note\r\n\r\nhttps://damus.io/nevent1qqsdp6wegpmcxe9kktk9gnav6xzpusghx67xjrfcx0vrapvgv5j8raspp4mhxue69uhkummn9ekx7mqpz4mhxue69uhhyetvv9ujumt0wd68ytnsw43qz8thwden5te0dehhxarj94c82c3wwajkcmr0wfjx2u3wdejhgqgswaehxw309ahx7um5wgh8w6twv500ufus\r\n\r\n", + "reactions": { + "url": "https://api.github.com/repos/damus-io/damus/issues/2087/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/2087/timeline", + "performed_via_github_app": null, + "state_reason": null + } + }, + { + "issue": { + "url": "https://api.github.com/repos/damus-io/damus/issues/2087", + "repository_url": "https://api.github.com/repos/damus-io/damus", + "labels_url": "https://api.github.com/repos/damus-io/damus/issues/2087/labels{/name}", + "comments_url": "https://api.github.com/repos/damus-io/damus/issues/2087/comments", + "events_url": "https://api.github.com/repos/damus-io/damus/issues/2087/events", + "html_url": "https://github.com/damus-io/damus/issues/2087", + "id": 2197726795, + "node_id": "I_kwDOHHF5A86C_qZL", + "number": 2087, + "title": "disappearing onlyzaps flag", + "user": { + "login": "alltheseas", + "id": 64376233, + "node_id": "MDQ6VXNlcjY0Mzc2MjMz", + "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/alltheseas", + "html_url": "https://github.com/alltheseas", + "followers_url": "https://api.github.com/users/alltheseas/followers", + "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", + "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", + "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", + "organizations_url": "https://api.github.com/users/alltheseas/orgs", + "repos_url": "https://api.github.com/users/alltheseas/repos", + "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", + "received_events_url": "https://api.github.com/users/alltheseas/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "id": 5895705605, + "node_id": "LA_kwDOHHF5A88AAAABX2lUBQ", + "url": "https://api.github.com/repos/damus-io/damus/labels/unexpected", + "name": "unexpected", + "color": "553300", + "default": false, + "description": "" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "assignees": [], + "milestone": null, + "comments": 1, + "created_at": "2024-03-20T14:46:40Z", + "updated_at": "2024-03-21T08:58:29Z", + "closed_at": null, + "author_association": "COLLABORATOR", + "active_lock_reason": null, + "body": "## what happens\r\n\r\nsometimes when I use a different app, my onlyzaps icon disappears\r\n\r\n## prospective solution\r\n\r\nper @jb55 \r\n\r\nchange from flag on profile to a settings note\r\n\r\nhttps://damus.io/nevent1qqsdp6wegpmcxe9kktk9gnav6xzpusghx67xjrfcx0vrapvgv5j8raspp4mhxue69uhkummn9ekx7mqpz4mhxue69uhhyetvv9ujumt0wd68ytnsw43qz8thwden5te0dehhxarj94c82c3wwajkcmr0wfjx2u3wdejhgqgswaehxw309ahx7um5wgh8w6twv500ufus\r\n\r\n", + "reactions": { + "url": "https://api.github.com/repos/damus-io/damus/issues/2087/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/2087/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + "comment": { + "user": "jb55", + "created_at": "2024-03-21T08:58:29Z", + "updated_at": "2024-03-21T08:58:29Z", + "body": "On Wed, Mar 20, 2024 at 07:47:01AM -0700, alltheseas wrote:\n>## what happens\n>\n>sometimes when I use a different app, my onlyzaps icon disappears\n>\n>## prospective solution\n>\n>per @jb55\n>\n>change from flag on profile to a settings note\n>\n>https://damus.io/nevent1qqsdp6wegpmcxe9kktk9gnav6xzpusghx67xjrfcx0vrapvgv5j8raspp4mhxue69uhkummn9ekx7mqpz4mhxue69uhhyetvv9ujumt0wd68ytnsw43qz8thwden5te0dehhxarj94c82c3wwajkcmr0wfjx2u3wdejhgqgswaehxw309ahx7um5wgh8w6twv500ufus\n\nThe settings note will be nice for things like chosen emojis, default\nzap amount, etc. We can have an encrypted and public settings on the\nsame note.\n" + } + }, + { + "issue": { + "url": "https://api.github.com/repos/damus-io/damus/issues/2086", + "repository_url": "https://api.github.com/repos/damus-io/damus", + "labels_url": "https://api.github.com/repos/damus-io/damus/issues/2086/labels{/name}", + "comments_url": "https://api.github.com/repos/damus-io/damus/issues/2086/comments", + "events_url": "https://api.github.com/repos/damus-io/damus/issues/2086/events", + "html_url": "https://github.com/damus-io/damus/issues/2086", + "id": 2197696874, + "node_id": "I_kwDOHHF5A86C_jFq", + "number": 2086, + "title": "UI feedback/confirmation \"DM sent\"", + "user": { + "login": "alltheseas", + "id": 64376233, + "node_id": "MDQ6VXNlcjY0Mzc2MjMz", + "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/alltheseas", + "html_url": "https://github.com/alltheseas", + "followers_url": "https://api.github.com/users/alltheseas/followers", + "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", + "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", + "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", + "organizations_url": "https://api.github.com/users/alltheseas/orgs", + "repos_url": "https://api.github.com/users/alltheseas/repos", + "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", + "received_events_url": "https://api.github.com/users/alltheseas/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "id": 3994718399, + "node_id": "LA_kwDOHHF5A87uGpC_", + "url": "https://api.github.com/repos/damus-io/damus/labels/enhancement", + "name": "enhancement", + "color": "a2eeef", + "default": true, + "description": "Improvement" + }, + { + "id": 5667222085, + "node_id": "LA_kwDOHHF5A88AAAABUcryRQ", + "url": "https://api.github.com/repos/damus-io/damus/labels/design", + "name": "design", + "color": "5319E7", + "default": false, + "description": "Design exploration & definition is required" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "assignees": [], + "milestone": null, + "comments": 1, + "created_at": "2024-03-20T14:34:01Z", + "updated_at": "2024-03-21T09:04:52Z", + "closed_at": null, + "author_association": "COLLABORATOR", + "active_lock_reason": null, + "body": null, + "reactions": { + "url": "https://api.github.com/repos/damus-io/damus/issues/2086/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/2086/timeline", + "performed_via_github_app": null, + "state_reason": null + } + }, + { + "issue": { + "url": "https://api.github.com/repos/damus-io/damus/issues/2086", + "repository_url": "https://api.github.com/repos/damus-io/damus", + "labels_url": "https://api.github.com/repos/damus-io/damus/issues/2086/labels{/name}", + "comments_url": "https://api.github.com/repos/damus-io/damus/issues/2086/comments", + "events_url": "https://api.github.com/repos/damus-io/damus/issues/2086/events", + "html_url": "https://github.com/damus-io/damus/issues/2086", + "id": 2197696874, + "node_id": "I_kwDOHHF5A86C_jFq", + "number": 2086, + "title": "UI feedback/confirmation \"DM sent\"", + "user": { + "login": "alltheseas", + "id": 64376233, + "node_id": "MDQ6VXNlcjY0Mzc2MjMz", + "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/alltheseas", + "html_url": "https://github.com/alltheseas", + "followers_url": "https://api.github.com/users/alltheseas/followers", + "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", + "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", + "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", + "organizations_url": "https://api.github.com/users/alltheseas/orgs", + "repos_url": "https://api.github.com/users/alltheseas/repos", + "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", + "received_events_url": "https://api.github.com/users/alltheseas/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "id": 3994718399, + "node_id": "LA_kwDOHHF5A87uGpC_", + "url": "https://api.github.com/repos/damus-io/damus/labels/enhancement", + "name": "enhancement", + "color": "a2eeef", + "default": true, + "description": "Improvement" + }, + { + "id": 5667222085, + "node_id": "LA_kwDOHHF5A88AAAABUcryRQ", + "url": "https://api.github.com/repos/damus-io/damus/labels/design", + "name": "design", + "color": "5319E7", + "default": false, + "description": "Design exploration & definition is required" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "assignees": [], + "milestone": null, + "comments": 1, + "created_at": "2024-03-20T14:34:01Z", + "updated_at": "2024-03-21T09:04:52Z", + "closed_at": null, + "author_association": "COLLABORATOR", + "active_lock_reason": null, + "body": null, + "reactions": { + "url": "https://api.github.com/repos/damus-io/damus/issues/2086/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/2086/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + "comment": { + "user": "jb55", + "created_at": "2024-03-21T09:04:51Z", + "updated_at": "2024-03-21T09:04:51Z", + "body": "I don't think a toast really makes sense here, we just need to do what signal does." + } + }, + { + "issue": { + "url": "https://api.github.com/repos/damus-io/damus/issues/2085", + "repository_url": "https://api.github.com/repos/damus-io/damus", + "labels_url": "https://api.github.com/repos/damus-io/damus/issues/2085/labels{/name}", + "comments_url": "https://api.github.com/repos/damus-io/damus/issues/2085/comments", + "events_url": "https://api.github.com/repos/damus-io/damus/issues/2085/events", + "html_url": "https://github.com/damus-io/damus/issues/2085", + "id": 2197696263, + "node_id": "I_kwDOHHF5A86C_i8H", + "number": 2085, + "title": "UI feedback/confirmation \"keyword muted\"", + "user": { + "login": "alltheseas", + "id": 64376233, + "node_id": "MDQ6VXNlcjY0Mzc2MjMz", + "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/alltheseas", + "html_url": "https://github.com/alltheseas", + "followers_url": "https://api.github.com/users/alltheseas/followers", + "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", + "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", + "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", + "organizations_url": "https://api.github.com/users/alltheseas/orgs", + "repos_url": "https://api.github.com/users/alltheseas/repos", + "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", + "received_events_url": "https://api.github.com/users/alltheseas/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "id": 3994718399, + "node_id": "LA_kwDOHHF5A87uGpC_", + "url": "https://api.github.com/repos/damus-io/damus/labels/enhancement", + "name": "enhancement", + "color": "a2eeef", + "default": true, + "description": "Improvement" + }, + { + "id": 5667222085, + "node_id": "LA_kwDOHHF5A88AAAABUcryRQ", + "url": "https://api.github.com/repos/damus-io/damus/labels/design", + "name": "design", + "color": "5319E7", + "default": false, + "description": "Design exploration & definition is required" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "assignees": [], + "milestone": null, + "comments": 0, + "created_at": "2024-03-20T14:33:48Z", + "updated_at": "2024-03-20T14:56:33Z", + "closed_at": null, + "author_association": "COLLABORATOR", + "active_lock_reason": null, + "body": null, + "reactions": { + "url": "https://api.github.com/repos/damus-io/damus/issues/2085/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/2085/timeline", + "performed_via_github_app": null, + "state_reason": null + } + }, + { + "issue": { + "url": "https://api.github.com/repos/damus-io/damus/issues/2084", + "repository_url": "https://api.github.com/repos/damus-io/damus", + "labels_url": "https://api.github.com/repos/damus-io/damus/issues/2084/labels{/name}", + "comments_url": "https://api.github.com/repos/damus-io/damus/issues/2084/comments", + "events_url": "https://api.github.com/repos/damus-io/damus/issues/2084/events", + "html_url": "https://github.com/damus-io/damus/issues/2084", + "id": 2197695640, + "node_id": "I_kwDOHHF5A86C_iyY", + "number": 2084, + "title": "UI feedback/confirmation: \"user muted\"", + "user": { + "login": "alltheseas", + "id": 64376233, + "node_id": "MDQ6VXNlcjY0Mzc2MjMz", + "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/alltheseas", + "html_url": "https://github.com/alltheseas", + "followers_url": "https://api.github.com/users/alltheseas/followers", + "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", + "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", + "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", + "organizations_url": "https://api.github.com/users/alltheseas/orgs", + "repos_url": "https://api.github.com/users/alltheseas/repos", + "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", + "received_events_url": "https://api.github.com/users/alltheseas/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "id": 3994718399, + "node_id": "LA_kwDOHHF5A87uGpC_", + "url": "https://api.github.com/repos/damus-io/damus/labels/enhancement", + "name": "enhancement", + "color": "a2eeef", + "default": true, + "description": "Improvement" + }, + { + "id": 5667222085, + "node_id": "LA_kwDOHHF5A88AAAABUcryRQ", + "url": "https://api.github.com/repos/damus-io/damus/labels/design", + "name": "design", + "color": "5319E7", + "default": false, + "description": "Design exploration & definition is required" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "assignees": [], + "milestone": null, + "comments": 0, + "created_at": "2024-03-20T14:33:35Z", + "updated_at": "2024-03-20T14:56:22Z", + "closed_at": null, + "author_association": "COLLABORATOR", + "active_lock_reason": null, + "body": null, + "reactions": { + "url": "https://api.github.com/repos/damus-io/damus/issues/2084/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/2084/timeline", + "performed_via_github_app": null, + "state_reason": null + } + }, + { + "issue": { + "url": "https://api.github.com/repos/damus-io/damus/issues/2083", + "repository_url": "https://api.github.com/repos/damus-io/damus", + "labels_url": "https://api.github.com/repos/damus-io/damus/issues/2083/labels{/name}", + "comments_url": "https://api.github.com/repos/damus-io/damus/issues/2083/comments", + "events_url": "https://api.github.com/repos/damus-io/damus/issues/2083/events", + "html_url": "https://github.com/damus-io/damus/issues/2083", + "id": 2197377105, + "node_id": "I_kwDOHHF5A86C-VBR", + "number": 2083, + "title": "Confirmation dialogue / UI \"your note has been posted\"", + "user": { + "login": "alltheseas", + "id": 64376233, + "node_id": "MDQ6VXNlcjY0Mzc2MjMz", + "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/alltheseas", + "html_url": "https://github.com/alltheseas", + "followers_url": "https://api.github.com/users/alltheseas/followers", + "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", + "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", + "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", + "organizations_url": "https://api.github.com/users/alltheseas/orgs", + "repos_url": "https://api.github.com/users/alltheseas/repos", + "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", + "received_events_url": "https://api.github.com/users/alltheseas/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "id": 3994718399, + "node_id": "LA_kwDOHHF5A87uGpC_", + "url": "https://api.github.com/repos/damus-io/damus/labels/enhancement", + "name": "enhancement", + "color": "a2eeef", + "default": true, + "description": "Improvement" + }, + { + "id": 5667222085, + "node_id": "LA_kwDOHHF5A88AAAABUcryRQ", + "url": "https://api.github.com/repos/damus-io/damus/labels/design", + "name": "design", + "color": "5319E7", + "default": false, + "description": "Design exploration & definition is required" + } + ], + "state": "open", + "locked": false, + "assignee": { + "login": "robagreda", + "id": 3373850, + "node_id": "MDQ6VXNlcjMzNzM4NTA=", + "avatar_url": "https://avatars.githubusercontent.com/u/3373850?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/robagreda", + "html_url": "https://github.com/robagreda", + "followers_url": "https://api.github.com/users/robagreda/followers", + "following_url": "https://api.github.com/users/robagreda/following{/other_user}", + "gists_url": "https://api.github.com/users/robagreda/gists{/gist_id}", + "starred_url": "https://api.github.com/users/robagreda/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/robagreda/subscriptions", + "organizations_url": "https://api.github.com/users/robagreda/orgs", + "repos_url": "https://api.github.com/users/robagreda/repos", + "events_url": "https://api.github.com/users/robagreda/events{/privacy}", + "received_events_url": "https://api.github.com/users/robagreda/received_events", + "type": "User", + "site_admin": false + }, + "assignees": [ + { + "login": "robagreda", + "id": 3373850, + "node_id": "MDQ6VXNlcjMzNzM4NTA=", + "avatar_url": "https://avatars.githubusercontent.com/u/3373850?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/robagreda", + "html_url": "https://github.com/robagreda", + "followers_url": "https://api.github.com/users/robagreda/followers", + "following_url": "https://api.github.com/users/robagreda/following{/other_user}", + "gists_url": "https://api.github.com/users/robagreda/gists{/gist_id}", + "starred_url": "https://api.github.com/users/robagreda/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/robagreda/subscriptions", + "organizations_url": "https://api.github.com/users/robagreda/orgs", + "repos_url": "https://api.github.com/users/robagreda/repos", + "events_url": "https://api.github.com/users/robagreda/events{/privacy}", + "received_events_url": "https://api.github.com/users/robagreda/received_events", + "type": "User", + "site_admin": false + } + ], + "milestone": { + "url": "https://api.github.com/repos/damus-io/damus/milestones/14", + "html_url": "https://github.com/damus-io/damus/milestone/14", + "labels_url": "https://api.github.com/repos/damus-io/damus/milestones/14/labels", + "id": 10536809, + "node_id": "MI_kwDOHHF5A84AoMdp", + "number": 14, + "title": "1.8 post Madeira: UX/UI/Design focus", + "description": "", + "creator": { + "login": "alltheseas", + "id": 64376233, + "node_id": "MDQ6VXNlcjY0Mzc2MjMz", + "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/alltheseas", + "html_url": "https://github.com/alltheseas", + "followers_url": "https://api.github.com/users/alltheseas/followers", + "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", + "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", + "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", + "organizations_url": "https://api.github.com/users/alltheseas/orgs", + "repos_url": "https://api.github.com/users/alltheseas/repos", + "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", + "received_events_url": "https://api.github.com/users/alltheseas/received_events", + "type": "User", + "site_admin": false + }, + "open_issues": 13, + "closed_issues": 1, + "state": "open", + "created_at": "2024-02-09T17:16:56Z", + "updated_at": "2024-03-20T15:28:11Z", + "due_on": null, + "closed_at": null + }, + "comments": 8, + "created_at": "2024-03-20T12:09:48Z", + "updated_at": "2024-03-21T08:55:09Z", + "closed_at": null, + "author_association": "COLLABORATOR", + "active_lock_reason": null, + "body": "### context\r\n\r\nSometimes when I submit post a note, the Damus UI makes it unclear that my note was posted. I have to go back and view my own profile to double check that my own note was posted. \r\n\r\n## user story\r\n\r\nAs a Damus social media poster, I would like to see a pop-up confirmation \"your note has been posted\" when my note has been posted, so that I can have greater confidence my note was published to nostr.\r\n\r\n### acceptance criteria\r\n1. Damus tracks if note has been posted immediately post button, and \r\n2. If note has been posted, a pop-up (or other UI mechanism) signifies \"your note has been posted\".\r\n\r\n### Related\r\n\r\nNWC paste string confirmation https://github.com/damus-io/damus/issues/1775\r\nFor muted conversation https://github.com/damus-io/damus/issues/1626\r\nImage saved https://github.com/damus-io/damus/issues/1463\r\nUser muted https://github.com/damus-io/damus/issues/2084\r\nKeyword muted https://github.com/damus-io/damus/issues/2085\r\nDM Sent https://github.com/damus-io/damus/issues/2086", + "reactions": { + "url": "https://api.github.com/repos/damus-io/damus/issues/2083/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/2083/timeline", + "performed_via_github_app": null, + "state_reason": null + } + }, + { + "issue": { + "url": "https://api.github.com/repos/damus-io/damus/issues/2083", + "repository_url": "https://api.github.com/repos/damus-io/damus", + "labels_url": "https://api.github.com/repos/damus-io/damus/issues/2083/labels{/name}", + "comments_url": "https://api.github.com/repos/damus-io/damus/issues/2083/comments", + "events_url": "https://api.github.com/repos/damus-io/damus/issues/2083/events", + "html_url": "https://github.com/damus-io/damus/issues/2083", + "id": 2197377105, + "node_id": "I_kwDOHHF5A86C-VBR", + "number": 2083, + "title": "Confirmation dialogue / UI \"your note has been posted\"", + "user": { + "login": "alltheseas", + "id": 64376233, + "node_id": "MDQ6VXNlcjY0Mzc2MjMz", + "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/alltheseas", + "html_url": "https://github.com/alltheseas", + "followers_url": "https://api.github.com/users/alltheseas/followers", + "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", + "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", + "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", + "organizations_url": "https://api.github.com/users/alltheseas/orgs", + "repos_url": "https://api.github.com/users/alltheseas/repos", + "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", + "received_events_url": "https://api.github.com/users/alltheseas/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "id": 3994718399, + "node_id": "LA_kwDOHHF5A87uGpC_", + "url": "https://api.github.com/repos/damus-io/damus/labels/enhancement", + "name": "enhancement", + "color": "a2eeef", + "default": true, + "description": "Improvement" + }, + { + "id": 5667222085, + "node_id": "LA_kwDOHHF5A88AAAABUcryRQ", + "url": "https://api.github.com/repos/damus-io/damus/labels/design", + "name": "design", + "color": "5319E7", + "default": false, + "description": "Design exploration & definition is required" + } + ], + "state": "open", + "locked": false, + "assignee": { + "login": "robagreda", + "id": 3373850, + "node_id": "MDQ6VXNlcjMzNzM4NTA=", + "avatar_url": "https://avatars.githubusercontent.com/u/3373850?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/robagreda", + "html_url": "https://github.com/robagreda", + "followers_url": "https://api.github.com/users/robagreda/followers", + "following_url": "https://api.github.com/users/robagreda/following{/other_user}", + "gists_url": "https://api.github.com/users/robagreda/gists{/gist_id}", + "starred_url": "https://api.github.com/users/robagreda/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/robagreda/subscriptions", + "organizations_url": "https://api.github.com/users/robagreda/orgs", + "repos_url": "https://api.github.com/users/robagreda/repos", + "events_url": "https://api.github.com/users/robagreda/events{/privacy}", + "received_events_url": "https://api.github.com/users/robagreda/received_events", + "type": "User", + "site_admin": false + }, + "assignees": [ + { + "login": "robagreda", + "id": 3373850, + "node_id": "MDQ6VXNlcjMzNzM4NTA=", + "avatar_url": "https://avatars.githubusercontent.com/u/3373850?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/robagreda", + "html_url": "https://github.com/robagreda", + "followers_url": "https://api.github.com/users/robagreda/followers", + "following_url": "https://api.github.com/users/robagreda/following{/other_user}", + "gists_url": "https://api.github.com/users/robagreda/gists{/gist_id}", + "starred_url": "https://api.github.com/users/robagreda/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/robagreda/subscriptions", + "organizations_url": "https://api.github.com/users/robagreda/orgs", + "repos_url": "https://api.github.com/users/robagreda/repos", + "events_url": "https://api.github.com/users/robagreda/events{/privacy}", + "received_events_url": "https://api.github.com/users/robagreda/received_events", + "type": "User", + "site_admin": false + } + ], + "milestone": { + "url": "https://api.github.com/repos/damus-io/damus/milestones/14", + "html_url": "https://github.com/damus-io/damus/milestone/14", + "labels_url": "https://api.github.com/repos/damus-io/damus/milestones/14/labels", + "id": 10536809, + "node_id": "MI_kwDOHHF5A84AoMdp", + "number": 14, + "title": "1.8 post Madeira: UX/UI/Design focus", + "description": "", + "creator": { + "login": "alltheseas", + "id": 64376233, + "node_id": "MDQ6VXNlcjY0Mzc2MjMz", + "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/alltheseas", + "html_url": "https://github.com/alltheseas", + "followers_url": "https://api.github.com/users/alltheseas/followers", + "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", + "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", + "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", + "organizations_url": "https://api.github.com/users/alltheseas/orgs", + "repos_url": "https://api.github.com/users/alltheseas/repos", + "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", + "received_events_url": "https://api.github.com/users/alltheseas/received_events", + "type": "User", + "site_admin": false + }, + "open_issues": 13, + "closed_issues": 1, + "state": "open", + "created_at": "2024-02-09T17:16:56Z", + "updated_at": "2024-03-20T15:28:11Z", + "due_on": null, + "closed_at": null + }, + "comments": 8, + "created_at": "2024-03-20T12:09:48Z", + "updated_at": "2024-03-21T08:55:09Z", + "closed_at": null, + "author_association": "COLLABORATOR", + "active_lock_reason": null, + "body": "### context\r\n\r\nSometimes when I submit post a note, the Damus UI makes it unclear that my note was posted. I have to go back and view my own profile to double check that my own note was posted. \r\n\r\n## user story\r\n\r\nAs a Damus social media poster, I would like to see a pop-up confirmation \"your note has been posted\" when my note has been posted, so that I can have greater confidence my note was published to nostr.\r\n\r\n### acceptance criteria\r\n1. Damus tracks if note has been posted immediately post button, and \r\n2. If note has been posted, a pop-up (or other UI mechanism) signifies \"your note has been posted\".\r\n\r\n### Related\r\n\r\nNWC paste string confirmation https://github.com/damus-io/damus/issues/1775\r\nFor muted conversation https://github.com/damus-io/damus/issues/1626\r\nImage saved https://github.com/damus-io/damus/issues/1463\r\nUser muted https://github.com/damus-io/damus/issues/2084\r\nKeyword muted https://github.com/damus-io/damus/issues/2085\r\nDM Sent https://github.com/damus-io/damus/issues/2086", + "reactions": { + "url": "https://api.github.com/repos/damus-io/damus/issues/2083/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/2083/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + "comment": { + "user": "alltheseas", + "created_at": "2024-03-20T14:41:58Z", + "updated_at": "2024-03-20T14:41:58Z", + "body": "@robagreda ser here is a collection of confirmation dialogue tickets 💜" + } + }, + { + "issue": { + "url": "https://api.github.com/repos/damus-io/damus/issues/2083", + "repository_url": "https://api.github.com/repos/damus-io/damus", + "labels_url": "https://api.github.com/repos/damus-io/damus/issues/2083/labels{/name}", + "comments_url": "https://api.github.com/repos/damus-io/damus/issues/2083/comments", + "events_url": "https://api.github.com/repos/damus-io/damus/issues/2083/events", + "html_url": "https://github.com/damus-io/damus/issues/2083", + "id": 2197377105, + "node_id": "I_kwDOHHF5A86C-VBR", + "number": 2083, + "title": "Confirmation dialogue / UI \"your note has been posted\"", + "user": { + "login": "alltheseas", + "id": 64376233, + "node_id": "MDQ6VXNlcjY0Mzc2MjMz", + "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/alltheseas", + "html_url": "https://github.com/alltheseas", + "followers_url": "https://api.github.com/users/alltheseas/followers", + "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", + "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", + "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", + "organizations_url": "https://api.github.com/users/alltheseas/orgs", + "repos_url": "https://api.github.com/users/alltheseas/repos", + "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", + "received_events_url": "https://api.github.com/users/alltheseas/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "id": 3994718399, + "node_id": "LA_kwDOHHF5A87uGpC_", + "url": "https://api.github.com/repos/damus-io/damus/labels/enhancement", + "name": "enhancement", + "color": "a2eeef", + "default": true, + "description": "Improvement" + }, + { + "id": 5667222085, + "node_id": "LA_kwDOHHF5A88AAAABUcryRQ", + "url": "https://api.github.com/repos/damus-io/damus/labels/design", + "name": "design", + "color": "5319E7", + "default": false, + "description": "Design exploration & definition is required" + } + ], + "state": "open", + "locked": false, + "assignee": { + "login": "robagreda", + "id": 3373850, + "node_id": "MDQ6VXNlcjMzNzM4NTA=", + "avatar_url": "https://avatars.githubusercontent.com/u/3373850?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/robagreda", + "html_url": "https://github.com/robagreda", + "followers_url": "https://api.github.com/users/robagreda/followers", + "following_url": "https://api.github.com/users/robagreda/following{/other_user}", + "gists_url": "https://api.github.com/users/robagreda/gists{/gist_id}", + "starred_url": "https://api.github.com/users/robagreda/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/robagreda/subscriptions", + "organizations_url": "https://api.github.com/users/robagreda/orgs", + "repos_url": "https://api.github.com/users/robagreda/repos", + "events_url": "https://api.github.com/users/robagreda/events{/privacy}", + "received_events_url": "https://api.github.com/users/robagreda/received_events", + "type": "User", + "site_admin": false + }, + "assignees": [ + { + "login": "robagreda", + "id": 3373850, + "node_id": "MDQ6VXNlcjMzNzM4NTA=", + "avatar_url": "https://avatars.githubusercontent.com/u/3373850?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/robagreda", + "html_url": "https://github.com/robagreda", + "followers_url": "https://api.github.com/users/robagreda/followers", + "following_url": "https://api.github.com/users/robagreda/following{/other_user}", + "gists_url": "https://api.github.com/users/robagreda/gists{/gist_id}", + "starred_url": "https://api.github.com/users/robagreda/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/robagreda/subscriptions", + "organizations_url": "https://api.github.com/users/robagreda/orgs", + "repos_url": "https://api.github.com/users/robagreda/repos", + "events_url": "https://api.github.com/users/robagreda/events{/privacy}", + "received_events_url": "https://api.github.com/users/robagreda/received_events", + "type": "User", + "site_admin": false + } + ], + "milestone": { + "url": "https://api.github.com/repos/damus-io/damus/milestones/14", + "html_url": "https://github.com/damus-io/damus/milestone/14", + "labels_url": "https://api.github.com/repos/damus-io/damus/milestones/14/labels", + "id": 10536809, + "node_id": "MI_kwDOHHF5A84AoMdp", + "number": 14, + "title": "1.8 post Madeira: UX/UI/Design focus", + "description": "", + "creator": { + "login": "alltheseas", + "id": 64376233, + "node_id": "MDQ6VXNlcjY0Mzc2MjMz", + "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/alltheseas", + "html_url": "https://github.com/alltheseas", + "followers_url": "https://api.github.com/users/alltheseas/followers", + "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", + "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", + "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", + "organizations_url": "https://api.github.com/users/alltheseas/orgs", + "repos_url": "https://api.github.com/users/alltheseas/repos", + "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", + "received_events_url": "https://api.github.com/users/alltheseas/received_events", + "type": "User", + "site_admin": false + }, + "open_issues": 13, + "closed_issues": 1, + "state": "open", + "created_at": "2024-02-09T17:16:56Z", + "updated_at": "2024-03-20T15:28:11Z", + "due_on": null, + "closed_at": null + }, + "comments": 8, + "created_at": "2024-03-20T12:09:48Z", + "updated_at": "2024-03-21T08:55:09Z", + "closed_at": null, + "author_association": "COLLABORATOR", + "active_lock_reason": null, + "body": "### context\r\n\r\nSometimes when I submit post a note, the Damus UI makes it unclear that my note was posted. I have to go back and view my own profile to double check that my own note was posted. \r\n\r\n## user story\r\n\r\nAs a Damus social media poster, I would like to see a pop-up confirmation \"your note has been posted\" when my note has been posted, so that I can have greater confidence my note was published to nostr.\r\n\r\n### acceptance criteria\r\n1. Damus tracks if note has been posted immediately post button, and \r\n2. If note has been posted, a pop-up (or other UI mechanism) signifies \"your note has been posted\".\r\n\r\n### Related\r\n\r\nNWC paste string confirmation https://github.com/damus-io/damus/issues/1775\r\nFor muted conversation https://github.com/damus-io/damus/issues/1626\r\nImage saved https://github.com/damus-io/damus/issues/1463\r\nUser muted https://github.com/damus-io/damus/issues/2084\r\nKeyword muted https://github.com/damus-io/damus/issues/2085\r\nDM Sent https://github.com/damus-io/damus/issues/2086", + "reactions": { + "url": "https://api.github.com/repos/damus-io/damus/issues/2083/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/2083/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + "comment": { + "user": "alltheseas", + "created_at": "2024-03-20T15:29:12Z", + "updated_at": "2024-03-20T15:29:12Z", + "body": "@jb55 I will add this to 1.8 post Madeira milestone, as I see milestone as collections of multiple (two or more) sprints. Note posting is probably the most frequent action from the list above. We can tackle the rest of the confirmation dialogues bit by bit. " + } + }, + { + "issue": { + "url": "https://api.github.com/repos/damus-io/damus/issues/2083", + "repository_url": "https://api.github.com/repos/damus-io/damus", + "labels_url": "https://api.github.com/repos/damus-io/damus/issues/2083/labels{/name}", + "comments_url": "https://api.github.com/repos/damus-io/damus/issues/2083/comments", + "events_url": "https://api.github.com/repos/damus-io/damus/issues/2083/events", + "html_url": "https://github.com/damus-io/damus/issues/2083", + "id": 2197377105, + "node_id": "I_kwDOHHF5A86C-VBR", + "number": 2083, + "title": "Confirmation dialogue / UI \"your note has been posted\"", + "user": { + "login": "alltheseas", + "id": 64376233, + "node_id": "MDQ6VXNlcjY0Mzc2MjMz", + "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/alltheseas", + "html_url": "https://github.com/alltheseas", + "followers_url": "https://api.github.com/users/alltheseas/followers", + "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", + "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", + "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", + "organizations_url": "https://api.github.com/users/alltheseas/orgs", + "repos_url": "https://api.github.com/users/alltheseas/repos", + "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", + "received_events_url": "https://api.github.com/users/alltheseas/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "id": 3994718399, + "node_id": "LA_kwDOHHF5A87uGpC_", + "url": "https://api.github.com/repos/damus-io/damus/labels/enhancement", + "name": "enhancement", + "color": "a2eeef", + "default": true, + "description": "Improvement" + }, + { + "id": 5667222085, + "node_id": "LA_kwDOHHF5A88AAAABUcryRQ", + "url": "https://api.github.com/repos/damus-io/damus/labels/design", + "name": "design", + "color": "5319E7", + "default": false, + "description": "Design exploration & definition is required" + } + ], + "state": "open", + "locked": false, + "assignee": { + "login": "robagreda", + "id": 3373850, + "node_id": "MDQ6VXNlcjMzNzM4NTA=", + "avatar_url": "https://avatars.githubusercontent.com/u/3373850?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/robagreda", + "html_url": "https://github.com/robagreda", + "followers_url": "https://api.github.com/users/robagreda/followers", + "following_url": "https://api.github.com/users/robagreda/following{/other_user}", + "gists_url": "https://api.github.com/users/robagreda/gists{/gist_id}", + "starred_url": "https://api.github.com/users/robagreda/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/robagreda/subscriptions", + "organizations_url": "https://api.github.com/users/robagreda/orgs", + "repos_url": "https://api.github.com/users/robagreda/repos", + "events_url": "https://api.github.com/users/robagreda/events{/privacy}", + "received_events_url": "https://api.github.com/users/robagreda/received_events", + "type": "User", + "site_admin": false + }, + "assignees": [ + { + "login": "robagreda", + "id": 3373850, + "node_id": "MDQ6VXNlcjMzNzM4NTA=", + "avatar_url": "https://avatars.githubusercontent.com/u/3373850?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/robagreda", + "html_url": "https://github.com/robagreda", + "followers_url": "https://api.github.com/users/robagreda/followers", + "following_url": "https://api.github.com/users/robagreda/following{/other_user}", + "gists_url": "https://api.github.com/users/robagreda/gists{/gist_id}", + "starred_url": "https://api.github.com/users/robagreda/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/robagreda/subscriptions", + "organizations_url": "https://api.github.com/users/robagreda/orgs", + "repos_url": "https://api.github.com/users/robagreda/repos", + "events_url": "https://api.github.com/users/robagreda/events{/privacy}", + "received_events_url": "https://api.github.com/users/robagreda/received_events", + "type": "User", + "site_admin": false + } + ], + "milestone": { + "url": "https://api.github.com/repos/damus-io/damus/milestones/14", + "html_url": "https://github.com/damus-io/damus/milestone/14", + "labels_url": "https://api.github.com/repos/damus-io/damus/milestones/14/labels", + "id": 10536809, + "node_id": "MI_kwDOHHF5A84AoMdp", + "number": 14, + "title": "1.8 post Madeira: UX/UI/Design focus", + "description": "", + "creator": { + "login": "alltheseas", + "id": 64376233, + "node_id": "MDQ6VXNlcjY0Mzc2MjMz", + "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/alltheseas", + "html_url": "https://github.com/alltheseas", + "followers_url": "https://api.github.com/users/alltheseas/followers", + "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", + "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", + "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", + "organizations_url": "https://api.github.com/users/alltheseas/orgs", + "repos_url": "https://api.github.com/users/alltheseas/repos", + "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", + "received_events_url": "https://api.github.com/users/alltheseas/received_events", + "type": "User", + "site_admin": false + }, + "open_issues": 13, + "closed_issues": 1, + "state": "open", + "created_at": "2024-02-09T17:16:56Z", + "updated_at": "2024-03-20T15:28:11Z", + "due_on": null, + "closed_at": null + }, + "comments": 8, + "created_at": "2024-03-20T12:09:48Z", + "updated_at": "2024-03-21T08:55:09Z", + "closed_at": null, + "author_association": "COLLABORATOR", + "active_lock_reason": null, + "body": "### context\r\n\r\nSometimes when I submit post a note, the Damus UI makes it unclear that my note was posted. I have to go back and view my own profile to double check that my own note was posted. \r\n\r\n## user story\r\n\r\nAs a Damus social media poster, I would like to see a pop-up confirmation \"your note has been posted\" when my note has been posted, so that I can have greater confidence my note was published to nostr.\r\n\r\n### acceptance criteria\r\n1. Damus tracks if note has been posted immediately post button, and \r\n2. If note has been posted, a pop-up (or other UI mechanism) signifies \"your note has been posted\".\r\n\r\n### Related\r\n\r\nNWC paste string confirmation https://github.com/damus-io/damus/issues/1775\r\nFor muted conversation https://github.com/damus-io/damus/issues/1626\r\nImage saved https://github.com/damus-io/damus/issues/1463\r\nUser muted https://github.com/damus-io/damus/issues/2084\r\nKeyword muted https://github.com/damus-io/damus/issues/2085\r\nDM Sent https://github.com/damus-io/damus/issues/2086", + "reactions": { + "url": "https://api.github.com/repos/damus-io/damus/issues/2083/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/2083/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + "comment": { + "user": "alltheseas", + "created_at": "2024-03-20T15:29:22Z", + "updated_at": "2024-03-20T15:29:22Z", + "body": "cc @danieldaquino @ericholguin " + } + }, + { + "issue": { + "url": "https://api.github.com/repos/damus-io/damus/issues/2083", + "repository_url": "https://api.github.com/repos/damus-io/damus", + "labels_url": "https://api.github.com/repos/damus-io/damus/issues/2083/labels{/name}", + "comments_url": "https://api.github.com/repos/damus-io/damus/issues/2083/comments", + "events_url": "https://api.github.com/repos/damus-io/damus/issues/2083/events", + "html_url": "https://github.com/damus-io/damus/issues/2083", + "id": 2197377105, + "node_id": "I_kwDOHHF5A86C-VBR", + "number": 2083, + "title": "Confirmation dialogue / UI \"your note has been posted\"", + "user": { + "login": "alltheseas", + "id": 64376233, + "node_id": "MDQ6VXNlcjY0Mzc2MjMz", + "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/alltheseas", + "html_url": "https://github.com/alltheseas", + "followers_url": "https://api.github.com/users/alltheseas/followers", + "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", + "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", + "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", + "organizations_url": "https://api.github.com/users/alltheseas/orgs", + "repos_url": "https://api.github.com/users/alltheseas/repos", + "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", + "received_events_url": "https://api.github.com/users/alltheseas/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "id": 3994718399, + "node_id": "LA_kwDOHHF5A87uGpC_", + "url": "https://api.github.com/repos/damus-io/damus/labels/enhancement", + "name": "enhancement", + "color": "a2eeef", + "default": true, + "description": "Improvement" + }, + { + "id": 5667222085, + "node_id": "LA_kwDOHHF5A88AAAABUcryRQ", + "url": "https://api.github.com/repos/damus-io/damus/labels/design", + "name": "design", + "color": "5319E7", + "default": false, + "description": "Design exploration & definition is required" + } + ], + "state": "open", + "locked": false, + "assignee": { + "login": "robagreda", + "id": 3373850, + "node_id": "MDQ6VXNlcjMzNzM4NTA=", + "avatar_url": "https://avatars.githubusercontent.com/u/3373850?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/robagreda", + "html_url": "https://github.com/robagreda", + "followers_url": "https://api.github.com/users/robagreda/followers", + "following_url": "https://api.github.com/users/robagreda/following{/other_user}", + "gists_url": "https://api.github.com/users/robagreda/gists{/gist_id}", + "starred_url": "https://api.github.com/users/robagreda/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/robagreda/subscriptions", + "organizations_url": "https://api.github.com/users/robagreda/orgs", + "repos_url": "https://api.github.com/users/robagreda/repos", + "events_url": "https://api.github.com/users/robagreda/events{/privacy}", + "received_events_url": "https://api.github.com/users/robagreda/received_events", + "type": "User", + "site_admin": false + }, + "assignees": [ + { + "login": "robagreda", + "id": 3373850, + "node_id": "MDQ6VXNlcjMzNzM4NTA=", + "avatar_url": "https://avatars.githubusercontent.com/u/3373850?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/robagreda", + "html_url": "https://github.com/robagreda", + "followers_url": "https://api.github.com/users/robagreda/followers", + "following_url": "https://api.github.com/users/robagreda/following{/other_user}", + "gists_url": "https://api.github.com/users/robagreda/gists{/gist_id}", + "starred_url": "https://api.github.com/users/robagreda/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/robagreda/subscriptions", + "organizations_url": "https://api.github.com/users/robagreda/orgs", + "repos_url": "https://api.github.com/users/robagreda/repos", + "events_url": "https://api.github.com/users/robagreda/events{/privacy}", + "received_events_url": "https://api.github.com/users/robagreda/received_events", + "type": "User", + "site_admin": false + } + ], + "milestone": { + "url": "https://api.github.com/repos/damus-io/damus/milestones/14", + "html_url": "https://github.com/damus-io/damus/milestone/14", + "labels_url": "https://api.github.com/repos/damus-io/damus/milestones/14/labels", + "id": 10536809, + "node_id": "MI_kwDOHHF5A84AoMdp", + "number": 14, + "title": "1.8 post Madeira: UX/UI/Design focus", + "description": "", + "creator": { + "login": "alltheseas", + "id": 64376233, + "node_id": "MDQ6VXNlcjY0Mzc2MjMz", + "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/alltheseas", + "html_url": "https://github.com/alltheseas", + "followers_url": "https://api.github.com/users/alltheseas/followers", + "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", + "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", + "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", + "organizations_url": "https://api.github.com/users/alltheseas/orgs", + "repos_url": "https://api.github.com/users/alltheseas/repos", + "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", + "received_events_url": "https://api.github.com/users/alltheseas/received_events", + "type": "User", + "site_admin": false + }, + "open_issues": 13, + "closed_issues": 1, + "state": "open", + "created_at": "2024-02-09T17:16:56Z", + "updated_at": "2024-03-20T15:28:11Z", + "due_on": null, + "closed_at": null + }, + "comments": 8, + "created_at": "2024-03-20T12:09:48Z", + "updated_at": "2024-03-21T08:55:09Z", + "closed_at": null, + "author_association": "COLLABORATOR", + "active_lock_reason": null, + "body": "### context\r\n\r\nSometimes when I submit post a note, the Damus UI makes it unclear that my note was posted. I have to go back and view my own profile to double check that my own note was posted. \r\n\r\n## user story\r\n\r\nAs a Damus social media poster, I would like to see a pop-up confirmation \"your note has been posted\" when my note has been posted, so that I can have greater confidence my note was published to nostr.\r\n\r\n### acceptance criteria\r\n1. Damus tracks if note has been posted immediately post button, and \r\n2. If note has been posted, a pop-up (or other UI mechanism) signifies \"your note has been posted\".\r\n\r\n### Related\r\n\r\nNWC paste string confirmation https://github.com/damus-io/damus/issues/1775\r\nFor muted conversation https://github.com/damus-io/damus/issues/1626\r\nImage saved https://github.com/damus-io/damus/issues/1463\r\nUser muted https://github.com/damus-io/damus/issues/2084\r\nKeyword muted https://github.com/damus-io/damus/issues/2085\r\nDM Sent https://github.com/damus-io/damus/issues/2086", + "reactions": { + "url": "https://api.github.com/repos/damus-io/damus/issues/2083/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/2083/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + "comment": { + "user": "ericholguin", + "created_at": "2024-03-20T15:47:15Z", + "updated_at": "2024-03-20T15:47:15Z", + "body": "what other social network has this? Personally I think it’s a bit much.\r\n________________________________\r\nFrom: alltheseas ***@***.***>\r\nSent: Wednesday, March 20, 2024 9:38:07 AM\r\nTo: damus-io/damus ***@***.***>\r\nCc: Eric Holguin ***@***.***>; Mention ***@***.***>\r\nSubject: Re: [damus-io/damus] Confirmation dialogue / UI \"your note has been posted\" (Issue #2083)\r\n\r\n\r\n@jb55<https://github.com/jb55> I will add this to 1.8 post Madeira milestone, as I see milestone as collections of multiple (two or more) sprints. Note posting is probably the most frequent action from the list above. We can tackle the rest of the confirmation dialogues bit by bit.\r\n\r\n—\r\nReply to this email directly, view it on GitHub<https://github.com/damus-io/damus/issues/2083#issuecomment-2009849203>, or unsubscribe<https://github.com/notifications/unsubscribe-auth/ADK27JEDSW4RXIHPYPIKVA3YZGUN7AVCNFSM6AAAAABE7K6YMGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDAMBZHA2DSMRQGM>.\r\nYou are receiving this because you were mentioned.Message ID: ***@***.***>\r\n" + } + }, + { + "issue": { + "url": "https://api.github.com/repos/damus-io/damus/issues/2083", + "repository_url": "https://api.github.com/repos/damus-io/damus", + "labels_url": "https://api.github.com/repos/damus-io/damus/issues/2083/labels{/name}", + "comments_url": "https://api.github.com/repos/damus-io/damus/issues/2083/comments", + "events_url": "https://api.github.com/repos/damus-io/damus/issues/2083/events", + "html_url": "https://github.com/damus-io/damus/issues/2083", + "id": 2197377105, + "node_id": "I_kwDOHHF5A86C-VBR", + "number": 2083, + "title": "Confirmation dialogue / UI \"your note has been posted\"", + "user": { + "login": "alltheseas", + "id": 64376233, + "node_id": "MDQ6VXNlcjY0Mzc2MjMz", + "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/alltheseas", + "html_url": "https://github.com/alltheseas", + "followers_url": "https://api.github.com/users/alltheseas/followers", + "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", + "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", + "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", + "organizations_url": "https://api.github.com/users/alltheseas/orgs", + "repos_url": "https://api.github.com/users/alltheseas/repos", + "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", + "received_events_url": "https://api.github.com/users/alltheseas/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "id": 3994718399, + "node_id": "LA_kwDOHHF5A87uGpC_", + "url": "https://api.github.com/repos/damus-io/damus/labels/enhancement", + "name": "enhancement", + "color": "a2eeef", + "default": true, + "description": "Improvement" + }, + { + "id": 5667222085, + "node_id": "LA_kwDOHHF5A88AAAABUcryRQ", + "url": "https://api.github.com/repos/damus-io/damus/labels/design", + "name": "design", + "color": "5319E7", + "default": false, + "description": "Design exploration & definition is required" + } + ], + "state": "open", + "locked": false, + "assignee": { + "login": "robagreda", + "id": 3373850, + "node_id": "MDQ6VXNlcjMzNzM4NTA=", + "avatar_url": "https://avatars.githubusercontent.com/u/3373850?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/robagreda", + "html_url": "https://github.com/robagreda", + "followers_url": "https://api.github.com/users/robagreda/followers", + "following_url": "https://api.github.com/users/robagreda/following{/other_user}", + "gists_url": "https://api.github.com/users/robagreda/gists{/gist_id}", + "starred_url": "https://api.github.com/users/robagreda/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/robagreda/subscriptions", + "organizations_url": "https://api.github.com/users/robagreda/orgs", + "repos_url": "https://api.github.com/users/robagreda/repos", + "events_url": "https://api.github.com/users/robagreda/events{/privacy}", + "received_events_url": "https://api.github.com/users/robagreda/received_events", + "type": "User", + "site_admin": false + }, + "assignees": [ + { + "login": "robagreda", + "id": 3373850, + "node_id": "MDQ6VXNlcjMzNzM4NTA=", + "avatar_url": "https://avatars.githubusercontent.com/u/3373850?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/robagreda", + "html_url": "https://github.com/robagreda", + "followers_url": "https://api.github.com/users/robagreda/followers", + "following_url": "https://api.github.com/users/robagreda/following{/other_user}", + "gists_url": "https://api.github.com/users/robagreda/gists{/gist_id}", + "starred_url": "https://api.github.com/users/robagreda/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/robagreda/subscriptions", + "organizations_url": "https://api.github.com/users/robagreda/orgs", + "repos_url": "https://api.github.com/users/robagreda/repos", + "events_url": "https://api.github.com/users/robagreda/events{/privacy}", + "received_events_url": "https://api.github.com/users/robagreda/received_events", + "type": "User", + "site_admin": false + } + ], + "milestone": { + "url": "https://api.github.com/repos/damus-io/damus/milestones/14", + "html_url": "https://github.com/damus-io/damus/milestone/14", + "labels_url": "https://api.github.com/repos/damus-io/damus/milestones/14/labels", + "id": 10536809, + "node_id": "MI_kwDOHHF5A84AoMdp", + "number": 14, + "title": "1.8 post Madeira: UX/UI/Design focus", + "description": "", + "creator": { + "login": "alltheseas", + "id": 64376233, + "node_id": "MDQ6VXNlcjY0Mzc2MjMz", + "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/alltheseas", + "html_url": "https://github.com/alltheseas", + "followers_url": "https://api.github.com/users/alltheseas/followers", + "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", + "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", + "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", + "organizations_url": "https://api.github.com/users/alltheseas/orgs", + "repos_url": "https://api.github.com/users/alltheseas/repos", + "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", + "received_events_url": "https://api.github.com/users/alltheseas/received_events", + "type": "User", + "site_admin": false + }, + "open_issues": 13, + "closed_issues": 1, + "state": "open", + "created_at": "2024-02-09T17:16:56Z", + "updated_at": "2024-03-20T15:28:11Z", + "due_on": null, + "closed_at": null + }, + "comments": 8, + "created_at": "2024-03-20T12:09:48Z", + "updated_at": "2024-03-21T08:55:09Z", + "closed_at": null, + "author_association": "COLLABORATOR", + "active_lock_reason": null, + "body": "### context\r\n\r\nSometimes when I submit post a note, the Damus UI makes it unclear that my note was posted. I have to go back and view my own profile to double check that my own note was posted. \r\n\r\n## user story\r\n\r\nAs a Damus social media poster, I would like to see a pop-up confirmation \"your note has been posted\" when my note has been posted, so that I can have greater confidence my note was published to nostr.\r\n\r\n### acceptance criteria\r\n1. Damus tracks if note has been posted immediately post button, and \r\n2. If note has been posted, a pop-up (or other UI mechanism) signifies \"your note has been posted\".\r\n\r\n### Related\r\n\r\nNWC paste string confirmation https://github.com/damus-io/damus/issues/1775\r\nFor muted conversation https://github.com/damus-io/damus/issues/1626\r\nImage saved https://github.com/damus-io/damus/issues/1463\r\nUser muted https://github.com/damus-io/damus/issues/2084\r\nKeyword muted https://github.com/damus-io/damus/issues/2085\r\nDM Sent https://github.com/damus-io/damus/issues/2086", + "reactions": { + "url": "https://api.github.com/repos/damus-io/damus/issues/2083/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/2083/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + "comment": { + "user": "alltheseas", + "created_at": "2024-03-20T15:52:57Z", + "updated_at": "2024-03-20T15:52:57Z", + "body": "> what other social network has this? Personally I think it’s a bit much.\r\n\r\n\r\nGood question. Conversation started here, and it was centered around @karnagebitcoin idea of reducing anxiety. Specifically, post (any) action, including \"post\" there is no feedback that the action succeeded. \r\n\r\nhttps://damus.io/nevent1qqsqfwmyv32xalewtpw4d37hu6wngf9vcs4a6y766v5ty6dfjx685ksprpmhxue69uhhwetvvdhk6efwdehhxarj9emkjmn9qy2hwumn8ghj7un9d3shjtnyv9kh2uewd9hj7qgswaehxw309ahx7um5wgh8w6twv5qs6amnwvaz7tmwdaejumr0dsqf33au\r\n" + } + }, + { + "issue": { + "url": "https://api.github.com/repos/damus-io/damus/issues/2083", + "repository_url": "https://api.github.com/repos/damus-io/damus", + "labels_url": "https://api.github.com/repos/damus-io/damus/issues/2083/labels{/name}", + "comments_url": "https://api.github.com/repos/damus-io/damus/issues/2083/comments", + "events_url": "https://api.github.com/repos/damus-io/damus/issues/2083/events", + "html_url": "https://github.com/damus-io/damus/issues/2083", + "id": 2197377105, + "node_id": "I_kwDOHHF5A86C-VBR", + "number": 2083, + "title": "Confirmation dialogue / UI \"your note has been posted\"", + "user": { + "login": "alltheseas", + "id": 64376233, + "node_id": "MDQ6VXNlcjY0Mzc2MjMz", + "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/alltheseas", + "html_url": "https://github.com/alltheseas", + "followers_url": "https://api.github.com/users/alltheseas/followers", + "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", + "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", + "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", + "organizations_url": "https://api.github.com/users/alltheseas/orgs", + "repos_url": "https://api.github.com/users/alltheseas/repos", + "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", + "received_events_url": "https://api.github.com/users/alltheseas/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "id": 3994718399, + "node_id": "LA_kwDOHHF5A87uGpC_", + "url": "https://api.github.com/repos/damus-io/damus/labels/enhancement", + "name": "enhancement", + "color": "a2eeef", + "default": true, + "description": "Improvement" + }, + { + "id": 5667222085, + "node_id": "LA_kwDOHHF5A88AAAABUcryRQ", + "url": "https://api.github.com/repos/damus-io/damus/labels/design", + "name": "design", + "color": "5319E7", + "default": false, + "description": "Design exploration & definition is required" + } + ], + "state": "open", + "locked": false, + "assignee": { + "login": "robagreda", + "id": 3373850, + "node_id": "MDQ6VXNlcjMzNzM4NTA=", + "avatar_url": "https://avatars.githubusercontent.com/u/3373850?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/robagreda", + "html_url": "https://github.com/robagreda", + "followers_url": "https://api.github.com/users/robagreda/followers", + "following_url": "https://api.github.com/users/robagreda/following{/other_user}", + "gists_url": "https://api.github.com/users/robagreda/gists{/gist_id}", + "starred_url": "https://api.github.com/users/robagreda/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/robagreda/subscriptions", + "organizations_url": "https://api.github.com/users/robagreda/orgs", + "repos_url": "https://api.github.com/users/robagreda/repos", + "events_url": "https://api.github.com/users/robagreda/events{/privacy}", + "received_events_url": "https://api.github.com/users/robagreda/received_events", + "type": "User", + "site_admin": false + }, + "assignees": [ + { + "login": "robagreda", + "id": 3373850, + "node_id": "MDQ6VXNlcjMzNzM4NTA=", + "avatar_url": "https://avatars.githubusercontent.com/u/3373850?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/robagreda", + "html_url": "https://github.com/robagreda", + "followers_url": "https://api.github.com/users/robagreda/followers", + "following_url": "https://api.github.com/users/robagreda/following{/other_user}", + "gists_url": "https://api.github.com/users/robagreda/gists{/gist_id}", + "starred_url": "https://api.github.com/users/robagreda/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/robagreda/subscriptions", + "organizations_url": "https://api.github.com/users/robagreda/orgs", + "repos_url": "https://api.github.com/users/robagreda/repos", + "events_url": "https://api.github.com/users/robagreda/events{/privacy}", + "received_events_url": "https://api.github.com/users/robagreda/received_events", + "type": "User", + "site_admin": false + } + ], + "milestone": { + "url": "https://api.github.com/repos/damus-io/damus/milestones/14", + "html_url": "https://github.com/damus-io/damus/milestone/14", + "labels_url": "https://api.github.com/repos/damus-io/damus/milestones/14/labels", + "id": 10536809, + "node_id": "MI_kwDOHHF5A84AoMdp", + "number": 14, + "title": "1.8 post Madeira: UX/UI/Design focus", + "description": "", + "creator": { + "login": "alltheseas", + "id": 64376233, + "node_id": "MDQ6VXNlcjY0Mzc2MjMz", + "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/alltheseas", + "html_url": "https://github.com/alltheseas", + "followers_url": "https://api.github.com/users/alltheseas/followers", + "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", + "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", + "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", + "organizations_url": "https://api.github.com/users/alltheseas/orgs", + "repos_url": "https://api.github.com/users/alltheseas/repos", + "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", + "received_events_url": "https://api.github.com/users/alltheseas/received_events", + "type": "User", + "site_admin": false + }, + "open_issues": 13, + "closed_issues": 1, + "state": "open", + "created_at": "2024-02-09T17:16:56Z", + "updated_at": "2024-03-20T15:28:11Z", + "due_on": null, + "closed_at": null + }, + "comments": 8, + "created_at": "2024-03-20T12:09:48Z", + "updated_at": "2024-03-21T08:55:09Z", + "closed_at": null, + "author_association": "COLLABORATOR", + "active_lock_reason": null, + "body": "### context\r\n\r\nSometimes when I submit post a note, the Damus UI makes it unclear that my note was posted. I have to go back and view my own profile to double check that my own note was posted. \r\n\r\n## user story\r\n\r\nAs a Damus social media poster, I would like to see a pop-up confirmation \"your note has been posted\" when my note has been posted, so that I can have greater confidence my note was published to nostr.\r\n\r\n### acceptance criteria\r\n1. Damus tracks if note has been posted immediately post button, and \r\n2. If note has been posted, a pop-up (or other UI mechanism) signifies \"your note has been posted\".\r\n\r\n### Related\r\n\r\nNWC paste string confirmation https://github.com/damus-io/damus/issues/1775\r\nFor muted conversation https://github.com/damus-io/damus/issues/1626\r\nImage saved https://github.com/damus-io/damus/issues/1463\r\nUser muted https://github.com/damus-io/damus/issues/2084\r\nKeyword muted https://github.com/damus-io/damus/issues/2085\r\nDM Sent https://github.com/damus-io/damus/issues/2086", + "reactions": { + "url": "https://api.github.com/repos/damus-io/damus/issues/2083/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/2083/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + "comment": { + "user": "robagreda", + "created_at": "2024-03-20T16:15:44Z", + "updated_at": "2024-03-20T16:15:44Z", + "body": "@ericholguin maybe a quick toast could be nice, maybe use haptics too! I can design something for this :) in the technical side, do you think require lots of work? " + } + }, + { + "issue": { + "url": "https://api.github.com/repos/damus-io/damus/issues/2083", + "repository_url": "https://api.github.com/repos/damus-io/damus", + "labels_url": "https://api.github.com/repos/damus-io/damus/issues/2083/labels{/name}", + "comments_url": "https://api.github.com/repos/damus-io/damus/issues/2083/comments", + "events_url": "https://api.github.com/repos/damus-io/damus/issues/2083/events", + "html_url": "https://github.com/damus-io/damus/issues/2083", + "id": 2197377105, + "node_id": "I_kwDOHHF5A86C-VBR", + "number": 2083, + "title": "Confirmation dialogue / UI \"your note has been posted\"", + "user": { + "login": "alltheseas", + "id": 64376233, + "node_id": "MDQ6VXNlcjY0Mzc2MjMz", + "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/alltheseas", + "html_url": "https://github.com/alltheseas", + "followers_url": "https://api.github.com/users/alltheseas/followers", + "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", + "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", + "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", + "organizations_url": "https://api.github.com/users/alltheseas/orgs", + "repos_url": "https://api.github.com/users/alltheseas/repos", + "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", + "received_events_url": "https://api.github.com/users/alltheseas/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "id": 3994718399, + "node_id": "LA_kwDOHHF5A87uGpC_", + "url": "https://api.github.com/repos/damus-io/damus/labels/enhancement", + "name": "enhancement", + "color": "a2eeef", + "default": true, + "description": "Improvement" + }, + { + "id": 5667222085, + "node_id": "LA_kwDOHHF5A88AAAABUcryRQ", + "url": "https://api.github.com/repos/damus-io/damus/labels/design", + "name": "design", + "color": "5319E7", + "default": false, + "description": "Design exploration & definition is required" + } + ], + "state": "open", + "locked": false, + "assignee": { + "login": "robagreda", + "id": 3373850, + "node_id": "MDQ6VXNlcjMzNzM4NTA=", + "avatar_url": "https://avatars.githubusercontent.com/u/3373850?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/robagreda", + "html_url": "https://github.com/robagreda", + "followers_url": "https://api.github.com/users/robagreda/followers", + "following_url": "https://api.github.com/users/robagreda/following{/other_user}", + "gists_url": "https://api.github.com/users/robagreda/gists{/gist_id}", + "starred_url": "https://api.github.com/users/robagreda/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/robagreda/subscriptions", + "organizations_url": "https://api.github.com/users/robagreda/orgs", + "repos_url": "https://api.github.com/users/robagreda/repos", + "events_url": "https://api.github.com/users/robagreda/events{/privacy}", + "received_events_url": "https://api.github.com/users/robagreda/received_events", + "type": "User", + "site_admin": false + }, + "assignees": [ + { + "login": "robagreda", + "id": 3373850, + "node_id": "MDQ6VXNlcjMzNzM4NTA=", + "avatar_url": "https://avatars.githubusercontent.com/u/3373850?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/robagreda", + "html_url": "https://github.com/robagreda", + "followers_url": "https://api.github.com/users/robagreda/followers", + "following_url": "https://api.github.com/users/robagreda/following{/other_user}", + "gists_url": "https://api.github.com/users/robagreda/gists{/gist_id}", + "starred_url": "https://api.github.com/users/robagreda/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/robagreda/subscriptions", + "organizations_url": "https://api.github.com/users/robagreda/orgs", + "repos_url": "https://api.github.com/users/robagreda/repos", + "events_url": "https://api.github.com/users/robagreda/events{/privacy}", + "received_events_url": "https://api.github.com/users/robagreda/received_events", + "type": "User", + "site_admin": false + } + ], + "milestone": { + "url": "https://api.github.com/repos/damus-io/damus/milestones/14", + "html_url": "https://github.com/damus-io/damus/milestone/14", + "labels_url": "https://api.github.com/repos/damus-io/damus/milestones/14/labels", + "id": 10536809, + "node_id": "MI_kwDOHHF5A84AoMdp", + "number": 14, + "title": "1.8 post Madeira: UX/UI/Design focus", + "description": "", + "creator": { + "login": "alltheseas", + "id": 64376233, + "node_id": "MDQ6VXNlcjY0Mzc2MjMz", + "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/alltheseas", + "html_url": "https://github.com/alltheseas", + "followers_url": "https://api.github.com/users/alltheseas/followers", + "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", + "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", + "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", + "organizations_url": "https://api.github.com/users/alltheseas/orgs", + "repos_url": "https://api.github.com/users/alltheseas/repos", + "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", + "received_events_url": "https://api.github.com/users/alltheseas/received_events", + "type": "User", + "site_admin": false + }, + "open_issues": 13, + "closed_issues": 1, + "state": "open", + "created_at": "2024-02-09T17:16:56Z", + "updated_at": "2024-03-20T15:28:11Z", + "due_on": null, + "closed_at": null + }, + "comments": 8, + "created_at": "2024-03-20T12:09:48Z", + "updated_at": "2024-03-21T08:55:09Z", + "closed_at": null, + "author_association": "COLLABORATOR", + "active_lock_reason": null, + "body": "### context\r\n\r\nSometimes when I submit post a note, the Damus UI makes it unclear that my note was posted. I have to go back and view my own profile to double check that my own note was posted. \r\n\r\n## user story\r\n\r\nAs a Damus social media poster, I would like to see a pop-up confirmation \"your note has been posted\" when my note has been posted, so that I can have greater confidence my note was published to nostr.\r\n\r\n### acceptance criteria\r\n1. Damus tracks if note has been posted immediately post button, and \r\n2. If note has been posted, a pop-up (or other UI mechanism) signifies \"your note has been posted\".\r\n\r\n### Related\r\n\r\nNWC paste string confirmation https://github.com/damus-io/damus/issues/1775\r\nFor muted conversation https://github.com/damus-io/damus/issues/1626\r\nImage saved https://github.com/damus-io/damus/issues/1463\r\nUser muted https://github.com/damus-io/damus/issues/2084\r\nKeyword muted https://github.com/damus-io/damus/issues/2085\r\nDM Sent https://github.com/damus-io/damus/issues/2086", + "reactions": { + "url": "https://api.github.com/repos/damus-io/damus/issues/2083/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/2083/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + "comment": { + "user": "jb55", + "created_at": "2024-03-21T08:53:20Z", + "updated_at": "2024-03-21T08:53:20Z", + "body": "@ericholguin \r\n\r\n> what other social network has this? Personally I think it’s a bit much.\r\n![twitter-toast](https://github.com/damus-io/damus/assets/45598/9fdd6cb7-3cb8-4c01-aff7-8f8e0188d231)\r\n\r\ntwitter? " + } + }, + { + "issue": { + "url": "https://api.github.com/repos/damus-io/damus/issues/2083", + "repository_url": "https://api.github.com/repos/damus-io/damus", + "labels_url": "https://api.github.com/repos/damus-io/damus/issues/2083/labels{/name}", + "comments_url": "https://api.github.com/repos/damus-io/damus/issues/2083/comments", + "events_url": "https://api.github.com/repos/damus-io/damus/issues/2083/events", + "html_url": "https://github.com/damus-io/damus/issues/2083", + "id": 2197377105, + "node_id": "I_kwDOHHF5A86C-VBR", + "number": 2083, + "title": "Confirmation dialogue / UI \"your note has been posted\"", + "user": { + "login": "alltheseas", + "id": 64376233, + "node_id": "MDQ6VXNlcjY0Mzc2MjMz", + "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/alltheseas", + "html_url": "https://github.com/alltheseas", + "followers_url": "https://api.github.com/users/alltheseas/followers", + "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", + "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", + "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", + "organizations_url": "https://api.github.com/users/alltheseas/orgs", + "repos_url": "https://api.github.com/users/alltheseas/repos", + "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", + "received_events_url": "https://api.github.com/users/alltheseas/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "id": 3994718399, + "node_id": "LA_kwDOHHF5A87uGpC_", + "url": "https://api.github.com/repos/damus-io/damus/labels/enhancement", + "name": "enhancement", + "color": "a2eeef", + "default": true, + "description": "Improvement" + }, + { + "id": 5667222085, + "node_id": "LA_kwDOHHF5A88AAAABUcryRQ", + "url": "https://api.github.com/repos/damus-io/damus/labels/design", + "name": "design", + "color": "5319E7", + "default": false, + "description": "Design exploration & definition is required" + } + ], + "state": "open", + "locked": false, + "assignee": { + "login": "robagreda", + "id": 3373850, + "node_id": "MDQ6VXNlcjMzNzM4NTA=", + "avatar_url": "https://avatars.githubusercontent.com/u/3373850?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/robagreda", + "html_url": "https://github.com/robagreda", + "followers_url": "https://api.github.com/users/robagreda/followers", + "following_url": "https://api.github.com/users/robagreda/following{/other_user}", + "gists_url": "https://api.github.com/users/robagreda/gists{/gist_id}", + "starred_url": "https://api.github.com/users/robagreda/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/robagreda/subscriptions", + "organizations_url": "https://api.github.com/users/robagreda/orgs", + "repos_url": "https://api.github.com/users/robagreda/repos", + "events_url": "https://api.github.com/users/robagreda/events{/privacy}", + "received_events_url": "https://api.github.com/users/robagreda/received_events", + "type": "User", + "site_admin": false + }, + "assignees": [ + { + "login": "robagreda", + "id": 3373850, + "node_id": "MDQ6VXNlcjMzNzM4NTA=", + "avatar_url": "https://avatars.githubusercontent.com/u/3373850?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/robagreda", + "html_url": "https://github.com/robagreda", + "followers_url": "https://api.github.com/users/robagreda/followers", + "following_url": "https://api.github.com/users/robagreda/following{/other_user}", + "gists_url": "https://api.github.com/users/robagreda/gists{/gist_id}", + "starred_url": "https://api.github.com/users/robagreda/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/robagreda/subscriptions", + "organizations_url": "https://api.github.com/users/robagreda/orgs", + "repos_url": "https://api.github.com/users/robagreda/repos", + "events_url": "https://api.github.com/users/robagreda/events{/privacy}", + "received_events_url": "https://api.github.com/users/robagreda/received_events", + "type": "User", + "site_admin": false + } + ], + "milestone": { + "url": "https://api.github.com/repos/damus-io/damus/milestones/14", + "html_url": "https://github.com/damus-io/damus/milestone/14", + "labels_url": "https://api.github.com/repos/damus-io/damus/milestones/14/labels", + "id": 10536809, + "node_id": "MI_kwDOHHF5A84AoMdp", + "number": 14, + "title": "1.8 post Madeira: UX/UI/Design focus", + "description": "", + "creator": { + "login": "alltheseas", + "id": 64376233, + "node_id": "MDQ6VXNlcjY0Mzc2MjMz", + "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/alltheseas", + "html_url": "https://github.com/alltheseas", + "followers_url": "https://api.github.com/users/alltheseas/followers", + "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", + "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", + "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", + "organizations_url": "https://api.github.com/users/alltheseas/orgs", + "repos_url": "https://api.github.com/users/alltheseas/repos", + "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", + "received_events_url": "https://api.github.com/users/alltheseas/received_events", + "type": "User", + "site_admin": false + }, + "open_issues": 13, + "closed_issues": 1, + "state": "open", + "created_at": "2024-02-09T17:16:56Z", + "updated_at": "2024-03-20T15:28:11Z", + "due_on": null, + "closed_at": null + }, + "comments": 8, + "created_at": "2024-03-20T12:09:48Z", + "updated_at": "2024-03-21T08:55:09Z", + "closed_at": null, + "author_association": "COLLABORATOR", + "active_lock_reason": null, + "body": "### context\r\n\r\nSometimes when I submit post a note, the Damus UI makes it unclear that my note was posted. I have to go back and view my own profile to double check that my own note was posted. \r\n\r\n## user story\r\n\r\nAs a Damus social media poster, I would like to see a pop-up confirmation \"your note has been posted\" when my note has been posted, so that I can have greater confidence my note was published to nostr.\r\n\r\n### acceptance criteria\r\n1. Damus tracks if note has been posted immediately post button, and \r\n2. If note has been posted, a pop-up (or other UI mechanism) signifies \"your note has been posted\".\r\n\r\n### Related\r\n\r\nNWC paste string confirmation https://github.com/damus-io/damus/issues/1775\r\nFor muted conversation https://github.com/damus-io/damus/issues/1626\r\nImage saved https://github.com/damus-io/damus/issues/1463\r\nUser muted https://github.com/damus-io/damus/issues/2084\r\nKeyword muted https://github.com/damus-io/damus/issues/2085\r\nDM Sent https://github.com/damus-io/damus/issues/2086", + "reactions": { + "url": "https://api.github.com/repos/damus-io/damus/issues/2083/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/2083/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + "comment": { + "user": "jb55", + "created_at": "2024-03-21T08:55:08Z", + "updated_at": "2024-03-21T08:55:08Z", + "body": "@robagreda:\r\n> @ericholguin maybe a quick toast could be nice, maybe use haptics too! I can design something for this :) in the technical side, do you think require lots of work?\r\n\r\nkeep in mind that there is no singular \"success\" state, each relay can return success or fail. Ideally it would be a toast with a circular or linear progress bar showing the number of successful sends out of all your relays" + } + }, + { + "issue": { + "url": "https://api.github.com/repos/damus-io/damus/issues/2082", + "repository_url": "https://api.github.com/repos/damus-io/damus", + "labels_url": "https://api.github.com/repos/damus-io/damus/issues/2082/labels{/name}", + "comments_url": "https://api.github.com/repos/damus-io/damus/issues/2082/comments", + "events_url": "https://api.github.com/repos/damus-io/damus/issues/2082/events", + "html_url": "https://github.com/damus-io/damus/issues/2082", + "id": 2197208272, + "node_id": "I_kwDOHHF5A86C9rzQ", + "number": 2082, + "title": "Fullscreen video stops playback", + "user": { + "login": "jb55", + "id": 45598, + "node_id": "MDQ6VXNlcjQ1NTk4", + "avatar_url": "https://avatars.githubusercontent.com/u/45598?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/jb55", + "html_url": "https://github.com/jb55", + "followers_url": "https://api.github.com/users/jb55/followers", + "following_url": "https://api.github.com/users/jb55/following{/other_user}", + "gists_url": "https://api.github.com/users/jb55/gists{/gist_id}", + "starred_url": "https://api.github.com/users/jb55/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/jb55/subscriptions", + "organizations_url": "https://api.github.com/users/jb55/orgs", + "repos_url": "https://api.github.com/users/jb55/repos", + "events_url": "https://api.github.com/users/jb55/events{/privacy}", + "received_events_url": "https://api.github.com/users/jb55/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "id": 5811380900, + "node_id": "LA_kwDOHHF5A88AAAABWmKipA", + "url": "https://api.github.com/repos/damus-io/damus/labels/video", + "name": "video", + "color": "F4D9A3", + "default": false, + "description": "" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "assignees": [], + "milestone": null, + "comments": 0, + "created_at": "2024-03-20T10:41:28Z", + "updated_at": "2024-03-20T10:41:29Z", + "closed_at": null, + "author_association": "COLLABORATOR", + "active_lock_reason": null, + "body": "Ideally it wouldn't stop playback when you go fullscreen\r\n\r\n@danieldaquino ", + "reactions": { + "url": "https://api.github.com/repos/damus-io/damus/issues/2082/reactions", + "total_count": 2, + "+1": 2, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/2082/timeline", + "performed_via_github_app": null, + "state_reason": null + } + }, + { + "issue": { + "url": "https://api.github.com/repos/damus-io/damus/issues/2081", + "repository_url": "https://api.github.com/repos/damus-io/damus", + "labels_url": "https://api.github.com/repos/damus-io/damus/issues/2081/labels{/name}", + "comments_url": "https://api.github.com/repos/damus-io/damus/issues/2081/comments", + "events_url": "https://api.github.com/repos/damus-io/damus/issues/2081/events", + "html_url": "https://github.com/damus-io/damus/issues/2081", + "id": 2195576877, + "node_id": "I_kwDOHHF5A86C3dgt", + "number": 2081, + "title": "Search summary results across sources", + "user": { + "login": "alltheseas", + "id": 64376233, + "node_id": "MDQ6VXNlcjY0Mzc2MjMz", + "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/alltheseas", + "html_url": "https://github.com/alltheseas", + "followers_url": "https://api.github.com/users/alltheseas/followers", + "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", + "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", + "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", + "organizations_url": "https://api.github.com/users/alltheseas/orgs", + "repos_url": "https://api.github.com/users/alltheseas/repos", + "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", + "received_events_url": "https://api.github.com/users/alltheseas/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "id": 5667222085, + "node_id": "LA_kwDOHHF5A88AAAABUcryRQ", + "url": "https://api.github.com/repos/damus-io/damus/labels/design", + "name": "design", + "color": "5319E7", + "default": false, + "description": "Design exploration & definition is required" + }, + { + "id": 6213404742, + "node_id": "LA_kwDOHHF5A88AAAABclkIRg", + "url": "https://api.github.com/repos/damus-io/damus/labels/search", + "name": "search", + "color": "0e8a16", + "default": false, + "description": "" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "assignees": [], + "milestone": null, + "comments": 0, + "created_at": "2024-03-19T17:34:46Z", + "updated_at": "2024-03-19T17:36:06Z", + "closed_at": null, + "author_association": "COLLABORATOR", + "active_lock_reason": null, + "body": "### design\r\n @robagreda how might we design a return search results summary view (i.e. similar to MacOS search results - MacOS displays results in email, finder, in documents, in presentations etc..\r\n\r\n\r\n### things I would expect to see\r\n\r\n-keyword \"X\" found twice in my zap messages\r\n-keyword \"X\" found twice in DMs\r\n-keyword \"X\" found 3 times in notes mentioning me\r\n-keyword \"X\" found 9 times in notes in my WOT\r\n-keyword \"X\" found 21 times in notes in my relays\r\n\r\n\r\n### order of priority\r\n\r\nzap messages > DMs > notes mentioning me > notes in my WOT > notes in my relays\r\n\r\n\r\n@ericholguin \r\n\r\n### mockup\r\n\r\nI can have a go at a low fidelity mockup", + "reactions": { + "url": "https://api.github.com/repos/damus-io/damus/issues/2081/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/2081/timeline", + "performed_via_github_app": null, + "state_reason": null + } + }, + { + "issue": { + "url": "https://api.github.com/repos/damus-io/damus/issues/2080", + "repository_url": "https://api.github.com/repos/damus-io/damus", + "labels_url": "https://api.github.com/repos/damus-io/damus/issues/2080/labels{/name}", + "comments_url": "https://api.github.com/repos/damus-io/damus/issues/2080/comments", + "events_url": "https://api.github.com/repos/damus-io/damus/issues/2080/events", + "html_url": "https://github.com/damus-io/damus/issues/2080", + "id": 2195474642, + "node_id": "I_kwDOHHF5A86C3EjS", + "number": 2080, + "title": "explore youtube playlist support", + "user": { + "login": "alltheseas", + "id": 64376233, + "node_id": "MDQ6VXNlcjY0Mzc2MjMz", + "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/alltheseas", + "html_url": "https://github.com/alltheseas", + "followers_url": "https://api.github.com/users/alltheseas/followers", + "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", + "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", + "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", + "organizations_url": "https://api.github.com/users/alltheseas/orgs", + "repos_url": "https://api.github.com/users/alltheseas/repos", + "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", + "received_events_url": "https://api.github.com/users/alltheseas/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "id": 5667222085, + "node_id": "LA_kwDOHHF5A88AAAABUcryRQ", + "url": "https://api.github.com/repos/damus-io/damus/labels/design", + "name": "design", + "color": "5319E7", + "default": false, + "description": "Design exploration & definition is required" + }, + { + "id": 5684118006, + "node_id": "LA_kwDOHHF5A88AAAABUszB9g", + "url": "https://api.github.com/repos/damus-io/damus/labels/experimental", + "name": "experimental", + "color": "41BC18", + "default": false, + "description": "" + }, + { + "id": 5811380900, + "node_id": "LA_kwDOHHF5A88AAAABWmKipA", + "url": "https://api.github.com/repos/damus-io/damus/labels/video", + "name": "video", + "color": "F4D9A3", + "default": false, + "description": "" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "assignees": [], + "milestone": null, + "comments": 0, + "created_at": "2024-03-19T16:50:59Z", + "updated_at": "2024-03-19T16:51:00Z", + "closed_at": null, + "author_association": "COLLABORATOR", + "active_lock_reason": null, + "body": "## exploration\r\n\r\n-can damus somehow support YT playlists?\r\n-how is a playlist displayed on Damus?\r\n\r\norigin: https://github.com/damus-io/damus/issues/2079#issuecomment-2007664528\r\n\r\n@fmaul", + "reactions": { + "url": "https://api.github.com/repos/damus-io/damus/issues/2080/reactions", + "total_count": 1, + "+1": 1, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/2080/timeline", + "performed_via_github_app": null, + "state_reason": null + } + }, + { + "issue": { + "url": "https://api.github.com/repos/damus-io/damus/issues/2079", + "repository_url": "https://api.github.com/repos/damus-io/damus", + "labels_url": "https://api.github.com/repos/damus-io/damus/issues/2079/labels{/name}", + "comments_url": "https://api.github.com/repos/damus-io/damus/issues/2079/comments", + "events_url": "https://api.github.com/repos/damus-io/damus/issues/2079/events", + "html_url": "https://github.com/damus-io/damus/issues/2079", + "id": 2195057773, + "node_id": "I_kwDOHHF5A86C1ext", + "number": 2079, + "title": "Clickable timestamps (take me to HH:MM:SS of video)", + "user": { + "login": "alltheseas", + "id": 64376233, + "node_id": "MDQ6VXNlcjY0Mzc2MjMz", + "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/alltheseas", + "html_url": "https://github.com/alltheseas", + "followers_url": "https://api.github.com/users/alltheseas/followers", + "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", + "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", + "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", + "organizations_url": "https://api.github.com/users/alltheseas/orgs", + "repos_url": "https://api.github.com/users/alltheseas/repos", + "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", + "received_events_url": "https://api.github.com/users/alltheseas/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "id": 5667230655, + "node_id": "LA_kwDOHHF5A88AAAABUcsTvw", + "url": "https://api.github.com/repos/damus-io/damus/labels/feature", + "name": "feature", + "color": "BFDADC", + "default": false, + "description": "New feature request" + }, + { + "id": 5811380900, + "node_id": "LA_kwDOHHF5A88AAAABWmKipA", + "url": "https://api.github.com/repos/damus-io/damus/labels/video", + "name": "video", + "color": "F4D9A3", + "default": false, + "description": "" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "assignees": [], + "milestone": null, + "comments": 1, + "created_at": "2024-03-19T13:59:24Z", + "updated_at": "2024-03-19T16:46:05Z", + "closed_at": null, + "author_association": "COLLABORATOR", + "active_lock_reason": null, + "body": "## user story\r\n\r\nAs a Damus media enjoyer, if I click on a video with a timestamp, Damus takes me to the video with the beginning at the timestamp.\r\n\r\n### acceptance criteria\r\n\r\n1. I can click on timestamped video link\r\n2. If I clicked on this link it takes me to the video at the timestamped time\r\n3. I can create a timestamped video link, which\r\n4. I can share with others", + "reactions": { + "url": "https://api.github.com/repos/damus-io/damus/issues/2079/reactions", + "total_count": 1, + "+1": 1, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/2079/timeline", + "performed_via_github_app": null, + "state_reason": null + } + }, + { + "issue": { + "url": "https://api.github.com/repos/damus-io/damus/issues/2079", + "repository_url": "https://api.github.com/repos/damus-io/damus", + "labels_url": "https://api.github.com/repos/damus-io/damus/issues/2079/labels{/name}", + "comments_url": "https://api.github.com/repos/damus-io/damus/issues/2079/comments", + "events_url": "https://api.github.com/repos/damus-io/damus/issues/2079/events", + "html_url": "https://github.com/damus-io/damus/issues/2079", + "id": 2195057773, + "node_id": "I_kwDOHHF5A86C1ext", + "number": 2079, + "title": "Clickable timestamps (take me to HH:MM:SS of video)", + "user": { + "login": "alltheseas", + "id": 64376233, + "node_id": "MDQ6VXNlcjY0Mzc2MjMz", + "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/alltheseas", + "html_url": "https://github.com/alltheseas", + "followers_url": "https://api.github.com/users/alltheseas/followers", + "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", + "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", + "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", + "organizations_url": "https://api.github.com/users/alltheseas/orgs", + "repos_url": "https://api.github.com/users/alltheseas/repos", + "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", + "received_events_url": "https://api.github.com/users/alltheseas/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "id": 5667230655, + "node_id": "LA_kwDOHHF5A88AAAABUcsTvw", + "url": "https://api.github.com/repos/damus-io/damus/labels/feature", + "name": "feature", + "color": "BFDADC", + "default": false, + "description": "New feature request" + }, + { + "id": 5811380900, + "node_id": "LA_kwDOHHF5A88AAAABWmKipA", + "url": "https://api.github.com/repos/damus-io/damus/labels/video", + "name": "video", + "color": "F4D9A3", + "default": false, + "description": "" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "assignees": [], + "milestone": null, + "comments": 1, + "created_at": "2024-03-19T13:59:24Z", + "updated_at": "2024-03-19T16:46:05Z", + "closed_at": null, + "author_association": "COLLABORATOR", + "active_lock_reason": null, + "body": "## user story\r\n\r\nAs a Damus media enjoyer, if I click on a video with a timestamp, Damus takes me to the video with the beginning at the timestamp.\r\n\r\n### acceptance criteria\r\n\r\n1. I can click on timestamped video link\r\n2. If I clicked on this link it takes me to the video at the timestamped time\r\n3. I can create a timestamped video link, which\r\n4. I can share with others", + "reactions": { + "url": "https://api.github.com/repos/damus-io/damus/issues/2079/reactions", + "total_count": 1, + "+1": 1, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/2079/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + "comment": { + "user": "fmaul", + "created_at": "2024-03-19T16:46:04Z", + "updated_at": "2024-03-19T16:46:04Z", + "body": "Can you please check if it's possible to support youtube links with playlists as well?\r\n\r\nThis note contains a playlist link: note1lnz4hxm4htup40xez6xz7rgw8adf5awhdg2ue9k2tsmajselrzsq0su7mj\r\n\r\nIf it is not supported by the embed or the player it would be great to at least open the youtube link with all attached url parameters." + } + }, + { + "issue": { + "url": "https://api.github.com/repos/damus-io/damus/issues/2078", + "repository_url": "https://api.github.com/repos/damus-io/damus", + "labels_url": "https://api.github.com/repos/damus-io/damus/issues/2078/labels{/name}", + "comments_url": "https://api.github.com/repos/damus-io/damus/issues/2078/comments", + "events_url": "https://api.github.com/repos/damus-io/damus/issues/2078/events", + "html_url": "https://github.com/damus-io/damus/issues/2078", + "id": 2195052119, + "node_id": "I_kwDOHHF5A86C1dZX", + "number": 2078, + "title": "Long videos auto-bookmark: remember where I left off", + "user": { + "login": "alltheseas", + "id": 64376233, + "node_id": "MDQ6VXNlcjY0Mzc2MjMz", + "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/alltheseas", + "html_url": "https://github.com/alltheseas", + "followers_url": "https://api.github.com/users/alltheseas/followers", + "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", + "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", + "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", + "organizations_url": "https://api.github.com/users/alltheseas/orgs", + "repos_url": "https://api.github.com/users/alltheseas/repos", + "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", + "received_events_url": "https://api.github.com/users/alltheseas/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "id": 5811380900, + "node_id": "LA_kwDOHHF5A88AAAABWmKipA", + "url": "https://api.github.com/repos/damus-io/damus/labels/video", + "name": "video", + "color": "F4D9A3", + "default": false, + "description": "" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "assignees": [], + "milestone": null, + "comments": 0, + "created_at": "2024-03-19T13:57:10Z", + "updated_at": "2024-03-19T15:24:00Z", + "closed_at": null, + "author_association": "COLLABORATOR", + "active_lock_reason": null, + "body": "## user story\r\n\r\nAs a long video consumer while browsing Damus, I would like Damus to remember where I left off if I stop watching, so that I can continue watching when I return to Damus.\r\n\r\n### acceptance criteria\r\n\r\n1. There is a mechanism for auto-saving a timestamped bookmark on a long video\r\n2. If user returns to video, there is a visual indication of said bookmark, and\r\n3. If user returns to video, video is paused at the time user left (minus a couple seconds)\r\n4. Damus user can also search for long videos that were stopped under a new section of the bookmarks folder\r\n\r\n### prerequisite\r\n\r\nhttps://github.com/damus-io/damus/issues/2079 clickable timestamps\r\n\r\n![image](https://github.com/damus-io/damus/assets/64376233/125953dc-caea-4ea6-b7cd-3f0f85a1b838)", + "reactions": { + "url": "https://api.github.com/repos/damus-io/damus/issues/2078/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/2078/timeline", + "performed_via_github_app": null, + "state_reason": null + } + }, + { + "issue": { + "url": "https://api.github.com/repos/damus-io/damus/issues/2077", + "repository_url": "https://api.github.com/repos/damus-io/damus", + "labels_url": "https://api.github.com/repos/damus-io/damus/issues/2077/labels{/name}", + "comments_url": "https://api.github.com/repos/damus-io/damus/issues/2077/comments", + "events_url": "https://api.github.com/repos/damus-io/damus/issues/2077/events", + "html_url": "https://github.com/damus-io/damus/issues/2077", + "id": 2194855359, + "node_id": "I_kwDOHHF5A86C0tW_", + "number": 2077, + "title": "Scheduled repost", + "user": { + "login": "alltheseas", + "id": 64376233, + "node_id": "MDQ6VXNlcjY0Mzc2MjMz", + "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/alltheseas", + "html_url": "https://github.com/alltheseas", + "followers_url": "https://api.github.com/users/alltheseas/followers", + "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", + "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", + "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", + "organizations_url": "https://api.github.com/users/alltheseas/orgs", + "repos_url": "https://api.github.com/users/alltheseas/repos", + "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", + "received_events_url": "https://api.github.com/users/alltheseas/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "id": 3994718399, + "node_id": "LA_kwDOHHF5A87uGpC_", + "url": "https://api.github.com/repos/damus-io/damus/labels/enhancement", + "name": "enhancement", + "color": "a2eeef", + "default": true, + "description": "Improvement" + }, + { + "id": 5799961735, + "node_id": "LA_kwDOHHF5A88AAAABWbRkhw", + "url": "https://api.github.com/repos/damus-io/damus/labels/purple", + "name": "purple", + "color": "7E12A4", + "default": false, + "description": "Damus purple membership" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "assignees": [], + "milestone": null, + "comments": 0, + "created_at": "2024-03-19T12:35:38Z", + "updated_at": "2024-03-19T13:35:30Z", + "closed_at": null, + "author_association": "COLLABORATOR", + "active_lock_reason": null, + "body": "## user story\r\n\r\nAs a Damus user who creates posts, I would like to schedule a re-post to be sent at a particular time, so that I can re-post at a specific time in the future without having to remember and re-post at that time so that I can reach a different time zone audience. \r\n\r\n### acceptance criteria\r\n\r\n1. User has re-post later functionality\r\n2. Re-post later functionality includes a way to specify a specific time to re-post - e.g. year, month, day, HH:mm\r\n3. User can see scheduled post & re-post queue\r\n4. User can remove scheduled re-posts\r\n\r\n### related\r\n\r\nBuilds on / related to https://github.com/damus-io/damus/issues/1241", + "reactions": { + "url": "https://api.github.com/repos/damus-io/damus/issues/2077/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/2077/timeline", + "performed_via_github_app": null, + "state_reason": null + } + }, + { + "issue": { + "url": "https://api.github.com/repos/damus-io/damus/issues/2076", + "repository_url": "https://api.github.com/repos/damus-io/damus", + "labels_url": "https://api.github.com/repos/damus-io/damus/issues/2076/labels{/name}", + "comments_url": "https://api.github.com/repos/damus-io/damus/issues/2076/comments", + "events_url": "https://api.github.com/repos/damus-io/damus/issues/2076/events", + "html_url": "https://github.com/damus-io/damus/issues/2076", + "id": 2194271556, + "node_id": "I_kwDOHHF5A86Cye1E", + "number": 2076, + "title": "Phrase muting does not work", + "user": { + "login": "jb55", + "id": 45598, + "node_id": "MDQ6VXNlcjQ1NTk4", + "avatar_url": "https://avatars.githubusercontent.com/u/45598?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/jb55", + "html_url": "https://github.com/jb55", + "followers_url": "https://api.github.com/users/jb55/followers", + "following_url": "https://api.github.com/users/jb55/following{/other_user}", + "gists_url": "https://api.github.com/users/jb55/gists{/gist_id}", + "starred_url": "https://api.github.com/users/jb55/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/jb55/subscriptions", + "organizations_url": "https://api.github.com/users/jb55/orgs", + "repos_url": "https://api.github.com/users/jb55/repos", + "events_url": "https://api.github.com/users/jb55/events{/privacy}", + "received_events_url": "https://api.github.com/users/jb55/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "id": 3994718396, + "node_id": "LA_kwDOHHF5A87uGpC8", + "url": "https://api.github.com/repos/damus-io/damus/labels/bug", + "name": "bug", + "color": "d73a4a", + "default": true, + "description": "Something is not working, or not working as intended" + }, + { + "id": 5895705605, + "node_id": "LA_kwDOHHF5A88AAAABX2lUBQ", + "url": "https://api.github.com/repos/damus-io/damus/labels/unexpected", + "name": "unexpected", + "color": "553300", + "default": false, + "description": "" + }, + { + "id": 6158662124, + "node_id": "LA_kwDOHHF5A88AAAABbxW57A", + "url": "https://api.github.com/repos/damus-io/damus/labels/signal-to-noise-ratio", + "name": "signal-to-noise-ratio", + "color": "0E8A16", + "default": false, + "description": "" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "assignees": [], + "milestone": null, + "comments": 1, + "created_at": "2024-03-19T07:53:33Z", + "updated_at": "2024-03-19T21:37:54Z", + "closed_at": null, + "author_association": "COLLABORATOR", + "active_lock_reason": null, + "body": "I tried muting \"Hello world! #introductions\" and it didn't work, even after restart.\r\n\r\ncc @fishcharlie ", + "reactions": { + "url": "https://api.github.com/repos/damus-io/damus/issues/2076/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/2076/timeline", + "performed_via_github_app": null, + "state_reason": null + } + }, + { + "issue": { + "url": "https://api.github.com/repos/damus-io/damus/issues/2076", + "repository_url": "https://api.github.com/repos/damus-io/damus", + "labels_url": "https://api.github.com/repos/damus-io/damus/issues/2076/labels{/name}", + "comments_url": "https://api.github.com/repos/damus-io/damus/issues/2076/comments", + "events_url": "https://api.github.com/repos/damus-io/damus/issues/2076/events", + "html_url": "https://github.com/damus-io/damus/issues/2076", + "id": 2194271556, + "node_id": "I_kwDOHHF5A86Cye1E", + "number": 2076, + "title": "Phrase muting does not work", + "user": { + "login": "jb55", + "id": 45598, + "node_id": "MDQ6VXNlcjQ1NTk4", + "avatar_url": "https://avatars.githubusercontent.com/u/45598?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/jb55", + "html_url": "https://github.com/jb55", + "followers_url": "https://api.github.com/users/jb55/followers", + "following_url": "https://api.github.com/users/jb55/following{/other_user}", + "gists_url": "https://api.github.com/users/jb55/gists{/gist_id}", + "starred_url": "https://api.github.com/users/jb55/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/jb55/subscriptions", + "organizations_url": "https://api.github.com/users/jb55/orgs", + "repos_url": "https://api.github.com/users/jb55/repos", + "events_url": "https://api.github.com/users/jb55/events{/privacy}", + "received_events_url": "https://api.github.com/users/jb55/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "id": 3994718396, + "node_id": "LA_kwDOHHF5A87uGpC8", + "url": "https://api.github.com/repos/damus-io/damus/labels/bug", + "name": "bug", + "color": "d73a4a", + "default": true, + "description": "Something is not working, or not working as intended" + }, + { + "id": 5895705605, + "node_id": "LA_kwDOHHF5A88AAAABX2lUBQ", + "url": "https://api.github.com/repos/damus-io/damus/labels/unexpected", + "name": "unexpected", + "color": "553300", + "default": false, + "description": "" + }, + { + "id": 6158662124, + "node_id": "LA_kwDOHHF5A88AAAABbxW57A", + "url": "https://api.github.com/repos/damus-io/damus/labels/signal-to-noise-ratio", + "name": "signal-to-noise-ratio", + "color": "0E8A16", + "default": false, + "description": "" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "assignees": [], + "milestone": null, + "comments": 1, + "created_at": "2024-03-19T07:53:33Z", + "updated_at": "2024-03-19T21:37:54Z", + "closed_at": null, + "author_association": "COLLABORATOR", + "active_lock_reason": null, + "body": "I tried muting \"Hello world! #introductions\" and it didn't work, even after restart.\r\n\r\ncc @fishcharlie ", + "reactions": { + "url": "https://api.github.com/repos/damus-io/damus/issues/2076/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/2076/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + "comment": { + "user": "alltheseas", + "created_at": "2024-03-19T21:37:43Z", + "updated_at": "2024-03-19T21:37:43Z", + "body": "Builds on https://github.com/damus-io/damus/issues/856" + } + }, + { + "issue": { + "url": "https://api.github.com/repos/damus-io/damus/issues/2075", + "repository_url": "https://api.github.com/repos/damus-io/damus", + "labels_url": "https://api.github.com/repos/damus-io/damus/issues/2075/labels{/name}", + "comments_url": "https://api.github.com/repos/damus-io/damus/issues/2075/comments", + "events_url": "https://api.github.com/repos/damus-io/damus/issues/2075/events", + "html_url": "https://github.com/damus-io/damus/issues/2075", + "id": 2193916397, + "node_id": "I_kwDOHHF5A86CxIHt", + "number": 2075, + "title": "Damus user cannot follow new ppl", + "user": { + "login": "alltheseas", + "id": 64376233, + "node_id": "MDQ6VXNlcjY0Mzc2MjMz", + "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/alltheseas", + "html_url": "https://github.com/alltheseas", + "followers_url": "https://api.github.com/users/alltheseas/followers", + "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", + "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", + "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", + "organizations_url": "https://api.github.com/users/alltheseas/orgs", + "repos_url": "https://api.github.com/users/alltheseas/repos", + "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", + "received_events_url": "https://api.github.com/users/alltheseas/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "id": 3994718396, + "node_id": "LA_kwDOHHF5A87uGpC8", + "url": "https://api.github.com/repos/damus-io/damus/labels/bug", + "name": "bug", + "color": "d73a4a", + "default": true, + "description": "Something is not working, or not working as intended" + }, + { + "id": 5667406338, + "node_id": "LA_kwDOHHF5A88AAAABUc3CAg", + "url": "https://api.github.com/repos/damus-io/damus/labels/Needs%20recreation", + "name": "Needs recreation", + "color": "FBCA04", + "default": false, + "description": "Issues requires concrete steps for recreation" + }, + { + "id": 6495338883, + "node_id": "LA_kwDOHHF5A88AAAABgycBgw", + "url": "https://api.github.com/repos/damus-io/damus/labels/1.7", + "name": "1.7", + "color": "98EE28", + "default": false, + "description": "" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "assignees": [], + "milestone": null, + "comments": 0, + "created_at": "2024-03-19T03:14:35Z", + "updated_at": "2024-03-19T03:14:35Z", + "closed_at": null, + "author_association": "COLLABORATOR", + "active_lock_reason": null, + "body": "Https://damus.io/note1p0ckss640yr9025fc92mddrfhfcwrhnchwh4s02c8fvmzz76kf2qs0fdcg\n\nNo idea the cause, or how to recreate", + "reactions": { + "url": "https://api.github.com/repos/damus-io/damus/issues/2075/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/2075/timeline", + "performed_via_github_app": null, + "state_reason": null + } + }, + { + "issue": { + "url": "https://api.github.com/repos/damus-io/damus/issues/2074", + "repository_url": "https://api.github.com/repos/damus-io/damus", + "labels_url": "https://api.github.com/repos/damus-io/damus/issues/2074/labels{/name}", + "comments_url": "https://api.github.com/repos/damus-io/damus/issues/2074/comments", + "events_url": "https://api.github.com/repos/damus-io/damus/issues/2074/events", + "html_url": "https://github.com/damus-io/damus/issues/2074", + "id": 2193897392, + "node_id": "I_kwDOHHF5A86CxDew", + "number": 2074, + "title": "Should search results remain after keyword is deleted in search bar", + "user": { + "login": "alltheseas", + "id": 64376233, + "node_id": "MDQ6VXNlcjY0Mzc2MjMz", + "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/alltheseas", + "html_url": "https://github.com/alltheseas", + "followers_url": "https://api.github.com/users/alltheseas/followers", + "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", + "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", + "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", + "organizations_url": "https://api.github.com/users/alltheseas/orgs", + "repos_url": "https://api.github.com/users/alltheseas/repos", + "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", + "received_events_url": "https://api.github.com/users/alltheseas/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "id": 5667222085, + "node_id": "LA_kwDOHHF5A88AAAABUcryRQ", + "url": "https://api.github.com/repos/damus-io/damus/labels/design", + "name": "design", + "color": "5319E7", + "default": false, + "description": "Design exploration & definition is required" + }, + { + "id": 6213404742, + "node_id": "LA_kwDOHHF5A88AAAABclkIRg", + "url": "https://api.github.com/repos/damus-io/damus/labels/search", + "name": "search", + "color": "0e8a16", + "default": false, + "description": "" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "assignees": [], + "milestone": null, + "comments": 0, + "created_at": "2024-03-19T02:57:40Z", + "updated_at": "2024-03-19T02:57:54Z", + "closed_at": null, + "author_association": "COLLABORATOR", + "active_lock_reason": null, + "body": "![image](https://github.com/damus-io/damus/assets/64376233/127fe235-2875-409f-89b4-3753db364ebf)", + "reactions": { + "url": "https://api.github.com/repos/damus-io/damus/issues/2074/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/2074/timeline", + "performed_via_github_app": null, + "state_reason": null + } + }, + { + "issue": { + "url": "https://api.github.com/repos/damus-io/damus/issues/2073", + "repository_url": "https://api.github.com/repos/damus-io/damus", + "labels_url": "https://api.github.com/repos/damus-io/damus/issues/2073/labels{/name}", + "comments_url": "https://api.github.com/repos/damus-io/damus/issues/2073/comments", + "events_url": "https://api.github.com/repos/damus-io/damus/issues/2073/events", + "html_url": "https://github.com/damus-io/damus/issues/2073", + "id": 2193894707, + "node_id": "I_kwDOHHF5A86CxC0z", + "number": 2073, + "title": "Search: don't return results *without* a keyword match", + "user": { + "login": "alltheseas", + "id": 64376233, + "node_id": "MDQ6VXNlcjY0Mzc2MjMz", + "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/alltheseas", + "html_url": "https://github.com/alltheseas", + "followers_url": "https://api.github.com/users/alltheseas/followers", + "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", + "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", + "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", + "organizations_url": "https://api.github.com/users/alltheseas/orgs", + "repos_url": "https://api.github.com/users/alltheseas/repos", + "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", + "received_events_url": "https://api.github.com/users/alltheseas/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "id": 5895705605, + "node_id": "LA_kwDOHHF5A88AAAABX2lUBQ", + "url": "https://api.github.com/repos/damus-io/damus/labels/unexpected", + "name": "unexpected", + "color": "553300", + "default": false, + "description": "" + }, + { + "id": 6213404742, + "node_id": "LA_kwDOHHF5A88AAAABclkIRg", + "url": "https://api.github.com/repos/damus-io/damus/labels/search", + "name": "search", + "color": "0e8a16", + "default": false, + "description": "" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "assignees": [], + "milestone": null, + "comments": 0, + "created_at": "2024-03-19T02:54:37Z", + "updated_at": "2024-03-19T02:54:54Z", + "closed_at": null, + "author_association": "COLLABORATOR", + "active_lock_reason": null, + "body": "https://github.com/damus-io/damus/assets/64376233/a1c44479-67f1-4c4b-9aa3-c5b162026157", + "reactions": { + "url": "https://api.github.com/repos/damus-io/damus/issues/2073/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/2073/timeline", + "performed_via_github_app": null, + "state_reason": null + } + }, + { + "issue": { + "url": "https://api.github.com/repos/damus-io/damus/issues/2072", + "repository_url": "https://api.github.com/repos/damus-io/damus", + "labels_url": "https://api.github.com/repos/damus-io/damus/issues/2072/labels{/name}", + "comments_url": "https://api.github.com/repos/damus-io/damus/issues/2072/comments", + "events_url": "https://api.github.com/repos/damus-io/damus/issues/2072/events", + "html_url": "https://github.com/damus-io/damus/issues/2072", + "id": 2193879241, + "node_id": "I_kwDOHHF5A86Cw_DJ", + "number": 2072, + "title": "Issues with disconnecting relays [100,000 sats]", + "user": { + "login": "alltheseas", + "id": 64376233, + "node_id": "MDQ6VXNlcjY0Mzc2MjMz", + "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/alltheseas", + "html_url": "https://github.com/alltheseas", + "followers_url": "https://api.github.com/users/alltheseas/followers", + "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", + "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", + "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", + "organizations_url": "https://api.github.com/users/alltheseas/orgs", + "repos_url": "https://api.github.com/users/alltheseas/repos", + "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", + "received_events_url": "https://api.github.com/users/alltheseas/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "id": 3994718396, + "node_id": "LA_kwDOHHF5A87uGpC8", + "url": "https://api.github.com/repos/damus-io/damus/labels/bug", + "name": "bug", + "color": "d73a4a", + "default": true, + "description": "Something is not working, or not working as intended" + }, + { + "id": 5667341106, + "node_id": "LA_kwDOHHF5A88AAAABUczDMg", + "url": "https://api.github.com/repos/damus-io/damus/labels/bounty", + "name": "bounty", + "color": "D93F0B", + "default": false, + "description": "Sats" + }, + { + "id": 6219108520, + "node_id": "LA_kwDOHHF5A88AAAABcrAQqA", + "url": "https://api.github.com/repos/damus-io/damus/labels/relay", + "name": "relay", + "color": "c2e0c6", + "default": false, + "description": "" + }, + { + "id": 6495338883, + "node_id": "LA_kwDOHHF5A88AAAABgycBgw", + "url": "https://api.github.com/repos/damus-io/damus/labels/1.7", + "name": "1.7", + "color": "98EE28", + "default": false, + "description": "" + }, + { + "id": 6718343473, + "node_id": "LA_kwDOHHF5A88AAAABkHHJMQ", + "url": "https://api.github.com/repos/damus-io/damus/labels/meme", + "name": "meme", + "color": "98247E", + "default": false, + "description": "" + } + ], + "state": "open", + "locked": false, + "assignee": { + "login": "danieldaquino", + "id": 24692108, + "node_id": "MDQ6VXNlcjI0NjkyMTA4", + "avatar_url": "https://avatars.githubusercontent.com/u/24692108?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/danieldaquino", + "html_url": "https://github.com/danieldaquino", + "followers_url": "https://api.github.com/users/danieldaquino/followers", + "following_url": "https://api.github.com/users/danieldaquino/following{/other_user}", + "gists_url": "https://api.github.com/users/danieldaquino/gists{/gist_id}", + "starred_url": "https://api.github.com/users/danieldaquino/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/danieldaquino/subscriptions", + "organizations_url": "https://api.github.com/users/danieldaquino/orgs", + "repos_url": "https://api.github.com/users/danieldaquino/repos", + "events_url": "https://api.github.com/users/danieldaquino/events{/privacy}", + "received_events_url": "https://api.github.com/users/danieldaquino/received_events", + "type": "User", + "site_admin": false + }, + "assignees": [ + { + "login": "danieldaquino", + "id": 24692108, + "node_id": "MDQ6VXNlcjI0NjkyMTA4", + "avatar_url": "https://avatars.githubusercontent.com/u/24692108?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/danieldaquino", + "html_url": "https://github.com/danieldaquino", + "followers_url": "https://api.github.com/users/danieldaquino/followers", + "following_url": "https://api.github.com/users/danieldaquino/following{/other_user}", + "gists_url": "https://api.github.com/users/danieldaquino/gists{/gist_id}", + "starred_url": "https://api.github.com/users/danieldaquino/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/danieldaquino/subscriptions", + "organizations_url": "https://api.github.com/users/danieldaquino/orgs", + "repos_url": "https://api.github.com/users/danieldaquino/repos", + "events_url": "https://api.github.com/users/danieldaquino/events{/privacy}", + "received_events_url": "https://api.github.com/users/danieldaquino/received_events", + "type": "User", + "site_admin": false + } + ], + "milestone": { + "url": "https://api.github.com/repos/damus-io/damus/milestones/14", + "html_url": "https://github.com/damus-io/damus/milestone/14", + "labels_url": "https://api.github.com/repos/damus-io/damus/milestones/14/labels", + "id": 10536809, + "node_id": "MI_kwDOHHF5A84AoMdp", + "number": 14, + "title": "1.8 post Madeira: UX/UI/Design focus", + "description": "", + "creator": { + "login": "alltheseas", + "id": 64376233, + "node_id": "MDQ6VXNlcjY0Mzc2MjMz", + "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/alltheseas", + "html_url": "https://github.com/alltheseas", + "followers_url": "https://api.github.com/users/alltheseas/followers", + "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", + "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", + "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", + "organizations_url": "https://api.github.com/users/alltheseas/orgs", + "repos_url": "https://api.github.com/users/alltheseas/repos", + "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", + "received_events_url": "https://api.github.com/users/alltheseas/received_events", + "type": "User", + "site_admin": false + }, + "open_issues": 13, + "closed_issues": 1, + "state": "open", + "created_at": "2024-02-09T17:16:56Z", + "updated_at": "2024-03-20T15:28:11Z", + "due_on": null, + "closed_at": null + }, + "comments": 15, + "created_at": "2024-03-19T02:36:01Z", + "updated_at": "2024-03-21T07:48:12Z", + "closed_at": null, + "author_association": "COLLABORATOR", + "active_lock_reason": null, + "body": "Unclear if related to slash relays issues\n\nUsers shawn and karnage cannot remove relays. I am not sure how to troubleshoot @danieldaquino \n\nhttps://damus.io/nevent1qqsvx5pc0023njqqq78y9rf9xcsahsjg7lxvawl7ggmcyyp8wvjrmzqprpmhxue69uhhyetvv9ujumn0wd68yct5dyhxxmmdqyvhwumn8ghj7ur4wfshv6tyvyhxummnw3ezumrpdejqzxnhwden5te0wfjkccte9ehhyctwvajhq6tvdshxgetkqy2hwumn8ghj7mn0wd68ytndd9kx7afwd3hkc4ndht4\n\nhttps://damus.io/nevent1qqsrhpw78jsq2rs00sqct6lrdxjd0g0ga3vthcuftsrylzjqwakz8pqpr9mhxue69uhhwetvvdhk6efwdehhxarj9emkjmn99uq32amnwvaz7tm9v3jkutnwdaehgu3wd3skueqpr3mhxue69uhkummnw3ezuumgv9mku7t9v9nk2u3wdejhgtcpzpmhxue69uhkummnw3ezuamfdejs9rgfx6", + "reactions": { + "url": "https://api.github.com/repos/damus-io/damus/issues/2072/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/2072/timeline", + "performed_via_github_app": null, + "state_reason": null + } + }, + { + "issue": { + "url": "https://api.github.com/repos/damus-io/damus/issues/2072", + "repository_url": "https://api.github.com/repos/damus-io/damus", + "labels_url": "https://api.github.com/repos/damus-io/damus/issues/2072/labels{/name}", + "comments_url": "https://api.github.com/repos/damus-io/damus/issues/2072/comments", + "events_url": "https://api.github.com/repos/damus-io/damus/issues/2072/events", + "html_url": "https://github.com/damus-io/damus/issues/2072", + "id": 2193879241, + "node_id": "I_kwDOHHF5A86Cw_DJ", + "number": 2072, + "title": "Issues with disconnecting relays [100,000 sats]", + "user": { + "login": "alltheseas", + "id": 64376233, + "node_id": "MDQ6VXNlcjY0Mzc2MjMz", + "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/alltheseas", + "html_url": "https://github.com/alltheseas", + "followers_url": "https://api.github.com/users/alltheseas/followers", + "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", + "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", + "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", + "organizations_url": "https://api.github.com/users/alltheseas/orgs", + "repos_url": "https://api.github.com/users/alltheseas/repos", + "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", + "received_events_url": "https://api.github.com/users/alltheseas/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "id": 3994718396, + "node_id": "LA_kwDOHHF5A87uGpC8", + "url": "https://api.github.com/repos/damus-io/damus/labels/bug", + "name": "bug", + "color": "d73a4a", + "default": true, + "description": "Something is not working, or not working as intended" + }, + { + "id": 5667341106, + "node_id": "LA_kwDOHHF5A88AAAABUczDMg", + "url": "https://api.github.com/repos/damus-io/damus/labels/bounty", + "name": "bounty", + "color": "D93F0B", + "default": false, + "description": "Sats" + }, + { + "id": 6219108520, + "node_id": "LA_kwDOHHF5A88AAAABcrAQqA", + "url": "https://api.github.com/repos/damus-io/damus/labels/relay", + "name": "relay", + "color": "c2e0c6", + "default": false, + "description": "" + }, + { + "id": 6495338883, + "node_id": "LA_kwDOHHF5A88AAAABgycBgw", + "url": "https://api.github.com/repos/damus-io/damus/labels/1.7", + "name": "1.7", + "color": "98EE28", + "default": false, + "description": "" + }, + { + "id": 6718343473, + "node_id": "LA_kwDOHHF5A88AAAABkHHJMQ", + "url": "https://api.github.com/repos/damus-io/damus/labels/meme", + "name": "meme", + "color": "98247E", + "default": false, + "description": "" + } + ], + "state": "open", + "locked": false, + "assignee": { + "login": "danieldaquino", + "id": 24692108, + "node_id": "MDQ6VXNlcjI0NjkyMTA4", + "avatar_url": "https://avatars.githubusercontent.com/u/24692108?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/danieldaquino", + "html_url": "https://github.com/danieldaquino", + "followers_url": "https://api.github.com/users/danieldaquino/followers", + "following_url": "https://api.github.com/users/danieldaquino/following{/other_user}", + "gists_url": "https://api.github.com/users/danieldaquino/gists{/gist_id}", + "starred_url": "https://api.github.com/users/danieldaquino/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/danieldaquino/subscriptions", + "organizations_url": "https://api.github.com/users/danieldaquino/orgs", + "repos_url": "https://api.github.com/users/danieldaquino/repos", + "events_url": "https://api.github.com/users/danieldaquino/events{/privacy}", + "received_events_url": "https://api.github.com/users/danieldaquino/received_events", + "type": "User", + "site_admin": false + }, + "assignees": [ + { + "login": "danieldaquino", + "id": 24692108, + "node_id": "MDQ6VXNlcjI0NjkyMTA4", + "avatar_url": "https://avatars.githubusercontent.com/u/24692108?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/danieldaquino", + "html_url": "https://github.com/danieldaquino", + "followers_url": "https://api.github.com/users/danieldaquino/followers", + "following_url": "https://api.github.com/users/danieldaquino/following{/other_user}", + "gists_url": "https://api.github.com/users/danieldaquino/gists{/gist_id}", + "starred_url": "https://api.github.com/users/danieldaquino/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/danieldaquino/subscriptions", + "organizations_url": "https://api.github.com/users/danieldaquino/orgs", + "repos_url": "https://api.github.com/users/danieldaquino/repos", + "events_url": "https://api.github.com/users/danieldaquino/events{/privacy}", + "received_events_url": "https://api.github.com/users/danieldaquino/received_events", + "type": "User", + "site_admin": false + } + ], + "milestone": { + "url": "https://api.github.com/repos/damus-io/damus/milestones/14", + "html_url": "https://github.com/damus-io/damus/milestone/14", + "labels_url": "https://api.github.com/repos/damus-io/damus/milestones/14/labels", + "id": 10536809, + "node_id": "MI_kwDOHHF5A84AoMdp", + "number": 14, + "title": "1.8 post Madeira: UX/UI/Design focus", + "description": "", + "creator": { + "login": "alltheseas", + "id": 64376233, + "node_id": "MDQ6VXNlcjY0Mzc2MjMz", + "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/alltheseas", + "html_url": "https://github.com/alltheseas", + "followers_url": "https://api.github.com/users/alltheseas/followers", + "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", + "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", + "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", + "organizations_url": "https://api.github.com/users/alltheseas/orgs", + "repos_url": "https://api.github.com/users/alltheseas/repos", + "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", + "received_events_url": "https://api.github.com/users/alltheseas/received_events", + "type": "User", + "site_admin": false + }, + "open_issues": 13, + "closed_issues": 1, + "state": "open", + "created_at": "2024-02-09T17:16:56Z", + "updated_at": "2024-03-20T15:28:11Z", + "due_on": null, + "closed_at": null + }, + "comments": 15, + "created_at": "2024-03-19T02:36:01Z", + "updated_at": "2024-03-21T07:48:12Z", + "closed_at": null, + "author_association": "COLLABORATOR", + "active_lock_reason": null, + "body": "Unclear if related to slash relays issues\n\nUsers shawn and karnage cannot remove relays. I am not sure how to troubleshoot @danieldaquino \n\nhttps://damus.io/nevent1qqsvx5pc0023njqqq78y9rf9xcsahsjg7lxvawl7ggmcyyp8wvjrmzqprpmhxue69uhhyetvv9ujumn0wd68yct5dyhxxmmdqyvhwumn8ghj7ur4wfshv6tyvyhxummnw3ezumrpdejqzxnhwden5te0wfjkccte9ehhyctwvajhq6tvdshxgetkqy2hwumn8ghj7mn0wd68ytndd9kx7afwd3hkc4ndht4\n\nhttps://damus.io/nevent1qqsrhpw78jsq2rs00sqct6lrdxjd0g0ga3vthcuftsrylzjqwakz8pqpr9mhxue69uhhwetvvdhk6efwdehhxarj9emkjmn99uq32amnwvaz7tm9v3jkutnwdaehgu3wd3skueqpr3mhxue69uhkummnw3ezuumgv9mku7t9v9nk2u3wdejhgtcpzpmhxue69uhkummnw3ezuamfdejs9rgfx6", + "reactions": { + "url": "https://api.github.com/repos/damus-io/damus/issues/2072/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/2072/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + "comment": { + "user": "alltheseas", + "created_at": "2024-03-19T04:22:53Z", + "updated_at": "2024-03-19T04:22:53Z", + "body": "One more user https://damus.io/nevent1qqspvmj5qqsfyj4g725s4wzuamqgfn73qxq4qz3w7fp4m4kkdqanamcpr9mhxue69uhhyetvv9ujuumwdae8gtnnda3kjctv9uq3wamnwvaz7tmjv4kxz7fwdehhxarj9e3xzmny9uq3vamnwvaz7tm9v3jkutnwdaehgu3wd3skuep0qy2hwumn8ghj7un9d3shjtnyv9kh2uewd9hj74zt60a\n\nnpub127ekpmm3w2ttqfe9r4j3hhflx0uw89lw7457pyd9dc7zp03ld4dswn7dvk" + } + }, + { + "issue": { + "url": "https://api.github.com/repos/damus-io/damus/issues/2072", + "repository_url": "https://api.github.com/repos/damus-io/damus", + "labels_url": "https://api.github.com/repos/damus-io/damus/issues/2072/labels{/name}", + "comments_url": "https://api.github.com/repos/damus-io/damus/issues/2072/comments", + "events_url": "https://api.github.com/repos/damus-io/damus/issues/2072/events", + "html_url": "https://github.com/damus-io/damus/issues/2072", + "id": 2193879241, + "node_id": "I_kwDOHHF5A86Cw_DJ", + "number": 2072, + "title": "Issues with disconnecting relays [100,000 sats]", + "user": { + "login": "alltheseas", + "id": 64376233, + "node_id": "MDQ6VXNlcjY0Mzc2MjMz", + "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/alltheseas", + "html_url": "https://github.com/alltheseas", + "followers_url": "https://api.github.com/users/alltheseas/followers", + "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", + "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", + "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", + "organizations_url": "https://api.github.com/users/alltheseas/orgs", + "repos_url": "https://api.github.com/users/alltheseas/repos", + "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", + "received_events_url": "https://api.github.com/users/alltheseas/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "id": 3994718396, + "node_id": "LA_kwDOHHF5A87uGpC8", + "url": "https://api.github.com/repos/damus-io/damus/labels/bug", + "name": "bug", + "color": "d73a4a", + "default": true, + "description": "Something is not working, or not working as intended" + }, + { + "id": 5667341106, + "node_id": "LA_kwDOHHF5A88AAAABUczDMg", + "url": "https://api.github.com/repos/damus-io/damus/labels/bounty", + "name": "bounty", + "color": "D93F0B", + "default": false, + "description": "Sats" + }, + { + "id": 6219108520, + "node_id": "LA_kwDOHHF5A88AAAABcrAQqA", + "url": "https://api.github.com/repos/damus-io/damus/labels/relay", + "name": "relay", + "color": "c2e0c6", + "default": false, + "description": "" + }, + { + "id": 6495338883, + "node_id": "LA_kwDOHHF5A88AAAABgycBgw", + "url": "https://api.github.com/repos/damus-io/damus/labels/1.7", + "name": "1.7", + "color": "98EE28", + "default": false, + "description": "" + }, + { + "id": 6718343473, + "node_id": "LA_kwDOHHF5A88AAAABkHHJMQ", + "url": "https://api.github.com/repos/damus-io/damus/labels/meme", + "name": "meme", + "color": "98247E", + "default": false, + "description": "" + } + ], + "state": "open", + "locked": false, + "assignee": { + "login": "danieldaquino", + "id": 24692108, + "node_id": "MDQ6VXNlcjI0NjkyMTA4", + "avatar_url": "https://avatars.githubusercontent.com/u/24692108?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/danieldaquino", + "html_url": "https://github.com/danieldaquino", + "followers_url": "https://api.github.com/users/danieldaquino/followers", + "following_url": "https://api.github.com/users/danieldaquino/following{/other_user}", + "gists_url": "https://api.github.com/users/danieldaquino/gists{/gist_id}", + "starred_url": "https://api.github.com/users/danieldaquino/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/danieldaquino/subscriptions", + "organizations_url": "https://api.github.com/users/danieldaquino/orgs", + "repos_url": "https://api.github.com/users/danieldaquino/repos", + "events_url": "https://api.github.com/users/danieldaquino/events{/privacy}", + "received_events_url": "https://api.github.com/users/danieldaquino/received_events", + "type": "User", + "site_admin": false + }, + "assignees": [ + { + "login": "danieldaquino", + "id": 24692108, + "node_id": "MDQ6VXNlcjI0NjkyMTA4", + "avatar_url": "https://avatars.githubusercontent.com/u/24692108?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/danieldaquino", + "html_url": "https://github.com/danieldaquino", + "followers_url": "https://api.github.com/users/danieldaquino/followers", + "following_url": "https://api.github.com/users/danieldaquino/following{/other_user}", + "gists_url": "https://api.github.com/users/danieldaquino/gists{/gist_id}", + "starred_url": "https://api.github.com/users/danieldaquino/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/danieldaquino/subscriptions", + "organizations_url": "https://api.github.com/users/danieldaquino/orgs", + "repos_url": "https://api.github.com/users/danieldaquino/repos", + "events_url": "https://api.github.com/users/danieldaquino/events{/privacy}", + "received_events_url": "https://api.github.com/users/danieldaquino/received_events", + "type": "User", + "site_admin": false + } + ], + "milestone": { + "url": "https://api.github.com/repos/damus-io/damus/milestones/14", + "html_url": "https://github.com/damus-io/damus/milestone/14", + "labels_url": "https://api.github.com/repos/damus-io/damus/milestones/14/labels", + "id": 10536809, + "node_id": "MI_kwDOHHF5A84AoMdp", + "number": 14, + "title": "1.8 post Madeira: UX/UI/Design focus", + "description": "", + "creator": { + "login": "alltheseas", + "id": 64376233, + "node_id": "MDQ6VXNlcjY0Mzc2MjMz", + "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/alltheseas", + "html_url": "https://github.com/alltheseas", + "followers_url": "https://api.github.com/users/alltheseas/followers", + "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", + "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", + "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", + "organizations_url": "https://api.github.com/users/alltheseas/orgs", + "repos_url": "https://api.github.com/users/alltheseas/repos", + "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", + "received_events_url": "https://api.github.com/users/alltheseas/received_events", + "type": "User", + "site_admin": false + }, + "open_issues": 13, + "closed_issues": 1, + "state": "open", + "created_at": "2024-02-09T17:16:56Z", + "updated_at": "2024-03-20T15:28:11Z", + "due_on": null, + "closed_at": null + }, + "comments": 15, + "created_at": "2024-03-19T02:36:01Z", + "updated_at": "2024-03-21T07:48:12Z", + "closed_at": null, + "author_association": "COLLABORATOR", + "active_lock_reason": null, + "body": "Unclear if related to slash relays issues\n\nUsers shawn and karnage cannot remove relays. I am not sure how to troubleshoot @danieldaquino \n\nhttps://damus.io/nevent1qqsvx5pc0023njqqq78y9rf9xcsahsjg7lxvawl7ggmcyyp8wvjrmzqprpmhxue69uhhyetvv9ujumn0wd68yct5dyhxxmmdqyvhwumn8ghj7ur4wfshv6tyvyhxummnw3ezumrpdejqzxnhwden5te0wfjkccte9ehhyctwvajhq6tvdshxgetkqy2hwumn8ghj7mn0wd68ytndd9kx7afwd3hkc4ndht4\n\nhttps://damus.io/nevent1qqsrhpw78jsq2rs00sqct6lrdxjd0g0ga3vthcuftsrylzjqwakz8pqpr9mhxue69uhhwetvvdhk6efwdehhxarj9emkjmn99uq32amnwvaz7tm9v3jkutnwdaehgu3wd3skueqpr3mhxue69uhkummnw3ezuumgv9mku7t9v9nk2u3wdejhgtcpzpmhxue69uhkummnw3ezuamfdejs9rgfx6", + "reactions": { + "url": "https://api.github.com/repos/damus-io/damus/issues/2072/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/2072/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + "comment": { + "user": "alltheseas", + "created_at": "2024-03-19T04:26:40Z", + "updated_at": "2024-03-19T04:26:40Z", + "body": "![image](https://github.com/damus-io/damus/assets/64376233/48ab3d85-1ba0-4966-8866-90478ab9c8d6)" + } + }, + { + "issue": { + "url": "https://api.github.com/repos/damus-io/damus/issues/2072", + "repository_url": "https://api.github.com/repos/damus-io/damus", + "labels_url": "https://api.github.com/repos/damus-io/damus/issues/2072/labels{/name}", + "comments_url": "https://api.github.com/repos/damus-io/damus/issues/2072/comments", + "events_url": "https://api.github.com/repos/damus-io/damus/issues/2072/events", + "html_url": "https://github.com/damus-io/damus/issues/2072", + "id": 2193879241, + "node_id": "I_kwDOHHF5A86Cw_DJ", + "number": 2072, + "title": "Issues with disconnecting relays [100,000 sats]", + "user": { + "login": "alltheseas", + "id": 64376233, + "node_id": "MDQ6VXNlcjY0Mzc2MjMz", + "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/alltheseas", + "html_url": "https://github.com/alltheseas", + "followers_url": "https://api.github.com/users/alltheseas/followers", + "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", + "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", + "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", + "organizations_url": "https://api.github.com/users/alltheseas/orgs", + "repos_url": "https://api.github.com/users/alltheseas/repos", + "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", + "received_events_url": "https://api.github.com/users/alltheseas/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "id": 3994718396, + "node_id": "LA_kwDOHHF5A87uGpC8", + "url": "https://api.github.com/repos/damus-io/damus/labels/bug", + "name": "bug", + "color": "d73a4a", + "default": true, + "description": "Something is not working, or not working as intended" + }, + { + "id": 5667341106, + "node_id": "LA_kwDOHHF5A88AAAABUczDMg", + "url": "https://api.github.com/repos/damus-io/damus/labels/bounty", + "name": "bounty", + "color": "D93F0B", + "default": false, + "description": "Sats" + }, + { + "id": 6219108520, + "node_id": "LA_kwDOHHF5A88AAAABcrAQqA", + "url": "https://api.github.com/repos/damus-io/damus/labels/relay", + "name": "relay", + "color": "c2e0c6", + "default": false, + "description": "" + }, + { + "id": 6495338883, + "node_id": "LA_kwDOHHF5A88AAAABgycBgw", + "url": "https://api.github.com/repos/damus-io/damus/labels/1.7", + "name": "1.7", + "color": "98EE28", + "default": false, + "description": "" + }, + { + "id": 6718343473, + "node_id": "LA_kwDOHHF5A88AAAABkHHJMQ", + "url": "https://api.github.com/repos/damus-io/damus/labels/meme", + "name": "meme", + "color": "98247E", + "default": false, + "description": "" + } + ], + "state": "open", + "locked": false, + "assignee": { + "login": "danieldaquino", + "id": 24692108, + "node_id": "MDQ6VXNlcjI0NjkyMTA4", + "avatar_url": "https://avatars.githubusercontent.com/u/24692108?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/danieldaquino", + "html_url": "https://github.com/danieldaquino", + "followers_url": "https://api.github.com/users/danieldaquino/followers", + "following_url": "https://api.github.com/users/danieldaquino/following{/other_user}", + "gists_url": "https://api.github.com/users/danieldaquino/gists{/gist_id}", + "starred_url": "https://api.github.com/users/danieldaquino/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/danieldaquino/subscriptions", + "organizations_url": "https://api.github.com/users/danieldaquino/orgs", + "repos_url": "https://api.github.com/users/danieldaquino/repos", + "events_url": "https://api.github.com/users/danieldaquino/events{/privacy}", + "received_events_url": "https://api.github.com/users/danieldaquino/received_events", + "type": "User", + "site_admin": false + }, + "assignees": [ + { + "login": "danieldaquino", + "id": 24692108, + "node_id": "MDQ6VXNlcjI0NjkyMTA4", + "avatar_url": "https://avatars.githubusercontent.com/u/24692108?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/danieldaquino", + "html_url": "https://github.com/danieldaquino", + "followers_url": "https://api.github.com/users/danieldaquino/followers", + "following_url": "https://api.github.com/users/danieldaquino/following{/other_user}", + "gists_url": "https://api.github.com/users/danieldaquino/gists{/gist_id}", + "starred_url": "https://api.github.com/users/danieldaquino/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/danieldaquino/subscriptions", + "organizations_url": "https://api.github.com/users/danieldaquino/orgs", + "repos_url": "https://api.github.com/users/danieldaquino/repos", + "events_url": "https://api.github.com/users/danieldaquino/events{/privacy}", + "received_events_url": "https://api.github.com/users/danieldaquino/received_events", + "type": "User", + "site_admin": false + } + ], + "milestone": { + "url": "https://api.github.com/repos/damus-io/damus/milestones/14", + "html_url": "https://github.com/damus-io/damus/milestone/14", + "labels_url": "https://api.github.com/repos/damus-io/damus/milestones/14/labels", + "id": 10536809, + "node_id": "MI_kwDOHHF5A84AoMdp", + "number": 14, + "title": "1.8 post Madeira: UX/UI/Design focus", + "description": "", + "creator": { + "login": "alltheseas", + "id": 64376233, + "node_id": "MDQ6VXNlcjY0Mzc2MjMz", + "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/alltheseas", + "html_url": "https://github.com/alltheseas", + "followers_url": "https://api.github.com/users/alltheseas/followers", + "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", + "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", + "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", + "organizations_url": "https://api.github.com/users/alltheseas/orgs", + "repos_url": "https://api.github.com/users/alltheseas/repos", + "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", + "received_events_url": "https://api.github.com/users/alltheseas/received_events", + "type": "User", + "site_admin": false + }, + "open_issues": 13, + "closed_issues": 1, + "state": "open", + "created_at": "2024-02-09T17:16:56Z", + "updated_at": "2024-03-20T15:28:11Z", + "due_on": null, + "closed_at": null + }, + "comments": 15, + "created_at": "2024-03-19T02:36:01Z", + "updated_at": "2024-03-21T07:48:12Z", + "closed_at": null, + "author_association": "COLLABORATOR", + "active_lock_reason": null, + "body": "Unclear if related to slash relays issues\n\nUsers shawn and karnage cannot remove relays. I am not sure how to troubleshoot @danieldaquino \n\nhttps://damus.io/nevent1qqsvx5pc0023njqqq78y9rf9xcsahsjg7lxvawl7ggmcyyp8wvjrmzqprpmhxue69uhhyetvv9ujumn0wd68yct5dyhxxmmdqyvhwumn8ghj7ur4wfshv6tyvyhxummnw3ezumrpdejqzxnhwden5te0wfjkccte9ehhyctwvajhq6tvdshxgetkqy2hwumn8ghj7mn0wd68ytndd9kx7afwd3hkc4ndht4\n\nhttps://damus.io/nevent1qqsrhpw78jsq2rs00sqct6lrdxjd0g0ga3vthcuftsrylzjqwakz8pqpr9mhxue69uhhwetvvdhk6efwdehhxarj9emkjmn99uq32amnwvaz7tm9v3jkutnwdaehgu3wd3skueqpr3mhxue69uhkummnw3ezuumgv9mku7t9v9nk2u3wdejhgtcpzpmhxue69uhkummnw3ezuamfdejs9rgfx6", + "reactions": { + "url": "https://api.github.com/repos/damus-io/damus/issues/2072/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/2072/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + "comment": { + "user": "alltheseas", + "created_at": "2024-03-20T02:51:33Z", + "updated_at": "2024-03-20T02:51:33Z", + "body": "https://damus.io/nevent1qqs0dheknm7apjcjjsrsx74ec8czm4mf9alzdms6h3yedf9mgypngsspzemhxue69uhhyetvv9ujumn0wd68ytnzv9hxgqg5waehxw309aex2mrp0yhxummnw3ezucn8qyd8wumn8ghj7un9d3shjtn0wfskuem9wp5kcmpwv3jhvqghwaehxw309aex2mrp0yh8qmr9vfehgu3wvdhk68355j9\n\n@jb55 @danieldaquino if relays are borked this is poor UX for all. Suggest bumping to highest priority 🙏" + } + }, + { + "issue": { + "url": "https://api.github.com/repos/damus-io/damus/issues/2072", + "repository_url": "https://api.github.com/repos/damus-io/damus", + "labels_url": "https://api.github.com/repos/damus-io/damus/issues/2072/labels{/name}", + "comments_url": "https://api.github.com/repos/damus-io/damus/issues/2072/comments", + "events_url": "https://api.github.com/repos/damus-io/damus/issues/2072/events", + "html_url": "https://github.com/damus-io/damus/issues/2072", + "id": 2193879241, + "node_id": "I_kwDOHHF5A86Cw_DJ", + "number": 2072, + "title": "Issues with disconnecting relays [100,000 sats]", + "user": { + "login": "alltheseas", + "id": 64376233, + "node_id": "MDQ6VXNlcjY0Mzc2MjMz", + "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/alltheseas", + "html_url": "https://github.com/alltheseas", + "followers_url": "https://api.github.com/users/alltheseas/followers", + "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", + "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", + "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", + "organizations_url": "https://api.github.com/users/alltheseas/orgs", + "repos_url": "https://api.github.com/users/alltheseas/repos", + "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", + "received_events_url": "https://api.github.com/users/alltheseas/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "id": 3994718396, + "node_id": "LA_kwDOHHF5A87uGpC8", + "url": "https://api.github.com/repos/damus-io/damus/labels/bug", + "name": "bug", + "color": "d73a4a", + "default": true, + "description": "Something is not working, or not working as intended" + }, + { + "id": 5667341106, + "node_id": "LA_kwDOHHF5A88AAAABUczDMg", + "url": "https://api.github.com/repos/damus-io/damus/labels/bounty", + "name": "bounty", + "color": "D93F0B", + "default": false, + "description": "Sats" + }, + { + "id": 6219108520, + "node_id": "LA_kwDOHHF5A88AAAABcrAQqA", + "url": "https://api.github.com/repos/damus-io/damus/labels/relay", + "name": "relay", + "color": "c2e0c6", + "default": false, + "description": "" + }, + { + "id": 6495338883, + "node_id": "LA_kwDOHHF5A88AAAABgycBgw", + "url": "https://api.github.com/repos/damus-io/damus/labels/1.7", + "name": "1.7", + "color": "98EE28", + "default": false, + "description": "" + }, + { + "id": 6718343473, + "node_id": "LA_kwDOHHF5A88AAAABkHHJMQ", + "url": "https://api.github.com/repos/damus-io/damus/labels/meme", + "name": "meme", + "color": "98247E", + "default": false, + "description": "" + } + ], + "state": "open", + "locked": false, + "assignee": { + "login": "danieldaquino", + "id": 24692108, + "node_id": "MDQ6VXNlcjI0NjkyMTA4", + "avatar_url": "https://avatars.githubusercontent.com/u/24692108?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/danieldaquino", + "html_url": "https://github.com/danieldaquino", + "followers_url": "https://api.github.com/users/danieldaquino/followers", + "following_url": "https://api.github.com/users/danieldaquino/following{/other_user}", + "gists_url": "https://api.github.com/users/danieldaquino/gists{/gist_id}", + "starred_url": "https://api.github.com/users/danieldaquino/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/danieldaquino/subscriptions", + "organizations_url": "https://api.github.com/users/danieldaquino/orgs", + "repos_url": "https://api.github.com/users/danieldaquino/repos", + "events_url": "https://api.github.com/users/danieldaquino/events{/privacy}", + "received_events_url": "https://api.github.com/users/danieldaquino/received_events", + "type": "User", + "site_admin": false + }, + "assignees": [ + { + "login": "danieldaquino", + "id": 24692108, + "node_id": "MDQ6VXNlcjI0NjkyMTA4", + "avatar_url": "https://avatars.githubusercontent.com/u/24692108?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/danieldaquino", + "html_url": "https://github.com/danieldaquino", + "followers_url": "https://api.github.com/users/danieldaquino/followers", + "following_url": "https://api.github.com/users/danieldaquino/following{/other_user}", + "gists_url": "https://api.github.com/users/danieldaquino/gists{/gist_id}", + "starred_url": "https://api.github.com/users/danieldaquino/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/danieldaquino/subscriptions", + "organizations_url": "https://api.github.com/users/danieldaquino/orgs", + "repos_url": "https://api.github.com/users/danieldaquino/repos", + "events_url": "https://api.github.com/users/danieldaquino/events{/privacy}", + "received_events_url": "https://api.github.com/users/danieldaquino/received_events", + "type": "User", + "site_admin": false + } + ], + "milestone": { + "url": "https://api.github.com/repos/damus-io/damus/milestones/14", + "html_url": "https://github.com/damus-io/damus/milestone/14", + "labels_url": "https://api.github.com/repos/damus-io/damus/milestones/14/labels", + "id": 10536809, + "node_id": "MI_kwDOHHF5A84AoMdp", + "number": 14, + "title": "1.8 post Madeira: UX/UI/Design focus", + "description": "", + "creator": { + "login": "alltheseas", + "id": 64376233, + "node_id": "MDQ6VXNlcjY0Mzc2MjMz", + "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/alltheseas", + "html_url": "https://github.com/alltheseas", + "followers_url": "https://api.github.com/users/alltheseas/followers", + "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", + "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", + "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", + "organizations_url": "https://api.github.com/users/alltheseas/orgs", + "repos_url": "https://api.github.com/users/alltheseas/repos", + "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", + "received_events_url": "https://api.github.com/users/alltheseas/received_events", + "type": "User", + "site_admin": false + }, + "open_issues": 13, + "closed_issues": 1, + "state": "open", + "created_at": "2024-02-09T17:16:56Z", + "updated_at": "2024-03-20T15:28:11Z", + "due_on": null, + "closed_at": null + }, + "comments": 15, + "created_at": "2024-03-19T02:36:01Z", + "updated_at": "2024-03-21T07:48:12Z", + "closed_at": null, + "author_association": "COLLABORATOR", + "active_lock_reason": null, + "body": "Unclear if related to slash relays issues\n\nUsers shawn and karnage cannot remove relays. I am not sure how to troubleshoot @danieldaquino \n\nhttps://damus.io/nevent1qqsvx5pc0023njqqq78y9rf9xcsahsjg7lxvawl7ggmcyyp8wvjrmzqprpmhxue69uhhyetvv9ujumn0wd68yct5dyhxxmmdqyvhwumn8ghj7ur4wfshv6tyvyhxummnw3ezumrpdejqzxnhwden5te0wfjkccte9ehhyctwvajhq6tvdshxgetkqy2hwumn8ghj7mn0wd68ytndd9kx7afwd3hkc4ndht4\n\nhttps://damus.io/nevent1qqsrhpw78jsq2rs00sqct6lrdxjd0g0ga3vthcuftsrylzjqwakz8pqpr9mhxue69uhhwetvvdhk6efwdehhxarj9emkjmn99uq32amnwvaz7tm9v3jkutnwdaehgu3wd3skueqpr3mhxue69uhkummnw3ezuumgv9mku7t9v9nk2u3wdejhgtcpzpmhxue69uhkummnw3ezuamfdejs9rgfx6", + "reactions": { + "url": "https://api.github.com/repos/damus-io/damus/issues/2072/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/2072/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + "comment": { + "user": "karnagebitcoin", + "created_at": "2024-03-20T03:28:26Z", + "updated_at": "2024-03-20T03:28:26Z", + "body": "I am in the same boat.\r\n\r\n1. Unable to edit relays in damus\r\n2. Deleted and reset all relays in Snort without forward slash\r\n3. Deleted Damus entirely\r\n4. Reinstalled Damus\r\n5. Got back in, see the same old relays\r\n\r\nIs Damus caching my profile and fetching old relay selection? It seems to be the case. Despite having new updated relays, i'm still seeing the old ones, and this prevents me from doing anything on Damus other than reading notes." + } + }, + { + "issue": { + "url": "https://api.github.com/repos/damus-io/damus/issues/2072", + "repository_url": "https://api.github.com/repos/damus-io/damus", + "labels_url": "https://api.github.com/repos/damus-io/damus/issues/2072/labels{/name}", + "comments_url": "https://api.github.com/repos/damus-io/damus/issues/2072/comments", + "events_url": "https://api.github.com/repos/damus-io/damus/issues/2072/events", + "html_url": "https://github.com/damus-io/damus/issues/2072", + "id": 2193879241, + "node_id": "I_kwDOHHF5A86Cw_DJ", + "number": 2072, + "title": "Issues with disconnecting relays [100,000 sats]", + "user": { + "login": "alltheseas", + "id": 64376233, + "node_id": "MDQ6VXNlcjY0Mzc2MjMz", + "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/alltheseas", + "html_url": "https://github.com/alltheseas", + "followers_url": "https://api.github.com/users/alltheseas/followers", + "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", + "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", + "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", + "organizations_url": "https://api.github.com/users/alltheseas/orgs", + "repos_url": "https://api.github.com/users/alltheseas/repos", + "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", + "received_events_url": "https://api.github.com/users/alltheseas/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "id": 3994718396, + "node_id": "LA_kwDOHHF5A87uGpC8", + "url": "https://api.github.com/repos/damus-io/damus/labels/bug", + "name": "bug", + "color": "d73a4a", + "default": true, + "description": "Something is not working, or not working as intended" + }, + { + "id": 5667341106, + "node_id": "LA_kwDOHHF5A88AAAABUczDMg", + "url": "https://api.github.com/repos/damus-io/damus/labels/bounty", + "name": "bounty", + "color": "D93F0B", + "default": false, + "description": "Sats" + }, + { + "id": 6219108520, + "node_id": "LA_kwDOHHF5A88AAAABcrAQqA", + "url": "https://api.github.com/repos/damus-io/damus/labels/relay", + "name": "relay", + "color": "c2e0c6", + "default": false, + "description": "" + }, + { + "id": 6495338883, + "node_id": "LA_kwDOHHF5A88AAAABgycBgw", + "url": "https://api.github.com/repos/damus-io/damus/labels/1.7", + "name": "1.7", + "color": "98EE28", + "default": false, + "description": "" + }, + { + "id": 6718343473, + "node_id": "LA_kwDOHHF5A88AAAABkHHJMQ", + "url": "https://api.github.com/repos/damus-io/damus/labels/meme", + "name": "meme", + "color": "98247E", + "default": false, + "description": "" + } + ], + "state": "open", + "locked": false, + "assignee": { + "login": "danieldaquino", + "id": 24692108, + "node_id": "MDQ6VXNlcjI0NjkyMTA4", + "avatar_url": "https://avatars.githubusercontent.com/u/24692108?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/danieldaquino", + "html_url": "https://github.com/danieldaquino", + "followers_url": "https://api.github.com/users/danieldaquino/followers", + "following_url": "https://api.github.com/users/danieldaquino/following{/other_user}", + "gists_url": "https://api.github.com/users/danieldaquino/gists{/gist_id}", + "starred_url": "https://api.github.com/users/danieldaquino/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/danieldaquino/subscriptions", + "organizations_url": "https://api.github.com/users/danieldaquino/orgs", + "repos_url": "https://api.github.com/users/danieldaquino/repos", + "events_url": "https://api.github.com/users/danieldaquino/events{/privacy}", + "received_events_url": "https://api.github.com/users/danieldaquino/received_events", + "type": "User", + "site_admin": false + }, + "assignees": [ + { + "login": "danieldaquino", + "id": 24692108, + "node_id": "MDQ6VXNlcjI0NjkyMTA4", + "avatar_url": "https://avatars.githubusercontent.com/u/24692108?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/danieldaquino", + "html_url": "https://github.com/danieldaquino", + "followers_url": "https://api.github.com/users/danieldaquino/followers", + "following_url": "https://api.github.com/users/danieldaquino/following{/other_user}", + "gists_url": "https://api.github.com/users/danieldaquino/gists{/gist_id}", + "starred_url": "https://api.github.com/users/danieldaquino/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/danieldaquino/subscriptions", + "organizations_url": "https://api.github.com/users/danieldaquino/orgs", + "repos_url": "https://api.github.com/users/danieldaquino/repos", + "events_url": "https://api.github.com/users/danieldaquino/events{/privacy}", + "received_events_url": "https://api.github.com/users/danieldaquino/received_events", + "type": "User", + "site_admin": false + } + ], + "milestone": { + "url": "https://api.github.com/repos/damus-io/damus/milestones/14", + "html_url": "https://github.com/damus-io/damus/milestone/14", + "labels_url": "https://api.github.com/repos/damus-io/damus/milestones/14/labels", + "id": 10536809, + "node_id": "MI_kwDOHHF5A84AoMdp", + "number": 14, + "title": "1.8 post Madeira: UX/UI/Design focus", + "description": "", + "creator": { + "login": "alltheseas", + "id": 64376233, + "node_id": "MDQ6VXNlcjY0Mzc2MjMz", + "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/alltheseas", + "html_url": "https://github.com/alltheseas", + "followers_url": "https://api.github.com/users/alltheseas/followers", + "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", + "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", + "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", + "organizations_url": "https://api.github.com/users/alltheseas/orgs", + "repos_url": "https://api.github.com/users/alltheseas/repos", + "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", + "received_events_url": "https://api.github.com/users/alltheseas/received_events", + "type": "User", + "site_admin": false + }, + "open_issues": 13, + "closed_issues": 1, + "state": "open", + "created_at": "2024-02-09T17:16:56Z", + "updated_at": "2024-03-20T15:28:11Z", + "due_on": null, + "closed_at": null + }, + "comments": 15, + "created_at": "2024-03-19T02:36:01Z", + "updated_at": "2024-03-21T07:48:12Z", + "closed_at": null, + "author_association": "COLLABORATOR", + "active_lock_reason": null, + "body": "Unclear if related to slash relays issues\n\nUsers shawn and karnage cannot remove relays. I am not sure how to troubleshoot @danieldaquino \n\nhttps://damus.io/nevent1qqsvx5pc0023njqqq78y9rf9xcsahsjg7lxvawl7ggmcyyp8wvjrmzqprpmhxue69uhhyetvv9ujumn0wd68yct5dyhxxmmdqyvhwumn8ghj7ur4wfshv6tyvyhxummnw3ezumrpdejqzxnhwden5te0wfjkccte9ehhyctwvajhq6tvdshxgetkqy2hwumn8ghj7mn0wd68ytndd9kx7afwd3hkc4ndht4\n\nhttps://damus.io/nevent1qqsrhpw78jsq2rs00sqct6lrdxjd0g0ga3vthcuftsrylzjqwakz8pqpr9mhxue69uhhwetvvdhk6efwdehhxarj9emkjmn99uq32amnwvaz7tm9v3jkutnwdaehgu3wd3skueqpr3mhxue69uhkummnw3ezuumgv9mku7t9v9nk2u3wdejhgtcpzpmhxue69uhkummnw3ezuamfdejs9rgfx6", + "reactions": { + "url": "https://api.github.com/repos/damus-io/damus/issues/2072/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/2072/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + "comment": { + "user": "karnagebitcoin", + "created_at": "2024-03-20T03:29:36Z", + "updated_at": "2024-03-20T03:29:36Z", + "body": "Adding 100,000 sat bounty to fix this." + } + }, + { + "issue": { + "url": "https://api.github.com/repos/damus-io/damus/issues/2072", + "repository_url": "https://api.github.com/repos/damus-io/damus", + "labels_url": "https://api.github.com/repos/damus-io/damus/issues/2072/labels{/name}", + "comments_url": "https://api.github.com/repos/damus-io/damus/issues/2072/comments", + "events_url": "https://api.github.com/repos/damus-io/damus/issues/2072/events", + "html_url": "https://github.com/damus-io/damus/issues/2072", + "id": 2193879241, + "node_id": "I_kwDOHHF5A86Cw_DJ", + "number": 2072, + "title": "Issues with disconnecting relays [100,000 sats]", + "user": { + "login": "alltheseas", + "id": 64376233, + "node_id": "MDQ6VXNlcjY0Mzc2MjMz", + "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/alltheseas", + "html_url": "https://github.com/alltheseas", + "followers_url": "https://api.github.com/users/alltheseas/followers", + "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", + "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", + "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", + "organizations_url": "https://api.github.com/users/alltheseas/orgs", + "repos_url": "https://api.github.com/users/alltheseas/repos", + "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", + "received_events_url": "https://api.github.com/users/alltheseas/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "id": 3994718396, + "node_id": "LA_kwDOHHF5A87uGpC8", + "url": "https://api.github.com/repos/damus-io/damus/labels/bug", + "name": "bug", + "color": "d73a4a", + "default": true, + "description": "Something is not working, or not working as intended" + }, + { + "id": 5667341106, + "node_id": "LA_kwDOHHF5A88AAAABUczDMg", + "url": "https://api.github.com/repos/damus-io/damus/labels/bounty", + "name": "bounty", + "color": "D93F0B", + "default": false, + "description": "Sats" + }, + { + "id": 6219108520, + "node_id": "LA_kwDOHHF5A88AAAABcrAQqA", + "url": "https://api.github.com/repos/damus-io/damus/labels/relay", + "name": "relay", + "color": "c2e0c6", + "default": false, + "description": "" + }, + { + "id": 6495338883, + "node_id": "LA_kwDOHHF5A88AAAABgycBgw", + "url": "https://api.github.com/repos/damus-io/damus/labels/1.7", + "name": "1.7", + "color": "98EE28", + "default": false, + "description": "" + }, + { + "id": 6718343473, + "node_id": "LA_kwDOHHF5A88AAAABkHHJMQ", + "url": "https://api.github.com/repos/damus-io/damus/labels/meme", + "name": "meme", + "color": "98247E", + "default": false, + "description": "" + } + ], + "state": "open", + "locked": false, + "assignee": { + "login": "danieldaquino", + "id": 24692108, + "node_id": "MDQ6VXNlcjI0NjkyMTA4", + "avatar_url": "https://avatars.githubusercontent.com/u/24692108?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/danieldaquino", + "html_url": "https://github.com/danieldaquino", + "followers_url": "https://api.github.com/users/danieldaquino/followers", + "following_url": "https://api.github.com/users/danieldaquino/following{/other_user}", + "gists_url": "https://api.github.com/users/danieldaquino/gists{/gist_id}", + "starred_url": "https://api.github.com/users/danieldaquino/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/danieldaquino/subscriptions", + "organizations_url": "https://api.github.com/users/danieldaquino/orgs", + "repos_url": "https://api.github.com/users/danieldaquino/repos", + "events_url": "https://api.github.com/users/danieldaquino/events{/privacy}", + "received_events_url": "https://api.github.com/users/danieldaquino/received_events", + "type": "User", + "site_admin": false + }, + "assignees": [ + { + "login": "danieldaquino", + "id": 24692108, + "node_id": "MDQ6VXNlcjI0NjkyMTA4", + "avatar_url": "https://avatars.githubusercontent.com/u/24692108?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/danieldaquino", + "html_url": "https://github.com/danieldaquino", + "followers_url": "https://api.github.com/users/danieldaquino/followers", + "following_url": "https://api.github.com/users/danieldaquino/following{/other_user}", + "gists_url": "https://api.github.com/users/danieldaquino/gists{/gist_id}", + "starred_url": "https://api.github.com/users/danieldaquino/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/danieldaquino/subscriptions", + "organizations_url": "https://api.github.com/users/danieldaquino/orgs", + "repos_url": "https://api.github.com/users/danieldaquino/repos", + "events_url": "https://api.github.com/users/danieldaquino/events{/privacy}", + "received_events_url": "https://api.github.com/users/danieldaquino/received_events", + "type": "User", + "site_admin": false + } + ], + "milestone": { + "url": "https://api.github.com/repos/damus-io/damus/milestones/14", + "html_url": "https://github.com/damus-io/damus/milestone/14", + "labels_url": "https://api.github.com/repos/damus-io/damus/milestones/14/labels", + "id": 10536809, + "node_id": "MI_kwDOHHF5A84AoMdp", + "number": 14, + "title": "1.8 post Madeira: UX/UI/Design focus", + "description": "", + "creator": { + "login": "alltheseas", + "id": 64376233, + "node_id": "MDQ6VXNlcjY0Mzc2MjMz", + "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/alltheseas", + "html_url": "https://github.com/alltheseas", + "followers_url": "https://api.github.com/users/alltheseas/followers", + "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", + "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", + "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", + "organizations_url": "https://api.github.com/users/alltheseas/orgs", + "repos_url": "https://api.github.com/users/alltheseas/repos", + "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", + "received_events_url": "https://api.github.com/users/alltheseas/received_events", + "type": "User", + "site_admin": false + }, + "open_issues": 13, + "closed_issues": 1, + "state": "open", + "created_at": "2024-02-09T17:16:56Z", + "updated_at": "2024-03-20T15:28:11Z", + "due_on": null, + "closed_at": null + }, + "comments": 15, + "created_at": "2024-03-19T02:36:01Z", + "updated_at": "2024-03-21T07:48:12Z", + "closed_at": null, + "author_association": "COLLABORATOR", + "active_lock_reason": null, + "body": "Unclear if related to slash relays issues\n\nUsers shawn and karnage cannot remove relays. I am not sure how to troubleshoot @danieldaquino \n\nhttps://damus.io/nevent1qqsvx5pc0023njqqq78y9rf9xcsahsjg7lxvawl7ggmcyyp8wvjrmzqprpmhxue69uhhyetvv9ujumn0wd68yct5dyhxxmmdqyvhwumn8ghj7ur4wfshv6tyvyhxummnw3ezumrpdejqzxnhwden5te0wfjkccte9ehhyctwvajhq6tvdshxgetkqy2hwumn8ghj7mn0wd68ytndd9kx7afwd3hkc4ndht4\n\nhttps://damus.io/nevent1qqsrhpw78jsq2rs00sqct6lrdxjd0g0ga3vthcuftsrylzjqwakz8pqpr9mhxue69uhhwetvvdhk6efwdehhxarj9emkjmn99uq32amnwvaz7tm9v3jkutnwdaehgu3wd3skueqpr3mhxue69uhkummnw3ezuumgv9mku7t9v9nk2u3wdejhgtcpzpmhxue69uhkummnw3ezuamfdejs9rgfx6", + "reactions": { + "url": "https://api.github.com/repos/damus-io/damus/issues/2072/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/2072/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + "comment": { + "user": "karnagebitcoin", + "created_at": "2024-03-20T03:38:41Z", + "updated_at": "2024-03-20T03:38:41Z", + "body": "This seems to have happened with the update to 1.7x So.. whatever code difference was introduced there is probably the culprit. " + } + }, + { + "issue": { + "url": "https://api.github.com/repos/damus-io/damus/issues/2072", + "repository_url": "https://api.github.com/repos/damus-io/damus", + "labels_url": "https://api.github.com/repos/damus-io/damus/issues/2072/labels{/name}", + "comments_url": "https://api.github.com/repos/damus-io/damus/issues/2072/comments", + "events_url": "https://api.github.com/repos/damus-io/damus/issues/2072/events", + "html_url": "https://github.com/damus-io/damus/issues/2072", + "id": 2193879241, + "node_id": "I_kwDOHHF5A86Cw_DJ", + "number": 2072, + "title": "Issues with disconnecting relays [100,000 sats]", + "user": { + "login": "alltheseas", + "id": 64376233, + "node_id": "MDQ6VXNlcjY0Mzc2MjMz", + "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/alltheseas", + "html_url": "https://github.com/alltheseas", + "followers_url": "https://api.github.com/users/alltheseas/followers", + "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", + "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", + "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", + "organizations_url": "https://api.github.com/users/alltheseas/orgs", + "repos_url": "https://api.github.com/users/alltheseas/repos", + "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", + "received_events_url": "https://api.github.com/users/alltheseas/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "id": 3994718396, + "node_id": "LA_kwDOHHF5A87uGpC8", + "url": "https://api.github.com/repos/damus-io/damus/labels/bug", + "name": "bug", + "color": "d73a4a", + "default": true, + "description": "Something is not working, or not working as intended" + }, + { + "id": 5667341106, + "node_id": "LA_kwDOHHF5A88AAAABUczDMg", + "url": "https://api.github.com/repos/damus-io/damus/labels/bounty", + "name": "bounty", + "color": "D93F0B", + "default": false, + "description": "Sats" + }, + { + "id": 6219108520, + "node_id": "LA_kwDOHHF5A88AAAABcrAQqA", + "url": "https://api.github.com/repos/damus-io/damus/labels/relay", + "name": "relay", + "color": "c2e0c6", + "default": false, + "description": "" + }, + { + "id": 6495338883, + "node_id": "LA_kwDOHHF5A88AAAABgycBgw", + "url": "https://api.github.com/repos/damus-io/damus/labels/1.7", + "name": "1.7", + "color": "98EE28", + "default": false, + "description": "" + }, + { + "id": 6718343473, + "node_id": "LA_kwDOHHF5A88AAAABkHHJMQ", + "url": "https://api.github.com/repos/damus-io/damus/labels/meme", + "name": "meme", + "color": "98247E", + "default": false, + "description": "" + } + ], + "state": "open", + "locked": false, + "assignee": { + "login": "danieldaquino", + "id": 24692108, + "node_id": "MDQ6VXNlcjI0NjkyMTA4", + "avatar_url": "https://avatars.githubusercontent.com/u/24692108?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/danieldaquino", + "html_url": "https://github.com/danieldaquino", + "followers_url": "https://api.github.com/users/danieldaquino/followers", + "following_url": "https://api.github.com/users/danieldaquino/following{/other_user}", + "gists_url": "https://api.github.com/users/danieldaquino/gists{/gist_id}", + "starred_url": "https://api.github.com/users/danieldaquino/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/danieldaquino/subscriptions", + "organizations_url": "https://api.github.com/users/danieldaquino/orgs", + "repos_url": "https://api.github.com/users/danieldaquino/repos", + "events_url": "https://api.github.com/users/danieldaquino/events{/privacy}", + "received_events_url": "https://api.github.com/users/danieldaquino/received_events", + "type": "User", + "site_admin": false + }, + "assignees": [ + { + "login": "danieldaquino", + "id": 24692108, + "node_id": "MDQ6VXNlcjI0NjkyMTA4", + "avatar_url": "https://avatars.githubusercontent.com/u/24692108?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/danieldaquino", + "html_url": "https://github.com/danieldaquino", + "followers_url": "https://api.github.com/users/danieldaquino/followers", + "following_url": "https://api.github.com/users/danieldaquino/following{/other_user}", + "gists_url": "https://api.github.com/users/danieldaquino/gists{/gist_id}", + "starred_url": "https://api.github.com/users/danieldaquino/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/danieldaquino/subscriptions", + "organizations_url": "https://api.github.com/users/danieldaquino/orgs", + "repos_url": "https://api.github.com/users/danieldaquino/repos", + "events_url": "https://api.github.com/users/danieldaquino/events{/privacy}", + "received_events_url": "https://api.github.com/users/danieldaquino/received_events", + "type": "User", + "site_admin": false + } + ], + "milestone": { + "url": "https://api.github.com/repos/damus-io/damus/milestones/14", + "html_url": "https://github.com/damus-io/damus/milestone/14", + "labels_url": "https://api.github.com/repos/damus-io/damus/milestones/14/labels", + "id": 10536809, + "node_id": "MI_kwDOHHF5A84AoMdp", + "number": 14, + "title": "1.8 post Madeira: UX/UI/Design focus", + "description": "", + "creator": { + "login": "alltheseas", + "id": 64376233, + "node_id": "MDQ6VXNlcjY0Mzc2MjMz", + "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/alltheseas", + "html_url": "https://github.com/alltheseas", + "followers_url": "https://api.github.com/users/alltheseas/followers", + "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", + "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", + "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", + "organizations_url": "https://api.github.com/users/alltheseas/orgs", + "repos_url": "https://api.github.com/users/alltheseas/repos", + "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", + "received_events_url": "https://api.github.com/users/alltheseas/received_events", + "type": "User", + "site_admin": false + }, + "open_issues": 13, + "closed_issues": 1, + "state": "open", + "created_at": "2024-02-09T17:16:56Z", + "updated_at": "2024-03-20T15:28:11Z", + "due_on": null, + "closed_at": null + }, + "comments": 15, + "created_at": "2024-03-19T02:36:01Z", + "updated_at": "2024-03-21T07:48:12Z", + "closed_at": null, + "author_association": "COLLABORATOR", + "active_lock_reason": null, + "body": "Unclear if related to slash relays issues\n\nUsers shawn and karnage cannot remove relays. I am not sure how to troubleshoot @danieldaquino \n\nhttps://damus.io/nevent1qqsvx5pc0023njqqq78y9rf9xcsahsjg7lxvawl7ggmcyyp8wvjrmzqprpmhxue69uhhyetvv9ujumn0wd68yct5dyhxxmmdqyvhwumn8ghj7ur4wfshv6tyvyhxummnw3ezumrpdejqzxnhwden5te0wfjkccte9ehhyctwvajhq6tvdshxgetkqy2hwumn8ghj7mn0wd68ytndd9kx7afwd3hkc4ndht4\n\nhttps://damus.io/nevent1qqsrhpw78jsq2rs00sqct6lrdxjd0g0ga3vthcuftsrylzjqwakz8pqpr9mhxue69uhhwetvvdhk6efwdehhxarj9emkjmn99uq32amnwvaz7tm9v3jkutnwdaehgu3wd3skueqpr3mhxue69uhkummnw3ezuumgv9mku7t9v9nk2u3wdejhgtcpzpmhxue69uhkummnw3ezuamfdejs9rgfx6", + "reactions": { + "url": "https://api.github.com/repos/damus-io/damus/issues/2072/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/2072/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + "comment": { + "user": "karnagebitcoin", + "created_at": "2024-03-20T10:18:05Z", + "updated_at": "2024-03-20T10:18:05Z", + "body": "Update: I am able to add new relays, but I cannot delete the old ones. I also cannot click on them. It's as if they are in the \"disabled\" state and I can't interact with them. Trying to add the same relay gives me duplicate relay error." + } + }, + { + "issue": { + "url": "https://api.github.com/repos/damus-io/damus/issues/2072", + "repository_url": "https://api.github.com/repos/damus-io/damus", + "labels_url": "https://api.github.com/repos/damus-io/damus/issues/2072/labels{/name}", + "comments_url": "https://api.github.com/repos/damus-io/damus/issues/2072/comments", + "events_url": "https://api.github.com/repos/damus-io/damus/issues/2072/events", + "html_url": "https://github.com/damus-io/damus/issues/2072", + "id": 2193879241, + "node_id": "I_kwDOHHF5A86Cw_DJ", + "number": 2072, + "title": "Issues with disconnecting relays [100,000 sats]", + "user": { + "login": "alltheseas", + "id": 64376233, + "node_id": "MDQ6VXNlcjY0Mzc2MjMz", + "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/alltheseas", + "html_url": "https://github.com/alltheseas", + "followers_url": "https://api.github.com/users/alltheseas/followers", + "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", + "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", + "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", + "organizations_url": "https://api.github.com/users/alltheseas/orgs", + "repos_url": "https://api.github.com/users/alltheseas/repos", + "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", + "received_events_url": "https://api.github.com/users/alltheseas/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "id": 3994718396, + "node_id": "LA_kwDOHHF5A87uGpC8", + "url": "https://api.github.com/repos/damus-io/damus/labels/bug", + "name": "bug", + "color": "d73a4a", + "default": true, + "description": "Something is not working, or not working as intended" + }, + { + "id": 5667341106, + "node_id": "LA_kwDOHHF5A88AAAABUczDMg", + "url": "https://api.github.com/repos/damus-io/damus/labels/bounty", + "name": "bounty", + "color": "D93F0B", + "default": false, + "description": "Sats" + }, + { + "id": 6219108520, + "node_id": "LA_kwDOHHF5A88AAAABcrAQqA", + "url": "https://api.github.com/repos/damus-io/damus/labels/relay", + "name": "relay", + "color": "c2e0c6", + "default": false, + "description": "" + }, + { + "id": 6495338883, + "node_id": "LA_kwDOHHF5A88AAAABgycBgw", + "url": "https://api.github.com/repos/damus-io/damus/labels/1.7", + "name": "1.7", + "color": "98EE28", + "default": false, + "description": "" + }, + { + "id": 6718343473, + "node_id": "LA_kwDOHHF5A88AAAABkHHJMQ", + "url": "https://api.github.com/repos/damus-io/damus/labels/meme", + "name": "meme", + "color": "98247E", + "default": false, + "description": "" + } + ], + "state": "open", + "locked": false, + "assignee": { + "login": "danieldaquino", + "id": 24692108, + "node_id": "MDQ6VXNlcjI0NjkyMTA4", + "avatar_url": "https://avatars.githubusercontent.com/u/24692108?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/danieldaquino", + "html_url": "https://github.com/danieldaquino", + "followers_url": "https://api.github.com/users/danieldaquino/followers", + "following_url": "https://api.github.com/users/danieldaquino/following{/other_user}", + "gists_url": "https://api.github.com/users/danieldaquino/gists{/gist_id}", + "starred_url": "https://api.github.com/users/danieldaquino/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/danieldaquino/subscriptions", + "organizations_url": "https://api.github.com/users/danieldaquino/orgs", + "repos_url": "https://api.github.com/users/danieldaquino/repos", + "events_url": "https://api.github.com/users/danieldaquino/events{/privacy}", + "received_events_url": "https://api.github.com/users/danieldaquino/received_events", + "type": "User", + "site_admin": false + }, + "assignees": [ + { + "login": "danieldaquino", + "id": 24692108, + "node_id": "MDQ6VXNlcjI0NjkyMTA4", + "avatar_url": "https://avatars.githubusercontent.com/u/24692108?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/danieldaquino", + "html_url": "https://github.com/danieldaquino", + "followers_url": "https://api.github.com/users/danieldaquino/followers", + "following_url": "https://api.github.com/users/danieldaquino/following{/other_user}", + "gists_url": "https://api.github.com/users/danieldaquino/gists{/gist_id}", + "starred_url": "https://api.github.com/users/danieldaquino/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/danieldaquino/subscriptions", + "organizations_url": "https://api.github.com/users/danieldaquino/orgs", + "repos_url": "https://api.github.com/users/danieldaquino/repos", + "events_url": "https://api.github.com/users/danieldaquino/events{/privacy}", + "received_events_url": "https://api.github.com/users/danieldaquino/received_events", + "type": "User", + "site_admin": false + } + ], + "milestone": { + "url": "https://api.github.com/repos/damus-io/damus/milestones/14", + "html_url": "https://github.com/damus-io/damus/milestone/14", + "labels_url": "https://api.github.com/repos/damus-io/damus/milestones/14/labels", + "id": 10536809, + "node_id": "MI_kwDOHHF5A84AoMdp", + "number": 14, + "title": "1.8 post Madeira: UX/UI/Design focus", + "description": "", + "creator": { + "login": "alltheseas", + "id": 64376233, + "node_id": "MDQ6VXNlcjY0Mzc2MjMz", + "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/alltheseas", + "html_url": "https://github.com/alltheseas", + "followers_url": "https://api.github.com/users/alltheseas/followers", + "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", + "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", + "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", + "organizations_url": "https://api.github.com/users/alltheseas/orgs", + "repos_url": "https://api.github.com/users/alltheseas/repos", + "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", + "received_events_url": "https://api.github.com/users/alltheseas/received_events", + "type": "User", + "site_admin": false + }, + "open_issues": 13, + "closed_issues": 1, + "state": "open", + "created_at": "2024-02-09T17:16:56Z", + "updated_at": "2024-03-20T15:28:11Z", + "due_on": null, + "closed_at": null + }, + "comments": 15, + "created_at": "2024-03-19T02:36:01Z", + "updated_at": "2024-03-21T07:48:12Z", + "closed_at": null, + "author_association": "COLLABORATOR", + "active_lock_reason": null, + "body": "Unclear if related to slash relays issues\n\nUsers shawn and karnage cannot remove relays. I am not sure how to troubleshoot @danieldaquino \n\nhttps://damus.io/nevent1qqsvx5pc0023njqqq78y9rf9xcsahsjg7lxvawl7ggmcyyp8wvjrmzqprpmhxue69uhhyetvv9ujumn0wd68yct5dyhxxmmdqyvhwumn8ghj7ur4wfshv6tyvyhxummnw3ezumrpdejqzxnhwden5te0wfjkccte9ehhyctwvajhq6tvdshxgetkqy2hwumn8ghj7mn0wd68ytndd9kx7afwd3hkc4ndht4\n\nhttps://damus.io/nevent1qqsrhpw78jsq2rs00sqct6lrdxjd0g0ga3vthcuftsrylzjqwakz8pqpr9mhxue69uhhwetvvdhk6efwdehhxarj9emkjmn99uq32amnwvaz7tm9v3jkutnwdaehgu3wd3skueqpr3mhxue69uhkummnw3ezuumgv9mku7t9v9nk2u3wdejhgtcpzpmhxue69uhkummnw3ezuamfdejs9rgfx6", + "reactions": { + "url": "https://api.github.com/repos/damus-io/damus/issues/2072/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/2072/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + "comment": { + "user": "shawnyeager", + "created_at": "2024-03-20T13:20:32Z", + "updated_at": "2024-03-20T13:21:12Z", + "body": "Shawn, here. This does seem to correspond with the 1.7 release. I’m experiencing the same problems as @karnagebitcoin notes:\r\n\r\n1. I’m unable to disconnect or delete relays. \r\n2. Relays with trailing slashes do not connect, but I can’t fix them in-app (see above).\r\n3. No relay changes made in Primal, Snort, or metadata.nostr.com reflect in Damus.\r\n\r\nI am able to post. " + } + }, + { + "issue": { + "url": "https://api.github.com/repos/damus-io/damus/issues/2072", + "repository_url": "https://api.github.com/repos/damus-io/damus", + "labels_url": "https://api.github.com/repos/damus-io/damus/issues/2072/labels{/name}", + "comments_url": "https://api.github.com/repos/damus-io/damus/issues/2072/comments", + "events_url": "https://api.github.com/repos/damus-io/damus/issues/2072/events", + "html_url": "https://github.com/damus-io/damus/issues/2072", + "id": 2193879241, + "node_id": "I_kwDOHHF5A86Cw_DJ", + "number": 2072, + "title": "Issues with disconnecting relays [100,000 sats]", + "user": { + "login": "alltheseas", + "id": 64376233, + "node_id": "MDQ6VXNlcjY0Mzc2MjMz", + "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/alltheseas", + "html_url": "https://github.com/alltheseas", + "followers_url": "https://api.github.com/users/alltheseas/followers", + "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", + "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", + "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", + "organizations_url": "https://api.github.com/users/alltheseas/orgs", + "repos_url": "https://api.github.com/users/alltheseas/repos", + "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", + "received_events_url": "https://api.github.com/users/alltheseas/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "id": 3994718396, + "node_id": "LA_kwDOHHF5A87uGpC8", + "url": "https://api.github.com/repos/damus-io/damus/labels/bug", + "name": "bug", + "color": "d73a4a", + "default": true, + "description": "Something is not working, or not working as intended" + }, + { + "id": 5667341106, + "node_id": "LA_kwDOHHF5A88AAAABUczDMg", + "url": "https://api.github.com/repos/damus-io/damus/labels/bounty", + "name": "bounty", + "color": "D93F0B", + "default": false, + "description": "Sats" + }, + { + "id": 6219108520, + "node_id": "LA_kwDOHHF5A88AAAABcrAQqA", + "url": "https://api.github.com/repos/damus-io/damus/labels/relay", + "name": "relay", + "color": "c2e0c6", + "default": false, + "description": "" + }, + { + "id": 6495338883, + "node_id": "LA_kwDOHHF5A88AAAABgycBgw", + "url": "https://api.github.com/repos/damus-io/damus/labels/1.7", + "name": "1.7", + "color": "98EE28", + "default": false, + "description": "" + }, + { + "id": 6718343473, + "node_id": "LA_kwDOHHF5A88AAAABkHHJMQ", + "url": "https://api.github.com/repos/damus-io/damus/labels/meme", + "name": "meme", + "color": "98247E", + "default": false, + "description": "" + } + ], + "state": "open", + "locked": false, + "assignee": { + "login": "danieldaquino", + "id": 24692108, + "node_id": "MDQ6VXNlcjI0NjkyMTA4", + "avatar_url": "https://avatars.githubusercontent.com/u/24692108?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/danieldaquino", + "html_url": "https://github.com/danieldaquino", + "followers_url": "https://api.github.com/users/danieldaquino/followers", + "following_url": "https://api.github.com/users/danieldaquino/following{/other_user}", + "gists_url": "https://api.github.com/users/danieldaquino/gists{/gist_id}", + "starred_url": "https://api.github.com/users/danieldaquino/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/danieldaquino/subscriptions", + "organizations_url": "https://api.github.com/users/danieldaquino/orgs", + "repos_url": "https://api.github.com/users/danieldaquino/repos", + "events_url": "https://api.github.com/users/danieldaquino/events{/privacy}", + "received_events_url": "https://api.github.com/users/danieldaquino/received_events", + "type": "User", + "site_admin": false + }, + "assignees": [ + { + "login": "danieldaquino", + "id": 24692108, + "node_id": "MDQ6VXNlcjI0NjkyMTA4", + "avatar_url": "https://avatars.githubusercontent.com/u/24692108?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/danieldaquino", + "html_url": "https://github.com/danieldaquino", + "followers_url": "https://api.github.com/users/danieldaquino/followers", + "following_url": "https://api.github.com/users/danieldaquino/following{/other_user}", + "gists_url": "https://api.github.com/users/danieldaquino/gists{/gist_id}", + "starred_url": "https://api.github.com/users/danieldaquino/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/danieldaquino/subscriptions", + "organizations_url": "https://api.github.com/users/danieldaquino/orgs", + "repos_url": "https://api.github.com/users/danieldaquino/repos", + "events_url": "https://api.github.com/users/danieldaquino/events{/privacy}", + "received_events_url": "https://api.github.com/users/danieldaquino/received_events", + "type": "User", + "site_admin": false + } + ], + "milestone": { + "url": "https://api.github.com/repos/damus-io/damus/milestones/14", + "html_url": "https://github.com/damus-io/damus/milestone/14", + "labels_url": "https://api.github.com/repos/damus-io/damus/milestones/14/labels", + "id": 10536809, + "node_id": "MI_kwDOHHF5A84AoMdp", + "number": 14, + "title": "1.8 post Madeira: UX/UI/Design focus", + "description": "", + "creator": { + "login": "alltheseas", + "id": 64376233, + "node_id": "MDQ6VXNlcjY0Mzc2MjMz", + "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/alltheseas", + "html_url": "https://github.com/alltheseas", + "followers_url": "https://api.github.com/users/alltheseas/followers", + "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", + "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", + "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", + "organizations_url": "https://api.github.com/users/alltheseas/orgs", + "repos_url": "https://api.github.com/users/alltheseas/repos", + "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", + "received_events_url": "https://api.github.com/users/alltheseas/received_events", + "type": "User", + "site_admin": false + }, + "open_issues": 13, + "closed_issues": 1, + "state": "open", + "created_at": "2024-02-09T17:16:56Z", + "updated_at": "2024-03-20T15:28:11Z", + "due_on": null, + "closed_at": null + }, + "comments": 15, + "created_at": "2024-03-19T02:36:01Z", + "updated_at": "2024-03-21T07:48:12Z", + "closed_at": null, + "author_association": "COLLABORATOR", + "active_lock_reason": null, + "body": "Unclear if related to slash relays issues\n\nUsers shawn and karnage cannot remove relays. I am not sure how to troubleshoot @danieldaquino \n\nhttps://damus.io/nevent1qqsvx5pc0023njqqq78y9rf9xcsahsjg7lxvawl7ggmcyyp8wvjrmzqprpmhxue69uhhyetvv9ujumn0wd68yct5dyhxxmmdqyvhwumn8ghj7ur4wfshv6tyvyhxummnw3ezumrpdejqzxnhwden5te0wfjkccte9ehhyctwvajhq6tvdshxgetkqy2hwumn8ghj7mn0wd68ytndd9kx7afwd3hkc4ndht4\n\nhttps://damus.io/nevent1qqsrhpw78jsq2rs00sqct6lrdxjd0g0ga3vthcuftsrylzjqwakz8pqpr9mhxue69uhhwetvvdhk6efwdehhxarj9emkjmn99uq32amnwvaz7tm9v3jkutnwdaehgu3wd3skueqpr3mhxue69uhkummnw3ezuumgv9mku7t9v9nk2u3wdejhgtcpzpmhxue69uhkummnw3ezuamfdejs9rgfx6", + "reactions": { + "url": "https://api.github.com/repos/damus-io/damus/issues/2072/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/2072/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + "comment": { + "user": "alltheseas", + "created_at": "2024-03-20T14:07:00Z", + "updated_at": "2024-03-20T14:07:00Z", + "body": "Report from a few weeks ago overlapping @shawnyeager and other ppl \r\n\r\nhttps://github.com/damus-io/damus/issues/2024" + } + }, + { + "issue": { + "url": "https://api.github.com/repos/damus-io/damus/issues/2072", + "repository_url": "https://api.github.com/repos/damus-io/damus", + "labels_url": "https://api.github.com/repos/damus-io/damus/issues/2072/labels{/name}", + "comments_url": "https://api.github.com/repos/damus-io/damus/issues/2072/comments", + "events_url": "https://api.github.com/repos/damus-io/damus/issues/2072/events", + "html_url": "https://github.com/damus-io/damus/issues/2072", + "id": 2193879241, + "node_id": "I_kwDOHHF5A86Cw_DJ", + "number": 2072, + "title": "Issues with disconnecting relays [100,000 sats]", + "user": { + "login": "alltheseas", + "id": 64376233, + "node_id": "MDQ6VXNlcjY0Mzc2MjMz", + "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/alltheseas", + "html_url": "https://github.com/alltheseas", + "followers_url": "https://api.github.com/users/alltheseas/followers", + "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", + "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", + "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", + "organizations_url": "https://api.github.com/users/alltheseas/orgs", + "repos_url": "https://api.github.com/users/alltheseas/repos", + "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", + "received_events_url": "https://api.github.com/users/alltheseas/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "id": 3994718396, + "node_id": "LA_kwDOHHF5A87uGpC8", + "url": "https://api.github.com/repos/damus-io/damus/labels/bug", + "name": "bug", + "color": "d73a4a", + "default": true, + "description": "Something is not working, or not working as intended" + }, + { + "id": 5667341106, + "node_id": "LA_kwDOHHF5A88AAAABUczDMg", + "url": "https://api.github.com/repos/damus-io/damus/labels/bounty", + "name": "bounty", + "color": "D93F0B", + "default": false, + "description": "Sats" + }, + { + "id": 6219108520, + "node_id": "LA_kwDOHHF5A88AAAABcrAQqA", + "url": "https://api.github.com/repos/damus-io/damus/labels/relay", + "name": "relay", + "color": "c2e0c6", + "default": false, + "description": "" + }, + { + "id": 6495338883, + "node_id": "LA_kwDOHHF5A88AAAABgycBgw", + "url": "https://api.github.com/repos/damus-io/damus/labels/1.7", + "name": "1.7", + "color": "98EE28", + "default": false, + "description": "" + }, + { + "id": 6718343473, + "node_id": "LA_kwDOHHF5A88AAAABkHHJMQ", + "url": "https://api.github.com/repos/damus-io/damus/labels/meme", + "name": "meme", + "color": "98247E", + "default": false, + "description": "" + } + ], + "state": "open", + "locked": false, + "assignee": { + "login": "danieldaquino", + "id": 24692108, + "node_id": "MDQ6VXNlcjI0NjkyMTA4", + "avatar_url": "https://avatars.githubusercontent.com/u/24692108?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/danieldaquino", + "html_url": "https://github.com/danieldaquino", + "followers_url": "https://api.github.com/users/danieldaquino/followers", + "following_url": "https://api.github.com/users/danieldaquino/following{/other_user}", + "gists_url": "https://api.github.com/users/danieldaquino/gists{/gist_id}", + "starred_url": "https://api.github.com/users/danieldaquino/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/danieldaquino/subscriptions", + "organizations_url": "https://api.github.com/users/danieldaquino/orgs", + "repos_url": "https://api.github.com/users/danieldaquino/repos", + "events_url": "https://api.github.com/users/danieldaquino/events{/privacy}", + "received_events_url": "https://api.github.com/users/danieldaquino/received_events", + "type": "User", + "site_admin": false + }, + "assignees": [ + { + "login": "danieldaquino", + "id": 24692108, + "node_id": "MDQ6VXNlcjI0NjkyMTA4", + "avatar_url": "https://avatars.githubusercontent.com/u/24692108?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/danieldaquino", + "html_url": "https://github.com/danieldaquino", + "followers_url": "https://api.github.com/users/danieldaquino/followers", + "following_url": "https://api.github.com/users/danieldaquino/following{/other_user}", + "gists_url": "https://api.github.com/users/danieldaquino/gists{/gist_id}", + "starred_url": "https://api.github.com/users/danieldaquino/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/danieldaquino/subscriptions", + "organizations_url": "https://api.github.com/users/danieldaquino/orgs", + "repos_url": "https://api.github.com/users/danieldaquino/repos", + "events_url": "https://api.github.com/users/danieldaquino/events{/privacy}", + "received_events_url": "https://api.github.com/users/danieldaquino/received_events", + "type": "User", + "site_admin": false + } + ], + "milestone": { + "url": "https://api.github.com/repos/damus-io/damus/milestones/14", + "html_url": "https://github.com/damus-io/damus/milestone/14", + "labels_url": "https://api.github.com/repos/damus-io/damus/milestones/14/labels", + "id": 10536809, + "node_id": "MI_kwDOHHF5A84AoMdp", + "number": 14, + "title": "1.8 post Madeira: UX/UI/Design focus", + "description": "", + "creator": { + "login": "alltheseas", + "id": 64376233, + "node_id": "MDQ6VXNlcjY0Mzc2MjMz", + "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/alltheseas", + "html_url": "https://github.com/alltheseas", + "followers_url": "https://api.github.com/users/alltheseas/followers", + "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", + "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", + "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", + "organizations_url": "https://api.github.com/users/alltheseas/orgs", + "repos_url": "https://api.github.com/users/alltheseas/repos", + "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", + "received_events_url": "https://api.github.com/users/alltheseas/received_events", + "type": "User", + "site_admin": false + }, + "open_issues": 13, + "closed_issues": 1, + "state": "open", + "created_at": "2024-02-09T17:16:56Z", + "updated_at": "2024-03-20T15:28:11Z", + "due_on": null, + "closed_at": null + }, + "comments": 15, + "created_at": "2024-03-19T02:36:01Z", + "updated_at": "2024-03-21T07:48:12Z", + "closed_at": null, + "author_association": "COLLABORATOR", + "active_lock_reason": null, + "body": "Unclear if related to slash relays issues\n\nUsers shawn and karnage cannot remove relays. I am not sure how to troubleshoot @danieldaquino \n\nhttps://damus.io/nevent1qqsvx5pc0023njqqq78y9rf9xcsahsjg7lxvawl7ggmcyyp8wvjrmzqprpmhxue69uhhyetvv9ujumn0wd68yct5dyhxxmmdqyvhwumn8ghj7ur4wfshv6tyvyhxummnw3ezumrpdejqzxnhwden5te0wfjkccte9ehhyctwvajhq6tvdshxgetkqy2hwumn8ghj7mn0wd68ytndd9kx7afwd3hkc4ndht4\n\nhttps://damus.io/nevent1qqsrhpw78jsq2rs00sqct6lrdxjd0g0ga3vthcuftsrylzjqwakz8pqpr9mhxue69uhhwetvvdhk6efwdehhxarj9emkjmn99uq32amnwvaz7tm9v3jkutnwdaehgu3wd3skueqpr3mhxue69uhkummnw3ezuumgv9mku7t9v9nk2u3wdejhgtcpzpmhxue69uhkummnw3ezuamfdejs9rgfx6", + "reactions": { + "url": "https://api.github.com/repos/damus-io/damus/issues/2072/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/2072/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + "comment": { + "user": "karnagebitcoin", + "created_at": "2024-03-20T14:34:47Z", + "updated_at": "2024-03-20T14:34:47Z", + "body": "I was finally able to fix my relays but it was the weirdest experience that doesn't follow any logic. Here's what I did / happened:\r\n\r\n1. I noticed none of my relays were clickable, so I wasn't even able to disconnect them. \r\n2. Then I added nos.lol and was able to finally publish because this relay was not on my list but I was now connected.\r\n3. Then Will said I may be using npub to publish, so I logged out and made sure to log in with nsec again. \r\n4. Same issues persisted, but the app then crashed and logged me out entirely. \r\n5. Logged in with nsec again, now my relays were gone, all but one (nostr.band remained). \r\n6. I added other relays that were not in the list anymore. They worked and connected.\r\n7. Then the first relay I added (nos.lol) somehow got the trailing slash back and was \"deactivated\" same as other old relays. \r\n\r\nThat's it. Seems like the app crashing fixed the stuck relays. No idea how to replicate for you guys." + } + }, + { + "issue": { + "url": "https://api.github.com/repos/damus-io/damus/issues/2072", + "repository_url": "https://api.github.com/repos/damus-io/damus", + "labels_url": "https://api.github.com/repos/damus-io/damus/issues/2072/labels{/name}", + "comments_url": "https://api.github.com/repos/damus-io/damus/issues/2072/comments", + "events_url": "https://api.github.com/repos/damus-io/damus/issues/2072/events", + "html_url": "https://github.com/damus-io/damus/issues/2072", + "id": 2193879241, + "node_id": "I_kwDOHHF5A86Cw_DJ", + "number": 2072, + "title": "Issues with disconnecting relays [100,000 sats]", + "user": { + "login": "alltheseas", + "id": 64376233, + "node_id": "MDQ6VXNlcjY0Mzc2MjMz", + "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/alltheseas", + "html_url": "https://github.com/alltheseas", + "followers_url": "https://api.github.com/users/alltheseas/followers", + "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", + "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", + "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", + "organizations_url": "https://api.github.com/users/alltheseas/orgs", + "repos_url": "https://api.github.com/users/alltheseas/repos", + "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", + "received_events_url": "https://api.github.com/users/alltheseas/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "id": 3994718396, + "node_id": "LA_kwDOHHF5A87uGpC8", + "url": "https://api.github.com/repos/damus-io/damus/labels/bug", + "name": "bug", + "color": "d73a4a", + "default": true, + "description": "Something is not working, or not working as intended" + }, + { + "id": 5667341106, + "node_id": "LA_kwDOHHF5A88AAAABUczDMg", + "url": "https://api.github.com/repos/damus-io/damus/labels/bounty", + "name": "bounty", + "color": "D93F0B", + "default": false, + "description": "Sats" + }, + { + "id": 6219108520, + "node_id": "LA_kwDOHHF5A88AAAABcrAQqA", + "url": "https://api.github.com/repos/damus-io/damus/labels/relay", + "name": "relay", + "color": "c2e0c6", + "default": false, + "description": "" + }, + { + "id": 6495338883, + "node_id": "LA_kwDOHHF5A88AAAABgycBgw", + "url": "https://api.github.com/repos/damus-io/damus/labels/1.7", + "name": "1.7", + "color": "98EE28", + "default": false, + "description": "" + }, + { + "id": 6718343473, + "node_id": "LA_kwDOHHF5A88AAAABkHHJMQ", + "url": "https://api.github.com/repos/damus-io/damus/labels/meme", + "name": "meme", + "color": "98247E", + "default": false, + "description": "" + } + ], + "state": "open", + "locked": false, + "assignee": { + "login": "danieldaquino", + "id": 24692108, + "node_id": "MDQ6VXNlcjI0NjkyMTA4", + "avatar_url": "https://avatars.githubusercontent.com/u/24692108?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/danieldaquino", + "html_url": "https://github.com/danieldaquino", + "followers_url": "https://api.github.com/users/danieldaquino/followers", + "following_url": "https://api.github.com/users/danieldaquino/following{/other_user}", + "gists_url": "https://api.github.com/users/danieldaquino/gists{/gist_id}", + "starred_url": "https://api.github.com/users/danieldaquino/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/danieldaquino/subscriptions", + "organizations_url": "https://api.github.com/users/danieldaquino/orgs", + "repos_url": "https://api.github.com/users/danieldaquino/repos", + "events_url": "https://api.github.com/users/danieldaquino/events{/privacy}", + "received_events_url": "https://api.github.com/users/danieldaquino/received_events", + "type": "User", + "site_admin": false + }, + "assignees": [ + { + "login": "danieldaquino", + "id": 24692108, + "node_id": "MDQ6VXNlcjI0NjkyMTA4", + "avatar_url": "https://avatars.githubusercontent.com/u/24692108?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/danieldaquino", + "html_url": "https://github.com/danieldaquino", + "followers_url": "https://api.github.com/users/danieldaquino/followers", + "following_url": "https://api.github.com/users/danieldaquino/following{/other_user}", + "gists_url": "https://api.github.com/users/danieldaquino/gists{/gist_id}", + "starred_url": "https://api.github.com/users/danieldaquino/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/danieldaquino/subscriptions", + "organizations_url": "https://api.github.com/users/danieldaquino/orgs", + "repos_url": "https://api.github.com/users/danieldaquino/repos", + "events_url": "https://api.github.com/users/danieldaquino/events{/privacy}", + "received_events_url": "https://api.github.com/users/danieldaquino/received_events", + "type": "User", + "site_admin": false + } + ], + "milestone": { + "url": "https://api.github.com/repos/damus-io/damus/milestones/14", + "html_url": "https://github.com/damus-io/damus/milestone/14", + "labels_url": "https://api.github.com/repos/damus-io/damus/milestones/14/labels", + "id": 10536809, + "node_id": "MI_kwDOHHF5A84AoMdp", + "number": 14, + "title": "1.8 post Madeira: UX/UI/Design focus", + "description": "", + "creator": { + "login": "alltheseas", + "id": 64376233, + "node_id": "MDQ6VXNlcjY0Mzc2MjMz", + "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/alltheseas", + "html_url": "https://github.com/alltheseas", + "followers_url": "https://api.github.com/users/alltheseas/followers", + "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", + "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", + "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", + "organizations_url": "https://api.github.com/users/alltheseas/orgs", + "repos_url": "https://api.github.com/users/alltheseas/repos", + "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", + "received_events_url": "https://api.github.com/users/alltheseas/received_events", + "type": "User", + "site_admin": false + }, + "open_issues": 13, + "closed_issues": 1, + "state": "open", + "created_at": "2024-02-09T17:16:56Z", + "updated_at": "2024-03-20T15:28:11Z", + "due_on": null, + "closed_at": null + }, + "comments": 15, + "created_at": "2024-03-19T02:36:01Z", + "updated_at": "2024-03-21T07:48:12Z", + "closed_at": null, + "author_association": "COLLABORATOR", + "active_lock_reason": null, + "body": "Unclear if related to slash relays issues\n\nUsers shawn and karnage cannot remove relays. I am not sure how to troubleshoot @danieldaquino \n\nhttps://damus.io/nevent1qqsvx5pc0023njqqq78y9rf9xcsahsjg7lxvawl7ggmcyyp8wvjrmzqprpmhxue69uhhyetvv9ujumn0wd68yct5dyhxxmmdqyvhwumn8ghj7ur4wfshv6tyvyhxummnw3ezumrpdejqzxnhwden5te0wfjkccte9ehhyctwvajhq6tvdshxgetkqy2hwumn8ghj7mn0wd68ytndd9kx7afwd3hkc4ndht4\n\nhttps://damus.io/nevent1qqsrhpw78jsq2rs00sqct6lrdxjd0g0ga3vthcuftsrylzjqwakz8pqpr9mhxue69uhhwetvvdhk6efwdehhxarj9emkjmn99uq32amnwvaz7tm9v3jkutnwdaehgu3wd3skueqpr3mhxue69uhkummnw3ezuumgv9mku7t9v9nk2u3wdejhgtcpzpmhxue69uhkummnw3ezuamfdejs9rgfx6", + "reactions": { + "url": "https://api.github.com/repos/damus-io/damus/issues/2072/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/2072/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + "comment": { + "user": "alltheseas", + "created_at": "2024-03-20T14:44:25Z", + "updated_at": "2024-03-20T14:44:25Z", + "body": "One more report https://damus.io/nevent1qqs9qday5knn83l70nz9fv9uzkq99wsats3wyalnacac7lyzgn942vgprfmhxue69uhhyetvv9ujumn0wd68yurvv438xtnrdaksz9mhwden5te0wfjkccte9e3h2unjv4h8gtnx095szynhwden5te0danxvcmgv95kutnsw43qzyrhwden5te0dehhxarj9emkjmn90243vp" + } + }, + { + "issue": { + "url": "https://api.github.com/repos/damus-io/damus/issues/2072", + "repository_url": "https://api.github.com/repos/damus-io/damus", + "labels_url": "https://api.github.com/repos/damus-io/damus/issues/2072/labels{/name}", + "comments_url": "https://api.github.com/repos/damus-io/damus/issues/2072/comments", + "events_url": "https://api.github.com/repos/damus-io/damus/issues/2072/events", + "html_url": "https://github.com/damus-io/damus/issues/2072", + "id": 2193879241, + "node_id": "I_kwDOHHF5A86Cw_DJ", + "number": 2072, + "title": "Issues with disconnecting relays [100,000 sats]", + "user": { + "login": "alltheseas", + "id": 64376233, + "node_id": "MDQ6VXNlcjY0Mzc2MjMz", + "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/alltheseas", + "html_url": "https://github.com/alltheseas", + "followers_url": "https://api.github.com/users/alltheseas/followers", + "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", + "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", + "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", + "organizations_url": "https://api.github.com/users/alltheseas/orgs", + "repos_url": "https://api.github.com/users/alltheseas/repos", + "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", + "received_events_url": "https://api.github.com/users/alltheseas/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "id": 3994718396, + "node_id": "LA_kwDOHHF5A87uGpC8", + "url": "https://api.github.com/repos/damus-io/damus/labels/bug", + "name": "bug", + "color": "d73a4a", + "default": true, + "description": "Something is not working, or not working as intended" + }, + { + "id": 5667341106, + "node_id": "LA_kwDOHHF5A88AAAABUczDMg", + "url": "https://api.github.com/repos/damus-io/damus/labels/bounty", + "name": "bounty", + "color": "D93F0B", + "default": false, + "description": "Sats" + }, + { + "id": 6219108520, + "node_id": "LA_kwDOHHF5A88AAAABcrAQqA", + "url": "https://api.github.com/repos/damus-io/damus/labels/relay", + "name": "relay", + "color": "c2e0c6", + "default": false, + "description": "" + }, + { + "id": 6495338883, + "node_id": "LA_kwDOHHF5A88AAAABgycBgw", + "url": "https://api.github.com/repos/damus-io/damus/labels/1.7", + "name": "1.7", + "color": "98EE28", + "default": false, + "description": "" + }, + { + "id": 6718343473, + "node_id": "LA_kwDOHHF5A88AAAABkHHJMQ", + "url": "https://api.github.com/repos/damus-io/damus/labels/meme", + "name": "meme", + "color": "98247E", + "default": false, + "description": "" + } + ], + "state": "open", + "locked": false, + "assignee": { + "login": "danieldaquino", + "id": 24692108, + "node_id": "MDQ6VXNlcjI0NjkyMTA4", + "avatar_url": "https://avatars.githubusercontent.com/u/24692108?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/danieldaquino", + "html_url": "https://github.com/danieldaquino", + "followers_url": "https://api.github.com/users/danieldaquino/followers", + "following_url": "https://api.github.com/users/danieldaquino/following{/other_user}", + "gists_url": "https://api.github.com/users/danieldaquino/gists{/gist_id}", + "starred_url": "https://api.github.com/users/danieldaquino/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/danieldaquino/subscriptions", + "organizations_url": "https://api.github.com/users/danieldaquino/orgs", + "repos_url": "https://api.github.com/users/danieldaquino/repos", + "events_url": "https://api.github.com/users/danieldaquino/events{/privacy}", + "received_events_url": "https://api.github.com/users/danieldaquino/received_events", + "type": "User", + "site_admin": false + }, + "assignees": [ + { + "login": "danieldaquino", + "id": 24692108, + "node_id": "MDQ6VXNlcjI0NjkyMTA4", + "avatar_url": "https://avatars.githubusercontent.com/u/24692108?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/danieldaquino", + "html_url": "https://github.com/danieldaquino", + "followers_url": "https://api.github.com/users/danieldaquino/followers", + "following_url": "https://api.github.com/users/danieldaquino/following{/other_user}", + "gists_url": "https://api.github.com/users/danieldaquino/gists{/gist_id}", + "starred_url": "https://api.github.com/users/danieldaquino/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/danieldaquino/subscriptions", + "organizations_url": "https://api.github.com/users/danieldaquino/orgs", + "repos_url": "https://api.github.com/users/danieldaquino/repos", + "events_url": "https://api.github.com/users/danieldaquino/events{/privacy}", + "received_events_url": "https://api.github.com/users/danieldaquino/received_events", + "type": "User", + "site_admin": false + } + ], + "milestone": { + "url": "https://api.github.com/repos/damus-io/damus/milestones/14", + "html_url": "https://github.com/damus-io/damus/milestone/14", + "labels_url": "https://api.github.com/repos/damus-io/damus/milestones/14/labels", + "id": 10536809, + "node_id": "MI_kwDOHHF5A84AoMdp", + "number": 14, + "title": "1.8 post Madeira: UX/UI/Design focus", + "description": "", + "creator": { + "login": "alltheseas", + "id": 64376233, + "node_id": "MDQ6VXNlcjY0Mzc2MjMz", + "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/alltheseas", + "html_url": "https://github.com/alltheseas", + "followers_url": "https://api.github.com/users/alltheseas/followers", + "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", + "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", + "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", + "organizations_url": "https://api.github.com/users/alltheseas/orgs", + "repos_url": "https://api.github.com/users/alltheseas/repos", + "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", + "received_events_url": "https://api.github.com/users/alltheseas/received_events", + "type": "User", + "site_admin": false + }, + "open_issues": 13, + "closed_issues": 1, + "state": "open", + "created_at": "2024-02-09T17:16:56Z", + "updated_at": "2024-03-20T15:28:11Z", + "due_on": null, + "closed_at": null + }, + "comments": 15, + "created_at": "2024-03-19T02:36:01Z", + "updated_at": "2024-03-21T07:48:12Z", + "closed_at": null, + "author_association": "COLLABORATOR", + "active_lock_reason": null, + "body": "Unclear if related to slash relays issues\n\nUsers shawn and karnage cannot remove relays. I am not sure how to troubleshoot @danieldaquino \n\nhttps://damus.io/nevent1qqsvx5pc0023njqqq78y9rf9xcsahsjg7lxvawl7ggmcyyp8wvjrmzqprpmhxue69uhhyetvv9ujumn0wd68yct5dyhxxmmdqyvhwumn8ghj7ur4wfshv6tyvyhxummnw3ezumrpdejqzxnhwden5te0wfjkccte9ehhyctwvajhq6tvdshxgetkqy2hwumn8ghj7mn0wd68ytndd9kx7afwd3hkc4ndht4\n\nhttps://damus.io/nevent1qqsrhpw78jsq2rs00sqct6lrdxjd0g0ga3vthcuftsrylzjqwakz8pqpr9mhxue69uhhwetvvdhk6efwdehhxarj9emkjmn99uq32amnwvaz7tm9v3jkutnwdaehgu3wd3skueqpr3mhxue69uhkummnw3ezuumgv9mku7t9v9nk2u3wdejhgtcpzpmhxue69uhkummnw3ezuamfdejs9rgfx6", + "reactions": { + "url": "https://api.github.com/repos/damus-io/damus/issues/2072/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/2072/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + "comment": { + "user": "danieldaquino", + "created_at": "2024-03-20T15:40:50Z", + "updated_at": "2024-03-20T15:40:50Z", + "body": "I was able to replicate this issue _(or at least part of the issue)_ locally based on the symptoms reported.\r\n\r\n## Issue repro\r\n\r\n**Device:** iPhone 15 simulator\r\n**iOS:** 17.4\r\n**Damus version:** 1.8 (1) `247f313b` (Current tip of the `master` branch)\r\n**Steps:**\r\n1. Delete all connected relays\r\n2. Add `wss://relay.damus.io/` (with the trailing slash) to the relay list\r\n3. Try removing this newly added relay.\r\n4. Try to post.\r\n\r\n**Results:**\r\n3. Relay cannot be removed from the list. (Did not work 2/2 times tried)\r\n4. Posting does not work (Did not work 2/2 times tried)\r\n\r\n**Other data:** Saw interesting app logs during this test, such as this one:\r\n```\r\n[\"EVENT\",{\"sig\":\"77696398abb490d3d097cd91af6545dc2a6e9c497a8c659e962ebd588d6204c140185c8ba65b1b9448116e92c2bdd7384360c4c870a26ffe97f831548788973a\",\"id\":\"eafdfae115d8f2eb082371eff5dab4e70ed5eff6719f7e8c759ac64e9e9e2232\",\"pubkey\":\"056b5b5966f500defb3b790a14633e5ec4a0e8883ca29bc23d0030553edb084a\",\"created_at\":1710948510,\"content\":\"{}\",\"tags\":[[\"p\",\"3efdaebb1d8923ebd99c9e7ace3b4194ab45512e2be79c1b7d68d9243e0d2681\"],[\"p\",\"056b5b5966f500defb3b790a14633e5ec4a0e8883ca29bc23d0030553edb084a\"],[\"p\",\"b9ceaeeb4178a549e8b0570f348b2caa4bef8933fe3323d45e3875c01919a2c2\"]],\"kind\":3}]\r\nattempt #7 to flush event '' to wss://relay.damus.io/ after 170.859375 seconds\r\ncould not find relay when flushing: wss://relay.damus.io/\r\n```\r\n\r\nI will start investigating the root cause.\r\n" + } + }, + { + "issue": { + "url": "https://api.github.com/repos/damus-io/damus/issues/2072", + "repository_url": "https://api.github.com/repos/damus-io/damus", + "labels_url": "https://api.github.com/repos/damus-io/damus/issues/2072/labels{/name}", + "comments_url": "https://api.github.com/repos/damus-io/damus/issues/2072/comments", + "events_url": "https://api.github.com/repos/damus-io/damus/issues/2072/events", + "html_url": "https://github.com/damus-io/damus/issues/2072", + "id": 2193879241, + "node_id": "I_kwDOHHF5A86Cw_DJ", + "number": 2072, + "title": "Issues with disconnecting relays [100,000 sats]", + "user": { + "login": "alltheseas", + "id": 64376233, + "node_id": "MDQ6VXNlcjY0Mzc2MjMz", + "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/alltheseas", + "html_url": "https://github.com/alltheseas", + "followers_url": "https://api.github.com/users/alltheseas/followers", + "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", + "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", + "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", + "organizations_url": "https://api.github.com/users/alltheseas/orgs", + "repos_url": "https://api.github.com/users/alltheseas/repos", + "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", + "received_events_url": "https://api.github.com/users/alltheseas/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "id": 3994718396, + "node_id": "LA_kwDOHHF5A87uGpC8", + "url": "https://api.github.com/repos/damus-io/damus/labels/bug", + "name": "bug", + "color": "d73a4a", + "default": true, + "description": "Something is not working, or not working as intended" + }, + { + "id": 5667341106, + "node_id": "LA_kwDOHHF5A88AAAABUczDMg", + "url": "https://api.github.com/repos/damus-io/damus/labels/bounty", + "name": "bounty", + "color": "D93F0B", + "default": false, + "description": "Sats" + }, + { + "id": 6219108520, + "node_id": "LA_kwDOHHF5A88AAAABcrAQqA", + "url": "https://api.github.com/repos/damus-io/damus/labels/relay", + "name": "relay", + "color": "c2e0c6", + "default": false, + "description": "" + }, + { + "id": 6495338883, + "node_id": "LA_kwDOHHF5A88AAAABgycBgw", + "url": "https://api.github.com/repos/damus-io/damus/labels/1.7", + "name": "1.7", + "color": "98EE28", + "default": false, + "description": "" + }, + { + "id": 6718343473, + "node_id": "LA_kwDOHHF5A88AAAABkHHJMQ", + "url": "https://api.github.com/repos/damus-io/damus/labels/meme", + "name": "meme", + "color": "98247E", + "default": false, + "description": "" + } + ], + "state": "open", + "locked": false, + "assignee": { + "login": "danieldaquino", + "id": 24692108, + "node_id": "MDQ6VXNlcjI0NjkyMTA4", + "avatar_url": "https://avatars.githubusercontent.com/u/24692108?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/danieldaquino", + "html_url": "https://github.com/danieldaquino", + "followers_url": "https://api.github.com/users/danieldaquino/followers", + "following_url": "https://api.github.com/users/danieldaquino/following{/other_user}", + "gists_url": "https://api.github.com/users/danieldaquino/gists{/gist_id}", + "starred_url": "https://api.github.com/users/danieldaquino/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/danieldaquino/subscriptions", + "organizations_url": "https://api.github.com/users/danieldaquino/orgs", + "repos_url": "https://api.github.com/users/danieldaquino/repos", + "events_url": "https://api.github.com/users/danieldaquino/events{/privacy}", + "received_events_url": "https://api.github.com/users/danieldaquino/received_events", + "type": "User", + "site_admin": false + }, + "assignees": [ + { + "login": "danieldaquino", + "id": 24692108, + "node_id": "MDQ6VXNlcjI0NjkyMTA4", + "avatar_url": "https://avatars.githubusercontent.com/u/24692108?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/danieldaquino", + "html_url": "https://github.com/danieldaquino", + "followers_url": "https://api.github.com/users/danieldaquino/followers", + "following_url": "https://api.github.com/users/danieldaquino/following{/other_user}", + "gists_url": "https://api.github.com/users/danieldaquino/gists{/gist_id}", + "starred_url": "https://api.github.com/users/danieldaquino/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/danieldaquino/subscriptions", + "organizations_url": "https://api.github.com/users/danieldaquino/orgs", + "repos_url": "https://api.github.com/users/danieldaquino/repos", + "events_url": "https://api.github.com/users/danieldaquino/events{/privacy}", + "received_events_url": "https://api.github.com/users/danieldaquino/received_events", + "type": "User", + "site_admin": false + } + ], + "milestone": { + "url": "https://api.github.com/repos/damus-io/damus/milestones/14", + "html_url": "https://github.com/damus-io/damus/milestone/14", + "labels_url": "https://api.github.com/repos/damus-io/damus/milestones/14/labels", + "id": 10536809, + "node_id": "MI_kwDOHHF5A84AoMdp", + "number": 14, + "title": "1.8 post Madeira: UX/UI/Design focus", + "description": "", + "creator": { + "login": "alltheseas", + "id": 64376233, + "node_id": "MDQ6VXNlcjY0Mzc2MjMz", + "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/alltheseas", + "html_url": "https://github.com/alltheseas", + "followers_url": "https://api.github.com/users/alltheseas/followers", + "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", + "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", + "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", + "organizations_url": "https://api.github.com/users/alltheseas/orgs", + "repos_url": "https://api.github.com/users/alltheseas/repos", + "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", + "received_events_url": "https://api.github.com/users/alltheseas/received_events", + "type": "User", + "site_admin": false + }, + "open_issues": 13, + "closed_issues": 1, + "state": "open", + "created_at": "2024-02-09T17:16:56Z", + "updated_at": "2024-03-20T15:28:11Z", + "due_on": null, + "closed_at": null + }, + "comments": 15, + "created_at": "2024-03-19T02:36:01Z", + "updated_at": "2024-03-21T07:48:12Z", + "closed_at": null, + "author_association": "COLLABORATOR", + "active_lock_reason": null, + "body": "Unclear if related to slash relays issues\n\nUsers shawn and karnage cannot remove relays. I am not sure how to troubleshoot @danieldaquino \n\nhttps://damus.io/nevent1qqsvx5pc0023njqqq78y9rf9xcsahsjg7lxvawl7ggmcyyp8wvjrmzqprpmhxue69uhhyetvv9ujumn0wd68yct5dyhxxmmdqyvhwumn8ghj7ur4wfshv6tyvyhxummnw3ezumrpdejqzxnhwden5te0wfjkccte9ehhyctwvajhq6tvdshxgetkqy2hwumn8ghj7mn0wd68ytndd9kx7afwd3hkc4ndht4\n\nhttps://damus.io/nevent1qqsrhpw78jsq2rs00sqct6lrdxjd0g0ga3vthcuftsrylzjqwakz8pqpr9mhxue69uhhwetvvdhk6efwdehhxarj9emkjmn99uq32amnwvaz7tm9v3jkutnwdaehgu3wd3skueqpr3mhxue69uhkummnw3ezuumgv9mku7t9v9nk2u3wdejhgtcpzpmhxue69uhkummnw3ezuamfdejs9rgfx6", + "reactions": { + "url": "https://api.github.com/repos/damus-io/damus/issues/2072/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/2072/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + "comment": { + "user": "alltheseas", + "created_at": "2024-03-20T16:52:29Z", + "updated_at": "2024-03-20T16:52:29Z", + "body": "Official bug meme dropped\n\n![image](https://github.com/damus-io/damus/assets/64376233/7e16f569-05f8-4019-bdfc-8d298db8e0b9)" + } + }, + { + "issue": { + "url": "https://api.github.com/repos/damus-io/damus/issues/2072", + "repository_url": "https://api.github.com/repos/damus-io/damus", + "labels_url": "https://api.github.com/repos/damus-io/damus/issues/2072/labels{/name}", + "comments_url": "https://api.github.com/repos/damus-io/damus/issues/2072/comments", + "events_url": "https://api.github.com/repos/damus-io/damus/issues/2072/events", + "html_url": "https://github.com/damus-io/damus/issues/2072", + "id": 2193879241, + "node_id": "I_kwDOHHF5A86Cw_DJ", + "number": 2072, + "title": "Issues with disconnecting relays [100,000 sats]", + "user": { + "login": "alltheseas", + "id": 64376233, + "node_id": "MDQ6VXNlcjY0Mzc2MjMz", + "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/alltheseas", + "html_url": "https://github.com/alltheseas", + "followers_url": "https://api.github.com/users/alltheseas/followers", + "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", + "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", + "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", + "organizations_url": "https://api.github.com/users/alltheseas/orgs", + "repos_url": "https://api.github.com/users/alltheseas/repos", + "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", + "received_events_url": "https://api.github.com/users/alltheseas/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "id": 3994718396, + "node_id": "LA_kwDOHHF5A87uGpC8", + "url": "https://api.github.com/repos/damus-io/damus/labels/bug", + "name": "bug", + "color": "d73a4a", + "default": true, + "description": "Something is not working, or not working as intended" + }, + { + "id": 5667341106, + "node_id": "LA_kwDOHHF5A88AAAABUczDMg", + "url": "https://api.github.com/repos/damus-io/damus/labels/bounty", + "name": "bounty", + "color": "D93F0B", + "default": false, + "description": "Sats" + }, + { + "id": 6219108520, + "node_id": "LA_kwDOHHF5A88AAAABcrAQqA", + "url": "https://api.github.com/repos/damus-io/damus/labels/relay", + "name": "relay", + "color": "c2e0c6", + "default": false, + "description": "" + }, + { + "id": 6495338883, + "node_id": "LA_kwDOHHF5A88AAAABgycBgw", + "url": "https://api.github.com/repos/damus-io/damus/labels/1.7", + "name": "1.7", + "color": "98EE28", + "default": false, + "description": "" + }, + { + "id": 6718343473, + "node_id": "LA_kwDOHHF5A88AAAABkHHJMQ", + "url": "https://api.github.com/repos/damus-io/damus/labels/meme", + "name": "meme", + "color": "98247E", + "default": false, + "description": "" + } + ], + "state": "open", + "locked": false, + "assignee": { + "login": "danieldaquino", + "id": 24692108, + "node_id": "MDQ6VXNlcjI0NjkyMTA4", + "avatar_url": "https://avatars.githubusercontent.com/u/24692108?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/danieldaquino", + "html_url": "https://github.com/danieldaquino", + "followers_url": "https://api.github.com/users/danieldaquino/followers", + "following_url": "https://api.github.com/users/danieldaquino/following{/other_user}", + "gists_url": "https://api.github.com/users/danieldaquino/gists{/gist_id}", + "starred_url": "https://api.github.com/users/danieldaquino/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/danieldaquino/subscriptions", + "organizations_url": "https://api.github.com/users/danieldaquino/orgs", + "repos_url": "https://api.github.com/users/danieldaquino/repos", + "events_url": "https://api.github.com/users/danieldaquino/events{/privacy}", + "received_events_url": "https://api.github.com/users/danieldaquino/received_events", + "type": "User", + "site_admin": false + }, + "assignees": [ + { + "login": "danieldaquino", + "id": 24692108, + "node_id": "MDQ6VXNlcjI0NjkyMTA4", + "avatar_url": "https://avatars.githubusercontent.com/u/24692108?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/danieldaquino", + "html_url": "https://github.com/danieldaquino", + "followers_url": "https://api.github.com/users/danieldaquino/followers", + "following_url": "https://api.github.com/users/danieldaquino/following{/other_user}", + "gists_url": "https://api.github.com/users/danieldaquino/gists{/gist_id}", + "starred_url": "https://api.github.com/users/danieldaquino/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/danieldaquino/subscriptions", + "organizations_url": "https://api.github.com/users/danieldaquino/orgs", + "repos_url": "https://api.github.com/users/danieldaquino/repos", + "events_url": "https://api.github.com/users/danieldaquino/events{/privacy}", + "received_events_url": "https://api.github.com/users/danieldaquino/received_events", + "type": "User", + "site_admin": false + } + ], + "milestone": { + "url": "https://api.github.com/repos/damus-io/damus/milestones/14", + "html_url": "https://github.com/damus-io/damus/milestone/14", + "labels_url": "https://api.github.com/repos/damus-io/damus/milestones/14/labels", + "id": 10536809, + "node_id": "MI_kwDOHHF5A84AoMdp", + "number": 14, + "title": "1.8 post Madeira: UX/UI/Design focus", + "description": "", + "creator": { + "login": "alltheseas", + "id": 64376233, + "node_id": "MDQ6VXNlcjY0Mzc2MjMz", + "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/alltheseas", + "html_url": "https://github.com/alltheseas", + "followers_url": "https://api.github.com/users/alltheseas/followers", + "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", + "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", + "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", + "organizations_url": "https://api.github.com/users/alltheseas/orgs", + "repos_url": "https://api.github.com/users/alltheseas/repos", + "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", + "received_events_url": "https://api.github.com/users/alltheseas/received_events", + "type": "User", + "site_admin": false + }, + "open_issues": 13, + "closed_issues": 1, + "state": "open", + "created_at": "2024-02-09T17:16:56Z", + "updated_at": "2024-03-20T15:28:11Z", + "due_on": null, + "closed_at": null + }, + "comments": 15, + "created_at": "2024-03-19T02:36:01Z", + "updated_at": "2024-03-21T07:48:12Z", + "closed_at": null, + "author_association": "COLLABORATOR", + "active_lock_reason": null, + "body": "Unclear if related to slash relays issues\n\nUsers shawn and karnage cannot remove relays. I am not sure how to troubleshoot @danieldaquino \n\nhttps://damus.io/nevent1qqsvx5pc0023njqqq78y9rf9xcsahsjg7lxvawl7ggmcyyp8wvjrmzqprpmhxue69uhhyetvv9ujumn0wd68yct5dyhxxmmdqyvhwumn8ghj7ur4wfshv6tyvyhxummnw3ezumrpdejqzxnhwden5te0wfjkccte9ehhyctwvajhq6tvdshxgetkqy2hwumn8ghj7mn0wd68ytndd9kx7afwd3hkc4ndht4\n\nhttps://damus.io/nevent1qqsrhpw78jsq2rs00sqct6lrdxjd0g0ga3vthcuftsrylzjqwakz8pqpr9mhxue69uhhwetvvdhk6efwdehhxarj9emkjmn99uq32amnwvaz7tm9v3jkutnwdaehgu3wd3skueqpr3mhxue69uhkummnw3ezuumgv9mku7t9v9nk2u3wdejhgtcpzpmhxue69uhkummnw3ezuamfdejs9rgfx6", + "reactions": { + "url": "https://api.github.com/repos/damus-io/damus/issues/2072/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/2072/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + "comment": { + "user": "danieldaquino", + "created_at": "2024-03-20T19:26:46Z", + "updated_at": "2024-03-20T19:26:46Z", + "body": "I have a draft of the fix that seems to resolve this problem!\r\n\r\nHowever, I modified code in several places _(to prevent issues with trailing slashes in the future)_ so I should do more thorough testing before sending it over." + } + }, + { + "issue": { + "url": "https://api.github.com/repos/damus-io/damus/issues/2072", + "repository_url": "https://api.github.com/repos/damus-io/damus", + "labels_url": "https://api.github.com/repos/damus-io/damus/issues/2072/labels{/name}", + "comments_url": "https://api.github.com/repos/damus-io/damus/issues/2072/comments", + "events_url": "https://api.github.com/repos/damus-io/damus/issues/2072/events", + "html_url": "https://github.com/damus-io/damus/issues/2072", + "id": 2193879241, + "node_id": "I_kwDOHHF5A86Cw_DJ", + "number": 2072, + "title": "Issues with disconnecting relays [100,000 sats]", + "user": { + "login": "alltheseas", + "id": 64376233, + "node_id": "MDQ6VXNlcjY0Mzc2MjMz", + "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/alltheseas", + "html_url": "https://github.com/alltheseas", + "followers_url": "https://api.github.com/users/alltheseas/followers", + "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", + "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", + "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", + "organizations_url": "https://api.github.com/users/alltheseas/orgs", + "repos_url": "https://api.github.com/users/alltheseas/repos", + "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", + "received_events_url": "https://api.github.com/users/alltheseas/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "id": 3994718396, + "node_id": "LA_kwDOHHF5A87uGpC8", + "url": "https://api.github.com/repos/damus-io/damus/labels/bug", + "name": "bug", + "color": "d73a4a", + "default": true, + "description": "Something is not working, or not working as intended" + }, + { + "id": 5667341106, + "node_id": "LA_kwDOHHF5A88AAAABUczDMg", + "url": "https://api.github.com/repos/damus-io/damus/labels/bounty", + "name": "bounty", + "color": "D93F0B", + "default": false, + "description": "Sats" + }, + { + "id": 6219108520, + "node_id": "LA_kwDOHHF5A88AAAABcrAQqA", + "url": "https://api.github.com/repos/damus-io/damus/labels/relay", + "name": "relay", + "color": "c2e0c6", + "default": false, + "description": "" + }, + { + "id": 6495338883, + "node_id": "LA_kwDOHHF5A88AAAABgycBgw", + "url": "https://api.github.com/repos/damus-io/damus/labels/1.7", + "name": "1.7", + "color": "98EE28", + "default": false, + "description": "" + }, + { + "id": 6718343473, + "node_id": "LA_kwDOHHF5A88AAAABkHHJMQ", + "url": "https://api.github.com/repos/damus-io/damus/labels/meme", + "name": "meme", + "color": "98247E", + "default": false, + "description": "" + } + ], + "state": "open", + "locked": false, + "assignee": { + "login": "danieldaquino", + "id": 24692108, + "node_id": "MDQ6VXNlcjI0NjkyMTA4", + "avatar_url": "https://avatars.githubusercontent.com/u/24692108?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/danieldaquino", + "html_url": "https://github.com/danieldaquino", + "followers_url": "https://api.github.com/users/danieldaquino/followers", + "following_url": "https://api.github.com/users/danieldaquino/following{/other_user}", + "gists_url": "https://api.github.com/users/danieldaquino/gists{/gist_id}", + "starred_url": "https://api.github.com/users/danieldaquino/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/danieldaquino/subscriptions", + "organizations_url": "https://api.github.com/users/danieldaquino/orgs", + "repos_url": "https://api.github.com/users/danieldaquino/repos", + "events_url": "https://api.github.com/users/danieldaquino/events{/privacy}", + "received_events_url": "https://api.github.com/users/danieldaquino/received_events", + "type": "User", + "site_admin": false + }, + "assignees": [ + { + "login": "danieldaquino", + "id": 24692108, + "node_id": "MDQ6VXNlcjI0NjkyMTA4", + "avatar_url": "https://avatars.githubusercontent.com/u/24692108?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/danieldaquino", + "html_url": "https://github.com/danieldaquino", + "followers_url": "https://api.github.com/users/danieldaquino/followers", + "following_url": "https://api.github.com/users/danieldaquino/following{/other_user}", + "gists_url": "https://api.github.com/users/danieldaquino/gists{/gist_id}", + "starred_url": "https://api.github.com/users/danieldaquino/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/danieldaquino/subscriptions", + "organizations_url": "https://api.github.com/users/danieldaquino/orgs", + "repos_url": "https://api.github.com/users/danieldaquino/repos", + "events_url": "https://api.github.com/users/danieldaquino/events{/privacy}", + "received_events_url": "https://api.github.com/users/danieldaquino/received_events", + "type": "User", + "site_admin": false + } + ], + "milestone": { + "url": "https://api.github.com/repos/damus-io/damus/milestones/14", + "html_url": "https://github.com/damus-io/damus/milestone/14", + "labels_url": "https://api.github.com/repos/damus-io/damus/milestones/14/labels", + "id": 10536809, + "node_id": "MI_kwDOHHF5A84AoMdp", + "number": 14, + "title": "1.8 post Madeira: UX/UI/Design focus", + "description": "", + "creator": { + "login": "alltheseas", + "id": 64376233, + "node_id": "MDQ6VXNlcjY0Mzc2MjMz", + "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/alltheseas", + "html_url": "https://github.com/alltheseas", + "followers_url": "https://api.github.com/users/alltheseas/followers", + "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", + "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", + "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", + "organizations_url": "https://api.github.com/users/alltheseas/orgs", + "repos_url": "https://api.github.com/users/alltheseas/repos", + "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", + "received_events_url": "https://api.github.com/users/alltheseas/received_events", + "type": "User", + "site_admin": false + }, + "open_issues": 13, + "closed_issues": 1, + "state": "open", + "created_at": "2024-02-09T17:16:56Z", + "updated_at": "2024-03-20T15:28:11Z", + "due_on": null, + "closed_at": null + }, + "comments": 15, + "created_at": "2024-03-19T02:36:01Z", + "updated_at": "2024-03-21T07:48:12Z", + "closed_at": null, + "author_association": "COLLABORATOR", + "active_lock_reason": null, + "body": "Unclear if related to slash relays issues\n\nUsers shawn and karnage cannot remove relays. I am not sure how to troubleshoot @danieldaquino \n\nhttps://damus.io/nevent1qqsvx5pc0023njqqq78y9rf9xcsahsjg7lxvawl7ggmcyyp8wvjrmzqprpmhxue69uhhyetvv9ujumn0wd68yct5dyhxxmmdqyvhwumn8ghj7ur4wfshv6tyvyhxummnw3ezumrpdejqzxnhwden5te0wfjkccte9ehhyctwvajhq6tvdshxgetkqy2hwumn8ghj7mn0wd68ytndd9kx7afwd3hkc4ndht4\n\nhttps://damus.io/nevent1qqsrhpw78jsq2rs00sqct6lrdxjd0g0ga3vthcuftsrylzjqwakz8pqpr9mhxue69uhhwetvvdhk6efwdehhxarj9emkjmn99uq32amnwvaz7tm9v3jkutnwdaehgu3wd3skueqpr3mhxue69uhkummnw3ezuumgv9mku7t9v9nk2u3wdejhgtcpzpmhxue69uhkummnw3ezuamfdejs9rgfx6", + "reactions": { + "url": "https://api.github.com/repos/damus-io/damus/issues/2072/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/2072/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + "comment": { + "user": "jb55", + "created_at": "2024-03-21T07:48:10Z", + "updated_at": "2024-03-21T07:48:10Z", + "body": "On Wed, Mar 20, 2024 at 12:27:07PM -0700, Daniel D’Aquino wrote:\n>I have a draft of the fix that seems to resolve this problem!\n>\n>However, I modified code in several places _(to prevent issues with trailing slashes in the future)_ so I should do more thorough testing before sending it over.\n\nThanks daniel! This was affecting lots of people it seems.\n" + } + }, + { + "issue": { + "url": "https://api.github.com/repos/damus-io/damus/issues/2071", + "repository_url": "https://api.github.com/repos/damus-io/damus", + "labels_url": "https://api.github.com/repos/damus-io/damus/issues/2071/labels{/name}", + "comments_url": "https://api.github.com/repos/damus-io/damus/issues/2071/comments", + "events_url": "https://api.github.com/repos/damus-io/damus/issues/2071/events", + "html_url": "https://github.com/damus-io/damus/issues/2071", + "id": 2193677501, + "node_id": "I_kwDOHHF5A86CwNy9", + "number": 2071, + "title": "Fix Purple checkout UI", + "user": { + "login": "alltheseas", + "id": 64376233, + "node_id": "MDQ6VXNlcjY0Mzc2MjMz", + "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/alltheseas", + "html_url": "https://github.com/alltheseas", + "followers_url": "https://api.github.com/users/alltheseas/followers", + "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", + "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", + "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", + "organizations_url": "https://api.github.com/users/alltheseas/orgs", + "repos_url": "https://api.github.com/users/alltheseas/repos", + "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", + "received_events_url": "https://api.github.com/users/alltheseas/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "id": 3994718399, + "node_id": "LA_kwDOHHF5A87uGpC_", + "url": "https://api.github.com/repos/damus-io/damus/labels/enhancement", + "name": "enhancement", + "color": "a2eeef", + "default": true, + "description": "Improvement" + }, + { + "id": 5799961735, + "node_id": "LA_kwDOHHF5A88AAAABWbRkhw", + "url": "https://api.github.com/repos/damus-io/damus/labels/purple", + "name": "purple", + "color": "7E12A4", + "default": false, + "description": "Damus purple membership" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "assignees": [], + "milestone": null, + "comments": 1, + "created_at": "2024-03-18T23:40:19Z", + "updated_at": "2024-03-18T23:42:52Z", + "closed_at": null, + "author_association": "COLLABORATOR", + "active_lock_reason": null, + "body": "![image](https://github.com/damus-io/damus/assets/64376233/d68516bb-b18c-4bdb-ab84-6f0542112437)", + "reactions": { + "url": "https://api.github.com/repos/damus-io/damus/issues/2071/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/2071/timeline", + "performed_via_github_app": null, + "state_reason": null + } + }, + { + "issue": { + "url": "https://api.github.com/repos/damus-io/damus/issues/2071", + "repository_url": "https://api.github.com/repos/damus-io/damus", + "labels_url": "https://api.github.com/repos/damus-io/damus/issues/2071/labels{/name}", + "comments_url": "https://api.github.com/repos/damus-io/damus/issues/2071/comments", + "events_url": "https://api.github.com/repos/damus-io/damus/issues/2071/events", + "html_url": "https://github.com/damus-io/damus/issues/2071", + "id": 2193677501, + "node_id": "I_kwDOHHF5A86CwNy9", + "number": 2071, + "title": "Fix Purple checkout UI", + "user": { + "login": "alltheseas", + "id": 64376233, + "node_id": "MDQ6VXNlcjY0Mzc2MjMz", + "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/alltheseas", + "html_url": "https://github.com/alltheseas", + "followers_url": "https://api.github.com/users/alltheseas/followers", + "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", + "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", + "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", + "organizations_url": "https://api.github.com/users/alltheseas/orgs", + "repos_url": "https://api.github.com/users/alltheseas/repos", + "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", + "received_events_url": "https://api.github.com/users/alltheseas/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "id": 3994718399, + "node_id": "LA_kwDOHHF5A87uGpC_", + "url": "https://api.github.com/repos/damus-io/damus/labels/enhancement", + "name": "enhancement", + "color": "a2eeef", + "default": true, + "description": "Improvement" + }, + { + "id": 5799961735, + "node_id": "LA_kwDOHHF5A88AAAABWbRkhw", + "url": "https://api.github.com/repos/damus-io/damus/labels/purple", + "name": "purple", + "color": "7E12A4", + "default": false, + "description": "Damus purple membership" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "assignees": [], + "milestone": null, + "comments": 1, + "created_at": "2024-03-18T23:40:19Z", + "updated_at": "2024-03-18T23:42:52Z", + "closed_at": null, + "author_association": "COLLABORATOR", + "active_lock_reason": null, + "body": "![image](https://github.com/damus-io/damus/assets/64376233/d68516bb-b18c-4bdb-ab84-6f0542112437)", + "reactions": { + "url": "https://api.github.com/repos/damus-io/damus/issues/2071/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/2071/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + "comment": { + "user": "alltheseas", + "created_at": "2024-03-18T23:42:51Z", + "updated_at": "2024-03-18T23:42:51Z", + "body": "1.7.2 (1)" + } + }, + { + "issue": { + "url": "https://api.github.com/repos/damus-io/damus/issues/2069", + "repository_url": "https://api.github.com/repos/damus-io/damus", + "labels_url": "https://api.github.com/repos/damus-io/damus/issues/2069/labels{/name}", + "comments_url": "https://api.github.com/repos/damus-io/damus/issues/2069/comments", + "events_url": "https://api.github.com/repos/damus-io/damus/issues/2069/events", + "html_url": "https://github.com/damus-io/damus/issues/2069", + "id": 2192756171, + "node_id": "I_kwDOHHF5A86Css3L", + "number": 2069, + "title": "Damus Contributor Badges", + "user": { + "login": "alltheseas", + "id": 64376233, + "node_id": "MDQ6VXNlcjY0Mzc2MjMz", + "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/alltheseas", + "html_url": "https://github.com/alltheseas", + "followers_url": "https://api.github.com/users/alltheseas/followers", + "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", + "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", + "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", + "organizations_url": "https://api.github.com/users/alltheseas/orgs", + "repos_url": "https://api.github.com/users/alltheseas/repos", + "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", + "received_events_url": "https://api.github.com/users/alltheseas/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "id": 5667222085, + "node_id": "LA_kwDOHHF5A88AAAABUcryRQ", + "url": "https://api.github.com/repos/damus-io/damus/labels/design", + "name": "design", + "color": "5319E7", + "default": false, + "description": "Design exploration & definition is required" + }, + { + "id": 5667230655, + "node_id": "LA_kwDOHHF5A88AAAABUcsTvw", + "url": "https://api.github.com/repos/damus-io/damus/labels/feature", + "name": "feature", + "color": "BFDADC", + "default": false, + "description": "New feature request" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "assignees": [], + "milestone": null, + "comments": 0, + "created_at": "2024-03-18T16:51:17Z", + "updated_at": "2024-03-18T17:01:00Z", + "closed_at": null, + "author_association": "COLLABORATOR", + "active_lock_reason": null, + "body": "## user story\r\n\r\nAs Damus lead maintainer, I would like to reward reliable Damus contributors with a special badge and purple perks, so that I can show my appreciation for contributors, and so that nostrich community members can have greater confidence when interacting with Damus contributors w.r.t. Damus discussion.\r\n\r\n### acceptance criteria\r\n\r\n1. There is a method to grant Damus contributors a special Damus contributor status\r\n2. Damus contributor status benefits include: Damus purple, and special Damus contributor badge\r\n\r\n### design\r\n\r\nWhat does the Damus contributor badge design look like @robagreda \r\n\r\n\r\ncc @jb55 @ericholguin @danieldaquino ", + "reactions": { + "url": "https://api.github.com/repos/damus-io/damus/issues/2069/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/2069/timeline", + "performed_via_github_app": null, + "state_reason": null + } + }, + { + "issue": { + "url": "https://api.github.com/repos/damus-io/damus/issues/2068", + "repository_url": "https://api.github.com/repos/damus-io/damus", + "labels_url": "https://api.github.com/repos/damus-io/damus/issues/2068/labels{/name}", + "comments_url": "https://api.github.com/repos/damus-io/damus/issues/2068/comments", + "events_url": "https://api.github.com/repos/damus-io/damus/issues/2068/events", + "html_url": "https://github.com/damus-io/damus/issues/2068", + "id": 2192672937, + "node_id": "I_kwDOHHF5A86CsYip", + "number": 2068, + "title": "opt-in online status", + "user": { + "login": "alltheseas", + "id": 64376233, + "node_id": "MDQ6VXNlcjY0Mzc2MjMz", + "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/alltheseas", + "html_url": "https://github.com/alltheseas", + "followers_url": "https://api.github.com/users/alltheseas/followers", + "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", + "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", + "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", + "organizations_url": "https://api.github.com/users/alltheseas/orgs", + "repos_url": "https://api.github.com/users/alltheseas/repos", + "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", + "received_events_url": "https://api.github.com/users/alltheseas/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "id": 5667230655, + "node_id": "LA_kwDOHHF5A88AAAABUcsTvw", + "url": "https://api.github.com/repos/damus-io/damus/labels/feature", + "name": "feature", + "color": "BFDADC", + "default": false, + "description": "New feature request" + } + ], + "state": "open", + "locked": false, + "assignee": { + "login": "ericholguin", + "id": 14004132, + "node_id": "MDQ6VXNlcjE0MDA0MTMy", + "avatar_url": "https://avatars.githubusercontent.com/u/14004132?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/ericholguin", + "html_url": "https://github.com/ericholguin", + "followers_url": "https://api.github.com/users/ericholguin/followers", + "following_url": "https://api.github.com/users/ericholguin/following{/other_user}", + "gists_url": "https://api.github.com/users/ericholguin/gists{/gist_id}", + "starred_url": "https://api.github.com/users/ericholguin/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ericholguin/subscriptions", + "organizations_url": "https://api.github.com/users/ericholguin/orgs", + "repos_url": "https://api.github.com/users/ericholguin/repos", + "events_url": "https://api.github.com/users/ericholguin/events{/privacy}", + "received_events_url": "https://api.github.com/users/ericholguin/received_events", + "type": "User", + "site_admin": false + }, + "assignees": [ + { + "login": "ericholguin", + "id": 14004132, + "node_id": "MDQ6VXNlcjE0MDA0MTMy", + "avatar_url": "https://avatars.githubusercontent.com/u/14004132?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/ericholguin", + "html_url": "https://github.com/ericholguin", + "followers_url": "https://api.github.com/users/ericholguin/followers", + "following_url": "https://api.github.com/users/ericholguin/following{/other_user}", + "gists_url": "https://api.github.com/users/ericholguin/gists{/gist_id}", + "starred_url": "https://api.github.com/users/ericholguin/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ericholguin/subscriptions", + "organizations_url": "https://api.github.com/users/ericholguin/orgs", + "repos_url": "https://api.github.com/users/ericholguin/repos", + "events_url": "https://api.github.com/users/ericholguin/events{/privacy}", + "received_events_url": "https://api.github.com/users/ericholguin/received_events", + "type": "User", + "site_admin": false + } + ], + "milestone": null, + "comments": 1, + "created_at": "2024-03-18T16:20:39Z", + "updated_at": "2024-03-18T17:04:10Z", + "closed_at": null, + "author_association": "COLLABORATOR", + "active_lock_reason": null, + "body": "## user story\r\n\r\nAs a social media enjoyooor, I would like to send the nostrich signal that I am online when I am on Damus, so that other nostriches can see I am online, and maybe choose to interact with me more.\r\n\r\n### acceptance criteria\r\n1. This is opt-in only, and default value is off.\r\n2. Privacy warning is displayed.\r\n3. If user opts-in, Damus can display an e.g. green dot that signifies they are online. \r\n4. Dot disappears after ___ minutes after Damus user closed app. \r\n\r\n@ericholguin ", + "reactions": { + "url": "https://api.github.com/repos/damus-io/damus/issues/2068/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/2068/timeline", + "performed_via_github_app": null, + "state_reason": null + } + }, + { + "issue": { + "url": "https://api.github.com/repos/damus-io/damus/issues/2068", + "repository_url": "https://api.github.com/repos/damus-io/damus", + "labels_url": "https://api.github.com/repos/damus-io/damus/issues/2068/labels{/name}", + "comments_url": "https://api.github.com/repos/damus-io/damus/issues/2068/comments", + "events_url": "https://api.github.com/repos/damus-io/damus/issues/2068/events", + "html_url": "https://github.com/damus-io/damus/issues/2068", + "id": 2192672937, + "node_id": "I_kwDOHHF5A86CsYip", + "number": 2068, + "title": "opt-in online status", + "user": { + "login": "alltheseas", + "id": 64376233, + "node_id": "MDQ6VXNlcjY0Mzc2MjMz", + "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/alltheseas", + "html_url": "https://github.com/alltheseas", + "followers_url": "https://api.github.com/users/alltheseas/followers", + "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", + "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", + "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", + "organizations_url": "https://api.github.com/users/alltheseas/orgs", + "repos_url": "https://api.github.com/users/alltheseas/repos", + "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", + "received_events_url": "https://api.github.com/users/alltheseas/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "id": 5667230655, + "node_id": "LA_kwDOHHF5A88AAAABUcsTvw", + "url": "https://api.github.com/repos/damus-io/damus/labels/feature", + "name": "feature", + "color": "BFDADC", + "default": false, + "description": "New feature request" + } + ], + "state": "open", + "locked": false, + "assignee": { + "login": "ericholguin", + "id": 14004132, + "node_id": "MDQ6VXNlcjE0MDA0MTMy", + "avatar_url": "https://avatars.githubusercontent.com/u/14004132?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/ericholguin", + "html_url": "https://github.com/ericholguin", + "followers_url": "https://api.github.com/users/ericholguin/followers", + "following_url": "https://api.github.com/users/ericholguin/following{/other_user}", + "gists_url": "https://api.github.com/users/ericholguin/gists{/gist_id}", + "starred_url": "https://api.github.com/users/ericholguin/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ericholguin/subscriptions", + "organizations_url": "https://api.github.com/users/ericholguin/orgs", + "repos_url": "https://api.github.com/users/ericholguin/repos", + "events_url": "https://api.github.com/users/ericholguin/events{/privacy}", + "received_events_url": "https://api.github.com/users/ericholguin/received_events", + "type": "User", + "site_admin": false + }, + "assignees": [ + { + "login": "ericholguin", + "id": 14004132, + "node_id": "MDQ6VXNlcjE0MDA0MTMy", + "avatar_url": "https://avatars.githubusercontent.com/u/14004132?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/ericholguin", + "html_url": "https://github.com/ericholguin", + "followers_url": "https://api.github.com/users/ericholguin/followers", + "following_url": "https://api.github.com/users/ericholguin/following{/other_user}", + "gists_url": "https://api.github.com/users/ericholguin/gists{/gist_id}", + "starred_url": "https://api.github.com/users/ericholguin/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ericholguin/subscriptions", + "organizations_url": "https://api.github.com/users/ericholguin/orgs", + "repos_url": "https://api.github.com/users/ericholguin/repos", + "events_url": "https://api.github.com/users/ericholguin/events{/privacy}", + "received_events_url": "https://api.github.com/users/ericholguin/received_events", + "type": "User", + "site_admin": false + } + ], + "milestone": null, + "comments": 1, + "created_at": "2024-03-18T16:20:39Z", + "updated_at": "2024-03-18T17:04:10Z", + "closed_at": null, + "author_association": "COLLABORATOR", + "active_lock_reason": null, + "body": "## user story\r\n\r\nAs a social media enjoyooor, I would like to send the nostrich signal that I am online when I am on Damus, so that other nostriches can see I am online, and maybe choose to interact with me more.\r\n\r\n### acceptance criteria\r\n1. This is opt-in only, and default value is off.\r\n2. Privacy warning is displayed.\r\n3. If user opts-in, Damus can display an e.g. green dot that signifies they are online. \r\n4. Dot disappears after ___ minutes after Damus user closed app. \r\n\r\n@ericholguin ", + "reactions": { + "url": "https://api.github.com/repos/damus-io/damus/issues/2068/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/2068/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + "comment": { + "user": "alltheseas", + "created_at": "2024-03-18T16:21:09Z", + "updated_at": "2024-03-18T17:04:03Z", + "body": "could pair well with stories https://github.com/damus-io/damus/issues/1674\r\n\r\nor nests https://github.com/damus-io/damus/issues/407\r\n\r\nand/or status" + } + }, + { + "issue": { + "url": "https://api.github.com/repos/damus-io/damus/issues/2067", + "repository_url": "https://api.github.com/repos/damus-io/damus", + "labels_url": "https://api.github.com/repos/damus-io/damus/issues/2067/labels{/name}", + "comments_url": "https://api.github.com/repos/damus-io/damus/issues/2067/comments", + "events_url": "https://api.github.com/repos/damus-io/damus/issues/2067/events", + "html_url": "https://github.com/damus-io/damus/issues/2067", + "id": 2192663421, + "node_id": "I_kwDOHHF5A86CsWN9", + "number": 2067, + "title": "results summary", + "user": { + "login": "alltheseas", + "id": 64376233, + "node_id": "MDQ6VXNlcjY0Mzc2MjMz", + "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/alltheseas", + "html_url": "https://github.com/alltheseas", + "followers_url": "https://api.github.com/users/alltheseas/followers", + "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", + "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", + "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", + "organizations_url": "https://api.github.com/users/alltheseas/orgs", + "repos_url": "https://api.github.com/users/alltheseas/repos", + "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", + "received_events_url": "https://api.github.com/users/alltheseas/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "id": 6213404742, + "node_id": "LA_kwDOHHF5A88AAAABclkIRg", + "url": "https://api.github.com/repos/damus-io/damus/labels/search", + "name": "search", + "color": "0e8a16", + "default": false, + "description": "" + } + ], + "state": "closed", + "locked": false, + "assignee": null, + "assignees": [], + "milestone": null, + "comments": 1, + "created_at": "2024-03-18T16:16:11Z", + "updated_at": "2024-03-19T17:35:41Z", + "closed_at": "2024-03-19T17:35:40Z", + "author_association": "COLLABORATOR", + "active_lock_reason": null, + "body": "The word mostr was found in \r\n\r\n10 notes\r\n5 profiles\r\n1 DMs\r\n\r\nalltheseas to add mockup", + "reactions": { + "url": "https://api.github.com/repos/damus-io/damus/issues/2067/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/2067/timeline", + "performed_via_github_app": null, + "state_reason": "not_planned" + } + }, + { + "issue": { + "url": "https://api.github.com/repos/damus-io/damus/issues/2067", + "repository_url": "https://api.github.com/repos/damus-io/damus", + "labels_url": "https://api.github.com/repos/damus-io/damus/issues/2067/labels{/name}", + "comments_url": "https://api.github.com/repos/damus-io/damus/issues/2067/comments", + "events_url": "https://api.github.com/repos/damus-io/damus/issues/2067/events", + "html_url": "https://github.com/damus-io/damus/issues/2067", + "id": 2192663421, + "node_id": "I_kwDOHHF5A86CsWN9", + "number": 2067, + "title": "results summary", + "user": { + "login": "alltheseas", + "id": 64376233, + "node_id": "MDQ6VXNlcjY0Mzc2MjMz", + "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/alltheseas", + "html_url": "https://github.com/alltheseas", + "followers_url": "https://api.github.com/users/alltheseas/followers", + "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", + "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", + "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", + "organizations_url": "https://api.github.com/users/alltheseas/orgs", + "repos_url": "https://api.github.com/users/alltheseas/repos", + "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", + "received_events_url": "https://api.github.com/users/alltheseas/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "id": 6213404742, + "node_id": "LA_kwDOHHF5A88AAAABclkIRg", + "url": "https://api.github.com/repos/damus-io/damus/labels/search", + "name": "search", + "color": "0e8a16", + "default": false, + "description": "" + } + ], + "state": "closed", + "locked": false, + "assignee": null, + "assignees": [], + "milestone": null, + "comments": 1, + "created_at": "2024-03-18T16:16:11Z", + "updated_at": "2024-03-19T17:35:41Z", + "closed_at": "2024-03-19T17:35:40Z", + "author_association": "COLLABORATOR", + "active_lock_reason": null, + "body": "The word mostr was found in \r\n\r\n10 notes\r\n5 profiles\r\n1 DMs\r\n\r\nalltheseas to add mockup", + "reactions": { + "url": "https://api.github.com/repos/damus-io/damus/issues/2067/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/2067/timeline", + "performed_via_github_app": null, + "state_reason": "not_planned" + }, + "comment": { + "user": "alltheseas", + "created_at": "2024-03-19T17:35:40Z", + "updated_at": "2024-03-19T17:35:40Z", + "body": "duplicate https://github.com/damus-io/damus/issues/2081" + } + }, + { + "issue": { "url": "https://api.github.com/repos/damus-io/damus/issues/2066", "repository_url": "https://api.github.com/repos/damus-io/damus", "labels_url": "https://api.github.com/repos/damus-io/damus/issues/2066/labels{/name}", @@ -53,7 +7070,7 @@ "id": 10536809, "node_id": "MI_kwDOHHF5A84AoMdp", "number": 14, - "title": "1.8 post Madeira", + "title": "1.8 post Madeira: UX/UI/Design focus", "description": "", "creator": { "login": "alltheseas", @@ -75,25 +7092,247 @@ "type": "User", "site_admin": false }, - "open_issues": 11, - "closed_issues": 0, + "open_issues": 13, + "closed_issues": 1, "state": "open", "created_at": "2024-02-09T17:16:56Z", - "updated_at": "2024-03-17T12:05:31Z", + "updated_at": "2024-03-20T15:28:11Z", "due_on": null, "closed_at": null }, - "comments": 0, + "comments": 2, "created_at": "2024-03-17T12:05:31Z", - "updated_at": "2024-03-17T12:05:32Z", + "updated_at": "2024-03-17T21:47:12Z", "closed_at": null, "author_association": "COLLABORATOR", "active_lock_reason": null, "body": "This was removed because of apple zap concerns and it was kind of buggy.\r\n\r\nBasic idea is to put the top zap comment immediately under the OP, so that users are incentivized to outbid zaps on popular posts as a way to zapvertise, with creators themselves benefitting from this advertising model.", "reactions": { "url": "https://api.github.com/repos/damus-io/damus/issues/2066/reactions", - "total_count": 0, - "+1": 0, + "total_count": 1, + "+1": 1, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/2066/timeline", + "performed_via_github_app": null, + "state_reason": null + } + }, + { + "issue": { + "url": "https://api.github.com/repos/damus-io/damus/issues/2066", + "repository_url": "https://api.github.com/repos/damus-io/damus", + "labels_url": "https://api.github.com/repos/damus-io/damus/issues/2066/labels{/name}", + "comments_url": "https://api.github.com/repos/damus-io/damus/issues/2066/comments", + "events_url": "https://api.github.com/repos/damus-io/damus/issues/2066/events", + "html_url": "https://github.com/damus-io/damus/issues/2066", + "id": 2190631507, + "node_id": "I_kwDOHHF5A86CkmJT", + "number": 2066, + "title": "Bring back top zaps in threads", + "user": { + "login": "jb55", + "id": 45598, + "node_id": "MDQ6VXNlcjQ1NTk4", + "avatar_url": "https://avatars.githubusercontent.com/u/45598?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/jb55", + "html_url": "https://github.com/jb55", + "followers_url": "https://api.github.com/users/jb55/followers", + "following_url": "https://api.github.com/users/jb55/following{/other_user}", + "gists_url": "https://api.github.com/users/jb55/gists{/gist_id}", + "starred_url": "https://api.github.com/users/jb55/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/jb55/subscriptions", + "organizations_url": "https://api.github.com/users/jb55/orgs", + "repos_url": "https://api.github.com/users/jb55/repos", + "events_url": "https://api.github.com/users/jb55/events{/privacy}", + "received_events_url": "https://api.github.com/users/jb55/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "id": 5667220756, + "node_id": "LA_kwDOHHF5A88AAAABUcrtFA", + "url": "https://api.github.com/repos/damus-io/damus/labels/zaps", + "name": "zaps", + "color": "FBCA04", + "default": false, + "description": "" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "assignees": [], + "milestone": { + "url": "https://api.github.com/repos/damus-io/damus/milestones/14", + "html_url": "https://github.com/damus-io/damus/milestone/14", + "labels_url": "https://api.github.com/repos/damus-io/damus/milestones/14/labels", + "id": 10536809, + "node_id": "MI_kwDOHHF5A84AoMdp", + "number": 14, + "title": "1.8 post Madeira: UX/UI/Design focus", + "description": "", + "creator": { + "login": "alltheseas", + "id": 64376233, + "node_id": "MDQ6VXNlcjY0Mzc2MjMz", + "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/alltheseas", + "html_url": "https://github.com/alltheseas", + "followers_url": "https://api.github.com/users/alltheseas/followers", + "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", + "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", + "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", + "organizations_url": "https://api.github.com/users/alltheseas/orgs", + "repos_url": "https://api.github.com/users/alltheseas/repos", + "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", + "received_events_url": "https://api.github.com/users/alltheseas/received_events", + "type": "User", + "site_admin": false + }, + "open_issues": 13, + "closed_issues": 1, + "state": "open", + "created_at": "2024-02-09T17:16:56Z", + "updated_at": "2024-03-20T15:28:11Z", + "due_on": null, + "closed_at": null + }, + "comments": 2, + "created_at": "2024-03-17T12:05:31Z", + "updated_at": "2024-03-17T21:47:12Z", + "closed_at": null, + "author_association": "COLLABORATOR", + "active_lock_reason": null, + "body": "This was removed because of apple zap concerns and it was kind of buggy.\r\n\r\nBasic idea is to put the top zap comment immediately under the OP, so that users are incentivized to outbid zaps on popular posts as a way to zapvertise, with creators themselves benefitting from this advertising model.", + "reactions": { + "url": "https://api.github.com/repos/damus-io/damus/issues/2066/reactions", + "total_count": 1, + "+1": 1, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/2066/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + "comment": { + "user": "alltheseas", + "created_at": "2024-03-17T21:05:51Z", + "updated_at": "2024-03-17T21:05:51Z", + "body": "Is there a way to prevent fake zaps? " + } + }, + { + "issue": { + "url": "https://api.github.com/repos/damus-io/damus/issues/2066", + "repository_url": "https://api.github.com/repos/damus-io/damus", + "labels_url": "https://api.github.com/repos/damus-io/damus/issues/2066/labels{/name}", + "comments_url": "https://api.github.com/repos/damus-io/damus/issues/2066/comments", + "events_url": "https://api.github.com/repos/damus-io/damus/issues/2066/events", + "html_url": "https://github.com/damus-io/damus/issues/2066", + "id": 2190631507, + "node_id": "I_kwDOHHF5A86CkmJT", + "number": 2066, + "title": "Bring back top zaps in threads", + "user": { + "login": "jb55", + "id": 45598, + "node_id": "MDQ6VXNlcjQ1NTk4", + "avatar_url": "https://avatars.githubusercontent.com/u/45598?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/jb55", + "html_url": "https://github.com/jb55", + "followers_url": "https://api.github.com/users/jb55/followers", + "following_url": "https://api.github.com/users/jb55/following{/other_user}", + "gists_url": "https://api.github.com/users/jb55/gists{/gist_id}", + "starred_url": "https://api.github.com/users/jb55/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/jb55/subscriptions", + "organizations_url": "https://api.github.com/users/jb55/orgs", + "repos_url": "https://api.github.com/users/jb55/repos", + "events_url": "https://api.github.com/users/jb55/events{/privacy}", + "received_events_url": "https://api.github.com/users/jb55/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "id": 5667220756, + "node_id": "LA_kwDOHHF5A88AAAABUcrtFA", + "url": "https://api.github.com/repos/damus-io/damus/labels/zaps", + "name": "zaps", + "color": "FBCA04", + "default": false, + "description": "" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "assignees": [], + "milestone": { + "url": "https://api.github.com/repos/damus-io/damus/milestones/14", + "html_url": "https://github.com/damus-io/damus/milestone/14", + "labels_url": "https://api.github.com/repos/damus-io/damus/milestones/14/labels", + "id": 10536809, + "node_id": "MI_kwDOHHF5A84AoMdp", + "number": 14, + "title": "1.8 post Madeira: UX/UI/Design focus", + "description": "", + "creator": { + "login": "alltheseas", + "id": 64376233, + "node_id": "MDQ6VXNlcjY0Mzc2MjMz", + "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/alltheseas", + "html_url": "https://github.com/alltheseas", + "followers_url": "https://api.github.com/users/alltheseas/followers", + "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", + "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", + "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", + "organizations_url": "https://api.github.com/users/alltheseas/orgs", + "repos_url": "https://api.github.com/users/alltheseas/repos", + "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", + "received_events_url": "https://api.github.com/users/alltheseas/received_events", + "type": "User", + "site_admin": false + }, + "open_issues": 13, + "closed_issues": 1, + "state": "open", + "created_at": "2024-02-09T17:16:56Z", + "updated_at": "2024-03-20T15:28:11Z", + "due_on": null, + "closed_at": null + }, + "comments": 2, + "created_at": "2024-03-17T12:05:31Z", + "updated_at": "2024-03-17T21:47:12Z", + "closed_at": null, + "author_association": "COLLABORATOR", + "active_lock_reason": null, + "body": "This was removed because of apple zap concerns and it was kind of buggy.\r\n\r\nBasic idea is to put the top zap comment immediately under the OP, so that users are incentivized to outbid zaps on popular posts as a way to zapvertise, with creators themselves benefitting from this advertising model.", + "reactions": { + "url": "https://api.github.com/repos/damus-io/damus/issues/2066/reactions", + "total_count": 1, + "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, @@ -105,6 +7344,12 @@ "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/2066/timeline", "performed_via_github_app": null, "state_reason": null + }, + "comment": { + "user": "jb55", + "created_at": "2024-03-17T21:47:10Z", + "updated_at": "2024-03-17T21:47:10Z", + "body": "On Sun, Mar 17, 2024 at 02:06:13PM -0700, alltheseas wrote:\n>Is there a way to prevent fake zaps?\n\nZaps from other can't be faked on your posts if you control your zapper.\nNo one can put fake zaps next to my posts for instance. My node confirms\npayments and only sends zaps when a valid lightning invoice is paid\n\nUsers can only fake zaps on their own posts, which isn't relevant for\nzapvertising.\n" } }, { @@ -201,7 +7446,7 @@ "id": 10536809, "node_id": "MI_kwDOHHF5A84AoMdp", "number": 14, - "title": "1.8 post Madeira", + "title": "1.8 post Madeira: UX/UI/Design focus", "description": "", "creator": { "login": "alltheseas", @@ -223,24 +7468,24 @@ "type": "User", "site_admin": false }, - "open_issues": 11, - "closed_issues": 0, + "open_issues": 13, + "closed_issues": 1, "state": "open", "created_at": "2024-02-09T17:16:56Z", - "updated_at": "2024-03-17T12:05:31Z", + "updated_at": "2024-03-20T15:28:11Z", "due_on": null, "closed_at": null }, - "comments": 0, + "comments": 2, "created_at": "2024-03-17T11:51:09Z", - "updated_at": "2024-03-17T11:54:46Z", + "updated_at": "2024-03-19T15:05:10Z", "closed_at": null, "author_association": "COLLABORATOR", "active_lock_reason": null, "body": "We need a page on our site that gives testflight invite codes to purple users in preparation for the next testflight release.\r\n\r\nQuestions:\r\n\r\n- How do we reset testflight users, maybe we create a new testing group somehow?\r\n- Can we use the verification step in damus as-is or do we need to modify it ?", "reactions": { "url": "https://api.github.com/repos/damus-io/damus/issues/2065/reactions", - "total_count": 0, + "total_count": 1, "+1": 0, "-1": 0, "laugh": 0, @@ -248,11 +7493,319 @@ "confused": 0, "heart": 0, "rocket": 0, - "eyes": 0 + "eyes": 1 + }, + "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/2065/timeline", + "performed_via_github_app": null, + "state_reason": null + } + }, + { + "issue": { + "url": "https://api.github.com/repos/damus-io/damus/issues/2065", + "repository_url": "https://api.github.com/repos/damus-io/damus", + "labels_url": "https://api.github.com/repos/damus-io/damus/issues/2065/labels{/name}", + "comments_url": "https://api.github.com/repos/damus-io/damus/issues/2065/comments", + "events_url": "https://api.github.com/repos/damus-io/damus/issues/2065/events", + "html_url": "https://github.com/damus-io/damus/issues/2065", + "id": 2190624841, + "node_id": "I_kwDOHHF5A86CkkhJ", + "number": 2065, + "title": "Damus purple testflight invite codes", + "user": { + "login": "jb55", + "id": 45598, + "node_id": "MDQ6VXNlcjQ1NTk4", + "avatar_url": "https://avatars.githubusercontent.com/u/45598?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/jb55", + "html_url": "https://github.com/jb55", + "followers_url": "https://api.github.com/users/jb55/followers", + "following_url": "https://api.github.com/users/jb55/following{/other_user}", + "gists_url": "https://api.github.com/users/jb55/gists{/gist_id}", + "starred_url": "https://api.github.com/users/jb55/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/jb55/subscriptions", + "organizations_url": "https://api.github.com/users/jb55/orgs", + "repos_url": "https://api.github.com/users/jb55/repos", + "events_url": "https://api.github.com/users/jb55/events{/privacy}", + "received_events_url": "https://api.github.com/users/jb55/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "id": 5799961735, + "node_id": "LA_kwDOHHF5A88AAAABWbRkhw", + "url": "https://api.github.com/repos/damus-io/damus/labels/purple", + "name": "purple", + "color": "7E12A4", + "default": false, + "description": "Damus purple membership" + } + ], + "state": "open", + "locked": false, + "assignee": { + "login": "danieldaquino", + "id": 24692108, + "node_id": "MDQ6VXNlcjI0NjkyMTA4", + "avatar_url": "https://avatars.githubusercontent.com/u/24692108?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/danieldaquino", + "html_url": "https://github.com/danieldaquino", + "followers_url": "https://api.github.com/users/danieldaquino/followers", + "following_url": "https://api.github.com/users/danieldaquino/following{/other_user}", + "gists_url": "https://api.github.com/users/danieldaquino/gists{/gist_id}", + "starred_url": "https://api.github.com/users/danieldaquino/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/danieldaquino/subscriptions", + "organizations_url": "https://api.github.com/users/danieldaquino/orgs", + "repos_url": "https://api.github.com/users/danieldaquino/repos", + "events_url": "https://api.github.com/users/danieldaquino/events{/privacy}", + "received_events_url": "https://api.github.com/users/danieldaquino/received_events", + "type": "User", + "site_admin": false + }, + "assignees": [ + { + "login": "danieldaquino", + "id": 24692108, + "node_id": "MDQ6VXNlcjI0NjkyMTA4", + "avatar_url": "https://avatars.githubusercontent.com/u/24692108?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/danieldaquino", + "html_url": "https://github.com/danieldaquino", + "followers_url": "https://api.github.com/users/danieldaquino/followers", + "following_url": "https://api.github.com/users/danieldaquino/following{/other_user}", + "gists_url": "https://api.github.com/users/danieldaquino/gists{/gist_id}", + "starred_url": "https://api.github.com/users/danieldaquino/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/danieldaquino/subscriptions", + "organizations_url": "https://api.github.com/users/danieldaquino/orgs", + "repos_url": "https://api.github.com/users/danieldaquino/repos", + "events_url": "https://api.github.com/users/danieldaquino/events{/privacy}", + "received_events_url": "https://api.github.com/users/danieldaquino/received_events", + "type": "User", + "site_admin": false + } + ], + "milestone": { + "url": "https://api.github.com/repos/damus-io/damus/milestones/14", + "html_url": "https://github.com/damus-io/damus/milestone/14", + "labels_url": "https://api.github.com/repos/damus-io/damus/milestones/14/labels", + "id": 10536809, + "node_id": "MI_kwDOHHF5A84AoMdp", + "number": 14, + "title": "1.8 post Madeira: UX/UI/Design focus", + "description": "", + "creator": { + "login": "alltheseas", + "id": 64376233, + "node_id": "MDQ6VXNlcjY0Mzc2MjMz", + "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/alltheseas", + "html_url": "https://github.com/alltheseas", + "followers_url": "https://api.github.com/users/alltheseas/followers", + "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", + "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", + "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", + "organizations_url": "https://api.github.com/users/alltheseas/orgs", + "repos_url": "https://api.github.com/users/alltheseas/repos", + "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", + "received_events_url": "https://api.github.com/users/alltheseas/received_events", + "type": "User", + "site_admin": false + }, + "open_issues": 13, + "closed_issues": 1, + "state": "open", + "created_at": "2024-02-09T17:16:56Z", + "updated_at": "2024-03-20T15:28:11Z", + "due_on": null, + "closed_at": null + }, + "comments": 2, + "created_at": "2024-03-17T11:51:09Z", + "updated_at": "2024-03-19T15:05:10Z", + "closed_at": null, + "author_association": "COLLABORATOR", + "active_lock_reason": null, + "body": "We need a page on our site that gives testflight invite codes to purple users in preparation for the next testflight release.\r\n\r\nQuestions:\r\n\r\n- How do we reset testflight users, maybe we create a new testing group somehow?\r\n- Can we use the verification step in damus as-is or do we need to modify it ?", + "reactions": { + "url": "https://api.github.com/repos/damus-io/damus/issues/2065/reactions", + "total_count": 1, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 1 + }, + "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/2065/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + "comment": { + "user": "alltheseas", + "created_at": "2024-03-18T16:10:38Z", + "updated_at": "2024-03-18T16:10:38Z", + "body": "> Can we use the verification step in damus as-is or do we need to modify it ?\r\n\r\n-new damus-OTP keys, and npub\r\n-NIP-05 on damus.io domain\r\n-additional badge, that cannot be forged \r\n-something official looking\r\n\r\n-can also extend new badge to damus devs" + } + }, + { + "issue": { + "url": "https://api.github.com/repos/damus-io/damus/issues/2065", + "repository_url": "https://api.github.com/repos/damus-io/damus", + "labels_url": "https://api.github.com/repos/damus-io/damus/issues/2065/labels{/name}", + "comments_url": "https://api.github.com/repos/damus-io/damus/issues/2065/comments", + "events_url": "https://api.github.com/repos/damus-io/damus/issues/2065/events", + "html_url": "https://github.com/damus-io/damus/issues/2065", + "id": 2190624841, + "node_id": "I_kwDOHHF5A86CkkhJ", + "number": 2065, + "title": "Damus purple testflight invite codes", + "user": { + "login": "jb55", + "id": 45598, + "node_id": "MDQ6VXNlcjQ1NTk4", + "avatar_url": "https://avatars.githubusercontent.com/u/45598?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/jb55", + "html_url": "https://github.com/jb55", + "followers_url": "https://api.github.com/users/jb55/followers", + "following_url": "https://api.github.com/users/jb55/following{/other_user}", + "gists_url": "https://api.github.com/users/jb55/gists{/gist_id}", + "starred_url": "https://api.github.com/users/jb55/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/jb55/subscriptions", + "organizations_url": "https://api.github.com/users/jb55/orgs", + "repos_url": "https://api.github.com/users/jb55/repos", + "events_url": "https://api.github.com/users/jb55/events{/privacy}", + "received_events_url": "https://api.github.com/users/jb55/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "id": 5799961735, + "node_id": "LA_kwDOHHF5A88AAAABWbRkhw", + "url": "https://api.github.com/repos/damus-io/damus/labels/purple", + "name": "purple", + "color": "7E12A4", + "default": false, + "description": "Damus purple membership" + } + ], + "state": "open", + "locked": false, + "assignee": { + "login": "danieldaquino", + "id": 24692108, + "node_id": "MDQ6VXNlcjI0NjkyMTA4", + "avatar_url": "https://avatars.githubusercontent.com/u/24692108?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/danieldaquino", + "html_url": "https://github.com/danieldaquino", + "followers_url": "https://api.github.com/users/danieldaquino/followers", + "following_url": "https://api.github.com/users/danieldaquino/following{/other_user}", + "gists_url": "https://api.github.com/users/danieldaquino/gists{/gist_id}", + "starred_url": "https://api.github.com/users/danieldaquino/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/danieldaquino/subscriptions", + "organizations_url": "https://api.github.com/users/danieldaquino/orgs", + "repos_url": "https://api.github.com/users/danieldaquino/repos", + "events_url": "https://api.github.com/users/danieldaquino/events{/privacy}", + "received_events_url": "https://api.github.com/users/danieldaquino/received_events", + "type": "User", + "site_admin": false + }, + "assignees": [ + { + "login": "danieldaquino", + "id": 24692108, + "node_id": "MDQ6VXNlcjI0NjkyMTA4", + "avatar_url": "https://avatars.githubusercontent.com/u/24692108?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/danieldaquino", + "html_url": "https://github.com/danieldaquino", + "followers_url": "https://api.github.com/users/danieldaquino/followers", + "following_url": "https://api.github.com/users/danieldaquino/following{/other_user}", + "gists_url": "https://api.github.com/users/danieldaquino/gists{/gist_id}", + "starred_url": "https://api.github.com/users/danieldaquino/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/danieldaquino/subscriptions", + "organizations_url": "https://api.github.com/users/danieldaquino/orgs", + "repos_url": "https://api.github.com/users/danieldaquino/repos", + "events_url": "https://api.github.com/users/danieldaquino/events{/privacy}", + "received_events_url": "https://api.github.com/users/danieldaquino/received_events", + "type": "User", + "site_admin": false + } + ], + "milestone": { + "url": "https://api.github.com/repos/damus-io/damus/milestones/14", + "html_url": "https://github.com/damus-io/damus/milestone/14", + "labels_url": "https://api.github.com/repos/damus-io/damus/milestones/14/labels", + "id": 10536809, + "node_id": "MI_kwDOHHF5A84AoMdp", + "number": 14, + "title": "1.8 post Madeira: UX/UI/Design focus", + "description": "", + "creator": { + "login": "alltheseas", + "id": 64376233, + "node_id": "MDQ6VXNlcjY0Mzc2MjMz", + "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/alltheseas", + "html_url": "https://github.com/alltheseas", + "followers_url": "https://api.github.com/users/alltheseas/followers", + "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", + "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", + "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", + "organizations_url": "https://api.github.com/users/alltheseas/orgs", + "repos_url": "https://api.github.com/users/alltheseas/repos", + "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", + "received_events_url": "https://api.github.com/users/alltheseas/received_events", + "type": "User", + "site_admin": false + }, + "open_issues": 13, + "closed_issues": 1, + "state": "open", + "created_at": "2024-02-09T17:16:56Z", + "updated_at": "2024-03-20T15:28:11Z", + "due_on": null, + "closed_at": null + }, + "comments": 2, + "created_at": "2024-03-17T11:51:09Z", + "updated_at": "2024-03-19T15:05:10Z", + "closed_at": null, + "author_association": "COLLABORATOR", + "active_lock_reason": null, + "body": "We need a page on our site that gives testflight invite codes to purple users in preparation for the next testflight release.\r\n\r\nQuestions:\r\n\r\n- How do we reset testflight users, maybe we create a new testing group somehow?\r\n- Can we use the verification step in damus as-is or do we need to modify it ?", + "reactions": { + "url": "https://api.github.com/repos/damus-io/damus/issues/2065/reactions", + "total_count": 1, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 1 }, "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/2065/timeline", "performed_via_github_app": null, "state_reason": null + }, + "comment": { + "user": "alltheseas", + "created_at": "2024-03-19T15:05:09Z", + "updated_at": "2024-03-19T15:05:09Z", + "body": "damus contributor badge defined here https://github.com/damus-io/damus/issues/2069" } }, { @@ -1262,52 +8815,48 @@ ], "state": "open", "locked": false, - "assignee": { - "login": "jb55", - "id": 45598, - "node_id": "MDQ6VXNlcjQ1NTk4", - "avatar_url": "https://avatars.githubusercontent.com/u/45598?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/jb55", - "html_url": "https://github.com/jb55", - "followers_url": "https://api.github.com/users/jb55/followers", - "following_url": "https://api.github.com/users/jb55/following{/other_user}", - "gists_url": "https://api.github.com/users/jb55/gists{/gist_id}", - "starred_url": "https://api.github.com/users/jb55/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/jb55/subscriptions", - "organizations_url": "https://api.github.com/users/jb55/orgs", - "repos_url": "https://api.github.com/users/jb55/repos", - "events_url": "https://api.github.com/users/jb55/events{/privacy}", - "received_events_url": "https://api.github.com/users/jb55/received_events", - "type": "User", - "site_admin": false - }, - "assignees": [ - { - "login": "jb55", - "id": 45598, - "node_id": "MDQ6VXNlcjQ1NTk4", - "avatar_url": "https://avatars.githubusercontent.com/u/45598?v=4", + "assignee": null, + "assignees": [], + "milestone": { + "url": "https://api.github.com/repos/damus-io/damus/milestones/14", + "html_url": "https://github.com/damus-io/damus/milestone/14", + "labels_url": "https://api.github.com/repos/damus-io/damus/milestones/14/labels", + "id": 10536809, + "node_id": "MI_kwDOHHF5A84AoMdp", + "number": 14, + "title": "1.8 post Madeira: UX/UI/Design focus", + "description": "", + "creator": { + "login": "alltheseas", + "id": 64376233, + "node_id": "MDQ6VXNlcjY0Mzc2MjMz", + "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", "gravatar_id": "", - "url": "https://api.github.com/users/jb55", - "html_url": "https://github.com/jb55", - "followers_url": "https://api.github.com/users/jb55/followers", - "following_url": "https://api.github.com/users/jb55/following{/other_user}", - "gists_url": "https://api.github.com/users/jb55/gists{/gist_id}", - "starred_url": "https://api.github.com/users/jb55/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/jb55/subscriptions", - "organizations_url": "https://api.github.com/users/jb55/orgs", - "repos_url": "https://api.github.com/users/jb55/repos", - "events_url": "https://api.github.com/users/jb55/events{/privacy}", - "received_events_url": "https://api.github.com/users/jb55/received_events", + "url": "https://api.github.com/users/alltheseas", + "html_url": "https://github.com/alltheseas", + "followers_url": "https://api.github.com/users/alltheseas/followers", + "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", + "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", + "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", + "organizations_url": "https://api.github.com/users/alltheseas/orgs", + "repos_url": "https://api.github.com/users/alltheseas/repos", + "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", + "received_events_url": "https://api.github.com/users/alltheseas/received_events", "type": "User", "site_admin": false - } - ], - "milestone": null, - "comments": 7, + }, + "open_issues": 13, + "closed_issues": 1, + "state": "open", + "created_at": "2024-02-09T17:16:56Z", + "updated_at": "2024-03-20T15:28:11Z", + "due_on": null, + "closed_at": null + }, + "comments": 8, "created_at": "2024-03-15T13:50:35Z", - "updated_at": "2024-03-17T08:51:03Z", + "updated_at": "2024-03-18T16:30:40Z", "closed_at": null, "author_association": "COLLABORATOR", "active_lock_reason": null, @@ -1401,52 +8950,48 @@ ], "state": "open", "locked": false, - "assignee": { - "login": "jb55", - "id": 45598, - "node_id": "MDQ6VXNlcjQ1NTk4", - "avatar_url": "https://avatars.githubusercontent.com/u/45598?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/jb55", - "html_url": "https://github.com/jb55", - "followers_url": "https://api.github.com/users/jb55/followers", - "following_url": "https://api.github.com/users/jb55/following{/other_user}", - "gists_url": "https://api.github.com/users/jb55/gists{/gist_id}", - "starred_url": "https://api.github.com/users/jb55/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/jb55/subscriptions", - "organizations_url": "https://api.github.com/users/jb55/orgs", - "repos_url": "https://api.github.com/users/jb55/repos", - "events_url": "https://api.github.com/users/jb55/events{/privacy}", - "received_events_url": "https://api.github.com/users/jb55/received_events", - "type": "User", - "site_admin": false - }, - "assignees": [ - { - "login": "jb55", - "id": 45598, - "node_id": "MDQ6VXNlcjQ1NTk4", - "avatar_url": "https://avatars.githubusercontent.com/u/45598?v=4", + "assignee": null, + "assignees": [], + "milestone": { + "url": "https://api.github.com/repos/damus-io/damus/milestones/14", + "html_url": "https://github.com/damus-io/damus/milestone/14", + "labels_url": "https://api.github.com/repos/damus-io/damus/milestones/14/labels", + "id": 10536809, + "node_id": "MI_kwDOHHF5A84AoMdp", + "number": 14, + "title": "1.8 post Madeira: UX/UI/Design focus", + "description": "", + "creator": { + "login": "alltheseas", + "id": 64376233, + "node_id": "MDQ6VXNlcjY0Mzc2MjMz", + "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", "gravatar_id": "", - "url": "https://api.github.com/users/jb55", - "html_url": "https://github.com/jb55", - "followers_url": "https://api.github.com/users/jb55/followers", - "following_url": "https://api.github.com/users/jb55/following{/other_user}", - "gists_url": "https://api.github.com/users/jb55/gists{/gist_id}", - "starred_url": "https://api.github.com/users/jb55/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/jb55/subscriptions", - "organizations_url": "https://api.github.com/users/jb55/orgs", - "repos_url": "https://api.github.com/users/jb55/repos", - "events_url": "https://api.github.com/users/jb55/events{/privacy}", - "received_events_url": "https://api.github.com/users/jb55/received_events", + "url": "https://api.github.com/users/alltheseas", + "html_url": "https://github.com/alltheseas", + "followers_url": "https://api.github.com/users/alltheseas/followers", + "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", + "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", + "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", + "organizations_url": "https://api.github.com/users/alltheseas/orgs", + "repos_url": "https://api.github.com/users/alltheseas/repos", + "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", + "received_events_url": "https://api.github.com/users/alltheseas/received_events", "type": "User", "site_admin": false - } - ], - "milestone": null, - "comments": 7, + }, + "open_issues": 13, + "closed_issues": 1, + "state": "open", + "created_at": "2024-02-09T17:16:56Z", + "updated_at": "2024-03-20T15:28:11Z", + "due_on": null, + "closed_at": null + }, + "comments": 8, "created_at": "2024-03-15T13:50:35Z", - "updated_at": "2024-03-17T08:51:03Z", + "updated_at": "2024-03-18T16:30:40Z", "closed_at": null, "author_association": "COLLABORATOR", "active_lock_reason": null, @@ -1546,52 +9091,48 @@ ], "state": "open", "locked": false, - "assignee": { - "login": "jb55", - "id": 45598, - "node_id": "MDQ6VXNlcjQ1NTk4", - "avatar_url": "https://avatars.githubusercontent.com/u/45598?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/jb55", - "html_url": "https://github.com/jb55", - "followers_url": "https://api.github.com/users/jb55/followers", - "following_url": "https://api.github.com/users/jb55/following{/other_user}", - "gists_url": "https://api.github.com/users/jb55/gists{/gist_id}", - "starred_url": "https://api.github.com/users/jb55/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/jb55/subscriptions", - "organizations_url": "https://api.github.com/users/jb55/orgs", - "repos_url": "https://api.github.com/users/jb55/repos", - "events_url": "https://api.github.com/users/jb55/events{/privacy}", - "received_events_url": "https://api.github.com/users/jb55/received_events", - "type": "User", - "site_admin": false - }, - "assignees": [ - { - "login": "jb55", - "id": 45598, - "node_id": "MDQ6VXNlcjQ1NTk4", - "avatar_url": "https://avatars.githubusercontent.com/u/45598?v=4", + "assignee": null, + "assignees": [], + "milestone": { + "url": "https://api.github.com/repos/damus-io/damus/milestones/14", + "html_url": "https://github.com/damus-io/damus/milestone/14", + "labels_url": "https://api.github.com/repos/damus-io/damus/milestones/14/labels", + "id": 10536809, + "node_id": "MI_kwDOHHF5A84AoMdp", + "number": 14, + "title": "1.8 post Madeira: UX/UI/Design focus", + "description": "", + "creator": { + "login": "alltheseas", + "id": 64376233, + "node_id": "MDQ6VXNlcjY0Mzc2MjMz", + "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", "gravatar_id": "", - "url": "https://api.github.com/users/jb55", - "html_url": "https://github.com/jb55", - "followers_url": "https://api.github.com/users/jb55/followers", - "following_url": "https://api.github.com/users/jb55/following{/other_user}", - "gists_url": "https://api.github.com/users/jb55/gists{/gist_id}", - "starred_url": "https://api.github.com/users/jb55/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/jb55/subscriptions", - "organizations_url": "https://api.github.com/users/jb55/orgs", - "repos_url": "https://api.github.com/users/jb55/repos", - "events_url": "https://api.github.com/users/jb55/events{/privacy}", - "received_events_url": "https://api.github.com/users/jb55/received_events", + "url": "https://api.github.com/users/alltheseas", + "html_url": "https://github.com/alltheseas", + "followers_url": "https://api.github.com/users/alltheseas/followers", + "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", + "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", + "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", + "organizations_url": "https://api.github.com/users/alltheseas/orgs", + "repos_url": "https://api.github.com/users/alltheseas/repos", + "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", + "received_events_url": "https://api.github.com/users/alltheseas/received_events", "type": "User", "site_admin": false - } - ], - "milestone": null, - "comments": 7, + }, + "open_issues": 13, + "closed_issues": 1, + "state": "open", + "created_at": "2024-02-09T17:16:56Z", + "updated_at": "2024-03-20T15:28:11Z", + "due_on": null, + "closed_at": null + }, + "comments": 8, "created_at": "2024-03-15T13:50:35Z", - "updated_at": "2024-03-17T08:51:03Z", + "updated_at": "2024-03-18T16:30:40Z", "closed_at": null, "author_association": "COLLABORATOR", "active_lock_reason": null, @@ -1691,52 +9232,48 @@ ], "state": "open", "locked": false, - "assignee": { - "login": "jb55", - "id": 45598, - "node_id": "MDQ6VXNlcjQ1NTk4", - "avatar_url": "https://avatars.githubusercontent.com/u/45598?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/jb55", - "html_url": "https://github.com/jb55", - "followers_url": "https://api.github.com/users/jb55/followers", - "following_url": "https://api.github.com/users/jb55/following{/other_user}", - "gists_url": "https://api.github.com/users/jb55/gists{/gist_id}", - "starred_url": "https://api.github.com/users/jb55/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/jb55/subscriptions", - "organizations_url": "https://api.github.com/users/jb55/orgs", - "repos_url": "https://api.github.com/users/jb55/repos", - "events_url": "https://api.github.com/users/jb55/events{/privacy}", - "received_events_url": "https://api.github.com/users/jb55/received_events", - "type": "User", - "site_admin": false - }, - "assignees": [ - { - "login": "jb55", - "id": 45598, - "node_id": "MDQ6VXNlcjQ1NTk4", - "avatar_url": "https://avatars.githubusercontent.com/u/45598?v=4", + "assignee": null, + "assignees": [], + "milestone": { + "url": "https://api.github.com/repos/damus-io/damus/milestones/14", + "html_url": "https://github.com/damus-io/damus/milestone/14", + "labels_url": "https://api.github.com/repos/damus-io/damus/milestones/14/labels", + "id": 10536809, + "node_id": "MI_kwDOHHF5A84AoMdp", + "number": 14, + "title": "1.8 post Madeira: UX/UI/Design focus", + "description": "", + "creator": { + "login": "alltheseas", + "id": 64376233, + "node_id": "MDQ6VXNlcjY0Mzc2MjMz", + "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", "gravatar_id": "", - "url": "https://api.github.com/users/jb55", - "html_url": "https://github.com/jb55", - "followers_url": "https://api.github.com/users/jb55/followers", - "following_url": "https://api.github.com/users/jb55/following{/other_user}", - "gists_url": "https://api.github.com/users/jb55/gists{/gist_id}", - "starred_url": "https://api.github.com/users/jb55/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/jb55/subscriptions", - "organizations_url": "https://api.github.com/users/jb55/orgs", - "repos_url": "https://api.github.com/users/jb55/repos", - "events_url": "https://api.github.com/users/jb55/events{/privacy}", - "received_events_url": "https://api.github.com/users/jb55/received_events", + "url": "https://api.github.com/users/alltheseas", + "html_url": "https://github.com/alltheseas", + "followers_url": "https://api.github.com/users/alltheseas/followers", + "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", + "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", + "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", + "organizations_url": "https://api.github.com/users/alltheseas/orgs", + "repos_url": "https://api.github.com/users/alltheseas/repos", + "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", + "received_events_url": "https://api.github.com/users/alltheseas/received_events", "type": "User", "site_admin": false - } - ], - "milestone": null, - "comments": 7, + }, + "open_issues": 13, + "closed_issues": 1, + "state": "open", + "created_at": "2024-02-09T17:16:56Z", + "updated_at": "2024-03-20T15:28:11Z", + "due_on": null, + "closed_at": null + }, + "comments": 8, "created_at": "2024-03-15T13:50:35Z", - "updated_at": "2024-03-17T08:51:03Z", + "updated_at": "2024-03-18T16:30:40Z", "closed_at": null, "author_association": "COLLABORATOR", "active_lock_reason": null, @@ -1836,52 +9373,48 @@ ], "state": "open", "locked": false, - "assignee": { - "login": "jb55", - "id": 45598, - "node_id": "MDQ6VXNlcjQ1NTk4", - "avatar_url": "https://avatars.githubusercontent.com/u/45598?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/jb55", - "html_url": "https://github.com/jb55", - "followers_url": "https://api.github.com/users/jb55/followers", - "following_url": "https://api.github.com/users/jb55/following{/other_user}", - "gists_url": "https://api.github.com/users/jb55/gists{/gist_id}", - "starred_url": "https://api.github.com/users/jb55/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/jb55/subscriptions", - "organizations_url": "https://api.github.com/users/jb55/orgs", - "repos_url": "https://api.github.com/users/jb55/repos", - "events_url": "https://api.github.com/users/jb55/events{/privacy}", - "received_events_url": "https://api.github.com/users/jb55/received_events", - "type": "User", - "site_admin": false - }, - "assignees": [ - { - "login": "jb55", - "id": 45598, - "node_id": "MDQ6VXNlcjQ1NTk4", - "avatar_url": "https://avatars.githubusercontent.com/u/45598?v=4", + "assignee": null, + "assignees": [], + "milestone": { + "url": "https://api.github.com/repos/damus-io/damus/milestones/14", + "html_url": "https://github.com/damus-io/damus/milestone/14", + "labels_url": "https://api.github.com/repos/damus-io/damus/milestones/14/labels", + "id": 10536809, + "node_id": "MI_kwDOHHF5A84AoMdp", + "number": 14, + "title": "1.8 post Madeira: UX/UI/Design focus", + "description": "", + "creator": { + "login": "alltheseas", + "id": 64376233, + "node_id": "MDQ6VXNlcjY0Mzc2MjMz", + "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", "gravatar_id": "", - "url": "https://api.github.com/users/jb55", - "html_url": "https://github.com/jb55", - "followers_url": "https://api.github.com/users/jb55/followers", - "following_url": "https://api.github.com/users/jb55/following{/other_user}", - "gists_url": "https://api.github.com/users/jb55/gists{/gist_id}", - "starred_url": "https://api.github.com/users/jb55/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/jb55/subscriptions", - "organizations_url": "https://api.github.com/users/jb55/orgs", - "repos_url": "https://api.github.com/users/jb55/repos", - "events_url": "https://api.github.com/users/jb55/events{/privacy}", - "received_events_url": "https://api.github.com/users/jb55/received_events", + "url": "https://api.github.com/users/alltheseas", + "html_url": "https://github.com/alltheseas", + "followers_url": "https://api.github.com/users/alltheseas/followers", + "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", + "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", + "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", + "organizations_url": "https://api.github.com/users/alltheseas/orgs", + "repos_url": "https://api.github.com/users/alltheseas/repos", + "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", + "received_events_url": "https://api.github.com/users/alltheseas/received_events", "type": "User", "site_admin": false - } - ], - "milestone": null, - "comments": 7, + }, + "open_issues": 13, + "closed_issues": 1, + "state": "open", + "created_at": "2024-02-09T17:16:56Z", + "updated_at": "2024-03-20T15:28:11Z", + "due_on": null, + "closed_at": null + }, + "comments": 8, "created_at": "2024-03-15T13:50:35Z", - "updated_at": "2024-03-17T08:51:03Z", + "updated_at": "2024-03-18T16:30:40Z", "closed_at": null, "author_association": "COLLABORATOR", "active_lock_reason": null, @@ -1981,52 +9514,48 @@ ], "state": "open", "locked": false, - "assignee": { - "login": "jb55", - "id": 45598, - "node_id": "MDQ6VXNlcjQ1NTk4", - "avatar_url": "https://avatars.githubusercontent.com/u/45598?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/jb55", - "html_url": "https://github.com/jb55", - "followers_url": "https://api.github.com/users/jb55/followers", - "following_url": "https://api.github.com/users/jb55/following{/other_user}", - "gists_url": "https://api.github.com/users/jb55/gists{/gist_id}", - "starred_url": "https://api.github.com/users/jb55/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/jb55/subscriptions", - "organizations_url": "https://api.github.com/users/jb55/orgs", - "repos_url": "https://api.github.com/users/jb55/repos", - "events_url": "https://api.github.com/users/jb55/events{/privacy}", - "received_events_url": "https://api.github.com/users/jb55/received_events", - "type": "User", - "site_admin": false - }, - "assignees": [ - { - "login": "jb55", - "id": 45598, - "node_id": "MDQ6VXNlcjQ1NTk4", - "avatar_url": "https://avatars.githubusercontent.com/u/45598?v=4", + "assignee": null, + "assignees": [], + "milestone": { + "url": "https://api.github.com/repos/damus-io/damus/milestones/14", + "html_url": "https://github.com/damus-io/damus/milestone/14", + "labels_url": "https://api.github.com/repos/damus-io/damus/milestones/14/labels", + "id": 10536809, + "node_id": "MI_kwDOHHF5A84AoMdp", + "number": 14, + "title": "1.8 post Madeira: UX/UI/Design focus", + "description": "", + "creator": { + "login": "alltheseas", + "id": 64376233, + "node_id": "MDQ6VXNlcjY0Mzc2MjMz", + "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", "gravatar_id": "", - "url": "https://api.github.com/users/jb55", - "html_url": "https://github.com/jb55", - "followers_url": "https://api.github.com/users/jb55/followers", - "following_url": "https://api.github.com/users/jb55/following{/other_user}", - "gists_url": "https://api.github.com/users/jb55/gists{/gist_id}", - "starred_url": "https://api.github.com/users/jb55/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/jb55/subscriptions", - "organizations_url": "https://api.github.com/users/jb55/orgs", - "repos_url": "https://api.github.com/users/jb55/repos", - "events_url": "https://api.github.com/users/jb55/events{/privacy}", - "received_events_url": "https://api.github.com/users/jb55/received_events", + "url": "https://api.github.com/users/alltheseas", + "html_url": "https://github.com/alltheseas", + "followers_url": "https://api.github.com/users/alltheseas/followers", + "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", + "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", + "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", + "organizations_url": "https://api.github.com/users/alltheseas/orgs", + "repos_url": "https://api.github.com/users/alltheseas/repos", + "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", + "received_events_url": "https://api.github.com/users/alltheseas/received_events", "type": "User", "site_admin": false - } - ], - "milestone": null, - "comments": 7, + }, + "open_issues": 13, + "closed_issues": 1, + "state": "open", + "created_at": "2024-02-09T17:16:56Z", + "updated_at": "2024-03-20T15:28:11Z", + "due_on": null, + "closed_at": null + }, + "comments": 8, "created_at": "2024-03-15T13:50:35Z", - "updated_at": "2024-03-17T08:51:03Z", + "updated_at": "2024-03-18T16:30:40Z", "closed_at": null, "author_association": "COLLABORATOR", "active_lock_reason": null, @@ -2126,52 +9655,48 @@ ], "state": "open", "locked": false, - "assignee": { - "login": "jb55", - "id": 45598, - "node_id": "MDQ6VXNlcjQ1NTk4", - "avatar_url": "https://avatars.githubusercontent.com/u/45598?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/jb55", - "html_url": "https://github.com/jb55", - "followers_url": "https://api.github.com/users/jb55/followers", - "following_url": "https://api.github.com/users/jb55/following{/other_user}", - "gists_url": "https://api.github.com/users/jb55/gists{/gist_id}", - "starred_url": "https://api.github.com/users/jb55/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/jb55/subscriptions", - "organizations_url": "https://api.github.com/users/jb55/orgs", - "repos_url": "https://api.github.com/users/jb55/repos", - "events_url": "https://api.github.com/users/jb55/events{/privacy}", - "received_events_url": "https://api.github.com/users/jb55/received_events", - "type": "User", - "site_admin": false - }, - "assignees": [ - { - "login": "jb55", - "id": 45598, - "node_id": "MDQ6VXNlcjQ1NTk4", - "avatar_url": "https://avatars.githubusercontent.com/u/45598?v=4", + "assignee": null, + "assignees": [], + "milestone": { + "url": "https://api.github.com/repos/damus-io/damus/milestones/14", + "html_url": "https://github.com/damus-io/damus/milestone/14", + "labels_url": "https://api.github.com/repos/damus-io/damus/milestones/14/labels", + "id": 10536809, + "node_id": "MI_kwDOHHF5A84AoMdp", + "number": 14, + "title": "1.8 post Madeira: UX/UI/Design focus", + "description": "", + "creator": { + "login": "alltheseas", + "id": 64376233, + "node_id": "MDQ6VXNlcjY0Mzc2MjMz", + "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", "gravatar_id": "", - "url": "https://api.github.com/users/jb55", - "html_url": "https://github.com/jb55", - "followers_url": "https://api.github.com/users/jb55/followers", - "following_url": "https://api.github.com/users/jb55/following{/other_user}", - "gists_url": "https://api.github.com/users/jb55/gists{/gist_id}", - "starred_url": "https://api.github.com/users/jb55/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/jb55/subscriptions", - "organizations_url": "https://api.github.com/users/jb55/orgs", - "repos_url": "https://api.github.com/users/jb55/repos", - "events_url": "https://api.github.com/users/jb55/events{/privacy}", - "received_events_url": "https://api.github.com/users/jb55/received_events", + "url": "https://api.github.com/users/alltheseas", + "html_url": "https://github.com/alltheseas", + "followers_url": "https://api.github.com/users/alltheseas/followers", + "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", + "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", + "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", + "organizations_url": "https://api.github.com/users/alltheseas/orgs", + "repos_url": "https://api.github.com/users/alltheseas/repos", + "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", + "received_events_url": "https://api.github.com/users/alltheseas/received_events", "type": "User", "site_admin": false - } - ], - "milestone": null, - "comments": 7, + }, + "open_issues": 13, + "closed_issues": 1, + "state": "open", + "created_at": "2024-02-09T17:16:56Z", + "updated_at": "2024-03-20T15:28:11Z", + "due_on": null, + "closed_at": null + }, + "comments": 8, "created_at": "2024-03-15T13:50:35Z", - "updated_at": "2024-03-17T08:51:03Z", + "updated_at": "2024-03-18T16:30:40Z", "closed_at": null, "author_association": "COLLABORATOR", "active_lock_reason": null, @@ -2271,52 +9796,48 @@ ], "state": "open", "locked": false, - "assignee": { - "login": "jb55", - "id": 45598, - "node_id": "MDQ6VXNlcjQ1NTk4", - "avatar_url": "https://avatars.githubusercontent.com/u/45598?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/jb55", - "html_url": "https://github.com/jb55", - "followers_url": "https://api.github.com/users/jb55/followers", - "following_url": "https://api.github.com/users/jb55/following{/other_user}", - "gists_url": "https://api.github.com/users/jb55/gists{/gist_id}", - "starred_url": "https://api.github.com/users/jb55/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/jb55/subscriptions", - "organizations_url": "https://api.github.com/users/jb55/orgs", - "repos_url": "https://api.github.com/users/jb55/repos", - "events_url": "https://api.github.com/users/jb55/events{/privacy}", - "received_events_url": "https://api.github.com/users/jb55/received_events", - "type": "User", - "site_admin": false - }, - "assignees": [ - { - "login": "jb55", - "id": 45598, - "node_id": "MDQ6VXNlcjQ1NTk4", - "avatar_url": "https://avatars.githubusercontent.com/u/45598?v=4", + "assignee": null, + "assignees": [], + "milestone": { + "url": "https://api.github.com/repos/damus-io/damus/milestones/14", + "html_url": "https://github.com/damus-io/damus/milestone/14", + "labels_url": "https://api.github.com/repos/damus-io/damus/milestones/14/labels", + "id": 10536809, + "node_id": "MI_kwDOHHF5A84AoMdp", + "number": 14, + "title": "1.8 post Madeira: UX/UI/Design focus", + "description": "", + "creator": { + "login": "alltheseas", + "id": 64376233, + "node_id": "MDQ6VXNlcjY0Mzc2MjMz", + "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", "gravatar_id": "", - "url": "https://api.github.com/users/jb55", - "html_url": "https://github.com/jb55", - "followers_url": "https://api.github.com/users/jb55/followers", - "following_url": "https://api.github.com/users/jb55/following{/other_user}", - "gists_url": "https://api.github.com/users/jb55/gists{/gist_id}", - "starred_url": "https://api.github.com/users/jb55/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/jb55/subscriptions", - "organizations_url": "https://api.github.com/users/jb55/orgs", - "repos_url": "https://api.github.com/users/jb55/repos", - "events_url": "https://api.github.com/users/jb55/events{/privacy}", - "received_events_url": "https://api.github.com/users/jb55/received_events", + "url": "https://api.github.com/users/alltheseas", + "html_url": "https://github.com/alltheseas", + "followers_url": "https://api.github.com/users/alltheseas/followers", + "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", + "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", + "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", + "organizations_url": "https://api.github.com/users/alltheseas/orgs", + "repos_url": "https://api.github.com/users/alltheseas/repos", + "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", + "received_events_url": "https://api.github.com/users/alltheseas/received_events", "type": "User", "site_admin": false - } - ], - "milestone": null, - "comments": 7, + }, + "open_issues": 13, + "closed_issues": 1, + "state": "open", + "created_at": "2024-02-09T17:16:56Z", + "updated_at": "2024-03-20T15:28:11Z", + "due_on": null, + "closed_at": null + }, + "comments": 8, "created_at": "2024-03-15T13:50:35Z", - "updated_at": "2024-03-17T08:51:03Z", + "updated_at": "2024-03-18T16:30:40Z", "closed_at": null, "author_association": "COLLABORATOR", "active_lock_reason": null, @@ -2346,6 +9867,147 @@ }, { "issue": { + "url": "https://api.github.com/repos/damus-io/damus/issues/2057", + "repository_url": "https://api.github.com/repos/damus-io/damus", + "labels_url": "https://api.github.com/repos/damus-io/damus/issues/2057/labels{/name}", + "comments_url": "https://api.github.com/repos/damus-io/damus/issues/2057/comments", + "events_url": "https://api.github.com/repos/damus-io/damus/issues/2057/events", + "html_url": "https://github.com/damus-io/damus/issues/2057", + "id": 2188564342, + "node_id": "I_kwDOHHF5A86Cctd2", + "number": 2057, + "title": "Confirm contact list creation during account creation", + "user": { + "login": "alltheseas", + "id": 64376233, + "node_id": "MDQ6VXNlcjY0Mzc2MjMz", + "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/alltheseas", + "html_url": "https://github.com/alltheseas", + "followers_url": "https://api.github.com/users/alltheseas/followers", + "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", + "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", + "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", + "organizations_url": "https://api.github.com/users/alltheseas/orgs", + "repos_url": "https://api.github.com/users/alltheseas/repos", + "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", + "received_events_url": "https://api.github.com/users/alltheseas/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "id": 3994718396, + "node_id": "LA_kwDOHHF5A87uGpC8", + "url": "https://api.github.com/repos/damus-io/damus/labels/bug", + "name": "bug", + "color": "d73a4a", + "default": true, + "description": "Something is not working, or not working as intended" + }, + { + "id": 5667354123, + "node_id": "LA_kwDOHHF5A88AAAABUcz2Cw", + "url": "https://api.github.com/repos/damus-io/damus/labels/onboarding", + "name": "onboarding", + "color": "D4C5F9", + "default": false, + "description": "" + }, + { + "id": 5667376796, + "node_id": "LA_kwDOHHF5A88AAAABUc1OnA", + "url": "https://api.github.com/repos/damus-io/damus/labels/technical", + "name": "technical", + "color": "B60205", + "default": false, + "description": "" + }, + { + "id": 5667406338, + "node_id": "LA_kwDOHHF5A88AAAABUc3CAg", + "url": "https://api.github.com/repos/damus-io/damus/labels/Needs%20recreation", + "name": "Needs recreation", + "color": "FBCA04", + "default": false, + "description": "Issues requires concrete steps for recreation" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "assignees": [], + "milestone": { + "url": "https://api.github.com/repos/damus-io/damus/milestones/14", + "html_url": "https://github.com/damus-io/damus/milestone/14", + "labels_url": "https://api.github.com/repos/damus-io/damus/milestones/14/labels", + "id": 10536809, + "node_id": "MI_kwDOHHF5A84AoMdp", + "number": 14, + "title": "1.8 post Madeira: UX/UI/Design focus", + "description": "", + "creator": { + "login": "alltheseas", + "id": 64376233, + "node_id": "MDQ6VXNlcjY0Mzc2MjMz", + "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/alltheseas", + "html_url": "https://github.com/alltheseas", + "followers_url": "https://api.github.com/users/alltheseas/followers", + "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", + "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", + "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", + "organizations_url": "https://api.github.com/users/alltheseas/orgs", + "repos_url": "https://api.github.com/users/alltheseas/repos", + "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", + "received_events_url": "https://api.github.com/users/alltheseas/received_events", + "type": "User", + "site_admin": false + }, + "open_issues": 13, + "closed_issues": 1, + "state": "open", + "created_at": "2024-02-09T17:16:56Z", + "updated_at": "2024-03-20T15:28:11Z", + "due_on": null, + "closed_at": null + }, + "comments": 8, + "created_at": "2024-03-15T13:50:35Z", + "updated_at": "2024-03-18T16:30:40Z", + "closed_at": null, + "author_association": "COLLABORATOR", + "active_lock_reason": null, + "body": "## solution\n\nWe should only continue onboarding if we get a contact list creation confirmation from the server.\n\n\nhttps://damus.io/nevent1qqswkugx9lh2lye8snjxgmwl70p85qeanhe99erm49al04qa9nptsec46djng\n\n## problem observation\n\nI’m suspecting that some unhappy path damus onboarding leads to some limbo state where there is no relay list, or contact list\n\nI could not recreate with two new test profiles. \n\n## diagnosis\n\n> This can happen if they create an account when they are not connected to\nthe internet. We should only continue onboarding if we get a contact\nlist creation confirmation from the server.\n", + "reactions": { + "url": "https://api.github.com/repos/damus-io/damus/issues/2057/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/2057/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + "comment": { + "user": "alltheseas", + "created_at": "2024-03-18T16:29:54Z", + "updated_at": "2024-03-18T16:29:54Z", + "body": "fyi @ericholguin " + } + }, + { + "issue": { "url": "https://api.github.com/repos/damus-io/damus/issues/2056", "repository_url": "https://api.github.com/repos/damus-io/damus", "labels_url": "https://api.github.com/repos/damus-io/damus/issues/2056/labels{/name}", @@ -5325,9 +12987,9 @@ "assignee": null, "assignees": [], "milestone": null, - "comments": 2, + "comments": 3, "created_at": "2024-03-13T15:55:15Z", - "updated_at": "2024-03-16T08:59:58Z", + "updated_at": "2024-03-18T16:14:25Z", "closed_at": null, "author_association": "COLLABORATOR", "active_lock_reason": null, @@ -5406,9 +13068,9 @@ "assignee": null, "assignees": [], "milestone": null, - "comments": 2, + "comments": 3, "created_at": "2024-03-13T15:55:15Z", - "updated_at": "2024-03-16T08:59:58Z", + "updated_at": "2024-03-18T16:14:25Z", "closed_at": null, "author_association": "COLLABORATOR", "active_lock_reason": null, @@ -5493,9 +13155,9 @@ "assignee": null, "assignees": [], "milestone": null, - "comments": 2, + "comments": 3, "created_at": "2024-03-13T15:55:15Z", - "updated_at": "2024-03-16T08:59:58Z", + "updated_at": "2024-03-18T16:14:25Z", "closed_at": null, "author_association": "COLLABORATOR", "active_lock_reason": null, @@ -5525,6 +13187,93 @@ }, { "issue": { + "url": "https://api.github.com/repos/damus-io/damus/issues/2047", + "repository_url": "https://api.github.com/repos/damus-io/damus", + "labels_url": "https://api.github.com/repos/damus-io/damus/issues/2047/labels{/name}", + "comments_url": "https://api.github.com/repos/damus-io/damus/issues/2047/comments", + "events_url": "https://api.github.com/repos/damus-io/damus/issues/2047/events", + "html_url": "https://github.com/damus-io/damus/issues/2047", + "id": 2184362280, + "node_id": "I_kwDOHHF5A86CMrko", + "number": 2047, + "title": "Keep keyword in view when scrolling in search", + "user": { + "login": "alltheseas", + "id": 64376233, + "node_id": "MDQ6VXNlcjY0Mzc2MjMz", + "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/alltheseas", + "html_url": "https://github.com/alltheseas", + "followers_url": "https://api.github.com/users/alltheseas/followers", + "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", + "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", + "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", + "organizations_url": "https://api.github.com/users/alltheseas/orgs", + "repos_url": "https://api.github.com/users/alltheseas/repos", + "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", + "received_events_url": "https://api.github.com/users/alltheseas/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "id": 5667222085, + "node_id": "LA_kwDOHHF5A88AAAABUcryRQ", + "url": "https://api.github.com/repos/damus-io/damus/labels/design", + "name": "design", + "color": "5319E7", + "default": false, + "description": "Design exploration & definition is required" + }, + { + "id": 6213404742, + "node_id": "LA_kwDOHHF5A88AAAABclkIRg", + "url": "https://api.github.com/repos/damus-io/damus/labels/search", + "name": "search", + "color": "0e8a16", + "default": false, + "description": "" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "assignees": [], + "milestone": null, + "comments": 3, + "created_at": "2024-03-13T15:55:15Z", + "updated_at": "2024-03-18T16:14:25Z", + "closed_at": null, + "author_association": "COLLABORATOR", + "active_lock_reason": null, + "body": "## user story\r\n\r\nAs a Damus user searching for a keyword, I would like a way to be reminded of the keyword I searched for as I am scrolling down the note results, so that I can keep focus on the keyword.\r\n\r\n### acceptance criteria.\r\n\r\n1. There is a method to remind user of the keyword searched for as user is scrolling in search note view\r\n\r\n### design exploration\r\n\r\n@robagreda what do you think?\r\n\r\n1) highlight keyword in all notes with results (MOCKUP below)\r\n![HIGHLIGHTS](https://github.com/damus-io/damus/assets/64376233/1aa143c1-ba34-4213-a882-21a374b37ab2)\r\n\r\n\r\n2) keep a header row that contains and perpetually displays the keyword searched for (see example for google web search in browser)\r\n![Screenshot 2024-03-13 at 10 49 40 AM](https://github.com/damus-io/damus/assets/64376233/94adf690-19e9-4306-8b01-410bc8395c3b)\r\n\r\n", + "reactions": { + "url": "https://api.github.com/repos/damus-io/damus/issues/2047/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/2047/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + "comment": { + "user": "alltheseas", + "created_at": "2024-03-18T16:14:24Z", + "updated_at": "2024-03-18T16:14:24Z", + "body": "![HIGHLIGHTS (1)](https://github.com/damus-io/damus/assets/64376233/5a76536b-0c3a-4b95-918a-2cf6983874d4)\r\n\r\n@ericholguin " + } + }, + { + "issue": { "url": "https://api.github.com/repos/damus-io/damus/issues/2046", "repository_url": "https://api.github.com/repos/damus-io/damus", "labels_url": "https://api.github.com/repos/damus-io/damus/issues/2046/labels{/name}", @@ -6058,8 +13807,48 @@ ], "state": "open", "locked": false, - "assignee": null, - "assignees": [], + "assignee": { + "login": "jb55", + "id": 45598, + "node_id": "MDQ6VXNlcjQ1NTk4", + "avatar_url": "https://avatars.githubusercontent.com/u/45598?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/jb55", + "html_url": "https://github.com/jb55", + "followers_url": "https://api.github.com/users/jb55/followers", + "following_url": "https://api.github.com/users/jb55/following{/other_user}", + "gists_url": "https://api.github.com/users/jb55/gists{/gist_id}", + "starred_url": "https://api.github.com/users/jb55/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/jb55/subscriptions", + "organizations_url": "https://api.github.com/users/jb55/orgs", + "repos_url": "https://api.github.com/users/jb55/repos", + "events_url": "https://api.github.com/users/jb55/events{/privacy}", + "received_events_url": "https://api.github.com/users/jb55/received_events", + "type": "User", + "site_admin": false + }, + "assignees": [ + { + "login": "jb55", + "id": 45598, + "node_id": "MDQ6VXNlcjQ1NTk4", + "avatar_url": "https://avatars.githubusercontent.com/u/45598?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/jb55", + "html_url": "https://github.com/jb55", + "followers_url": "https://api.github.com/users/jb55/followers", + "following_url": "https://api.github.com/users/jb55/following{/other_user}", + "gists_url": "https://api.github.com/users/jb55/gists{/gist_id}", + "starred_url": "https://api.github.com/users/jb55/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/jb55/subscriptions", + "organizations_url": "https://api.github.com/users/jb55/orgs", + "repos_url": "https://api.github.com/users/jb55/repos", + "events_url": "https://api.github.com/users/jb55/events{/privacy}", + "received_events_url": "https://api.github.com/users/jb55/received_events", + "type": "User", + "site_admin": false + } + ], "milestone": { "url": "https://api.github.com/repos/damus-io/damus/milestones/14", "html_url": "https://github.com/damus-io/damus/milestone/14", @@ -6067,7 +13856,7 @@ "id": 10536809, "node_id": "MI_kwDOHHF5A84AoMdp", "number": 14, - "title": "1.8 post Madeira", + "title": "1.8 post Madeira: UX/UI/Design focus", "description": "", "creator": { "login": "alltheseas", @@ -6089,17 +13878,17 @@ "type": "User", "site_admin": false }, - "open_issues": 11, - "closed_issues": 0, + "open_issues": 13, + "closed_issues": 1, "state": "open", "created_at": "2024-02-09T17:16:56Z", - "updated_at": "2024-03-17T12:05:31Z", + "updated_at": "2024-03-20T15:28:11Z", "due_on": null, "closed_at": null }, "comments": 0, "created_at": "2024-03-12T10:54:22Z", - "updated_at": "2024-03-13T07:55:39Z", + "updated_at": "2024-03-18T15:58:28Z", "closed_at": null, "author_association": "COLLABORATOR", "active_lock_reason": null, @@ -6215,7 +14004,7 @@ "id": 10536809, "node_id": "MI_kwDOHHF5A84AoMdp", "number": 14, - "title": "1.8 post Madeira", + "title": "1.8 post Madeira: UX/UI/Design focus", "description": "", "creator": { "login": "alltheseas", @@ -6237,11 +14026,11 @@ "type": "User", "site_admin": false }, - "open_issues": 11, - "closed_issues": 0, + "open_issues": 13, + "closed_issues": 1, "state": "open", "created_at": "2024-02-09T17:16:56Z", - "updated_at": "2024-03-17T12:05:31Z", + "updated_at": "2024-03-20T15:28:11Z", "due_on": null, "closed_at": null }, @@ -6372,7 +14161,7 @@ "id": 10536809, "node_id": "MI_kwDOHHF5A84AoMdp", "number": 14, - "title": "1.8 post Madeira", + "title": "1.8 post Madeira: UX/UI/Design focus", "description": "", "creator": { "login": "alltheseas", @@ -6394,31 +14183,31 @@ "type": "User", "site_admin": false }, - "open_issues": 11, - "closed_issues": 0, + "open_issues": 13, + "closed_issues": 1, "state": "open", "created_at": "2024-02-09T17:16:56Z", - "updated_at": "2024-03-17T12:05:31Z", + "updated_at": "2024-03-20T15:28:11Z", "due_on": null, "closed_at": null }, "comments": 0, "created_at": "2024-03-12T10:51:31Z", - "updated_at": "2024-03-12T12:27:49Z", + "updated_at": "2024-03-20T14:06:15Z", "closed_at": null, "author_association": "COLLABORATOR", "active_lock_reason": null, - "body": "To switch to a local query model, we need to move away from trusting remote relays.\r\n\r\nThere are many issues with what we are currently doing:\r\n\r\n- We don't check to see if the results returned from the relay actually match the query we sent. This enables rogue relays to inject ads or other bad data. This is particularily bad in the gossip model, since users can force clients to make requests to evil relays outside of the user's configured relay pool.\r\n\r\n- Since we don't check signatures on all note types (only profiles), this would enable users to spoof DMs. This is technically possible today but is mitigated by some level of trust in the current mega-relays.\r\n\r\n- We have to spin off async processes parse note contents once we get them off the wire. Swift's concurrency model is decent but it is still kind of annoying to delay timeline insertion based off a bunch of asyncronous tasks.\r\n\r\n- Since we're currently inserting data into nostrdb already we technically are doing twice the amount of processing work for no reason \r\n\r\nSwitching to a nostrdb for local queries fixes all of these issues:\r\n\r\n- All notes in nostrdb are validated, so we don't have to worry about spoofing\r\n\r\n- We don't have to worry about relays sending bad data, because we only ever query the local relay which we know will always match the query we are executing.\r\n\r\n- Local subscriptions are notified only after we parse note contents, so we don't have to wait for async processing to render the note.\r\n\r\n- nostrdb is much more efficient at ingesting notes, so we will save CPU and battery.\r\n\r\n- Having notes locally will allow us to use negentropy for keeping nostrdb nodes in sync.\r\n\r\nThis is already implemented in Damus notedeck and android, now we need to overhaul Damus iOS to support this model. This issue is for tracking this!\r\n", + "body": "To switch to a local query model, we need to move away from trusting remote relays.\r\n\r\nThere are many issues with what we are currently doing:\r\n\r\n- We don't check to see if the results returned from the relay actually match the query we sent. This enables rogue relays to inject ads or other bad data. This is particularily bad in the gossip model, since users can force clients to make requests to evil relays outside of the user's configured relay pool.\r\n\r\n- Since we don't check signatures on all note types (only profiles), this would enable users to spoof DMs. This is technically possible today but is mitigated by some level of trust in the current mega-relays.\r\n\r\n- We have to spin off async processes parse note contents once we get them off the wire. Swift's concurrency model is decent but it is still kind of annoying to delay timeline insertion based off a bunch of asyncronous tasks.\r\n\r\n- Since we're currently inserting data into nostrdb already we technically are doing twice the amount of processing work for no reason \r\n\r\nSwitching to a nostrdb for local queries fixes all of these issues:\r\n\r\n- All notes in nostrdb are validated, so we don't have to worry about spoofing\r\n\r\n- We don't have to worry about relays sending bad data, because we only ever query the local relay which we know will always match the query we are executing.\r\n\r\n- Local subscriptions are notified only after we parse note contents, so we don't have to wait for async processing to render the note.\r\n\r\n- nostrdb is much more efficient at ingesting notes, so we will save CPU and battery.\r\n\r\n- Having notes locally will allow us to use negentropy for keeping nostrdb nodes in sync.\r\n\r\nThis is already implemented in Damus notedeck and android, now we need to overhaul Damus iOS to support this model. This issue is for tracking this!\r\n\nOnce we switch to this model we can begin work on adding support for the gossip model!", "reactions": { "url": "https://api.github.com/repos/damus-io/damus/issues/2041/reactions", - "total_count": 0, + "total_count": 1, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, - "rocket": 0, + "rocket": 1, "eyes": 0 }, "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/2041/timeline", @@ -9713,10 +17502,10 @@ "assignee": null, "assignees": [], "milestone": null, - "comments": 0, + "comments": 5, "created_at": "2024-03-04T20:31:17Z", - "updated_at": "2024-03-12T09:52:47Z", - "closed_at": "2024-03-12T09:52:47Z", + "updated_at": "2024-03-20T08:30:21Z", + "closed_at": "2024-03-19T02:20:28Z", "author_association": "COLLABORATOR", "active_lock_reason": null, "body": "Currently notes from activitypub are displayed in scroll view. See https://github.com/damus-io/damus/issues/1885#issuecomment-1974747464.\r\n\r\n## user story\r\n\r\nAs a Damus user examining notes, if I am in note view, I would like to see if a note is from activitypub, or threads in note view.\r\n\r\n### acceptance criteria\r\n1. in note view, notes from activitypub should have the acitvitypub label\r\n2.in note view, notes from threads should have the threads label ", @@ -9739,6 +17528,396 @@ }, { "issue": { + "url": "https://api.github.com/repos/damus-io/damus/issues/2033", + "repository_url": "https://api.github.com/repos/damus-io/damus", + "labels_url": "https://api.github.com/repos/damus-io/damus/issues/2033/labels{/name}", + "comments_url": "https://api.github.com/repos/damus-io/damus/issues/2033/comments", + "events_url": "https://api.github.com/repos/damus-io/damus/issues/2033/events", + "html_url": "https://github.com/damus-io/damus/issues/2033", + "id": 2167690929, + "node_id": "I_kwDOHHF5A86BNFax", + "number": 2033, + "title": "In note view, show fediverse, threads label", + "user": { + "login": "alltheseas", + "id": 64376233, + "node_id": "MDQ6VXNlcjY0Mzc2MjMz", + "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/alltheseas", + "html_url": "https://github.com/alltheseas", + "followers_url": "https://api.github.com/users/alltheseas/followers", + "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", + "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", + "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", + "organizations_url": "https://api.github.com/users/alltheseas/orgs", + "repos_url": "https://api.github.com/users/alltheseas/repos", + "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", + "received_events_url": "https://api.github.com/users/alltheseas/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "id": 3994718399, + "node_id": "LA_kwDOHHF5A87uGpC_", + "url": "https://api.github.com/repos/damus-io/damus/labels/enhancement", + "name": "enhancement", + "color": "a2eeef", + "default": true, + "description": "Improvement" + } + ], + "state": "closed", + "locked": false, + "assignee": null, + "assignees": [], + "milestone": null, + "comments": 5, + "created_at": "2024-03-04T20:31:17Z", + "updated_at": "2024-03-20T08:30:21Z", + "closed_at": "2024-03-19T02:20:28Z", + "author_association": "COLLABORATOR", + "active_lock_reason": null, + "body": "Currently notes from activitypub are displayed in scroll view. See https://github.com/damus-io/damus/issues/1885#issuecomment-1974747464.\r\n\r\n## user story\r\n\r\nAs a Damus user examining notes, if I am in note view, I would like to see if a note is from activitypub, or threads in note view.\r\n\r\n### acceptance criteria\r\n1. in note view, notes from activitypub should have the acitvitypub label\r\n2.in note view, notes from threads should have the threads label ", + "reactions": { + "url": "https://api.github.com/repos/damus-io/damus/issues/2033/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/2033/timeline", + "performed_via_github_app": null, + "state_reason": "completed" + }, + "comment": { + "user": "alltheseas", + "created_at": "2024-03-19T01:03:51Z", + "updated_at": "2024-03-19T01:03:51Z", + "body": "@ericholguin @jb55 I dont see the fediverse acrivitypub label in thread view\n\n![image](https://github.com/damus-io/damus/assets/64376233/91bf5abe-cd92-4cef-9097-76fe5074e02c)\n\n![image](https://github.com/damus-io/damus/assets/64376233/22f3becf-fa53-4431-96ef-fc5b5c04f739)\n\nI'm on latest appstore build 1.7.2 (1)" + } + }, + { + "issue": { + "url": "https://api.github.com/repos/damus-io/damus/issues/2033", + "repository_url": "https://api.github.com/repos/damus-io/damus", + "labels_url": "https://api.github.com/repos/damus-io/damus/issues/2033/labels{/name}", + "comments_url": "https://api.github.com/repos/damus-io/damus/issues/2033/comments", + "events_url": "https://api.github.com/repos/damus-io/damus/issues/2033/events", + "html_url": "https://github.com/damus-io/damus/issues/2033", + "id": 2167690929, + "node_id": "I_kwDOHHF5A86BNFax", + "number": 2033, + "title": "In note view, show fediverse, threads label", + "user": { + "login": "alltheseas", + "id": 64376233, + "node_id": "MDQ6VXNlcjY0Mzc2MjMz", + "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/alltheseas", + "html_url": "https://github.com/alltheseas", + "followers_url": "https://api.github.com/users/alltheseas/followers", + "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", + "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", + "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", + "organizations_url": "https://api.github.com/users/alltheseas/orgs", + "repos_url": "https://api.github.com/users/alltheseas/repos", + "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", + "received_events_url": "https://api.github.com/users/alltheseas/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "id": 3994718399, + "node_id": "LA_kwDOHHF5A87uGpC_", + "url": "https://api.github.com/repos/damus-io/damus/labels/enhancement", + "name": "enhancement", + "color": "a2eeef", + "default": true, + "description": "Improvement" + } + ], + "state": "closed", + "locked": false, + "assignee": null, + "assignees": [], + "milestone": null, + "comments": 5, + "created_at": "2024-03-04T20:31:17Z", + "updated_at": "2024-03-20T08:30:21Z", + "closed_at": "2024-03-19T02:20:28Z", + "author_association": "COLLABORATOR", + "active_lock_reason": null, + "body": "Currently notes from activitypub are displayed in scroll view. See https://github.com/damus-io/damus/issues/1885#issuecomment-1974747464.\r\n\r\n## user story\r\n\r\nAs a Damus user examining notes, if I am in note view, I would like to see if a note is from activitypub, or threads in note view.\r\n\r\n### acceptance criteria\r\n1. in note view, notes from activitypub should have the acitvitypub label\r\n2.in note view, notes from threads should have the threads label ", + "reactions": { + "url": "https://api.github.com/repos/damus-io/damus/issues/2033/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/2033/timeline", + "performed_via_github_app": null, + "state_reason": "completed" + }, + "comment": { + "user": "alltheseas", + "created_at": "2024-03-19T01:04:37Z", + "updated_at": "2024-03-19T01:04:37Z", + "body": "https://damus.io/npub1p6452a6qhpjm55u4w5hwda9ujnu3s4j63587v8wdcya4qruyq6esfmergf\n\nhttps://damus.io/nevent1qqs9vyqspxp935pu5a64gy4xa57xmdheesvz2n5qt5rxvh33t0vum3qpzemhxue69uhkzarvv9ejumn0wd68ytnvv9hxgqg0waehxw309ahx7um5wghx6mmdqyghwumn8ghj7mn0wd68ytnvw5hxkegpp4mhxue69uhkummn9ekx7mq7h8prp" + } + }, + { + "issue": { + "url": "https://api.github.com/repos/damus-io/damus/issues/2033", + "repository_url": "https://api.github.com/repos/damus-io/damus", + "labels_url": "https://api.github.com/repos/damus-io/damus/issues/2033/labels{/name}", + "comments_url": "https://api.github.com/repos/damus-io/damus/issues/2033/comments", + "events_url": "https://api.github.com/repos/damus-io/damus/issues/2033/events", + "html_url": "https://github.com/damus-io/damus/issues/2033", + "id": 2167690929, + "node_id": "I_kwDOHHF5A86BNFax", + "number": 2033, + "title": "In note view, show fediverse, threads label", + "user": { + "login": "alltheseas", + "id": 64376233, + "node_id": "MDQ6VXNlcjY0Mzc2MjMz", + "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/alltheseas", + "html_url": "https://github.com/alltheseas", + "followers_url": "https://api.github.com/users/alltheseas/followers", + "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", + "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", + "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", + "organizations_url": "https://api.github.com/users/alltheseas/orgs", + "repos_url": "https://api.github.com/users/alltheseas/repos", + "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", + "received_events_url": "https://api.github.com/users/alltheseas/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "id": 3994718399, + "node_id": "LA_kwDOHHF5A87uGpC_", + "url": "https://api.github.com/repos/damus-io/damus/labels/enhancement", + "name": "enhancement", + "color": "a2eeef", + "default": true, + "description": "Improvement" + } + ], + "state": "closed", + "locked": false, + "assignee": null, + "assignees": [], + "milestone": null, + "comments": 5, + "created_at": "2024-03-04T20:31:17Z", + "updated_at": "2024-03-20T08:30:21Z", + "closed_at": "2024-03-19T02:20:28Z", + "author_association": "COLLABORATOR", + "active_lock_reason": null, + "body": "Currently notes from activitypub are displayed in scroll view. See https://github.com/damus-io/damus/issues/1885#issuecomment-1974747464.\r\n\r\n## user story\r\n\r\nAs a Damus user examining notes, if I am in note view, I would like to see if a note is from activitypub, or threads in note view.\r\n\r\n### acceptance criteria\r\n1. in note view, notes from activitypub should have the acitvitypub label\r\n2.in note view, notes from threads should have the threads label ", + "reactions": { + "url": "https://api.github.com/repos/damus-io/damus/issues/2033/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/2033/timeline", + "performed_via_github_app": null, + "state_reason": "completed" + }, + "comment": { + "user": "ericholguin", + "created_at": "2024-03-19T01:05:18Z", + "updated_at": "2024-03-19T01:05:18Z", + "body": "I believe that’s only on master and did not make it to app store or testflight\r\n\r\nFrom: alltheseas ***@***.***>\r\nDate: Monday, March 18, 2024 at 19:04\r\nTo: damus-io/damus ***@***.***>\r\nCc: Eric Holguin ***@***.***>, Mention ***@***.***>\r\nSubject: Re: [damus-io/damus] In note view, show fediverse, threads label (Issue #2033)\r\n\r\n@ericholguin<https://github.com/ericholguin> @jb55<https://github.com/jb55> I dont see the fediverse acrivitypub label in thread view\r\n\r\n1A23A255-7784-4A00-9DBC-D07433ED65F8.jpeg (view on web)<https://github.com/damus-io/damus/assets/64376233/91bf5abe-cd92-4cef-9097-76fe5074e02c>\r\n\r\n58CBEA68-C1D0-4C4B-A7AE-ED03947D79F3.jpeg (view on web)<https://github.com/damus-io/damus/assets/64376233/22f3becf-fa53-4431-96ef-fc5b5c04f739>\r\n\r\nI'm on latest appstore build 1.7.2 (1)\r\n\r\n—\r\nReply to this email directly, view it on GitHub<https://github.com/damus-io/damus/issues/2033#issuecomment-2005542111>, or unsubscribe<https://github.com/notifications/unsubscribe-auth/ADK27JHBCISFCPOXBI4MIBTYY6FI3AVCNFSM6AAAAABEF32G3SVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDAMBVGU2DEMJRGE>.\r\nYou are receiving this because you were mentioned.Message ID: ***@***.***>\r\n" + } + }, + { + "issue": { + "url": "https://api.github.com/repos/damus-io/damus/issues/2033", + "repository_url": "https://api.github.com/repos/damus-io/damus", + "labels_url": "https://api.github.com/repos/damus-io/damus/issues/2033/labels{/name}", + "comments_url": "https://api.github.com/repos/damus-io/damus/issues/2033/comments", + "events_url": "https://api.github.com/repos/damus-io/damus/issues/2033/events", + "html_url": "https://github.com/damus-io/damus/issues/2033", + "id": 2167690929, + "node_id": "I_kwDOHHF5A86BNFax", + "number": 2033, + "title": "In note view, show fediverse, threads label", + "user": { + "login": "alltheseas", + "id": 64376233, + "node_id": "MDQ6VXNlcjY0Mzc2MjMz", + "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/alltheseas", + "html_url": "https://github.com/alltheseas", + "followers_url": "https://api.github.com/users/alltheseas/followers", + "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", + "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", + "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", + "organizations_url": "https://api.github.com/users/alltheseas/orgs", + "repos_url": "https://api.github.com/users/alltheseas/repos", + "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", + "received_events_url": "https://api.github.com/users/alltheseas/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "id": 3994718399, + "node_id": "LA_kwDOHHF5A87uGpC_", + "url": "https://api.github.com/repos/damus-io/damus/labels/enhancement", + "name": "enhancement", + "color": "a2eeef", + "default": true, + "description": "Improvement" + } + ], + "state": "closed", + "locked": false, + "assignee": null, + "assignees": [], + "milestone": null, + "comments": 5, + "created_at": "2024-03-04T20:31:17Z", + "updated_at": "2024-03-20T08:30:21Z", + "closed_at": "2024-03-19T02:20:28Z", + "author_association": "COLLABORATOR", + "active_lock_reason": null, + "body": "Currently notes from activitypub are displayed in scroll view. See https://github.com/damus-io/damus/issues/1885#issuecomment-1974747464.\r\n\r\n## user story\r\n\r\nAs a Damus user examining notes, if I am in note view, I would like to see if a note is from activitypub, or threads in note view.\r\n\r\n### acceptance criteria\r\n1. in note view, notes from activitypub should have the acitvitypub label\r\n2.in note view, notes from threads should have the threads label ", + "reactions": { + "url": "https://api.github.com/repos/damus-io/damus/issues/2033/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/2033/timeline", + "performed_via_github_app": null, + "state_reason": "completed" + }, + "comment": { + "user": "alltheseas", + "created_at": "2024-03-19T02:55:13Z", + "updated_at": "2024-03-19T02:55:13Z", + "body": "My bad, thanks! Closed." + } + }, + { + "issue": { + "url": "https://api.github.com/repos/damus-io/damus/issues/2033", + "repository_url": "https://api.github.com/repos/damus-io/damus", + "labels_url": "https://api.github.com/repos/damus-io/damus/issues/2033/labels{/name}", + "comments_url": "https://api.github.com/repos/damus-io/damus/issues/2033/comments", + "events_url": "https://api.github.com/repos/damus-io/damus/issues/2033/events", + "html_url": "https://github.com/damus-io/damus/issues/2033", + "id": 2167690929, + "node_id": "I_kwDOHHF5A86BNFax", + "number": 2033, + "title": "In note view, show fediverse, threads label", + "user": { + "login": "alltheseas", + "id": 64376233, + "node_id": "MDQ6VXNlcjY0Mzc2MjMz", + "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/alltheseas", + "html_url": "https://github.com/alltheseas", + "followers_url": "https://api.github.com/users/alltheseas/followers", + "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", + "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", + "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", + "organizations_url": "https://api.github.com/users/alltheseas/orgs", + "repos_url": "https://api.github.com/users/alltheseas/repos", + "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", + "received_events_url": "https://api.github.com/users/alltheseas/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "id": 3994718399, + "node_id": "LA_kwDOHHF5A87uGpC_", + "url": "https://api.github.com/repos/damus-io/damus/labels/enhancement", + "name": "enhancement", + "color": "a2eeef", + "default": true, + "description": "Improvement" + } + ], + "state": "closed", + "locked": false, + "assignee": null, + "assignees": [], + "milestone": null, + "comments": 5, + "created_at": "2024-03-04T20:31:17Z", + "updated_at": "2024-03-20T08:30:21Z", + "closed_at": "2024-03-19T02:20:28Z", + "author_association": "COLLABORATOR", + "active_lock_reason": null, + "body": "Currently notes from activitypub are displayed in scroll view. See https://github.com/damus-io/damus/issues/1885#issuecomment-1974747464.\r\n\r\n## user story\r\n\r\nAs a Damus user examining notes, if I am in note view, I would like to see if a note is from activitypub, or threads in note view.\r\n\r\n### acceptance criteria\r\n1. in note view, notes from activitypub should have the acitvitypub label\r\n2.in note view, notes from threads should have the threads label ", + "reactions": { + "url": "https://api.github.com/repos/damus-io/damus/issues/2033/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/2033/timeline", + "performed_via_github_app": null, + "state_reason": "completed" + }, + "comment": { + "user": "jb55", + "created_at": "2024-03-20T08:30:19Z", + "updated_at": "2024-03-20T08:30:19Z", + "body": "On Mon, Mar 18, 2024 at 06:04:12PM -0700, alltheseas wrote:\n>@ericholguin @jb55 I dont see the fediverse acrivitypub label in thread view\n>\n>![image](https://github.com/damus-io/damus/assets/64376233/91bf5abe-cd92-4cef-9097-76fe5074e02c)\n>\n>![image](https://github.com/damus-io/damus/assets/64376233/22f3becf-fa53-4431-96ef-fc5b5c04f739)\n>\n>I'm on latest appstore build 1.7.2 (1)\n\nThis is why I would like to get a testflight out...\n" + } + }, + { + "issue": { "url": "https://api.github.com/repos/damus-io/damus/issues/2032", "repository_url": "https://api.github.com/repos/damus-io/damus", "labels_url": "https://api.github.com/repos/damus-io/damus/issues/2032/labels{/name}", @@ -19837,7 +28016,7 @@ "id": 10536809, "node_id": "MI_kwDOHHF5A84AoMdp", "number": 14, - "title": "1.8 post Madeira", + "title": "1.8 post Madeira: UX/UI/Design focus", "description": "", "creator": { "login": "alltheseas", @@ -19859,11 +28038,11 @@ "type": "User", "site_admin": false }, - "open_issues": 11, - "closed_issues": 0, + "open_issues": 13, + "closed_issues": 1, "state": "open", "created_at": "2024-02-09T17:16:56Z", - "updated_at": "2024-03-17T12:05:31Z", + "updated_at": "2024-03-20T15:28:11Z", "due_on": null, "closed_at": null }, @@ -19994,7 +28173,7 @@ "id": 10536809, "node_id": "MI_kwDOHHF5A84AoMdp", "number": 14, - "title": "1.8 post Madeira", + "title": "1.8 post Madeira: UX/UI/Design focus", "description": "", "creator": { "login": "alltheseas", @@ -20016,11 +28195,11 @@ "type": "User", "site_admin": false }, - "open_issues": 11, - "closed_issues": 0, + "open_issues": 13, + "closed_issues": 1, "state": "open", "created_at": "2024-02-09T17:16:56Z", - "updated_at": "2024-03-17T12:05:31Z", + "updated_at": "2024-03-20T15:28:11Z", "due_on": null, "closed_at": null }, @@ -20157,7 +28336,7 @@ "id": 10536809, "node_id": "MI_kwDOHHF5A84AoMdp", "number": 14, - "title": "1.8 post Madeira", + "title": "1.8 post Madeira: UX/UI/Design focus", "description": "", "creator": { "login": "alltheseas", @@ -20179,11 +28358,11 @@ "type": "User", "site_admin": false }, - "open_issues": 11, - "closed_issues": 0, + "open_issues": 13, + "closed_issues": 1, "state": "open", "created_at": "2024-02-09T17:16:56Z", - "updated_at": "2024-03-17T12:05:31Z", + "updated_at": "2024-03-20T15:28:11Z", "due_on": null, "closed_at": null }, @@ -20320,7 +28499,7 @@ "id": 10536809, "node_id": "MI_kwDOHHF5A84AoMdp", "number": 14, - "title": "1.8 post Madeira", + "title": "1.8 post Madeira: UX/UI/Design focus", "description": "", "creator": { "login": "alltheseas", @@ -20342,11 +28521,11 @@ "type": "User", "site_admin": false }, - "open_issues": 11, - "closed_issues": 0, + "open_issues": 13, + "closed_issues": 1, "state": "open", "created_at": "2024-02-09T17:16:56Z", - "updated_at": "2024-03-17T12:05:31Z", + "updated_at": "2024-03-20T15:28:11Z", "due_on": null, "closed_at": null }, @@ -20483,7 +28662,7 @@ "id": 10536809, "node_id": "MI_kwDOHHF5A84AoMdp", "number": 14, - "title": "1.8 post Madeira", + "title": "1.8 post Madeira: UX/UI/Design focus", "description": "", "creator": { "login": "alltheseas", @@ -20505,11 +28684,11 @@ "type": "User", "site_admin": false }, - "open_issues": 11, - "closed_issues": 0, + "open_issues": 13, + "closed_issues": 1, "state": "open", "created_at": "2024-02-09T17:16:56Z", - "updated_at": "2024-03-17T12:05:31Z", + "updated_at": "2024-03-20T15:28:11Z", "due_on": null, "closed_at": null }, @@ -20646,7 +28825,7 @@ "id": 10536809, "node_id": "MI_kwDOHHF5A84AoMdp", "number": 14, - "title": "1.8 post Madeira", + "title": "1.8 post Madeira: UX/UI/Design focus", "description": "", "creator": { "login": "alltheseas", @@ -20668,11 +28847,11 @@ "type": "User", "site_admin": false }, - "open_issues": 11, - "closed_issues": 0, + "open_issues": 13, + "closed_issues": 1, "state": "open", "created_at": "2024-02-09T17:16:56Z", - "updated_at": "2024-03-17T12:05:31Z", + "updated_at": "2024-03-20T15:28:11Z", "due_on": null, "closed_at": null }, @@ -20809,7 +28988,7 @@ "id": 10536809, "node_id": "MI_kwDOHHF5A84AoMdp", "number": 14, - "title": "1.8 post Madeira", + "title": "1.8 post Madeira: UX/UI/Design focus", "description": "", "creator": { "login": "alltheseas", @@ -20831,11 +29010,11 @@ "type": "User", "site_admin": false }, - "open_issues": 11, - "closed_issues": 0, + "open_issues": 13, + "closed_issues": 1, "state": "open", "created_at": "2024-02-09T17:16:56Z", - "updated_at": "2024-03-17T12:05:31Z", + "updated_at": "2024-03-20T15:28:11Z", "due_on": null, "closed_at": null }, @@ -20972,7 +29151,7 @@ "id": 10536809, "node_id": "MI_kwDOHHF5A84AoMdp", "number": 14, - "title": "1.8 post Madeira", + "title": "1.8 post Madeira: UX/UI/Design focus", "description": "", "creator": { "login": "alltheseas", @@ -20994,11 +29173,11 @@ "type": "User", "site_admin": false }, - "open_issues": 11, - "closed_issues": 0, + "open_issues": 13, + "closed_issues": 1, "state": "open", "created_at": "2024-02-09T17:16:56Z", - "updated_at": "2024-03-17T12:05:31Z", + "updated_at": "2024-03-20T15:28:11Z", "due_on": null, "closed_at": null }, @@ -21135,7 +29314,7 @@ "id": 10536809, "node_id": "MI_kwDOHHF5A84AoMdp", "number": 14, - "title": "1.8 post Madeira", + "title": "1.8 post Madeira: UX/UI/Design focus", "description": "", "creator": { "login": "alltheseas", @@ -21157,11 +29336,11 @@ "type": "User", "site_admin": false }, - "open_issues": 11, - "closed_issues": 0, + "open_issues": 13, + "closed_issues": 1, "state": "open", "created_at": "2024-02-09T17:16:56Z", - "updated_at": "2024-03-17T12:05:31Z", + "updated_at": "2024-03-20T15:28:11Z", "due_on": null, "closed_at": null }, @@ -21298,7 +29477,7 @@ "id": 10536809, "node_id": "MI_kwDOHHF5A84AoMdp", "number": 14, - "title": "1.8 post Madeira", + "title": "1.8 post Madeira: UX/UI/Design focus", "description": "", "creator": { "login": "alltheseas", @@ -21320,11 +29499,11 @@ "type": "User", "site_admin": false }, - "open_issues": 11, - "closed_issues": 0, + "open_issues": 13, + "closed_issues": 1, "state": "open", "created_at": "2024-02-09T17:16:56Z", - "updated_at": "2024-03-17T12:05:31Z", + "updated_at": "2024-03-20T15:28:11Z", "due_on": null, "closed_at": null }, @@ -21461,7 +29640,7 @@ "id": 10536809, "node_id": "MI_kwDOHHF5A84AoMdp", "number": 14, - "title": "1.8 post Madeira", + "title": "1.8 post Madeira: UX/UI/Design focus", "description": "", "creator": { "login": "alltheseas", @@ -21483,11 +29662,11 @@ "type": "User", "site_admin": false }, - "open_issues": 11, - "closed_issues": 0, + "open_issues": 13, + "closed_issues": 1, "state": "open", "created_at": "2024-02-09T17:16:56Z", - "updated_at": "2024-03-17T12:05:31Z", + "updated_at": "2024-03-20T15:28:11Z", "due_on": null, "closed_at": null }, @@ -27492,7 +35671,7 @@ "id": 10536809, "node_id": "MI_kwDOHHF5A84AoMdp", "number": 14, - "title": "1.8 post Madeira", + "title": "1.8 post Madeira: UX/UI/Design focus", "description": "", "creator": { "login": "alltheseas", @@ -27514,11 +35693,11 @@ "type": "User", "site_admin": false }, - "open_issues": 11, - "closed_issues": 0, + "open_issues": 13, + "closed_issues": 1, "state": "open", "created_at": "2024-02-09T17:16:56Z", - "updated_at": "2024-03-17T12:05:31Z", + "updated_at": "2024-03-20T15:28:11Z", "due_on": null, "closed_at": null }, @@ -29991,8 +38170,8 @@ { "id": 6158662124, "node_id": "LA_kwDOHHF5A88AAAABbxW57A", - "url": "https://api.github.com/repos/damus-io/damus/labels/signal/noise%20ratio%20%F0%9F%91%80/%F0%9F%92%A5", - "name": "signal/noise ratio 👀/💥", + "url": "https://api.github.com/repos/damus-io/damus/labels/signal-to-noise-ratio", + "name": "signal-to-noise-ratio", "color": "0E8A16", "default": false, "description": "" @@ -39391,8 +47570,8 @@ { "id": 6158662124, "node_id": "LA_kwDOHHF5A88AAAABbxW57A", - "url": "https://api.github.com/repos/damus-io/damus/labels/signal/noise%20ratio%20%F0%9F%91%80/%F0%9F%92%A5", - "name": "signal/noise ratio 👀/💥", + "url": "https://api.github.com/repos/damus-io/damus/labels/signal-to-noise-ratio", + "name": "signal-to-noise-ratio", "color": "0E8A16", "default": false, "description": "" @@ -39472,8 +47651,8 @@ { "id": 6158662124, "node_id": "LA_kwDOHHF5A88AAAABbxW57A", - "url": "https://api.github.com/repos/damus-io/damus/labels/signal/noise%20ratio%20%F0%9F%91%80/%F0%9F%92%A5", - "name": "signal/noise ratio 👀/💥", + "url": "https://api.github.com/repos/damus-io/damus/labels/signal-to-noise-ratio", + "name": "signal-to-noise-ratio", "color": "0E8A16", "default": false, "description": "" @@ -39559,8 +47738,8 @@ { "id": 6158662124, "node_id": "LA_kwDOHHF5A88AAAABbxW57A", - "url": "https://api.github.com/repos/damus-io/damus/labels/signal/noise%20ratio%20%F0%9F%91%80/%F0%9F%92%A5", - "name": "signal/noise ratio 👀/💥", + "url": "https://api.github.com/repos/damus-io/damus/labels/signal-to-noise-ratio", + "name": "signal-to-noise-ratio", "color": "0E8A16", "default": false, "description": "" @@ -39646,8 +47825,8 @@ { "id": 6158662124, "node_id": "LA_kwDOHHF5A88AAAABbxW57A", - "url": "https://api.github.com/repos/damus-io/damus/labels/signal/noise%20ratio%20%F0%9F%91%80/%F0%9F%92%A5", - "name": "signal/noise ratio 👀/💥", + "url": "https://api.github.com/repos/damus-io/damus/labels/signal-to-noise-ratio", + "name": "signal-to-noise-ratio", "color": "0E8A16", "default": false, "description": "" @@ -39964,8 +48143,8 @@ { "id": 6158662124, "node_id": "LA_kwDOHHF5A88AAAABbxW57A", - "url": "https://api.github.com/repos/damus-io/damus/labels/signal/noise%20ratio%20%F0%9F%91%80/%F0%9F%92%A5", - "name": "signal/noise ratio 👀/💥", + "url": "https://api.github.com/repos/damus-io/damus/labels/signal-to-noise-ratio", + "name": "signal-to-noise-ratio", "color": "0E8A16", "default": false, "description": "" @@ -40054,8 +48233,8 @@ { "id": 6158662124, "node_id": "LA_kwDOHHF5A88AAAABbxW57A", - "url": "https://api.github.com/repos/damus-io/damus/labels/signal/noise%20ratio%20%F0%9F%91%80/%F0%9F%92%A5", - "name": "signal/noise ratio 👀/💥", + "url": "https://api.github.com/repos/damus-io/damus/labels/signal-to-noise-ratio", + "name": "signal-to-noise-ratio", "color": "0E8A16", "default": false, "description": "" @@ -45282,8 +53461,8 @@ { "id": 6158662124, "node_id": "LA_kwDOHHF5A88AAAABbxW57A", - "url": "https://api.github.com/repos/damus-io/damus/labels/signal/noise%20ratio%20%F0%9F%91%80/%F0%9F%92%A5", - "name": "signal/noise ratio 👀/💥", + "url": "https://api.github.com/repos/damus-io/damus/labels/signal-to-noise-ratio", + "name": "signal-to-noise-ratio", "color": "0E8A16", "default": false, "description": "" @@ -45372,8 +53551,8 @@ { "id": 6158662124, "node_id": "LA_kwDOHHF5A88AAAABbxW57A", - "url": "https://api.github.com/repos/damus-io/damus/labels/signal/noise%20ratio%20%F0%9F%91%80/%F0%9F%92%A5", - "name": "signal/noise ratio 👀/💥", + "url": "https://api.github.com/repos/damus-io/damus/labels/signal-to-noise-ratio", + "name": "signal-to-noise-ratio", "color": "0E8A16", "default": false, "description": "" @@ -45459,8 +53638,8 @@ { "id": 6158662124, "node_id": "LA_kwDOHHF5A88AAAABbxW57A", - "url": "https://api.github.com/repos/damus-io/damus/labels/signal/noise%20ratio%20%F0%9F%91%80/%F0%9F%92%A5", - "name": "signal/noise ratio 👀/💥", + "url": "https://api.github.com/repos/damus-io/damus/labels/signal-to-noise-ratio", + "name": "signal-to-noise-ratio", "color": "0E8A16", "default": false, "description": "" @@ -45540,8 +53719,8 @@ { "id": 6158662124, "node_id": "LA_kwDOHHF5A88AAAABbxW57A", - "url": "https://api.github.com/repos/damus-io/damus/labels/signal/noise%20ratio%20%F0%9F%91%80/%F0%9F%92%A5", - "name": "signal/noise ratio 👀/💥", + "url": "https://api.github.com/repos/damus-io/damus/labels/signal-to-noise-ratio", + "name": "signal-to-noise-ratio", "color": "0E8A16", "default": false, "description": "" @@ -45627,8 +53806,8 @@ { "id": 6158662124, "node_id": "LA_kwDOHHF5A88AAAABbxW57A", - "url": "https://api.github.com/repos/damus-io/damus/labels/signal/noise%20ratio%20%F0%9F%91%80/%F0%9F%92%A5", - "name": "signal/noise ratio 👀/💥", + "url": "https://api.github.com/repos/damus-io/damus/labels/signal-to-noise-ratio", + "name": "signal-to-noise-ratio", "color": "0E8A16", "default": false, "description": "" @@ -52166,8 +60345,8 @@ { "id": 6158662124, "node_id": "LA_kwDOHHF5A88AAAABbxW57A", - "url": "https://api.github.com/repos/damus-io/damus/labels/signal/noise%20ratio%20%F0%9F%91%80/%F0%9F%92%A5", - "name": "signal/noise ratio 👀/💥", + "url": "https://api.github.com/repos/damus-io/damus/labels/signal-to-noise-ratio", + "name": "signal-to-noise-ratio", "color": "0E8A16", "default": false, "description": "" @@ -52278,8 +60457,8 @@ { "id": 6158662124, "node_id": "LA_kwDOHHF5A88AAAABbxW57A", - "url": "https://api.github.com/repos/damus-io/damus/labels/signal/noise%20ratio%20%F0%9F%91%80/%F0%9F%92%A5", - "name": "signal/noise ratio 👀/💥", + "url": "https://api.github.com/repos/damus-io/damus/labels/signal-to-noise-ratio", + "name": "signal-to-noise-ratio", "color": "0E8A16", "default": false, "description": "" @@ -52489,8 +60668,8 @@ { "id": 6158662124, "node_id": "LA_kwDOHHF5A88AAAABbxW57A", - "url": "https://api.github.com/repos/damus-io/damus/labels/signal/noise%20ratio%20%F0%9F%91%80/%F0%9F%92%A5", - "name": "signal/noise ratio 👀/💥", + "url": "https://api.github.com/repos/damus-io/damus/labels/signal-to-noise-ratio", + "name": "signal-to-noise-ratio", "color": "0E8A16", "default": false, "description": "" @@ -56084,8 +64263,8 @@ { "id": 6158662124, "node_id": "LA_kwDOHHF5A88AAAABbxW57A", - "url": "https://api.github.com/repos/damus-io/damus/labels/signal/noise%20ratio%20%F0%9F%91%80/%F0%9F%92%A5", - "name": "signal/noise ratio 👀/💥", + "url": "https://api.github.com/repos/damus-io/damus/labels/signal-to-noise-ratio", + "name": "signal-to-noise-ratio", "color": "0E8A16", "default": false, "description": "" @@ -56156,8 +64335,8 @@ { "id": 6158662124, "node_id": "LA_kwDOHHF5A88AAAABbxW57A", - "url": "https://api.github.com/repos/damus-io/damus/labels/signal/noise%20ratio%20%F0%9F%91%80/%F0%9F%92%A5", - "name": "signal/noise ratio 👀/💥", + "url": "https://api.github.com/repos/damus-io/damus/labels/signal-to-noise-ratio", + "name": "signal-to-noise-ratio", "color": "0E8A16", "default": false, "description": "" @@ -89294,8 +97473,8 @@ { "id": 6158662124, "node_id": "LA_kwDOHHF5A88AAAABbxW57A", - "url": "https://api.github.com/repos/damus-io/damus/labels/signal/noise%20ratio%20%F0%9F%91%80/%F0%9F%92%A5", - "name": "signal/noise ratio 👀/💥", + "url": "https://api.github.com/repos/damus-io/damus/labels/signal-to-noise-ratio", + "name": "signal-to-noise-ratio", "color": "0E8A16", "default": false, "description": "" @@ -95388,8 +103567,8 @@ { "id": 6158662124, "node_id": "LA_kwDOHHF5A88AAAABbxW57A", - "url": "https://api.github.com/repos/damus-io/damus/labels/signal/noise%20ratio%20%F0%9F%91%80/%F0%9F%92%A5", - "name": "signal/noise ratio 👀/💥", + "url": "https://api.github.com/repos/damus-io/damus/labels/signal-to-noise-ratio", + "name": "signal-to-noise-ratio", "color": "0E8A16", "default": false, "description": "" @@ -98864,7 +107043,7 @@ "id": 10536809, "node_id": "MI_kwDOHHF5A84AoMdp", "number": 14, - "title": "1.8 post Madeira", + "title": "1.8 post Madeira: UX/UI/Design focus", "description": "", "creator": { "login": "alltheseas", @@ -98886,11 +107065,11 @@ "type": "User", "site_admin": false }, - "open_issues": 11, - "closed_issues": 0, + "open_issues": 13, + "closed_issues": 1, "state": "open", "created_at": "2024-02-09T17:16:56Z", - "updated_at": "2024-03-17T12:05:31Z", + "updated_at": "2024-03-20T15:28:11Z", "due_on": null, "closed_at": null }, @@ -98981,7 +107160,7 @@ "id": 10536809, "node_id": "MI_kwDOHHF5A84AoMdp", "number": 14, - "title": "1.8 post Madeira", + "title": "1.8 post Madeira: UX/UI/Design focus", "description": "", "creator": { "login": "alltheseas", @@ -99003,11 +107182,11 @@ "type": "User", "site_admin": false }, - "open_issues": 11, - "closed_issues": 0, + "open_issues": 13, + "closed_issues": 1, "state": "open", "created_at": "2024-02-09T17:16:56Z", - "updated_at": "2024-03-17T12:05:31Z", + "updated_at": "2024-03-20T15:28:11Z", "due_on": null, "closed_at": null }, @@ -99104,7 +107283,7 @@ "id": 10536809, "node_id": "MI_kwDOHHF5A84AoMdp", "number": 14, - "title": "1.8 post Madeira", + "title": "1.8 post Madeira: UX/UI/Design focus", "description": "", "creator": { "login": "alltheseas", @@ -99126,11 +107305,11 @@ "type": "User", "site_admin": false }, - "open_issues": 11, - "closed_issues": 0, + "open_issues": 13, + "closed_issues": 1, "state": "open", "created_at": "2024-02-09T17:16:56Z", - "updated_at": "2024-03-17T12:05:31Z", + "updated_at": "2024-03-20T15:28:11Z", "due_on": null, "closed_at": null }, @@ -99227,7 +107406,7 @@ "id": 10536809, "node_id": "MI_kwDOHHF5A84AoMdp", "number": 14, - "title": "1.8 post Madeira", + "title": "1.8 post Madeira: UX/UI/Design focus", "description": "", "creator": { "login": "alltheseas", @@ -99249,11 +107428,11 @@ "type": "User", "site_admin": false }, - "open_issues": 11, - "closed_issues": 0, + "open_issues": 13, + "closed_issues": 1, "state": "open", "created_at": "2024-02-09T17:16:56Z", - "updated_at": "2024-03-17T12:05:31Z", + "updated_at": "2024-03-20T15:28:11Z", "due_on": null, "closed_at": null }, @@ -117378,8 +125557,8 @@ { "id": 6158662124, "node_id": "LA_kwDOHHF5A88AAAABbxW57A", - "url": "https://api.github.com/repos/damus-io/damus/labels/signal/noise%20ratio%20%F0%9F%91%80/%F0%9F%92%A5", - "name": "signal/noise ratio 👀/💥", + "url": "https://api.github.com/repos/damus-io/damus/labels/signal-to-noise-ratio", + "name": "signal-to-noise-ratio", "color": "0E8A16", "default": false, "description": "" @@ -124736,87 +132915,273 @@ }, "labels": [ { - "id": 5667222085, - "node_id": "LA_kwDOHHF5A88AAAABUcryRQ", - "url": "https://api.github.com/repos/damus-io/damus/labels/design", - "name": "design", - "color": "5319E7", - "default": false, - "description": "Design exploration & definition is required" + "id": 5667222085, + "node_id": "LA_kwDOHHF5A88AAAABUcryRQ", + "url": "https://api.github.com/repos/damus-io/damus/labels/design", + "name": "design", + "color": "5319E7", + "default": false, + "description": "Design exploration & definition is required" + }, + { + "id": 5667230655, + "node_id": "LA_kwDOHHF5A88AAAABUcsTvw", + "url": "https://api.github.com/repos/damus-io/damus/labels/feature", + "name": "feature", + "color": "BFDADC", + "default": false, + "description": "New feature request" + }, + { + "id": 5667354123, + "node_id": "LA_kwDOHHF5A88AAAABUcz2Cw", + "url": "https://api.github.com/repos/damus-io/damus/labels/onboarding", + "name": "onboarding", + "color": "D4C5F9", + "default": false, + "description": "" + } + ], + "state": "open", + "locked": false, + "assignee": { + "login": "robagreda", + "id": 3373850, + "node_id": "MDQ6VXNlcjMzNzM4NTA=", + "avatar_url": "https://avatars.githubusercontent.com/u/3373850?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/robagreda", + "html_url": "https://github.com/robagreda", + "followers_url": "https://api.github.com/users/robagreda/followers", + "following_url": "https://api.github.com/users/robagreda/following{/other_user}", + "gists_url": "https://api.github.com/users/robagreda/gists{/gist_id}", + "starred_url": "https://api.github.com/users/robagreda/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/robagreda/subscriptions", + "organizations_url": "https://api.github.com/users/robagreda/orgs", + "repos_url": "https://api.github.com/users/robagreda/repos", + "events_url": "https://api.github.com/users/robagreda/events{/privacy}", + "received_events_url": "https://api.github.com/users/robagreda/received_events", + "type": "User", + "site_admin": false + }, + "assignees": [ + { + "login": "robagreda", + "id": 3373850, + "node_id": "MDQ6VXNlcjMzNzM4NTA=", + "avatar_url": "https://avatars.githubusercontent.com/u/3373850?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/robagreda", + "html_url": "https://github.com/robagreda", + "followers_url": "https://api.github.com/users/robagreda/followers", + "following_url": "https://api.github.com/users/robagreda/following{/other_user}", + "gists_url": "https://api.github.com/users/robagreda/gists{/gist_id}", + "starred_url": "https://api.github.com/users/robagreda/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/robagreda/subscriptions", + "organizations_url": "https://api.github.com/users/robagreda/orgs", + "repos_url": "https://api.github.com/users/robagreda/repos", + "events_url": "https://api.github.com/users/robagreda/events{/privacy}", + "received_events_url": "https://api.github.com/users/robagreda/received_events", + "type": "User", + "site_admin": false + } + ], + "milestone": null, + "comments": 14, + "created_at": "2023-11-12T05:01:53Z", + "updated_at": "2023-12-26T21:38:49Z", + "closed_at": null, + "author_association": "COLLABORATOR", + "active_lock_reason": null, + "body": "## user story\r\n\r\nAs a Damus and nostr ambassador, I would like a way to send a personalized Damus invite to my friend with pre-loaded content & sats, so that they have a great experience when they join and they are more likely to stay.\r\n\r\n### acceptance criteria\r\n\r\n1. -[ ] There is a \"Invite a Friend to Damus\" button (see mockup below)\r\n3. -[ ] Invite sender can suggest friends to follow for their friend\r\n4. -[ ] Invite sender can suggest hashtags to follow for their friend\r\n5. -[ ] Invite sender can suggest relays to add to default Damus relay list\r\n6. -[ ] Invite sender can pay for friend's paid relays (i.e. pay for write capabilty)\r\n7. -[ ] Invite sender can pre-load their friend's LN wallet\r\n8. -[ ] Invitee automatically follows invite sender \r\n\r\n### design / open questions\r\n1. should there be a cap of users to follow?\r\n2. should there be a cap of hashtags to follow? \r\n3. should there be a cap of relays suggested?\r\n4. should there be a cap of sats pre-loaded?\r\n5. should the invite sender be allowed to modify the Damus bootstrap list?\r\n6. Should the invitee have any choice as to what their friend suggested (e.g. choose to follow some user follow suggestions)?\r\n\r\n### pre-requisites for pre-loading wallet with sats\r\n- [ ] auto create LN wallet for newly created Damus profiles https://github.com/damus-io/damus/issues/1623\r\n\r\n### user flow\r\n<img width=\"1075\" alt=\"Screenshot 2023-11-11 at 11 33 20 PM\" src=\"https://github.com/damus-io/damus/assets/64376233/b4da0c9d-e81f-474f-8378-b8c613c55c31\">\r\n\r\n### invite friend mockup\r\n![invite friend](https://github.com/damus-io/damus/assets/64376233/2be5e878-d7ef-4a3b-bfb0-373bf45e3afd)\r\n\r\n\r\n", + "reactions": { + "url": "https://api.github.com/repos/damus-io/damus/issues/1696/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/1696/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + "comment": { + "user": "alltheseas", + "created_at": "2023-12-26T21:38:48Z", + "updated_at": "2023-12-26T21:38:48Z", + "body": "@pablof7z example Uncle Jim onboarding flow that uses nip-05 + uncle Jim domain provides automagically LN address for newly onboarded folks\n\nhttps://damus.io/note18kma8hr0dcyy30u0272473u2ggacgws6xlue5e7dexnqatfc4mdshmvgse" + } + }, + { + "issue": { + "url": "https://api.github.com/repos/damus-io/damus/issues/1695", + "repository_url": "https://api.github.com/repos/damus-io/damus", + "labels_url": "https://api.github.com/repos/damus-io/damus/issues/1695/labels{/name}", + "comments_url": "https://api.github.com/repos/damus-io/damus/issues/1695/comments", + "events_url": "https://api.github.com/repos/damus-io/damus/issues/1695/events", + "html_url": "https://github.com/damus-io/damus/issues/1695", + "id": 1989233453, + "node_id": "I_kwDOHHF5A852kUst", + "number": 1695, + "title": "Profile card crash on three profile card profile opens", + "user": { + "login": "alltheseas", + "id": 64376233, + "node_id": "MDQ6VXNlcjY0Mzc2MjMz", + "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/alltheseas", + "html_url": "https://github.com/alltheseas", + "followers_url": "https://api.github.com/users/alltheseas/followers", + "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", + "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", + "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", + "organizations_url": "https://api.github.com/users/alltheseas/orgs", + "repos_url": "https://api.github.com/users/alltheseas/repos", + "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", + "received_events_url": "https://api.github.com/users/alltheseas/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "id": 3994718396, + "node_id": "LA_kwDOHHF5A87uGpC8", + "url": "https://api.github.com/repos/damus-io/damus/labels/bug", + "name": "bug", + "color": "d73a4a", + "default": true, + "description": "Something is not working, or not working as intended" + }, + { + "id": 5667406338, + "node_id": "LA_kwDOHHF5A88AAAABUc3CAg", + "url": "https://api.github.com/repos/damus-io/damus/labels/Needs%20recreation", + "name": "Needs recreation", + "color": "FBCA04", + "default": false, + "description": "Issues requires concrete steps for recreation" + }, + { + "id": 5799674891, + "node_id": "LA_kwDOHHF5A88AAAABWbAECw", + "url": "https://api.github.com/repos/damus-io/damus/labels/iOS%2016", + "name": "iOS 16", + "color": "6A820D", + "default": false, + "description": "iOS 16 bugs/features" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "assignees": [], + "milestone": null, + "comments": 2, + "created_at": "2023-11-12T04:28:56Z", + "updated_at": "2023-11-14T15:28:40Z", + "closed_at": null, + "author_association": "COLLABORATOR", + "active_lock_reason": null, + "body": "https://damus.io/note1t92yfejmprxvvc62qhteel0qcerl6nq7ev5uruk3gsejr38lxq4qsvxjlc\n\niOS 16.6\n\nDamus 16 testflight", + "reactions": { + "url": "https://api.github.com/repos/damus-io/damus/issues/1695/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/1695/timeline", + "performed_via_github_app": null, + "state_reason": null + } + }, + { + "issue": { + "url": "https://api.github.com/repos/damus-io/damus/issues/1695", + "repository_url": "https://api.github.com/repos/damus-io/damus", + "labels_url": "https://api.github.com/repos/damus-io/damus/issues/1695/labels{/name}", + "comments_url": "https://api.github.com/repos/damus-io/damus/issues/1695/comments", + "events_url": "https://api.github.com/repos/damus-io/damus/issues/1695/events", + "html_url": "https://github.com/damus-io/damus/issues/1695", + "id": 1989233453, + "node_id": "I_kwDOHHF5A852kUst", + "number": 1695, + "title": "Profile card crash on three profile card profile opens", + "user": { + "login": "alltheseas", + "id": 64376233, + "node_id": "MDQ6VXNlcjY0Mzc2MjMz", + "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/alltheseas", + "html_url": "https://github.com/alltheseas", + "followers_url": "https://api.github.com/users/alltheseas/followers", + "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", + "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", + "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", + "organizations_url": "https://api.github.com/users/alltheseas/orgs", + "repos_url": "https://api.github.com/users/alltheseas/repos", + "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", + "received_events_url": "https://api.github.com/users/alltheseas/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "id": 3994718396, + "node_id": "LA_kwDOHHF5A87uGpC8", + "url": "https://api.github.com/repos/damus-io/damus/labels/bug", + "name": "bug", + "color": "d73a4a", + "default": true, + "description": "Something is not working, or not working as intended" }, { - "id": 5667230655, - "node_id": "LA_kwDOHHF5A88AAAABUcsTvw", - "url": "https://api.github.com/repos/damus-io/damus/labels/feature", - "name": "feature", - "color": "BFDADC", + "id": 5667406338, + "node_id": "LA_kwDOHHF5A88AAAABUc3CAg", + "url": "https://api.github.com/repos/damus-io/damus/labels/Needs%20recreation", + "name": "Needs recreation", + "color": "FBCA04", "default": false, - "description": "New feature request" + "description": "Issues requires concrete steps for recreation" }, { - "id": 5667354123, - "node_id": "LA_kwDOHHF5A88AAAABUcz2Cw", - "url": "https://api.github.com/repos/damus-io/damus/labels/onboarding", - "name": "onboarding", - "color": "D4C5F9", + "id": 5799674891, + "node_id": "LA_kwDOHHF5A88AAAABWbAECw", + "url": "https://api.github.com/repos/damus-io/damus/labels/iOS%2016", + "name": "iOS 16", + "color": "6A820D", "default": false, - "description": "" + "description": "iOS 16 bugs/features" } ], "state": "open", "locked": false, - "assignee": { - "login": "robagreda", - "id": 3373850, - "node_id": "MDQ6VXNlcjMzNzM4NTA=", - "avatar_url": "https://avatars.githubusercontent.com/u/3373850?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/robagreda", - "html_url": "https://github.com/robagreda", - "followers_url": "https://api.github.com/users/robagreda/followers", - "following_url": "https://api.github.com/users/robagreda/following{/other_user}", - "gists_url": "https://api.github.com/users/robagreda/gists{/gist_id}", - "starred_url": "https://api.github.com/users/robagreda/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/robagreda/subscriptions", - "organizations_url": "https://api.github.com/users/robagreda/orgs", - "repos_url": "https://api.github.com/users/robagreda/repos", - "events_url": "https://api.github.com/users/robagreda/events{/privacy}", - "received_events_url": "https://api.github.com/users/robagreda/received_events", - "type": "User", - "site_admin": false - }, - "assignees": [ - { - "login": "robagreda", - "id": 3373850, - "node_id": "MDQ6VXNlcjMzNzM4NTA=", - "avatar_url": "https://avatars.githubusercontent.com/u/3373850?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/robagreda", - "html_url": "https://github.com/robagreda", - "followers_url": "https://api.github.com/users/robagreda/followers", - "following_url": "https://api.github.com/users/robagreda/following{/other_user}", - "gists_url": "https://api.github.com/users/robagreda/gists{/gist_id}", - "starred_url": "https://api.github.com/users/robagreda/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/robagreda/subscriptions", - "organizations_url": "https://api.github.com/users/robagreda/orgs", - "repos_url": "https://api.github.com/users/robagreda/repos", - "events_url": "https://api.github.com/users/robagreda/events{/privacy}", - "received_events_url": "https://api.github.com/users/robagreda/received_events", - "type": "User", - "site_admin": false - } - ], + "assignee": null, + "assignees": [], "milestone": null, - "comments": 14, - "created_at": "2023-11-12T05:01:53Z", - "updated_at": "2023-12-26T21:38:49Z", + "comments": 2, + "created_at": "2023-11-12T04:28:56Z", + "updated_at": "2023-11-14T15:28:40Z", "closed_at": null, "author_association": "COLLABORATOR", "active_lock_reason": null, - "body": "## user story\r\n\r\nAs a Damus and nostr ambassador, I would like a way to send a personalized Damus invite to my friend with pre-loaded content & sats, so that they have a great experience when they join and they are more likely to stay.\r\n\r\n### acceptance criteria\r\n\r\n1. -[ ] There is a \"Invite a Friend to Damus\" button (see mockup below)\r\n3. -[ ] Invite sender can suggest friends to follow for their friend\r\n4. -[ ] Invite sender can suggest hashtags to follow for their friend\r\n5. -[ ] Invite sender can suggest relays to add to default Damus relay list\r\n6. -[ ] Invite sender can pay for friend's paid relays (i.e. pay for write capabilty)\r\n7. -[ ] Invite sender can pre-load their friend's LN wallet\r\n8. -[ ] Invitee automatically follows invite sender \r\n\r\n### design / open questions\r\n1. should there be a cap of users to follow?\r\n2. should there be a cap of hashtags to follow? \r\n3. should there be a cap of relays suggested?\r\n4. should there be a cap of sats pre-loaded?\r\n5. should the invite sender be allowed to modify the Damus bootstrap list?\r\n6. Should the invitee have any choice as to what their friend suggested (e.g. choose to follow some user follow suggestions)?\r\n\r\n### pre-requisites for pre-loading wallet with sats\r\n- [ ] auto create LN wallet for newly created Damus profiles https://github.com/damus-io/damus/issues/1623\r\n\r\n### user flow\r\n<img width=\"1075\" alt=\"Screenshot 2023-11-11 at 11 33 20 PM\" src=\"https://github.com/damus-io/damus/assets/64376233/b4da0c9d-e81f-474f-8378-b8c613c55c31\">\r\n\r\n### invite friend mockup\r\n![invite friend](https://github.com/damus-io/damus/assets/64376233/2be5e878-d7ef-4a3b-bfb0-373bf45e3afd)\r\n\r\n\r\n", + "body": "https://damus.io/note1t92yfejmprxvvc62qhteel0qcerl6nq7ev5uruk3gsejr38lxq4qsvxjlc\n\niOS 16.6\n\nDamus 16 testflight", "reactions": { - "url": "https://api.github.com/repos/damus-io/damus/issues/1696/reactions", + "url": "https://api.github.com/repos/damus-io/damus/issues/1695/reactions", "total_count": 0, "+1": 0, "-1": 0, @@ -124827,15 +133192,15 @@ "rocket": 0, "eyes": 0 }, - "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/1696/timeline", + "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/1695/timeline", "performed_via_github_app": null, "state_reason": null }, "comment": { - "user": "alltheseas", - "created_at": "2023-12-26T21:38:48Z", - "updated_at": "2023-12-26T21:38:48Z", - "body": "@pablof7z example Uncle Jim onboarding flow that uses nip-05 + uncle Jim domain provides automagically LN address for newly onboarded folks\n\nhttps://damus.io/note18kma8hr0dcyy30u0272473u2ggacgws6xlue5e7dexnqatfc4mdshmvgse" + "user": "jb55", + "created_at": "2023-11-12T04:52:04Z", + "updated_at": "2023-11-12T04:52:04Z", + "body": "On Sat, Nov 11, 2023 at 08:29:07PM -0800, alltheseas wrote:\n>https://damus.io/note1t92yfejmprxvvc62qhteel0qcerl6nq7ev5uruk3gsejr38lxq4qsvxjlc\n>\n>iOS 16.6\n>\n>Damus 16 testflight\n\nseems like a NdbTxn is hanging around and not getting garbage collected,\nleading to a hang when the next transaction is attempted on the main\nthread?\n" } }, { @@ -124926,20 +133291,26 @@ "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/1695/timeline", "performed_via_github_app": null, "state_reason": null + }, + "comment": { + "user": "jb55", + "created_at": "2023-11-14T15:28:40Z", + "updated_at": "2023-11-14T15:28:40Z", + "body": "On Sat, Nov 11, 2023 at 08:52:14PM -0800, William Casarin wrote:\n>On Sat, Nov 11, 2023 at 08:29:07PM -0800, alltheseas wrote:\n>>https://damus.io/note1t92yfejmprxvvc62qhteel0qcerl6nq7ev5uruk3gsejr38lxq4qsvxjlc\n>>\n>>iOS 16.6\n>>\n>>Damus 16 testflight\n>\n>seems like a NdbTxn is hanging around and not getting garbage collected,\n>leading to a hang when the next transaction is attempted on the main\n>thread?\n\nI was able to replicate this a few times!\n" } }, { "issue": { - "url": "https://api.github.com/repos/damus-io/damus/issues/1695", + "url": "https://api.github.com/repos/damus-io/damus/issues/1694", "repository_url": "https://api.github.com/repos/damus-io/damus", - "labels_url": "https://api.github.com/repos/damus-io/damus/issues/1695/labels{/name}", - "comments_url": "https://api.github.com/repos/damus-io/damus/issues/1695/comments", - "events_url": "https://api.github.com/repos/damus-io/damus/issues/1695/events", - "html_url": "https://github.com/damus-io/damus/issues/1695", - "id": 1989233453, - "node_id": "I_kwDOHHF5A852kUst", - "number": 1695, - "title": "Profile card crash on three profile card profile opens", + "labels_url": "https://api.github.com/repos/damus-io/damus/issues/1694/labels{/name}", + "comments_url": "https://api.github.com/repos/damus-io/damus/issues/1694/comments", + "events_url": "https://api.github.com/repos/damus-io/damus/issues/1694/events", + "html_url": "https://github.com/damus-io/damus/issues/1694", + "id": 1989217717, + "node_id": "I_kwDOHHF5A852kQ21", + "number": 1694, + "title": "Update supported NIPs documentation", "user": { "login": "alltheseas", "id": 64376233, @@ -124962,31 +133333,13 @@ }, "labels": [ { - "id": 3994718396, - "node_id": "LA_kwDOHHF5A87uGpC8", - "url": "https://api.github.com/repos/damus-io/damus/labels/bug", - "name": "bug", - "color": "d73a4a", - "default": true, - "description": "Something is not working, or not working as intended" - }, - { - "id": 5667406338, - "node_id": "LA_kwDOHHF5A88AAAABUc3CAg", - "url": "https://api.github.com/repos/damus-io/damus/labels/Needs%20recreation", - "name": "Needs recreation", - "color": "FBCA04", - "default": false, - "description": "Issues requires concrete steps for recreation" - }, - { - "id": 5799674891, - "node_id": "LA_kwDOHHF5A88AAAABWbAECw", - "url": "https://api.github.com/repos/damus-io/damus/labels/iOS%2016", - "name": "iOS 16", - "color": "6A820D", + "id": 3994718397, + "node_id": "LA_kwDOHHF5A87uGpC9", + "url": "https://api.github.com/repos/damus-io/damus/labels/docs", + "name": "docs", + "color": "0075ca", "default": false, - "description": "iOS 16 bugs/features" + "description": "Improvements or additions to documentation" } ], "state": "open", @@ -124994,15 +133347,15 @@ "assignee": null, "assignees": [], "milestone": null, - "comments": 2, - "created_at": "2023-11-12T04:28:56Z", - "updated_at": "2023-11-14T15:28:40Z", + "comments": 0, + "created_at": "2023-11-12T03:19:11Z", + "updated_at": "2023-11-12T03:19:11Z", "closed_at": null, "author_association": "COLLABORATOR", "active_lock_reason": null, - "body": "https://damus.io/note1t92yfejmprxvvc62qhteel0qcerl6nq7ev5uruk3gsejr38lxq4qsvxjlc\n\niOS 16.6\n\nDamus 16 testflight", + "body": null, "reactions": { - "url": "https://api.github.com/repos/damus-io/damus/issues/1695/reactions", + "url": "https://api.github.com/repos/damus-io/damus/issues/1694/reactions", "total_count": 0, "+1": 0, "-1": 0, @@ -125013,29 +133366,23 @@ "rocket": 0, "eyes": 0 }, - "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/1695/timeline", + "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/1694/timeline", "performed_via_github_app": null, "state_reason": null - }, - "comment": { - "user": "jb55", - "created_at": "2023-11-12T04:52:04Z", - "updated_at": "2023-11-12T04:52:04Z", - "body": "On Sat, Nov 11, 2023 at 08:29:07PM -0800, alltheseas wrote:\n>https://damus.io/note1t92yfejmprxvvc62qhteel0qcerl6nq7ev5uruk3gsejr38lxq4qsvxjlc\n>\n>iOS 16.6\n>\n>Damus 16 testflight\n\nseems like a NdbTxn is hanging around and not getting garbage collected,\nleading to a hang when the next transaction is attempted on the main\nthread?\n" } }, { "issue": { - "url": "https://api.github.com/repos/damus-io/damus/issues/1695", + "url": "https://api.github.com/repos/damus-io/damus/issues/1693", "repository_url": "https://api.github.com/repos/damus-io/damus", - "labels_url": "https://api.github.com/repos/damus-io/damus/issues/1695/labels{/name}", - "comments_url": "https://api.github.com/repos/damus-io/damus/issues/1695/comments", - "events_url": "https://api.github.com/repos/damus-io/damus/issues/1695/events", - "html_url": "https://github.com/damus-io/damus/issues/1695", - "id": 1989233453, - "node_id": "I_kwDOHHF5A852kUst", - "number": 1695, - "title": "Profile card crash on three profile card profile opens", + "labels_url": "https://api.github.com/repos/damus-io/damus/issues/1693/labels{/name}", + "comments_url": "https://api.github.com/repos/damus-io/damus/issues/1693/comments", + "events_url": "https://api.github.com/repos/damus-io/damus/issues/1693/events", + "html_url": "https://github.com/damus-io/damus/issues/1693", + "id": 1987778557, + "node_id": "I_kwDOHHF5A852exf9", + "number": 1693, + "title": "Image carousel is broken (and later self fixes)", "user": { "login": "alltheseas", "id": 64376233, @@ -125058,15 +133405,6 @@ }, "labels": [ { - "id": 3994718396, - "node_id": "LA_kwDOHHF5A87uGpC8", - "url": "https://api.github.com/repos/damus-io/damus/labels/bug", - "name": "bug", - "color": "d73a4a", - "default": true, - "description": "Something is not working, or not working as intended" - }, - { "id": 5667406338, "node_id": "LA_kwDOHHF5A88AAAABUc3CAg", "url": "https://api.github.com/repos/damus-io/damus/labels/Needs%20recreation", @@ -125076,29 +133414,29 @@ "description": "Issues requires concrete steps for recreation" }, { - "id": 5799674891, - "node_id": "LA_kwDOHHF5A88AAAABWbAECw", - "url": "https://api.github.com/repos/damus-io/damus/labels/iOS%2016", - "name": "iOS 16", - "color": "6A820D", + "id": 5895705605, + "node_id": "LA_kwDOHHF5A88AAAABX2lUBQ", + "url": "https://api.github.com/repos/damus-io/damus/labels/unexpected", + "name": "unexpected", + "color": "553300", "default": false, - "description": "iOS 16 bugs/features" + "description": "" } ], - "state": "open", + "state": "closed", "locked": false, "assignee": null, "assignees": [], "milestone": null, - "comments": 2, - "created_at": "2023-11-12T04:28:56Z", - "updated_at": "2023-11-14T15:28:40Z", - "closed_at": null, + "comments": 6, + "created_at": "2023-11-10T14:51:58Z", + "updated_at": "2024-01-22T16:03:45Z", + "closed_at": "2024-01-22T16:03:45Z", "author_association": "COLLABORATOR", "active_lock_reason": null, - "body": "https://damus.io/note1t92yfejmprxvvc62qhteel0qcerl6nq7ev5uruk3gsejr38lxq4qsvxjlc\n\niOS 16.6\n\nDamus 16 testflight", + "body": "_what happens_\n\nBoth @tyiu and I experienced a broken image carousel when opening a note with multiple images. When opening same note subsequently the carousel works.\n\nNeed recreation.", "reactions": { - "url": "https://api.github.com/repos/damus-io/damus/issues/1695/reactions", + "url": "https://api.github.com/repos/damus-io/damus/issues/1693/reactions", "total_count": 0, "+1": 0, "-1": 0, @@ -125109,29 +133447,23 @@ "rocket": 0, "eyes": 0 }, - "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/1695/timeline", + "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/1693/timeline", "performed_via_github_app": null, - "state_reason": null - }, - "comment": { - "user": "jb55", - "created_at": "2023-11-14T15:28:40Z", - "updated_at": "2023-11-14T15:28:40Z", - "body": "On Sat, Nov 11, 2023 at 08:52:14PM -0800, William Casarin wrote:\n>On Sat, Nov 11, 2023 at 08:29:07PM -0800, alltheseas wrote:\n>>https://damus.io/note1t92yfejmprxvvc62qhteel0qcerl6nq7ev5uruk3gsejr38lxq4qsvxjlc\n>>\n>>iOS 16.6\n>>\n>>Damus 16 testflight\n>\n>seems like a NdbTxn is hanging around and not getting garbage collected,\n>leading to a hang when the next transaction is attempted on the main\n>thread?\n\nI was able to replicate this a few times!\n" + "state_reason": "not_planned" } }, { "issue": { - "url": "https://api.github.com/repos/damus-io/damus/issues/1694", + "url": "https://api.github.com/repos/damus-io/damus/issues/1693", "repository_url": "https://api.github.com/repos/damus-io/damus", - "labels_url": "https://api.github.com/repos/damus-io/damus/issues/1694/labels{/name}", - "comments_url": "https://api.github.com/repos/damus-io/damus/issues/1694/comments", - "events_url": "https://api.github.com/repos/damus-io/damus/issues/1694/events", - "html_url": "https://github.com/damus-io/damus/issues/1694", - "id": 1989217717, - "node_id": "I_kwDOHHF5A852kQ21", - "number": 1694, - "title": "Update supported NIPs documentation", + "labels_url": "https://api.github.com/repos/damus-io/damus/issues/1693/labels{/name}", + "comments_url": "https://api.github.com/repos/damus-io/damus/issues/1693/comments", + "events_url": "https://api.github.com/repos/damus-io/damus/issues/1693/events", + "html_url": "https://github.com/damus-io/damus/issues/1693", + "id": 1987778557, + "node_id": "I_kwDOHHF5A852exf9", + "number": 1693, + "title": "Image carousel is broken (and later self fixes)", "user": { "login": "alltheseas", "id": 64376233, @@ -125154,29 +133486,38 @@ }, "labels": [ { - "id": 3994718397, - "node_id": "LA_kwDOHHF5A87uGpC9", - "url": "https://api.github.com/repos/damus-io/damus/labels/docs", - "name": "docs", - "color": "0075ca", + "id": 5667406338, + "node_id": "LA_kwDOHHF5A88AAAABUc3CAg", + "url": "https://api.github.com/repos/damus-io/damus/labels/Needs%20recreation", + "name": "Needs recreation", + "color": "FBCA04", "default": false, - "description": "Improvements or additions to documentation" + "description": "Issues requires concrete steps for recreation" + }, + { + "id": 5895705605, + "node_id": "LA_kwDOHHF5A88AAAABX2lUBQ", + "url": "https://api.github.com/repos/damus-io/damus/labels/unexpected", + "name": "unexpected", + "color": "553300", + "default": false, + "description": "" } ], - "state": "open", + "state": "closed", "locked": false, "assignee": null, "assignees": [], "milestone": null, - "comments": 0, - "created_at": "2023-11-12T03:19:11Z", - "updated_at": "2023-11-12T03:19:11Z", - "closed_at": null, + "comments": 6, + "created_at": "2023-11-10T14:51:58Z", + "updated_at": "2024-01-22T16:03:45Z", + "closed_at": "2024-01-22T16:03:45Z", "author_association": "COLLABORATOR", "active_lock_reason": null, - "body": null, + "body": "_what happens_\n\nBoth @tyiu and I experienced a broken image carousel when opening a note with multiple images. When opening same note subsequently the carousel works.\n\nNeed recreation.", "reactions": { - "url": "https://api.github.com/repos/damus-io/damus/issues/1694/reactions", + "url": "https://api.github.com/repos/damus-io/damus/issues/1693/reactions", "total_count": 0, "+1": 0, "-1": 0, @@ -125187,9 +133528,15 @@ "rocket": 0, "eyes": 0 }, - "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/1694/timeline", + "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/1693/timeline", "performed_via_github_app": null, - "state_reason": null + "state_reason": "not_planned" + }, + "comment": { + "user": "alltheseas", + "created_at": "2023-11-22T19:56:14Z", + "updated_at": "2023-11-22T19:56:14Z", + "body": "Appears broken https://damus.io/note13v5xzyf5gzsq67k8g26a89tu7u2knvg2lfakvtfh8psckndd7arq6f4mrf\n\n\nhttps://damus.io/note1lzm8626nd957yestwudv50kzquvraxl9md80y4ncxtakyjerreyqdwww8u" } }, { @@ -125271,6 +133618,12 @@ "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/1693/timeline", "performed_via_github_app": null, "state_reason": "not_planned" + }, + "comment": { + "user": "alltheseas", + "created_at": "2023-11-22T20:02:01Z", + "updated_at": "2023-11-22T20:02:18Z", + "body": "@danieldaquino @jb55 if y'all also can't scroll the carousel, I would bump this up to a higher priority to whatever you are working on as may affect many other Damus users.\r\n\r\nLmk if y'all can recreate." } }, { @@ -125355,9 +133708,9 @@ }, "comment": { "user": "alltheseas", - "created_at": "2023-11-22T19:56:14Z", - "updated_at": "2023-11-22T19:56:14Z", - "body": "Appears broken https://damus.io/note13v5xzyf5gzsq67k8g26a89tu7u2knvg2lfakvtfh8psckndd7arq6f4mrf\n\n\nhttps://damus.io/note1lzm8626nd957yestwudv50kzquvraxl9md80y4ncxtakyjerreyqdwww8u" + "created_at": "2023-11-22T20:21:18Z", + "updated_at": "2023-11-22T20:21:18Z", + "body": "Carousel works for signal &rage" } }, { @@ -125441,10 +133794,10 @@ "state_reason": "not_planned" }, "comment": { - "user": "alltheseas", - "created_at": "2023-11-22T20:02:01Z", - "updated_at": "2023-11-22T20:02:18Z", - "body": "@danieldaquino @jb55 if y'all also can't scroll the carousel, I would bump this up to a higher priority to whatever you are working on as may affect many other Damus users.\r\n\r\nLmk if y'all can recreate." + "user": "kernelkind", + "created_at": "2024-01-22T15:59:47Z", + "updated_at": "2024-01-22T15:59:47Z", + "body": "Is this issue still relevant? The carousel works fine for me" } }, { @@ -125529,96 +133882,9 @@ }, "comment": { "user": "alltheseas", - "created_at": "2023-11-22T20:21:18Z", - "updated_at": "2023-11-22T20:21:18Z", - "body": "Carousel works for signal &rage" - } - }, - { - "issue": { - "url": "https://api.github.com/repos/damus-io/damus/issues/1693", - "repository_url": "https://api.github.com/repos/damus-io/damus", - "labels_url": "https://api.github.com/repos/damus-io/damus/issues/1693/labels{/name}", - "comments_url": "https://api.github.com/repos/damus-io/damus/issues/1693/comments", - "events_url": "https://api.github.com/repos/damus-io/damus/issues/1693/events", - "html_url": "https://github.com/damus-io/damus/issues/1693", - "id": 1987778557, - "node_id": "I_kwDOHHF5A852exf9", - "number": 1693, - "title": "Image carousel is broken (and later self fixes)", - "user": { - "login": "alltheseas", - "id": 64376233, - "node_id": "MDQ6VXNlcjY0Mzc2MjMz", - "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/alltheseas", - "html_url": "https://github.com/alltheseas", - "followers_url": "https://api.github.com/users/alltheseas/followers", - "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", - "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", - "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", - "organizations_url": "https://api.github.com/users/alltheseas/orgs", - "repos_url": "https://api.github.com/users/alltheseas/repos", - "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", - "received_events_url": "https://api.github.com/users/alltheseas/received_events", - "type": "User", - "site_admin": false - }, - "labels": [ - { - "id": 5667406338, - "node_id": "LA_kwDOHHF5A88AAAABUc3CAg", - "url": "https://api.github.com/repos/damus-io/damus/labels/Needs%20recreation", - "name": "Needs recreation", - "color": "FBCA04", - "default": false, - "description": "Issues requires concrete steps for recreation" - }, - { - "id": 5895705605, - "node_id": "LA_kwDOHHF5A88AAAABX2lUBQ", - "url": "https://api.github.com/repos/damus-io/damus/labels/unexpected", - "name": "unexpected", - "color": "553300", - "default": false, - "description": "" - } - ], - "state": "closed", - "locked": false, - "assignee": null, - "assignees": [], - "milestone": null, - "comments": 6, - "created_at": "2023-11-10T14:51:58Z", - "updated_at": "2024-01-22T16:03:45Z", - "closed_at": "2024-01-22T16:03:45Z", - "author_association": "COLLABORATOR", - "active_lock_reason": null, - "body": "_what happens_\n\nBoth @tyiu and I experienced a broken image carousel when opening a note with multiple images. When opening same note subsequently the carousel works.\n\nNeed recreation.", - "reactions": { - "url": "https://api.github.com/repos/damus-io/damus/issues/1693/reactions", - "total_count": 0, - "+1": 0, - "-1": 0, - "laugh": 0, - "hooray": 0, - "confused": 0, - "heart": 0, - "rocket": 0, - "eyes": 0 - }, - "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/1693/timeline", - "performed_via_github_app": null, - "state_reason": "not_planned" - }, - "comment": { - "user": "kernelkind", - "created_at": "2024-01-22T15:59:47Z", - "updated_at": "2024-01-22T15:59:47Z", - "body": "Is this issue still relevant? The carousel works fine for me" + "created_at": "2024-01-22T16:02:16Z", + "updated_at": "2024-01-22T16:02:16Z", + "body": "Tested above links, and no issues observed currently" } }, { @@ -125703,23 +133969,23 @@ }, "comment": { "user": "alltheseas", - "created_at": "2024-01-22T16:02:16Z", - "updated_at": "2024-01-22T16:02:16Z", - "body": "Tested above links, and no issues observed currently" + "created_at": "2024-01-22T16:03:32Z", + "updated_at": "2024-01-22T16:03:32Z", + "body": "The \"needs recreation\" labels mean that if we don't know how to reproduce, we have less confidence in closing an issue. \n\nI can close and re-open if needed. " } }, { "issue": { - "url": "https://api.github.com/repos/damus-io/damus/issues/1693", + "url": "https://api.github.com/repos/damus-io/damus/issues/1692", "repository_url": "https://api.github.com/repos/damus-io/damus", - "labels_url": "https://api.github.com/repos/damus-io/damus/issues/1693/labels{/name}", - "comments_url": "https://api.github.com/repos/damus-io/damus/issues/1693/comments", - "events_url": "https://api.github.com/repos/damus-io/damus/issues/1693/events", - "html_url": "https://github.com/damus-io/damus/issues/1693", - "id": 1987778557, - "node_id": "I_kwDOHHF5A852exf9", - "number": 1693, - "title": "Image carousel is broken (and later self fixes)", + "labels_url": "https://api.github.com/repos/damus-io/damus/issues/1692/labels{/name}", + "comments_url": "https://api.github.com/repos/damus-io/damus/issues/1692/comments", + "events_url": "https://api.github.com/repos/damus-io/damus/issues/1692/events", + "html_url": "https://github.com/damus-io/damus/issues/1692", + "id": 1987753237, + "node_id": "I_kwDOHHF5A852erUV", + "number": 1692, + "title": "Stretch image rendering long form note", "user": { "login": "alltheseas", "id": 64376233, @@ -125742,38 +134008,38 @@ }, "labels": [ { - "id": 5667406338, - "node_id": "LA_kwDOHHF5A88AAAABUc3CAg", - "url": "https://api.github.com/repos/damus-io/damus/labels/Needs%20recreation", - "name": "Needs recreation", - "color": "FBCA04", - "default": false, - "description": "Issues requires concrete steps for recreation" + "id": 3994718396, + "node_id": "LA_kwDOHHF5A87uGpC8", + "url": "https://api.github.com/repos/damus-io/damus/labels/bug", + "name": "bug", + "color": "d73a4a", + "default": true, + "description": "Something is not working, or not working as intended" }, { - "id": 5895705605, - "node_id": "LA_kwDOHHF5A88AAAABX2lUBQ", - "url": "https://api.github.com/repos/damus-io/damus/labels/unexpected", - "name": "unexpected", - "color": "553300", + "id": 6020454455, + "node_id": "LA_kwDOHHF5A88AAAABZtjYNw", + "url": "https://api.github.com/repos/damus-io/damus/labels/longform", + "name": "longform", + "color": "fef2c0", "default": false, "description": "" } ], - "state": "closed", + "state": "open", "locked": false, "assignee": null, "assignees": [], "milestone": null, - "comments": 6, - "created_at": "2023-11-10T14:51:58Z", - "updated_at": "2024-01-22T16:03:45Z", - "closed_at": "2024-01-22T16:03:45Z", + "comments": 2, + "created_at": "2023-11-10T14:36:59Z", + "updated_at": "2024-03-19T17:22:29Z", + "closed_at": null, "author_association": "COLLABORATOR", "active_lock_reason": null, - "body": "_what happens_\n\nBoth @tyiu and I experienced a broken image carousel when opening a note with multiple images. When opening same note subsequently the carousel works.\n\nNeed recreation.", + "body": "https://damus.io/note1kd3kcqs6tmljsvw5sx8z4svlcs8gtx7mg478rp040xwpn3uwa42q7nvh25\n\n_what happens_\n\nWhen opening a particular long form note with images, images may appear vertically stretched. On subsequent opens some images may fix by themselves and render correctly. \n\n![image](https://github.com/damus-io/damus/assets/64376233/89a02686-9d5c-488b-95d0-58061546741f)", "reactions": { - "url": "https://api.github.com/repos/damus-io/damus/issues/1693/reactions", + "url": "https://api.github.com/repos/damus-io/damus/issues/1692/reactions", "total_count": 0, "+1": 0, "-1": 0, @@ -125784,15 +134050,9 @@ "rocket": 0, "eyes": 0 }, - "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/1693/timeline", + "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/1692/timeline", "performed_via_github_app": null, - "state_reason": "not_planned" - }, - "comment": { - "user": "alltheseas", - "created_at": "2024-01-22T16:03:32Z", - "updated_at": "2024-01-22T16:03:32Z", - "body": "The \"needs recreation\" labels mean that if we don't know how to reproduce, we have less confidence in closing an issue. \n\nI can close and re-open if needed. " + "state_reason": null } }, { @@ -125852,9 +134112,9 @@ "assignee": null, "assignees": [], "milestone": null, - "comments": 1, + "comments": 2, "created_at": "2023-11-10T14:36:59Z", - "updated_at": "2023-11-13T19:08:09Z", + "updated_at": "2024-03-19T17:22:29Z", "closed_at": null, "author_association": "COLLABORATOR", "active_lock_reason": null, @@ -125874,6 +134134,12 @@ "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/1692/timeline", "performed_via_github_app": null, "state_reason": null + }, + "comment": { + "user": "jb55", + "created_at": "2023-11-13T19:08:09Z", + "updated_at": "2023-11-13T19:08:09Z", + "body": "our longform renderer needs a lot of work. it uses a library which doesn't know anything about nostr links.\n" } }, { @@ -125933,9 +134199,9 @@ "assignee": null, "assignees": [], "milestone": null, - "comments": 1, + "comments": 2, "created_at": "2023-11-10T14:36:59Z", - "updated_at": "2023-11-13T19:08:09Z", + "updated_at": "2024-03-19T17:22:29Z", "closed_at": null, "author_association": "COLLABORATOR", "active_lock_reason": null, @@ -125957,10 +134223,10 @@ "state_reason": null }, "comment": { - "user": "jb55", - "created_at": "2023-11-13T19:08:09Z", - "updated_at": "2023-11-13T19:08:09Z", - "body": "our longform renderer needs a lot of work. it uses a library which doesn't know anything about nostr links.\n" + "user": "alltheseas", + "created_at": "2024-03-19T17:21:33Z", + "updated_at": "2024-03-19T17:22:29Z", + "body": "images cut off horizontally in long form post\r\n\r\n\r\n\r\nhttps://damus.io/note1npcxw6j0wckfjm3vzu5rgufwtdndtk4y608ltgumndn5q4zjqc9qyl4ys7\n\n![image](https://github.com/damus-io/damus/assets/64376233/fa1edc90-14ae-4209-bd26-e0628b95d583)\n\n![image](https://github.com/damus-io/damus/assets/64376233/95344ab8-7cda-48ac-b45d-26e6129bd199)" } }, { @@ -129708,8 +137974,8 @@ { "id": 6158662124, "node_id": "LA_kwDOHHF5A88AAAABbxW57A", - "url": "https://api.github.com/repos/damus-io/damus/labels/signal/noise%20ratio%20%F0%9F%91%80/%F0%9F%92%A5", - "name": "signal/noise ratio 👀/💥", + "url": "https://api.github.com/repos/damus-io/damus/labels/signal-to-noise-ratio", + "name": "signal-to-noise-ratio", "color": "0E8A16", "default": false, "description": "" @@ -130080,8 +138346,8 @@ { "id": 6158662124, "node_id": "LA_kwDOHHF5A88AAAABbxW57A", - "url": "https://api.github.com/repos/damus-io/damus/labels/signal/noise%20ratio%20%F0%9F%91%80/%F0%9F%92%A5", - "name": "signal/noise ratio 👀/💥", + "url": "https://api.github.com/repos/damus-io/damus/labels/signal-to-noise-ratio", + "name": "signal-to-noise-ratio", "color": "0E8A16", "default": false, "description": "" @@ -130161,8 +138427,8 @@ { "id": 6158662124, "node_id": "LA_kwDOHHF5A88AAAABbxW57A", - "url": "https://api.github.com/repos/damus-io/damus/labels/signal/noise%20ratio%20%F0%9F%91%80/%F0%9F%92%A5", - "name": "signal/noise ratio 👀/💥", + "url": "https://api.github.com/repos/damus-io/damus/labels/signal-to-noise-ratio", + "name": "signal-to-noise-ratio", "color": "0E8A16", "default": false, "description": "" @@ -130542,8 +138808,8 @@ { "id": 6158662124, "node_id": "LA_kwDOHHF5A88AAAABbxW57A", - "url": "https://api.github.com/repos/damus-io/damus/labels/signal/noise%20ratio%20%F0%9F%91%80/%F0%9F%92%A5", - "name": "signal/noise ratio 👀/💥", + "url": "https://api.github.com/repos/damus-io/damus/labels/signal-to-noise-ratio", + "name": "signal-to-noise-ratio", "color": "0E8A16", "default": false, "description": "" @@ -130554,9 +138820,9 @@ "assignee": null, "assignees": [], "milestone": null, - "comments": 1, + "comments": 2, "created_at": "2023-11-02T03:37:44Z", - "updated_at": "2023-11-04T01:04:09Z", + "updated_at": "2024-03-21T01:23:31Z", "closed_at": null, "author_association": "COLLABORATOR", "active_lock_reason": null, @@ -130614,8 +138880,8 @@ { "id": 6158662124, "node_id": "LA_kwDOHHF5A88AAAABbxW57A", - "url": "https://api.github.com/repos/damus-io/damus/labels/signal/noise%20ratio%20%F0%9F%91%80/%F0%9F%92%A5", - "name": "signal/noise ratio 👀/💥", + "url": "https://api.github.com/repos/damus-io/damus/labels/signal-to-noise-ratio", + "name": "signal-to-noise-ratio", "color": "0E8A16", "default": false, "description": "" @@ -130626,9 +138892,9 @@ "assignee": null, "assignees": [], "milestone": null, - "comments": 1, + "comments": 2, "created_at": "2023-11-02T03:37:44Z", - "updated_at": "2023-11-04T01:04:09Z", + "updated_at": "2024-03-21T01:23:31Z", "closed_at": null, "author_association": "COLLABORATOR", "active_lock_reason": null, @@ -130658,6 +138924,84 @@ }, { "issue": { + "url": "https://api.github.com/repos/damus-io/damus/issues/1677", + "repository_url": "https://api.github.com/repos/damus-io/damus", + "labels_url": "https://api.github.com/repos/damus-io/damus/issues/1677/labels{/name}", + "comments_url": "https://api.github.com/repos/damus-io/damus/issues/1677/comments", + "events_url": "https://api.github.com/repos/damus-io/damus/issues/1677/events", + "html_url": "https://github.com/damus-io/damus/issues/1677", + "id": 1973444964, + "node_id": "I_kwDOHHF5A851oGFk", + "number": 1677, + "title": "Hashtag spamming", + "user": { + "login": "alltheseas", + "id": 64376233, + "node_id": "MDQ6VXNlcjY0Mzc2MjMz", + "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/alltheseas", + "html_url": "https://github.com/alltheseas", + "followers_url": "https://api.github.com/users/alltheseas/followers", + "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", + "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", + "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", + "organizations_url": "https://api.github.com/users/alltheseas/orgs", + "repos_url": "https://api.github.com/users/alltheseas/repos", + "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", + "received_events_url": "https://api.github.com/users/alltheseas/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "id": 6158662124, + "node_id": "LA_kwDOHHF5A88AAAABbxW57A", + "url": "https://api.github.com/repos/damus-io/damus/labels/signal-to-noise-ratio", + "name": "signal-to-noise-ratio", + "color": "0E8A16", + "default": false, + "description": "" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "assignees": [], + "milestone": null, + "comments": 2, + "created_at": "2023-11-02T03:37:44Z", + "updated_at": "2024-03-21T01:23:31Z", + "closed_at": null, + "author_association": "COLLABORATOR", + "active_lock_reason": null, + "body": "_what happens_\r\n\r\nSome notes have a high number of hashtags.\r\n\r\n_how might Damus_\r\n\r\nManage the signal to noise ratio for notes with e.g. 30 hashtags. For instance, might Damus disregard anything but the first hashtag? First three hashtags?", + "reactions": { + "url": "https://api.github.com/repos/damus-io/damus/issues/1677/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/1677/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + "comment": { + "user": "alltheseas", + "created_at": "2024-03-21T01:23:19Z", + "updated_at": "2024-03-21T01:23:31Z", + "body": "Example\n\nhttps://damus.io/note1vck84lgdujgwnu9c6q0675nx8xlvwuq2ct63wx9fdxa38hm5anescr8pa8" + } + }, + { + "issue": { "url": "https://api.github.com/repos/damus-io/damus/issues/1676", "repository_url": "https://api.github.com/repos/damus-io/damus", "labels_url": "https://api.github.com/repos/damus-io/damus/issues/1676/labels{/name}", @@ -134863,8 +143207,8 @@ { "id": 6158662124, "node_id": "LA_kwDOHHF5A88AAAABbxW57A", - "url": "https://api.github.com/repos/damus-io/damus/labels/signal/noise%20ratio%20%F0%9F%91%80/%F0%9F%92%A5", - "name": "signal/noise ratio 👀/💥", + "url": "https://api.github.com/repos/damus-io/damus/labels/signal-to-noise-ratio", + "name": "signal-to-noise-ratio", "color": "0E8A16", "default": false, "description": "" @@ -138149,8 +146493,8 @@ { "id": 6158662124, "node_id": "LA_kwDOHHF5A88AAAABbxW57A", - "url": "https://api.github.com/repos/damus-io/damus/labels/signal/noise%20ratio%20%F0%9F%91%80/%F0%9F%92%A5", - "name": "signal/noise ratio 👀/💥", + "url": "https://api.github.com/repos/damus-io/damus/labels/signal-to-noise-ratio", + "name": "signal-to-noise-ratio", "color": "0E8A16", "default": false, "description": "" @@ -138230,8 +146574,8 @@ { "id": 6158662124, "node_id": "LA_kwDOHHF5A88AAAABbxW57A", - "url": "https://api.github.com/repos/damus-io/damus/labels/signal/noise%20ratio%20%F0%9F%91%80/%F0%9F%92%A5", - "name": "signal/noise ratio 👀/💥", + "url": "https://api.github.com/repos/damus-io/damus/labels/signal-to-noise-ratio", + "name": "signal-to-noise-ratio", "color": "0E8A16", "default": false, "description": "" @@ -163575,7 +171919,7 @@ "id": 10536809, "node_id": "MI_kwDOHHF5A84AoMdp", "number": 14, - "title": "1.8 post Madeira", + "title": "1.8 post Madeira: UX/UI/Design focus", "description": "", "creator": { "login": "alltheseas", @@ -163597,11 +171941,11 @@ "type": "User", "site_admin": false }, - "open_issues": 11, - "closed_issues": 0, + "open_issues": 13, + "closed_issues": 1, "state": "open", "created_at": "2024-02-09T17:16:56Z", - "updated_at": "2024-03-17T12:05:31Z", + "updated_at": "2024-03-20T15:28:11Z", "due_on": null, "closed_at": null }, @@ -163692,7 +172036,7 @@ "id": 10536809, "node_id": "MI_kwDOHHF5A84AoMdp", "number": 14, - "title": "1.8 post Madeira", + "title": "1.8 post Madeira: UX/UI/Design focus", "description": "", "creator": { "login": "alltheseas", @@ -163714,11 +172058,11 @@ "type": "User", "site_admin": false }, - "open_issues": 11, - "closed_issues": 0, + "open_issues": 13, + "closed_issues": 1, "state": "open", "created_at": "2024-02-09T17:16:56Z", - "updated_at": "2024-03-17T12:05:31Z", + "updated_at": "2024-03-20T15:28:11Z", "due_on": null, "closed_at": null }, @@ -163815,7 +172159,7 @@ "id": 10536809, "node_id": "MI_kwDOHHF5A84AoMdp", "number": 14, - "title": "1.8 post Madeira", + "title": "1.8 post Madeira: UX/UI/Design focus", "description": "", "creator": { "login": "alltheseas", @@ -163837,11 +172181,11 @@ "type": "User", "site_admin": false }, - "open_issues": 11, - "closed_issues": 0, + "open_issues": 13, + "closed_issues": 1, "state": "open", "created_at": "2024-02-09T17:16:56Z", - "updated_at": "2024-03-17T12:05:31Z", + "updated_at": "2024-03-20T15:28:11Z", "due_on": null, "closed_at": null }, @@ -163938,7 +172282,7 @@ "id": 10536809, "node_id": "MI_kwDOHHF5A84AoMdp", "number": 14, - "title": "1.8 post Madeira", + "title": "1.8 post Madeira: UX/UI/Design focus", "description": "", "creator": { "login": "alltheseas", @@ -163960,11 +172304,11 @@ "type": "User", "site_admin": false }, - "open_issues": 11, - "closed_issues": 0, + "open_issues": 13, + "closed_issues": 1, "state": "open", "created_at": "2024-02-09T17:16:56Z", - "updated_at": "2024-03-17T12:05:31Z", + "updated_at": "2024-03-20T15:28:11Z", "due_on": null, "closed_at": null }, @@ -180166,6 +188510,24 @@ "color": "a2eeef", "default": true, "description": "Improvement" + }, + { + "id": 6158662124, + "node_id": "LA_kwDOHHF5A88AAAABbxW57A", + "url": "https://api.github.com/repos/damus-io/damus/labels/signal-to-noise-ratio", + "name": "signal-to-noise-ratio", + "color": "0E8A16", + "default": false, + "description": "" + }, + { + "id": 6213404742, + "node_id": "LA_kwDOHHF5A88AAAABclkIRg", + "url": "https://api.github.com/repos/damus-io/damus/labels/search", + "name": "search", + "color": "0e8a16", + "default": false, + "description": "" } ], "state": "open", @@ -180173,9 +188535,387 @@ "assignee": null, "assignees": [], "milestone": null, - "comments": 3, + "comments": 5, + "created_at": "2023-09-24T14:46:18Z", + "updated_at": "2024-03-18T16:42:44Z", + "closed_at": null, + "author_association": "COLLABORATOR", + "active_lock_reason": null, + "body": "_what happens_\n\nWhen I mute someone, and I search for their name, I see them in search results\n\n_what should happen_\nI do not want to see muted profiles in search results. \n\nhttps://image.nostr.build/1e910e84217ac696870d3105fa5f25bebb76749ac65824fe6ab528cc20957416.jpg\n\nhttps://damus.io/note1t3cvslnuq02hsxecd43fw025ugwnl6yz68cscwg47v49mzkcx4wqmnk6v7", + "reactions": { + "url": "https://api.github.com/repos/damus-io/damus/issues/1555/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/1555/timeline", + "performed_via_github_app": null, + "state_reason": null + } + }, + { + "issue": { + "url": "https://api.github.com/repos/damus-io/damus/issues/1555", + "repository_url": "https://api.github.com/repos/damus-io/damus", + "labels_url": "https://api.github.com/repos/damus-io/damus/issues/1555/labels{/name}", + "comments_url": "https://api.github.com/repos/damus-io/damus/issues/1555/comments", + "events_url": "https://api.github.com/repos/damus-io/damus/issues/1555/events", + "html_url": "https://github.com/damus-io/damus/issues/1555", + "id": 1910260081, + "node_id": "I_kwDOHHF5A85x3EFx", + "number": 1555, + "title": "Do not show muted profiles in search", + "user": { + "login": "alltheseas", + "id": 64376233, + "node_id": "MDQ6VXNlcjY0Mzc2MjMz", + "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/alltheseas", + "html_url": "https://github.com/alltheseas", + "followers_url": "https://api.github.com/users/alltheseas/followers", + "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", + "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", + "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", + "organizations_url": "https://api.github.com/users/alltheseas/orgs", + "repos_url": "https://api.github.com/users/alltheseas/repos", + "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", + "received_events_url": "https://api.github.com/users/alltheseas/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "id": 3994718399, + "node_id": "LA_kwDOHHF5A87uGpC_", + "url": "https://api.github.com/repos/damus-io/damus/labels/enhancement", + "name": "enhancement", + "color": "a2eeef", + "default": true, + "description": "Improvement" + }, + { + "id": 6158662124, + "node_id": "LA_kwDOHHF5A88AAAABbxW57A", + "url": "https://api.github.com/repos/damus-io/damus/labels/signal-to-noise-ratio", + "name": "signal-to-noise-ratio", + "color": "0E8A16", + "default": false, + "description": "" + }, + { + "id": 6213404742, + "node_id": "LA_kwDOHHF5A88AAAABclkIRg", + "url": "https://api.github.com/repos/damus-io/damus/labels/search", + "name": "search", + "color": "0e8a16", + "default": false, + "description": "" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "assignees": [], + "milestone": null, + "comments": 5, + "created_at": "2023-09-24T14:46:18Z", + "updated_at": "2024-03-18T16:42:44Z", + "closed_at": null, + "author_association": "COLLABORATOR", + "active_lock_reason": null, + "body": "_what happens_\n\nWhen I mute someone, and I search for their name, I see them in search results\n\n_what should happen_\nI do not want to see muted profiles in search results. \n\nhttps://image.nostr.build/1e910e84217ac696870d3105fa5f25bebb76749ac65824fe6ab528cc20957416.jpg\n\nhttps://damus.io/note1t3cvslnuq02hsxecd43fw025ugwnl6yz68cscwg47v49mzkcx4wqmnk6v7", + "reactions": { + "url": "https://api.github.com/repos/damus-io/damus/issues/1555/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/1555/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + "comment": { + "user": "jb55", + "created_at": "2023-09-24T15:52:32Z", + "updated_at": "2023-09-24T15:52:32Z", + "body": "This should be an easy fix. Will do this on the flight today.\n" + } + }, + { + "issue": { + "url": "https://api.github.com/repos/damus-io/damus/issues/1555", + "repository_url": "https://api.github.com/repos/damus-io/damus", + "labels_url": "https://api.github.com/repos/damus-io/damus/issues/1555/labels{/name}", + "comments_url": "https://api.github.com/repos/damus-io/damus/issues/1555/comments", + "events_url": "https://api.github.com/repos/damus-io/damus/issues/1555/events", + "html_url": "https://github.com/damus-io/damus/issues/1555", + "id": 1910260081, + "node_id": "I_kwDOHHF5A85x3EFx", + "number": 1555, + "title": "Do not show muted profiles in search", + "user": { + "login": "alltheseas", + "id": 64376233, + "node_id": "MDQ6VXNlcjY0Mzc2MjMz", + "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/alltheseas", + "html_url": "https://github.com/alltheseas", + "followers_url": "https://api.github.com/users/alltheseas/followers", + "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", + "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", + "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", + "organizations_url": "https://api.github.com/users/alltheseas/orgs", + "repos_url": "https://api.github.com/users/alltheseas/repos", + "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", + "received_events_url": "https://api.github.com/users/alltheseas/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "id": 3994718399, + "node_id": "LA_kwDOHHF5A87uGpC_", + "url": "https://api.github.com/repos/damus-io/damus/labels/enhancement", + "name": "enhancement", + "color": "a2eeef", + "default": true, + "description": "Improvement" + }, + { + "id": 6158662124, + "node_id": "LA_kwDOHHF5A88AAAABbxW57A", + "url": "https://api.github.com/repos/damus-io/damus/labels/signal-to-noise-ratio", + "name": "signal-to-noise-ratio", + "color": "0E8A16", + "default": false, + "description": "" + }, + { + "id": 6213404742, + "node_id": "LA_kwDOHHF5A88AAAABclkIRg", + "url": "https://api.github.com/repos/damus-io/damus/labels/search", + "name": "search", + "color": "0e8a16", + "default": false, + "description": "" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "assignees": [], + "milestone": null, + "comments": 5, "created_at": "2023-09-24T14:46:18Z", + "updated_at": "2024-03-18T16:42:44Z", + "closed_at": null, + "author_association": "COLLABORATOR", + "active_lock_reason": null, + "body": "_what happens_\n\nWhen I mute someone, and I search for their name, I see them in search results\n\n_what should happen_\nI do not want to see muted profiles in search results. \n\nhttps://image.nostr.build/1e910e84217ac696870d3105fa5f25bebb76749ac65824fe6ab528cc20957416.jpg\n\nhttps://damus.io/note1t3cvslnuq02hsxecd43fw025ugwnl6yz68cscwg47v49mzkcx4wqmnk6v7", + "reactions": { + "url": "https://api.github.com/repos/damus-io/damus/issues/1555/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/1555/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + "comment": { + "user": "alltheseas", + "created_at": "2023-09-24T15:59:58Z", + "updated_at": "2023-09-24T15:59:58Z", + "body": "The counter argument for this feature is I want to search for a profile I muted. \n\nThis search capability could take place in the muted profiles list. \n\nProbably not a problem today. " + } + }, + { + "issue": { + "url": "https://api.github.com/repos/damus-io/damus/issues/1555", + "repository_url": "https://api.github.com/repos/damus-io/damus", + "labels_url": "https://api.github.com/repos/damus-io/damus/issues/1555/labels{/name}", + "comments_url": "https://api.github.com/repos/damus-io/damus/issues/1555/comments", + "events_url": "https://api.github.com/repos/damus-io/damus/issues/1555/events", + "html_url": "https://github.com/damus-io/damus/issues/1555", + "id": 1910260081, + "node_id": "I_kwDOHHF5A85x3EFx", + "number": 1555, + "title": "Do not show muted profiles in search", + "user": { + "login": "alltheseas", + "id": 64376233, + "node_id": "MDQ6VXNlcjY0Mzc2MjMz", + "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/alltheseas", + "html_url": "https://github.com/alltheseas", + "followers_url": "https://api.github.com/users/alltheseas/followers", + "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", + "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", + "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", + "organizations_url": "https://api.github.com/users/alltheseas/orgs", + "repos_url": "https://api.github.com/users/alltheseas/repos", + "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", + "received_events_url": "https://api.github.com/users/alltheseas/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "id": 3994718399, + "node_id": "LA_kwDOHHF5A87uGpC_", + "url": "https://api.github.com/repos/damus-io/damus/labels/enhancement", + "name": "enhancement", + "color": "a2eeef", + "default": true, + "description": "Improvement" + }, + { + "id": 6158662124, + "node_id": "LA_kwDOHHF5A88AAAABbxW57A", + "url": "https://api.github.com/repos/damus-io/damus/labels/signal-to-noise-ratio", + "name": "signal-to-noise-ratio", + "color": "0E8A16", + "default": false, + "description": "" + }, + { + "id": 6213404742, + "node_id": "LA_kwDOHHF5A88AAAABclkIRg", + "url": "https://api.github.com/repos/damus-io/damus/labels/search", + "name": "search", + "color": "0e8a16", + "default": false, + "description": "" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "assignees": [], + "milestone": null, + "comments": 5, + "created_at": "2023-09-24T14:46:18Z", + "updated_at": "2024-03-18T16:42:44Z", + "closed_at": null, + "author_association": "COLLABORATOR", + "active_lock_reason": null, + "body": "_what happens_\n\nWhen I mute someone, and I search for their name, I see them in search results\n\n_what should happen_\nI do not want to see muted profiles in search results. \n\nhttps://image.nostr.build/1e910e84217ac696870d3105fa5f25bebb76749ac65824fe6ab528cc20957416.jpg\n\nhttps://damus.io/note1t3cvslnuq02hsxecd43fw025ugwnl6yz68cscwg47v49mzkcx4wqmnk6v7", + "reactions": { + "url": "https://api.github.com/repos/damus-io/damus/issues/1555/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/1555/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + "comment": { + "user": "jb55", + "created_at": "2023-09-24T18:28:39Z", "updated_at": "2023-09-24T18:28:39Z", + "body": "On Sun, Sep 24, 2023 at 09:00:08AM -0700, alltheseas wrote:\n>The counter argument for this feature is I want to search for a profile I muted.\n>\n>This search capability could take place in the muted profiles list.\n>\n>Probably not a problem today.\n\nI thought about this as well, maybe we should only filter from @ mentions\n" + } + }, + { + "issue": { + "url": "https://api.github.com/repos/damus-io/damus/issues/1555", + "repository_url": "https://api.github.com/repos/damus-io/damus", + "labels_url": "https://api.github.com/repos/damus-io/damus/issues/1555/labels{/name}", + "comments_url": "https://api.github.com/repos/damus-io/damus/issues/1555/comments", + "events_url": "https://api.github.com/repos/damus-io/damus/issues/1555/events", + "html_url": "https://github.com/damus-io/damus/issues/1555", + "id": 1910260081, + "node_id": "I_kwDOHHF5A85x3EFx", + "number": 1555, + "title": "Do not show muted profiles in search", + "user": { + "login": "alltheseas", + "id": 64376233, + "node_id": "MDQ6VXNlcjY0Mzc2MjMz", + "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/alltheseas", + "html_url": "https://github.com/alltheseas", + "followers_url": "https://api.github.com/users/alltheseas/followers", + "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", + "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", + "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", + "organizations_url": "https://api.github.com/users/alltheseas/orgs", + "repos_url": "https://api.github.com/users/alltheseas/repos", + "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", + "received_events_url": "https://api.github.com/users/alltheseas/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "id": 3994718399, + "node_id": "LA_kwDOHHF5A87uGpC_", + "url": "https://api.github.com/repos/damus-io/damus/labels/enhancement", + "name": "enhancement", + "color": "a2eeef", + "default": true, + "description": "Improvement" + }, + { + "id": 6158662124, + "node_id": "LA_kwDOHHF5A88AAAABbxW57A", + "url": "https://api.github.com/repos/damus-io/damus/labels/signal-to-noise-ratio", + "name": "signal-to-noise-ratio", + "color": "0E8A16", + "default": false, + "description": "" + }, + { + "id": 6213404742, + "node_id": "LA_kwDOHHF5A88AAAABclkIRg", + "url": "https://api.github.com/repos/damus-io/damus/labels/search", + "name": "search", + "color": "0e8a16", + "default": false, + "description": "" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "assignees": [], + "milestone": null, + "comments": 5, + "created_at": "2023-09-24T14:46:18Z", + "updated_at": "2024-03-18T16:42:44Z", "closed_at": null, "author_association": "COLLABORATOR", "active_lock_reason": null, @@ -180195,6 +188935,12 @@ "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/1555/timeline", "performed_via_github_app": null, "state_reason": null + }, + "comment": { + "user": "alltheseas", + "created_at": "2024-03-18T16:42:34Z", + "updated_at": "2024-03-18T16:42:34Z", + "body": "Muted npub appears in timeline search\n\nhttps://github.com/damus-io/damus/assets/64376233/61a37000-4181-4e59-bd01-b9efb0e039f4" } }, { @@ -180238,162 +188984,24 @@ "color": "a2eeef", "default": true, "description": "Improvement" - } - ], - "state": "open", - "locked": false, - "assignee": null, - "assignees": [], - "milestone": null, - "comments": 3, - "created_at": "2023-09-24T14:46:18Z", - "updated_at": "2023-09-24T18:28:39Z", - "closed_at": null, - "author_association": "COLLABORATOR", - "active_lock_reason": null, - "body": "_what happens_\n\nWhen I mute someone, and I search for their name, I see them in search results\n\n_what should happen_\nI do not want to see muted profiles in search results. \n\nhttps://image.nostr.build/1e910e84217ac696870d3105fa5f25bebb76749ac65824fe6ab528cc20957416.jpg\n\nhttps://damus.io/note1t3cvslnuq02hsxecd43fw025ugwnl6yz68cscwg47v49mzkcx4wqmnk6v7", - "reactions": { - "url": "https://api.github.com/repos/damus-io/damus/issues/1555/reactions", - "total_count": 0, - "+1": 0, - "-1": 0, - "laugh": 0, - "hooray": 0, - "confused": 0, - "heart": 0, - "rocket": 0, - "eyes": 0 - }, - "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/1555/timeline", - "performed_via_github_app": null, - "state_reason": null - }, - "comment": { - "user": "jb55", - "created_at": "2023-09-24T15:52:32Z", - "updated_at": "2023-09-24T15:52:32Z", - "body": "This should be an easy fix. Will do this on the flight today.\n" - } - }, - { - "issue": { - "url": "https://api.github.com/repos/damus-io/damus/issues/1555", - "repository_url": "https://api.github.com/repos/damus-io/damus", - "labels_url": "https://api.github.com/repos/damus-io/damus/issues/1555/labels{/name}", - "comments_url": "https://api.github.com/repos/damus-io/damus/issues/1555/comments", - "events_url": "https://api.github.com/repos/damus-io/damus/issues/1555/events", - "html_url": "https://github.com/damus-io/damus/issues/1555", - "id": 1910260081, - "node_id": "I_kwDOHHF5A85x3EFx", - "number": 1555, - "title": "Do not show muted profiles in search", - "user": { - "login": "alltheseas", - "id": 64376233, - "node_id": "MDQ6VXNlcjY0Mzc2MjMz", - "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/alltheseas", - "html_url": "https://github.com/alltheseas", - "followers_url": "https://api.github.com/users/alltheseas/followers", - "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", - "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", - "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", - "organizations_url": "https://api.github.com/users/alltheseas/orgs", - "repos_url": "https://api.github.com/users/alltheseas/repos", - "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", - "received_events_url": "https://api.github.com/users/alltheseas/received_events", - "type": "User", - "site_admin": false - }, - "labels": [ + }, { - "id": 3994718399, - "node_id": "LA_kwDOHHF5A87uGpC_", - "url": "https://api.github.com/repos/damus-io/damus/labels/enhancement", - "name": "enhancement", - "color": "a2eeef", - "default": true, - "description": "Improvement" - } - ], - "state": "open", - "locked": false, - "assignee": null, - "assignees": [], - "milestone": null, - "comments": 3, - "created_at": "2023-09-24T14:46:18Z", - "updated_at": "2023-09-24T18:28:39Z", - "closed_at": null, - "author_association": "COLLABORATOR", - "active_lock_reason": null, - "body": "_what happens_\n\nWhen I mute someone, and I search for their name, I see them in search results\n\n_what should happen_\nI do not want to see muted profiles in search results. \n\nhttps://image.nostr.build/1e910e84217ac696870d3105fa5f25bebb76749ac65824fe6ab528cc20957416.jpg\n\nhttps://damus.io/note1t3cvslnuq02hsxecd43fw025ugwnl6yz68cscwg47v49mzkcx4wqmnk6v7", - "reactions": { - "url": "https://api.github.com/repos/damus-io/damus/issues/1555/reactions", - "total_count": 0, - "+1": 0, - "-1": 0, - "laugh": 0, - "hooray": 0, - "confused": 0, - "heart": 0, - "rocket": 0, - "eyes": 0 - }, - "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/1555/timeline", - "performed_via_github_app": null, - "state_reason": null - }, - "comment": { - "user": "alltheseas", - "created_at": "2023-09-24T15:59:58Z", - "updated_at": "2023-09-24T15:59:58Z", - "body": "The counter argument for this feature is I want to search for a profile I muted. \n\nThis search capability could take place in the muted profiles list. \n\nProbably not a problem today. " - } - }, - { - "issue": { - "url": "https://api.github.com/repos/damus-io/damus/issues/1555", - "repository_url": "https://api.github.com/repos/damus-io/damus", - "labels_url": "https://api.github.com/repos/damus-io/damus/issues/1555/labels{/name}", - "comments_url": "https://api.github.com/repos/damus-io/damus/issues/1555/comments", - "events_url": "https://api.github.com/repos/damus-io/damus/issues/1555/events", - "html_url": "https://github.com/damus-io/damus/issues/1555", - "id": 1910260081, - "node_id": "I_kwDOHHF5A85x3EFx", - "number": 1555, - "title": "Do not show muted profiles in search", - "user": { - "login": "alltheseas", - "id": 64376233, - "node_id": "MDQ6VXNlcjY0Mzc2MjMz", - "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/alltheseas", - "html_url": "https://github.com/alltheseas", - "followers_url": "https://api.github.com/users/alltheseas/followers", - "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", - "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", - "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", - "organizations_url": "https://api.github.com/users/alltheseas/orgs", - "repos_url": "https://api.github.com/users/alltheseas/repos", - "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", - "received_events_url": "https://api.github.com/users/alltheseas/received_events", - "type": "User", - "site_admin": false - }, - "labels": [ + "id": 6158662124, + "node_id": "LA_kwDOHHF5A88AAAABbxW57A", + "url": "https://api.github.com/repos/damus-io/damus/labels/signal-to-noise-ratio", + "name": "signal-to-noise-ratio", + "color": "0E8A16", + "default": false, + "description": "" + }, { - "id": 3994718399, - "node_id": "LA_kwDOHHF5A87uGpC_", - "url": "https://api.github.com/repos/damus-io/damus/labels/enhancement", - "name": "enhancement", - "color": "a2eeef", - "default": true, - "description": "Improvement" + "id": 6213404742, + "node_id": "LA_kwDOHHF5A88AAAABclkIRg", + "url": "https://api.github.com/repos/damus-io/damus/labels/search", + "name": "search", + "color": "0e8a16", + "default": false, + "description": "" } ], "state": "open", @@ -180401,9 +189009,9 @@ "assignee": null, "assignees": [], "milestone": null, - "comments": 3, + "comments": 5, "created_at": "2023-09-24T14:46:18Z", - "updated_at": "2023-09-24T18:28:39Z", + "updated_at": "2024-03-18T16:42:44Z", "closed_at": null, "author_association": "COLLABORATOR", "active_lock_reason": null, @@ -180425,10 +189033,10 @@ "state_reason": null }, "comment": { - "user": "jb55", - "created_at": "2023-09-24T18:28:39Z", - "updated_at": "2023-09-24T18:28:39Z", - "body": "On Sun, Sep 24, 2023 at 09:00:08AM -0700, alltheseas wrote:\n>The counter argument for this feature is I want to search for a profile I muted.\n>\n>This search capability could take place in the muted profiles list.\n>\n>Probably not a problem today.\n\nI thought about this as well, maybe we should only filter from @ mentions\n" + "user": "alltheseas", + "created_at": "2024-03-18T16:42:42Z", + "updated_at": "2024-03-18T16:42:42Z", + "body": "@ericholguin " } }, { @@ -196004,7 +204612,7 @@ "description": "Sats" } ], - "state": "open", + "state": "closed", "locked": false, "assignee": { "login": "danieldaquino", @@ -196055,7 +204663,7 @@ "id": 10536809, "node_id": "MI_kwDOHHF5A84AoMdp", "number": 14, - "title": "1.8 post Madeira", + "title": "1.8 post Madeira: UX/UI/Design focus", "description": "", "creator": { "login": "alltheseas", @@ -196077,18 +204685,18 @@ "type": "User", "site_admin": false }, - "open_issues": 11, - "closed_issues": 0, + "open_issues": 13, + "closed_issues": 1, "state": "open", "created_at": "2024-02-09T17:16:56Z", - "updated_at": "2024-03-17T12:05:31Z", + "updated_at": "2024-03-20T15:28:11Z", "due_on": null, "closed_at": null }, - "comments": 10, + "comments": 11, "created_at": "2023-09-02T22:14:27Z", - "updated_at": "2024-03-15T03:07:29Z", - "closed_at": null, + "updated_at": "2024-03-20T10:30:25Z", + "closed_at": "2024-03-20T10:30:24Z", "author_association": "COLLABORATOR", "active_lock_reason": null, "body": "## user story\r\n\r\nAs a Damus user who plays videos, I would like video player UI controls - pause, play, volume, full screen, play speed - so that I can better control videos to my preference.\r\n\r\n### acceptance criteria\r\n1. Can play & pause\r\n2. Can change volume visually w/ vertical bar\r\n3. Can change playback settings: 0.5, 0.75, 1.0, 1.25, 1.5, 2.0 playback speed\r\n4. Can enter and exit fullscreen\r\n\r\n<img width=\"501\" alt=\"Screenshot 2023-09-02 at 5 08 08 PM\" src=\"https://github.com/damus-io/damus/assets/64376233/84363cab-2f27-4432-a631-f78200f113c1\">\r\n\r\n<img width=\"45\" alt=\"Screenshot 2023-09-02 at 5 08 21 PM\" src=\"https://github.com/damus-io/damus/assets/64376233/8a3301f2-c6cd-411b-b1ac-1c436018e702\">\r\n\r\n<img width=\"253\" alt=\"Screenshot 2023-09-02 at 5 08 16 PM\" src=\"https://github.com/damus-io/damus/assets/64376233/18de1cfe-0c3f-4492-8bff-44e1bea003ce\">\r\n\r\n100k sats bounty by @dmnyc \r\n\r\nhttps://github.com/damus-io/damus/issues/1386#issuecomment-1703911184\r\n\r\n\r\n", @@ -196106,7 +204714,7 @@ }, "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/1530/timeline", "performed_via_github_app": null, - "state_reason": null + "state_reason": "completed" } }, { @@ -196161,7 +204769,7 @@ "description": "Sats" } ], - "state": "open", + "state": "closed", "locked": false, "assignee": { "login": "danieldaquino", @@ -196212,7 +204820,7 @@ "id": 10536809, "node_id": "MI_kwDOHHF5A84AoMdp", "number": 14, - "title": "1.8 post Madeira", + "title": "1.8 post Madeira: UX/UI/Design focus", "description": "", "creator": { "login": "alltheseas", @@ -196234,18 +204842,18 @@ "type": "User", "site_admin": false }, - "open_issues": 11, - "closed_issues": 0, + "open_issues": 13, + "closed_issues": 1, "state": "open", "created_at": "2024-02-09T17:16:56Z", - "updated_at": "2024-03-17T12:05:31Z", + "updated_at": "2024-03-20T15:28:11Z", "due_on": null, "closed_at": null }, - "comments": 10, + "comments": 11, "created_at": "2023-09-02T22:14:27Z", - "updated_at": "2024-03-15T03:07:29Z", - "closed_at": null, + "updated_at": "2024-03-20T10:30:25Z", + "closed_at": "2024-03-20T10:30:24Z", "author_association": "COLLABORATOR", "active_lock_reason": null, "body": "## user story\r\n\r\nAs a Damus user who plays videos, I would like video player UI controls - pause, play, volume, full screen, play speed - so that I can better control videos to my preference.\r\n\r\n### acceptance criteria\r\n1. Can play & pause\r\n2. Can change volume visually w/ vertical bar\r\n3. Can change playback settings: 0.5, 0.75, 1.0, 1.25, 1.5, 2.0 playback speed\r\n4. Can enter and exit fullscreen\r\n\r\n<img width=\"501\" alt=\"Screenshot 2023-09-02 at 5 08 08 PM\" src=\"https://github.com/damus-io/damus/assets/64376233/84363cab-2f27-4432-a631-f78200f113c1\">\r\n\r\n<img width=\"45\" alt=\"Screenshot 2023-09-02 at 5 08 21 PM\" src=\"https://github.com/damus-io/damus/assets/64376233/8a3301f2-c6cd-411b-b1ac-1c436018e702\">\r\n\r\n<img width=\"253\" alt=\"Screenshot 2023-09-02 at 5 08 16 PM\" src=\"https://github.com/damus-io/damus/assets/64376233/18de1cfe-0c3f-4492-8bff-44e1bea003ce\">\r\n\r\n100k sats bounty by @dmnyc \r\n\r\nhttps://github.com/damus-io/damus/issues/1386#issuecomment-1703911184\r\n\r\n\r\n", @@ -196263,7 +204871,7 @@ }, "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/1530/timeline", "performed_via_github_app": null, - "state_reason": null + "state_reason": "completed" }, "comment": { "user": "kroucis", @@ -196324,7 +204932,7 @@ "description": "Sats" } ], - "state": "open", + "state": "closed", "locked": false, "assignee": { "login": "danieldaquino", @@ -196375,7 +204983,7 @@ "id": 10536809, "node_id": "MI_kwDOHHF5A84AoMdp", "number": 14, - "title": "1.8 post Madeira", + "title": "1.8 post Madeira: UX/UI/Design focus", "description": "", "creator": { "login": "alltheseas", @@ -196397,18 +205005,18 @@ "type": "User", "site_admin": false }, - "open_issues": 11, - "closed_issues": 0, + "open_issues": 13, + "closed_issues": 1, "state": "open", "created_at": "2024-02-09T17:16:56Z", - "updated_at": "2024-03-17T12:05:31Z", + "updated_at": "2024-03-20T15:28:11Z", "due_on": null, "closed_at": null }, - "comments": 10, + "comments": 11, "created_at": "2023-09-02T22:14:27Z", - "updated_at": "2024-03-15T03:07:29Z", - "closed_at": null, + "updated_at": "2024-03-20T10:30:25Z", + "closed_at": "2024-03-20T10:30:24Z", "author_association": "COLLABORATOR", "active_lock_reason": null, "body": "## user story\r\n\r\nAs a Damus user who plays videos, I would like video player UI controls - pause, play, volume, full screen, play speed - so that I can better control videos to my preference.\r\n\r\n### acceptance criteria\r\n1. Can play & pause\r\n2. Can change volume visually w/ vertical bar\r\n3. Can change playback settings: 0.5, 0.75, 1.0, 1.25, 1.5, 2.0 playback speed\r\n4. Can enter and exit fullscreen\r\n\r\n<img width=\"501\" alt=\"Screenshot 2023-09-02 at 5 08 08 PM\" src=\"https://github.com/damus-io/damus/assets/64376233/84363cab-2f27-4432-a631-f78200f113c1\">\r\n\r\n<img width=\"45\" alt=\"Screenshot 2023-09-02 at 5 08 21 PM\" src=\"https://github.com/damus-io/damus/assets/64376233/8a3301f2-c6cd-411b-b1ac-1c436018e702\">\r\n\r\n<img width=\"253\" alt=\"Screenshot 2023-09-02 at 5 08 16 PM\" src=\"https://github.com/damus-io/damus/assets/64376233/18de1cfe-0c3f-4492-8bff-44e1bea003ce\">\r\n\r\n100k sats bounty by @dmnyc \r\n\r\nhttps://github.com/damus-io/damus/issues/1386#issuecomment-1703911184\r\n\r\n\r\n", @@ -196426,7 +205034,7 @@ }, "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/1530/timeline", "performed_via_github_app": null, - "state_reason": null + "state_reason": "completed" }, "comment": { "user": "alltheseas", @@ -196487,7 +205095,7 @@ "description": "Sats" } ], - "state": "open", + "state": "closed", "locked": false, "assignee": { "login": "danieldaquino", @@ -196538,7 +205146,7 @@ "id": 10536809, "node_id": "MI_kwDOHHF5A84AoMdp", "number": 14, - "title": "1.8 post Madeira", + "title": "1.8 post Madeira: UX/UI/Design focus", "description": "", "creator": { "login": "alltheseas", @@ -196560,18 +205168,18 @@ "type": "User", "site_admin": false }, - "open_issues": 11, - "closed_issues": 0, + "open_issues": 13, + "closed_issues": 1, "state": "open", "created_at": "2024-02-09T17:16:56Z", - "updated_at": "2024-03-17T12:05:31Z", + "updated_at": "2024-03-20T15:28:11Z", "due_on": null, "closed_at": null }, - "comments": 10, + "comments": 11, "created_at": "2023-09-02T22:14:27Z", - "updated_at": "2024-03-15T03:07:29Z", - "closed_at": null, + "updated_at": "2024-03-20T10:30:25Z", + "closed_at": "2024-03-20T10:30:24Z", "author_association": "COLLABORATOR", "active_lock_reason": null, "body": "## user story\r\n\r\nAs a Damus user who plays videos, I would like video player UI controls - pause, play, volume, full screen, play speed - so that I can better control videos to my preference.\r\n\r\n### acceptance criteria\r\n1. Can play & pause\r\n2. Can change volume visually w/ vertical bar\r\n3. Can change playback settings: 0.5, 0.75, 1.0, 1.25, 1.5, 2.0 playback speed\r\n4. Can enter and exit fullscreen\r\n\r\n<img width=\"501\" alt=\"Screenshot 2023-09-02 at 5 08 08 PM\" src=\"https://github.com/damus-io/damus/assets/64376233/84363cab-2f27-4432-a631-f78200f113c1\">\r\n\r\n<img width=\"45\" alt=\"Screenshot 2023-09-02 at 5 08 21 PM\" src=\"https://github.com/damus-io/damus/assets/64376233/8a3301f2-c6cd-411b-b1ac-1c436018e702\">\r\n\r\n<img width=\"253\" alt=\"Screenshot 2023-09-02 at 5 08 16 PM\" src=\"https://github.com/damus-io/damus/assets/64376233/18de1cfe-0c3f-4492-8bff-44e1bea003ce\">\r\n\r\n100k sats bounty by @dmnyc \r\n\r\nhttps://github.com/damus-io/damus/issues/1386#issuecomment-1703911184\r\n\r\n\r\n", @@ -196589,7 +205197,7 @@ }, "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/1530/timeline", "performed_via_github_app": null, - "state_reason": null + "state_reason": "completed" }, "comment": { "user": "kroucis", @@ -196650,7 +205258,7 @@ "description": "Sats" } ], - "state": "open", + "state": "closed", "locked": false, "assignee": { "login": "danieldaquino", @@ -196701,7 +205309,7 @@ "id": 10536809, "node_id": "MI_kwDOHHF5A84AoMdp", "number": 14, - "title": "1.8 post Madeira", + "title": "1.8 post Madeira: UX/UI/Design focus", "description": "", "creator": { "login": "alltheseas", @@ -196723,18 +205331,18 @@ "type": "User", "site_admin": false }, - "open_issues": 11, - "closed_issues": 0, + "open_issues": 13, + "closed_issues": 1, "state": "open", "created_at": "2024-02-09T17:16:56Z", - "updated_at": "2024-03-17T12:05:31Z", + "updated_at": "2024-03-20T15:28:11Z", "due_on": null, "closed_at": null }, - "comments": 10, + "comments": 11, "created_at": "2023-09-02T22:14:27Z", - "updated_at": "2024-03-15T03:07:29Z", - "closed_at": null, + "updated_at": "2024-03-20T10:30:25Z", + "closed_at": "2024-03-20T10:30:24Z", "author_association": "COLLABORATOR", "active_lock_reason": null, "body": "## user story\r\n\r\nAs a Damus user who plays videos, I would like video player UI controls - pause, play, volume, full screen, play speed - so that I can better control videos to my preference.\r\n\r\n### acceptance criteria\r\n1. Can play & pause\r\n2. Can change volume visually w/ vertical bar\r\n3. Can change playback settings: 0.5, 0.75, 1.0, 1.25, 1.5, 2.0 playback speed\r\n4. Can enter and exit fullscreen\r\n\r\n<img width=\"501\" alt=\"Screenshot 2023-09-02 at 5 08 08 PM\" src=\"https://github.com/damus-io/damus/assets/64376233/84363cab-2f27-4432-a631-f78200f113c1\">\r\n\r\n<img width=\"45\" alt=\"Screenshot 2023-09-02 at 5 08 21 PM\" src=\"https://github.com/damus-io/damus/assets/64376233/8a3301f2-c6cd-411b-b1ac-1c436018e702\">\r\n\r\n<img width=\"253\" alt=\"Screenshot 2023-09-02 at 5 08 16 PM\" src=\"https://github.com/damus-io/damus/assets/64376233/18de1cfe-0c3f-4492-8bff-44e1bea003ce\">\r\n\r\n100k sats bounty by @dmnyc \r\n\r\nhttps://github.com/damus-io/damus/issues/1386#issuecomment-1703911184\r\n\r\n\r\n", @@ -196752,7 +205360,7 @@ }, "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/1530/timeline", "performed_via_github_app": null, - "state_reason": null + "state_reason": "completed" }, "comment": { "user": "alltheseas", @@ -196813,7 +205421,7 @@ "description": "Sats" } ], - "state": "open", + "state": "closed", "locked": false, "assignee": { "login": "danieldaquino", @@ -196864,7 +205472,7 @@ "id": 10536809, "node_id": "MI_kwDOHHF5A84AoMdp", "number": 14, - "title": "1.8 post Madeira", + "title": "1.8 post Madeira: UX/UI/Design focus", "description": "", "creator": { "login": "alltheseas", @@ -196886,18 +205494,18 @@ "type": "User", "site_admin": false }, - "open_issues": 11, - "closed_issues": 0, + "open_issues": 13, + "closed_issues": 1, "state": "open", "created_at": "2024-02-09T17:16:56Z", - "updated_at": "2024-03-17T12:05:31Z", + "updated_at": "2024-03-20T15:28:11Z", "due_on": null, "closed_at": null }, - "comments": 10, + "comments": 11, "created_at": "2023-09-02T22:14:27Z", - "updated_at": "2024-03-15T03:07:29Z", - "closed_at": null, + "updated_at": "2024-03-20T10:30:25Z", + "closed_at": "2024-03-20T10:30:24Z", "author_association": "COLLABORATOR", "active_lock_reason": null, "body": "## user story\r\n\r\nAs a Damus user who plays videos, I would like video player UI controls - pause, play, volume, full screen, play speed - so that I can better control videos to my preference.\r\n\r\n### acceptance criteria\r\n1. Can play & pause\r\n2. Can change volume visually w/ vertical bar\r\n3. Can change playback settings: 0.5, 0.75, 1.0, 1.25, 1.5, 2.0 playback speed\r\n4. Can enter and exit fullscreen\r\n\r\n<img width=\"501\" alt=\"Screenshot 2023-09-02 at 5 08 08 PM\" src=\"https://github.com/damus-io/damus/assets/64376233/84363cab-2f27-4432-a631-f78200f113c1\">\r\n\r\n<img width=\"45\" alt=\"Screenshot 2023-09-02 at 5 08 21 PM\" src=\"https://github.com/damus-io/damus/assets/64376233/8a3301f2-c6cd-411b-b1ac-1c436018e702\">\r\n\r\n<img width=\"253\" alt=\"Screenshot 2023-09-02 at 5 08 16 PM\" src=\"https://github.com/damus-io/damus/assets/64376233/18de1cfe-0c3f-4492-8bff-44e1bea003ce\">\r\n\r\n100k sats bounty by @dmnyc \r\n\r\nhttps://github.com/damus-io/damus/issues/1386#issuecomment-1703911184\r\n\r\n\r\n", @@ -196915,7 +205523,7 @@ }, "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/1530/timeline", "performed_via_github_app": null, - "state_reason": null + "state_reason": "completed" }, "comment": { "user": "alltheseas", @@ -196976,7 +205584,7 @@ "description": "Sats" } ], - "state": "open", + "state": "closed", "locked": false, "assignee": { "login": "danieldaquino", @@ -197027,7 +205635,7 @@ "id": 10536809, "node_id": "MI_kwDOHHF5A84AoMdp", "number": 14, - "title": "1.8 post Madeira", + "title": "1.8 post Madeira: UX/UI/Design focus", "description": "", "creator": { "login": "alltheseas", @@ -197049,18 +205657,18 @@ "type": "User", "site_admin": false }, - "open_issues": 11, - "closed_issues": 0, + "open_issues": 13, + "closed_issues": 1, "state": "open", "created_at": "2024-02-09T17:16:56Z", - "updated_at": "2024-03-17T12:05:31Z", + "updated_at": "2024-03-20T15:28:11Z", "due_on": null, "closed_at": null }, - "comments": 10, + "comments": 11, "created_at": "2023-09-02T22:14:27Z", - "updated_at": "2024-03-15T03:07:29Z", - "closed_at": null, + "updated_at": "2024-03-20T10:30:25Z", + "closed_at": "2024-03-20T10:30:24Z", "author_association": "COLLABORATOR", "active_lock_reason": null, "body": "## user story\r\n\r\nAs a Damus user who plays videos, I would like video player UI controls - pause, play, volume, full screen, play speed - so that I can better control videos to my preference.\r\n\r\n### acceptance criteria\r\n1. Can play & pause\r\n2. Can change volume visually w/ vertical bar\r\n3. Can change playback settings: 0.5, 0.75, 1.0, 1.25, 1.5, 2.0 playback speed\r\n4. Can enter and exit fullscreen\r\n\r\n<img width=\"501\" alt=\"Screenshot 2023-09-02 at 5 08 08 PM\" src=\"https://github.com/damus-io/damus/assets/64376233/84363cab-2f27-4432-a631-f78200f113c1\">\r\n\r\n<img width=\"45\" alt=\"Screenshot 2023-09-02 at 5 08 21 PM\" src=\"https://github.com/damus-io/damus/assets/64376233/8a3301f2-c6cd-411b-b1ac-1c436018e702\">\r\n\r\n<img width=\"253\" alt=\"Screenshot 2023-09-02 at 5 08 16 PM\" src=\"https://github.com/damus-io/damus/assets/64376233/18de1cfe-0c3f-4492-8bff-44e1bea003ce\">\r\n\r\n100k sats bounty by @dmnyc \r\n\r\nhttps://github.com/damus-io/damus/issues/1386#issuecomment-1703911184\r\n\r\n\r\n", @@ -197078,7 +205686,7 @@ }, "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/1530/timeline", "performed_via_github_app": null, - "state_reason": null + "state_reason": "completed" }, "comment": { "user": "danieldaquino", @@ -197139,7 +205747,7 @@ "description": "Sats" } ], - "state": "open", + "state": "closed", "locked": false, "assignee": { "login": "danieldaquino", @@ -197190,7 +205798,7 @@ "id": 10536809, "node_id": "MI_kwDOHHF5A84AoMdp", "number": 14, - "title": "1.8 post Madeira", + "title": "1.8 post Madeira: UX/UI/Design focus", "description": "", "creator": { "login": "alltheseas", @@ -197212,18 +205820,18 @@ "type": "User", "site_admin": false }, - "open_issues": 11, - "closed_issues": 0, + "open_issues": 13, + "closed_issues": 1, "state": "open", "created_at": "2024-02-09T17:16:56Z", - "updated_at": "2024-03-17T12:05:31Z", + "updated_at": "2024-03-20T15:28:11Z", "due_on": null, "closed_at": null }, - "comments": 10, + "comments": 11, "created_at": "2023-09-02T22:14:27Z", - "updated_at": "2024-03-15T03:07:29Z", - "closed_at": null, + "updated_at": "2024-03-20T10:30:25Z", + "closed_at": "2024-03-20T10:30:24Z", "author_association": "COLLABORATOR", "active_lock_reason": null, "body": "## user story\r\n\r\nAs a Damus user who plays videos, I would like video player UI controls - pause, play, volume, full screen, play speed - so that I can better control videos to my preference.\r\n\r\n### acceptance criteria\r\n1. Can play & pause\r\n2. Can change volume visually w/ vertical bar\r\n3. Can change playback settings: 0.5, 0.75, 1.0, 1.25, 1.5, 2.0 playback speed\r\n4. Can enter and exit fullscreen\r\n\r\n<img width=\"501\" alt=\"Screenshot 2023-09-02 at 5 08 08 PM\" src=\"https://github.com/damus-io/damus/assets/64376233/84363cab-2f27-4432-a631-f78200f113c1\">\r\n\r\n<img width=\"45\" alt=\"Screenshot 2023-09-02 at 5 08 21 PM\" src=\"https://github.com/damus-io/damus/assets/64376233/8a3301f2-c6cd-411b-b1ac-1c436018e702\">\r\n\r\n<img width=\"253\" alt=\"Screenshot 2023-09-02 at 5 08 16 PM\" src=\"https://github.com/damus-io/damus/assets/64376233/18de1cfe-0c3f-4492-8bff-44e1bea003ce\">\r\n\r\n100k sats bounty by @dmnyc \r\n\r\nhttps://github.com/damus-io/damus/issues/1386#issuecomment-1703911184\r\n\r\n\r\n", @@ -197241,7 +205849,7 @@ }, "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/1530/timeline", "performed_via_github_app": null, - "state_reason": null + "state_reason": "completed" }, "comment": { "user": "danieldaquino", @@ -197302,7 +205910,7 @@ "description": "Sats" } ], - "state": "open", + "state": "closed", "locked": false, "assignee": { "login": "danieldaquino", @@ -197353,7 +205961,7 @@ "id": 10536809, "node_id": "MI_kwDOHHF5A84AoMdp", "number": 14, - "title": "1.8 post Madeira", + "title": "1.8 post Madeira: UX/UI/Design focus", "description": "", "creator": { "login": "alltheseas", @@ -197375,18 +205983,18 @@ "type": "User", "site_admin": false }, - "open_issues": 11, - "closed_issues": 0, + "open_issues": 13, + "closed_issues": 1, "state": "open", "created_at": "2024-02-09T17:16:56Z", - "updated_at": "2024-03-17T12:05:31Z", + "updated_at": "2024-03-20T15:28:11Z", "due_on": null, "closed_at": null }, - "comments": 10, + "comments": 11, "created_at": "2023-09-02T22:14:27Z", - "updated_at": "2024-03-15T03:07:29Z", - "closed_at": null, + "updated_at": "2024-03-20T10:30:25Z", + "closed_at": "2024-03-20T10:30:24Z", "author_association": "COLLABORATOR", "active_lock_reason": null, "body": "## user story\r\n\r\nAs a Damus user who plays videos, I would like video player UI controls - pause, play, volume, full screen, play speed - so that I can better control videos to my preference.\r\n\r\n### acceptance criteria\r\n1. Can play & pause\r\n2. Can change volume visually w/ vertical bar\r\n3. Can change playback settings: 0.5, 0.75, 1.0, 1.25, 1.5, 2.0 playback speed\r\n4. Can enter and exit fullscreen\r\n\r\n<img width=\"501\" alt=\"Screenshot 2023-09-02 at 5 08 08 PM\" src=\"https://github.com/damus-io/damus/assets/64376233/84363cab-2f27-4432-a631-f78200f113c1\">\r\n\r\n<img width=\"45\" alt=\"Screenshot 2023-09-02 at 5 08 21 PM\" src=\"https://github.com/damus-io/damus/assets/64376233/8a3301f2-c6cd-411b-b1ac-1c436018e702\">\r\n\r\n<img width=\"253\" alt=\"Screenshot 2023-09-02 at 5 08 16 PM\" src=\"https://github.com/damus-io/damus/assets/64376233/18de1cfe-0c3f-4492-8bff-44e1bea003ce\">\r\n\r\n100k sats bounty by @dmnyc \r\n\r\nhttps://github.com/damus-io/damus/issues/1386#issuecomment-1703911184\r\n\r\n\r\n", @@ -197404,7 +206012,7 @@ }, "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/1530/timeline", "performed_via_github_app": null, - "state_reason": null + "state_reason": "completed" }, "comment": { "user": "jb55", @@ -197465,7 +206073,7 @@ "description": "Sats" } ], - "state": "open", + "state": "closed", "locked": false, "assignee": { "login": "danieldaquino", @@ -197516,7 +206124,7 @@ "id": 10536809, "node_id": "MI_kwDOHHF5A84AoMdp", "number": 14, - "title": "1.8 post Madeira", + "title": "1.8 post Madeira: UX/UI/Design focus", "description": "", "creator": { "login": "alltheseas", @@ -197538,18 +206146,18 @@ "type": "User", "site_admin": false }, - "open_issues": 11, - "closed_issues": 0, + "open_issues": 13, + "closed_issues": 1, "state": "open", "created_at": "2024-02-09T17:16:56Z", - "updated_at": "2024-03-17T12:05:31Z", + "updated_at": "2024-03-20T15:28:11Z", "due_on": null, "closed_at": null }, - "comments": 10, + "comments": 11, "created_at": "2023-09-02T22:14:27Z", - "updated_at": "2024-03-15T03:07:29Z", - "closed_at": null, + "updated_at": "2024-03-20T10:30:25Z", + "closed_at": "2024-03-20T10:30:24Z", "author_association": "COLLABORATOR", "active_lock_reason": null, "body": "## user story\r\n\r\nAs a Damus user who plays videos, I would like video player UI controls - pause, play, volume, full screen, play speed - so that I can better control videos to my preference.\r\n\r\n### acceptance criteria\r\n1. Can play & pause\r\n2. Can change volume visually w/ vertical bar\r\n3. Can change playback settings: 0.5, 0.75, 1.0, 1.25, 1.5, 2.0 playback speed\r\n4. Can enter and exit fullscreen\r\n\r\n<img width=\"501\" alt=\"Screenshot 2023-09-02 at 5 08 08 PM\" src=\"https://github.com/damus-io/damus/assets/64376233/84363cab-2f27-4432-a631-f78200f113c1\">\r\n\r\n<img width=\"45\" alt=\"Screenshot 2023-09-02 at 5 08 21 PM\" src=\"https://github.com/damus-io/damus/assets/64376233/8a3301f2-c6cd-411b-b1ac-1c436018e702\">\r\n\r\n<img width=\"253\" alt=\"Screenshot 2023-09-02 at 5 08 16 PM\" src=\"https://github.com/damus-io/damus/assets/64376233/18de1cfe-0c3f-4492-8bff-44e1bea003ce\">\r\n\r\n100k sats bounty by @dmnyc \r\n\r\nhttps://github.com/damus-io/damus/issues/1386#issuecomment-1703911184\r\n\r\n\r\n", @@ -197567,7 +206175,7 @@ }, "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/1530/timeline", "performed_via_github_app": null, - "state_reason": null + "state_reason": "completed" }, "comment": { "user": "alltheseas", @@ -197628,7 +206236,7 @@ "description": "Sats" } ], - "state": "open", + "state": "closed", "locked": false, "assignee": { "login": "danieldaquino", @@ -197679,7 +206287,7 @@ "id": 10536809, "node_id": "MI_kwDOHHF5A84AoMdp", "number": 14, - "title": "1.8 post Madeira", + "title": "1.8 post Madeira: UX/UI/Design focus", "description": "", "creator": { "login": "alltheseas", @@ -197701,18 +206309,18 @@ "type": "User", "site_admin": false }, - "open_issues": 11, - "closed_issues": 0, + "open_issues": 13, + "closed_issues": 1, "state": "open", "created_at": "2024-02-09T17:16:56Z", - "updated_at": "2024-03-17T12:05:31Z", + "updated_at": "2024-03-20T15:28:11Z", "due_on": null, "closed_at": null }, - "comments": 10, + "comments": 11, "created_at": "2023-09-02T22:14:27Z", - "updated_at": "2024-03-15T03:07:29Z", - "closed_at": null, + "updated_at": "2024-03-20T10:30:25Z", + "closed_at": "2024-03-20T10:30:24Z", "author_association": "COLLABORATOR", "active_lock_reason": null, "body": "## user story\r\n\r\nAs a Damus user who plays videos, I would like video player UI controls - pause, play, volume, full screen, play speed - so that I can better control videos to my preference.\r\n\r\n### acceptance criteria\r\n1. Can play & pause\r\n2. Can change volume visually w/ vertical bar\r\n3. Can change playback settings: 0.5, 0.75, 1.0, 1.25, 1.5, 2.0 playback speed\r\n4. Can enter and exit fullscreen\r\n\r\n<img width=\"501\" alt=\"Screenshot 2023-09-02 at 5 08 08 PM\" src=\"https://github.com/damus-io/damus/assets/64376233/84363cab-2f27-4432-a631-f78200f113c1\">\r\n\r\n<img width=\"45\" alt=\"Screenshot 2023-09-02 at 5 08 21 PM\" src=\"https://github.com/damus-io/damus/assets/64376233/8a3301f2-c6cd-411b-b1ac-1c436018e702\">\r\n\r\n<img width=\"253\" alt=\"Screenshot 2023-09-02 at 5 08 16 PM\" src=\"https://github.com/damus-io/damus/assets/64376233/18de1cfe-0c3f-4492-8bff-44e1bea003ce\">\r\n\r\n100k sats bounty by @dmnyc \r\n\r\nhttps://github.com/damus-io/damus/issues/1386#issuecomment-1703911184\r\n\r\n\r\n", @@ -197730,7 +206338,7 @@ }, "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/1530/timeline", "performed_via_github_app": null, - "state_reason": null + "state_reason": "completed" }, "comment": { "user": "dmnyc", @@ -197741,6 +206349,169 @@ }, { "issue": { + "url": "https://api.github.com/repos/damus-io/damus/issues/1530", + "repository_url": "https://api.github.com/repos/damus-io/damus", + "labels_url": "https://api.github.com/repos/damus-io/damus/issues/1530/labels{/name}", + "comments_url": "https://api.github.com/repos/damus-io/damus/issues/1530/comments", + "events_url": "https://api.github.com/repos/damus-io/damus/issues/1530/events", + "html_url": "https://github.com/damus-io/damus/issues/1530", + "id": 1878861865, + "node_id": "I_kwDOHHF5A85v_Sgp", + "number": 1530, + "title": "Add video UI controls [100k sats]", + "user": { + "login": "alltheseas", + "id": 64376233, + "node_id": "MDQ6VXNlcjY0Mzc2MjMz", + "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/alltheseas", + "html_url": "https://github.com/alltheseas", + "followers_url": "https://api.github.com/users/alltheseas/followers", + "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", + "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", + "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", + "organizations_url": "https://api.github.com/users/alltheseas/orgs", + "repos_url": "https://api.github.com/users/alltheseas/repos", + "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", + "received_events_url": "https://api.github.com/users/alltheseas/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "id": 3994718399, + "node_id": "LA_kwDOHHF5A87uGpC_", + "url": "https://api.github.com/repos/damus-io/damus/labels/enhancement", + "name": "enhancement", + "color": "a2eeef", + "default": true, + "description": "Improvement" + }, + { + "id": 5667341106, + "node_id": "LA_kwDOHHF5A88AAAABUczDMg", + "url": "https://api.github.com/repos/damus-io/damus/labels/bounty", + "name": "bounty", + "color": "D93F0B", + "default": false, + "description": "Sats" + } + ], + "state": "closed", + "locked": false, + "assignee": { + "login": "danieldaquino", + "id": 24692108, + "node_id": "MDQ6VXNlcjI0NjkyMTA4", + "avatar_url": "https://avatars.githubusercontent.com/u/24692108?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/danieldaquino", + "html_url": "https://github.com/danieldaquino", + "followers_url": "https://api.github.com/users/danieldaquino/followers", + "following_url": "https://api.github.com/users/danieldaquino/following{/other_user}", + "gists_url": "https://api.github.com/users/danieldaquino/gists{/gist_id}", + "starred_url": "https://api.github.com/users/danieldaquino/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/danieldaquino/subscriptions", + "organizations_url": "https://api.github.com/users/danieldaquino/orgs", + "repos_url": "https://api.github.com/users/danieldaquino/repos", + "events_url": "https://api.github.com/users/danieldaquino/events{/privacy}", + "received_events_url": "https://api.github.com/users/danieldaquino/received_events", + "type": "User", + "site_admin": false + }, + "assignees": [ + { + "login": "danieldaquino", + "id": 24692108, + "node_id": "MDQ6VXNlcjI0NjkyMTA4", + "avatar_url": "https://avatars.githubusercontent.com/u/24692108?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/danieldaquino", + "html_url": "https://github.com/danieldaquino", + "followers_url": "https://api.github.com/users/danieldaquino/followers", + "following_url": "https://api.github.com/users/danieldaquino/following{/other_user}", + "gists_url": "https://api.github.com/users/danieldaquino/gists{/gist_id}", + "starred_url": "https://api.github.com/users/danieldaquino/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/danieldaquino/subscriptions", + "organizations_url": "https://api.github.com/users/danieldaquino/orgs", + "repos_url": "https://api.github.com/users/danieldaquino/repos", + "events_url": "https://api.github.com/users/danieldaquino/events{/privacy}", + "received_events_url": "https://api.github.com/users/danieldaquino/received_events", + "type": "User", + "site_admin": false + } + ], + "milestone": { + "url": "https://api.github.com/repos/damus-io/damus/milestones/14", + "html_url": "https://github.com/damus-io/damus/milestone/14", + "labels_url": "https://api.github.com/repos/damus-io/damus/milestones/14/labels", + "id": 10536809, + "node_id": "MI_kwDOHHF5A84AoMdp", + "number": 14, + "title": "1.8 post Madeira: UX/UI/Design focus", + "description": "", + "creator": { + "login": "alltheseas", + "id": 64376233, + "node_id": "MDQ6VXNlcjY0Mzc2MjMz", + "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/alltheseas", + "html_url": "https://github.com/alltheseas", + "followers_url": "https://api.github.com/users/alltheseas/followers", + "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", + "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", + "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", + "organizations_url": "https://api.github.com/users/alltheseas/orgs", + "repos_url": "https://api.github.com/users/alltheseas/repos", + "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", + "received_events_url": "https://api.github.com/users/alltheseas/received_events", + "type": "User", + "site_admin": false + }, + "open_issues": 13, + "closed_issues": 1, + "state": "open", + "created_at": "2024-02-09T17:16:56Z", + "updated_at": "2024-03-20T15:28:11Z", + "due_on": null, + "closed_at": null + }, + "comments": 11, + "created_at": "2023-09-02T22:14:27Z", + "updated_at": "2024-03-20T10:30:25Z", + "closed_at": "2024-03-20T10:30:24Z", + "author_association": "COLLABORATOR", + "active_lock_reason": null, + "body": "## user story\r\n\r\nAs a Damus user who plays videos, I would like video player UI controls - pause, play, volume, full screen, play speed - so that I can better control videos to my preference.\r\n\r\n### acceptance criteria\r\n1. Can play & pause\r\n2. Can change volume visually w/ vertical bar\r\n3. Can change playback settings: 0.5, 0.75, 1.0, 1.25, 1.5, 2.0 playback speed\r\n4. Can enter and exit fullscreen\r\n\r\n<img width=\"501\" alt=\"Screenshot 2023-09-02 at 5 08 08 PM\" src=\"https://github.com/damus-io/damus/assets/64376233/84363cab-2f27-4432-a631-f78200f113c1\">\r\n\r\n<img width=\"45\" alt=\"Screenshot 2023-09-02 at 5 08 21 PM\" src=\"https://github.com/damus-io/damus/assets/64376233/8a3301f2-c6cd-411b-b1ac-1c436018e702\">\r\n\r\n<img width=\"253\" alt=\"Screenshot 2023-09-02 at 5 08 16 PM\" src=\"https://github.com/damus-io/damus/assets/64376233/18de1cfe-0c3f-4492-8bff-44e1bea003ce\">\r\n\r\n100k sats bounty by @dmnyc \r\n\r\nhttps://github.com/damus-io/damus/issues/1386#issuecomment-1703911184\r\n\r\n\r\n", + "reactions": { + "url": "https://api.github.com/repos/damus-io/damus/issues/1530/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/1530/timeline", + "performed_via_github_app": null, + "state_reason": "completed" + }, + "comment": { + "user": "danieldaquino", + "created_at": "2024-03-18T22:33:05Z", + "updated_at": "2024-03-18T22:33:05Z", + "body": "@jb55, I fixed several minor issues I was seeing with the changes, did more thorough testing, and sent you the official (non-draft) patch series (https://groups.google.com/a/damus.io/g/patches/c/H0IYJJSgzX4)\r\n\r\nPlease let me know if you have any suggestions, concerns, or questions!\r\n\r\n\r\nP.S. If the bounty is still up and these changes fulfill all criteria for the bounty, I believe it should be paid to Damus itself and not directly to me _(Since I made these changes during my usual work hours)_.\r\n\r\nThanks!" + } + }, + { + "issue": { "url": "https://api.github.com/repos/damus-io/damus/issues/1529", "repository_url": "https://api.github.com/repos/damus-io/damus", "labels_url": "https://api.github.com/repos/damus-io/damus/issues/1529/labels{/name}", @@ -237930,11 +246701,11 @@ "milestone": null, "comments": 0, "created_at": "2023-08-03T23:56:34Z", - "updated_at": "2024-01-27T02:42:08Z", + "updated_at": "2024-03-21T02:23:04Z", "closed_at": null, "author_association": "COLLABORATOR", "active_lock_reason": null, - "body": "## Remove Duplicates\r\n\r\nMrsNancyJ\r\n\r\n## Add\r\n\r\n## Community Leaders & Meetups\r\n\r\nYegor 🇺🇸 Chicago\n\nnpub1z4m7gkva6yxgvdyclc7zp0vz4ta0s2d9jh8g83w03tp5vdf3kzdsxana6p\n\nKweks 🇹🇿 Tanzania npub1fnn2h0tgm2mwnl0kar5ez25wztum2w0q0rrrf326n0ljn999znwsqf4xnx\r\n\r\nNostrPhx Phoenix Arizona npub1jwev660jrdrfeaw2u9sssv3v4jgsxqs32qmd5yhpgzlesg5j0gase4qha6\r\n\r\nMadeira 🇵🇹 A Place to Be npub1hwmj92v64rm0rj7rtartccr7hldpnumrmq2zd285f8dy6u0jknxs2vsum6\r\n\r\n## Media\r\nnpub1h882a66p0zj5n69s2u8nfzev4f97lzfnlcej84z78p6uqxge5tpqlupz20 Julian Figueroa\n\nnpub1l8jja0522xuslk4vcu67sgkkac6cmyw66sr8druq4ajxkly967tsgw3gsu Darkreading\n\nnpub15dnln6cukw3yrflnv3hnrntdt9amh0uw466u6tns05ymqp3nal4qzz3lfc Yael\r\n\r\n## Privacy, freedom, and digital literacy\r\n\r\nnpub14slk4lshtylkrqg9z0dvng09gn58h88frvnax7uga3v0h25szj4qzjt5d6 Simplifiedprivacy.com\r\n\r\n## Corporate news\r\n\r\nnpub1va6zy0gmr8wp2328xw4h2kdvmcwjrl0nl6djv5kyv0rl4kcjcppqvzckg7 techcrunch\r\n\r\n## news\r\n\r\nnpub1zywesxcqdhweaurfwgnp5n0qkqa9ueypv4c4tkqcvzp7nvjghgtskhpp3a Mac Rumors\n\n## humor\n\nhttps://damus.io/npub1plk0vhd2yma08angaq2rxfdycxv6qs9kx30dgzsgv9xhmkzmrq3sllffh4 Puns\r\n\r\n## Art & Music\n\nnpub1f9lz4ktqnkgq77e04vnmy7ay0zm6fftcsz04y2y06379usc60clss7pxza Lydia\n\nnpub1zrhw0kwfqlr4tcu7hh09dl0gpc8pd9n5s39wprallesdajvp7dwqj98ga5 Ikienea\r\n\r\nnpub1wss5lnnh2tjlp8yfswq4uuszra9pu7m6whg2w873g75sp5w30kgsnx84em Lisa7x8\r\n\r\nnpub1ge4vyzyx85qea2we07nzdx8r5acr5kjj8pkdha2plk7u0h8uv03s9zmvhd aeselics\r\n\r\nnpub13700uhjmtvfl49n4drcr0qg7rk863m8rzqdgceddpfwh2ejlumdqn6375k Minnaar\r\n\r\nnpub1ewfds8776uszff507rnf820xkdtg03tqgz58sr7h8xkxy28elhjs3hydvy Millie May\r\n\r\nnpub1tvhc92jn42rm42qcunz6r276laapkld95t52kr6e3809hv2u3dhqag5vlw Hakusui (Calligraphy Japan)\r\n\r\nnpub17297yqexcemektutlf66sewslf908p8fcmyem34gq0j597wjpp0qlel3am Priscilla Hernandez\r\n\r\nnpub1e4qg56wvd3ehegd8dm7rlgj8cm998myq0ah8e9t5zeqkg7t7s93q750p76 Awayuki\r\n\r\nnpub1e3mx09yq53gyh9368qyuhfstgk8t7p5vvfcnvgwa4994y7rqg37s20qvr5 Austin \n\nnpub19r9qrxmckj2vyk5a5ttyt966s5qu06vmzyczuh97wj8wtyluktxqymeukr Joe Martin\r\n\r\n## Independent Journalists\r\n\r\nWhitney Webb npub1g0587hzzckcncxfm78n0996qe2s58nspy29wf02tqcj5sdzcpj4q6j40hv\r\n\r\nEfrat Fenigson note1yylclwcqhw25k3ux0c5vn0mx0j9ysad9d3gvzvd98efd038pn34qgakztk\n\n## tech news\n\nnpub1gdfl5z7tmwh2yc0q8xcxwwntjn5aylrf5cfe36der2v74qwehjhq9v67c6 hacker news frontpage\r\n\r\n## Permaculture, farming\r\n\r\nLightning goats npub1v60thnx0gz0wq3n6xdnq46y069l9x70xgmjp6lprdl6fv0eux6mqgjj4rp\n\nnpub154xls56nw254e6mq6u6udzrg02g4j7av8cn3g9h4g2nv4c96aqhqyz6eqz Danish Cider\r\n\r\nGardening\r\n\r\nnpub15kwxznyp606ewduu5h4zhfw7d0kxgesyxtmnagm23m2pkls7yjes58adwj All for Gardening\n\n## Travel \n\nnpub105em547c5m5gdxslr4fp2f29jav54sxml6cpk6gda7xyvxuzmv6s84a642 TravelTelly\n\n## Nature\n\nnpub1zwulrffp23wle3tl25dt0jr2q376k0k8vhe9xzjl5jnxnag5tc2sr2hjds \n\nnpub1sur5gd3mrfvcd4nh8dtsdh0ztrqrnaknff0lcfcfz5pn56n8eqkqv9sm0l Animals\r\n\r\n## Parenting\r\n\r\nQW\r\n\r\nnpub1tvqc82mv8cezhax5r34n4muc2c4pgjz8kaye2smj032nngg52clq0rkrq4\n\nSatsie\n\nnpub1fhmmgwe6fk6tn83ahttt6ruyyfnjdm7k8tn7qflert9ajx6dhfyqf3nzcu\r\n\r\n\r\n## Sports\r\n\r\nSpearfishing and freediving\r\n\r\nCharlie\r\nnpub1aa7npyl475d55xkd5rrzsdllkc3s04zcu0rf8jlmca6tn9g7m86qvaren3\r\n\r\nBasketball\r\n\r\nBig Sean Harris\r\nnpub135x4y8w7jty24ggvxfm0c4mqaknk2su0fzzmwrgfdfylj6tz3l9qlv5xpr\r\n\r\n\r\nFitness\r\n\r\nXiaolin npub1cs2pfmk9uc2qk7pc4mn8w5hftpur8572ksmegg43gf4qq7ppzjtsylxsfg\r\n\r\nGolf\r\n\r\nJor npub103m96sra82w4agghew9cdxtzs4s8sl7qsjsvw6h653yml0gjrkzqefd3h5\r\n\r\nKNG golf\r\n\r\nnpub19rfmr3xp4c0k7etv8tpdn0pwgu93yen79dgme2akv0j78zgr3sxqmmceus\r\n\r\nMMA\r\n\r\nCris Cyborg\r\nnpub1wv79gfl4tn46qxs0vcr6kr73rqethvna0kchk4cw06mmdzsgrkdqmkxye0\r\n\r\n## Books\r\n\r\nEshara \r\nnpub1jcjxjg92200kdp8guw8sysg8gr0ez29hahrfdy49h30hgnkpa4kqfvmtwx\r\n\r\n## Faith\r\n\r\nHodlbod npub1jlrs53pkdfjnts29kveljul2sm0actt6n8dxrrzqcersttvcuv3qdjynqn\r\n\r\nJordan Bush\r\nnpub14f0xen78ed7rgvw39v82fwp7tv65yasz2gsgpf4gvxy4q5nlsydsk37k3l\r\n\r\n## Proof of work\r\n\r\nWeldstr\r\nThe_beave \r\n\r\nnpub1q6ya7kz84rfnw6yjmg5kyttuplwpauv43a9ug3cajztx4g0v48eqhtt3sh\r\n\r\nFoodstr\r\n\r\nnpub1ejvhdkt8ppefezgz0sgnwdqrn8l4z8muws2k8dz2tv0a57ac2z9st56q8x Awayslice\n\nnpub18fst23wsr9u7fu5028taaxug06dhrxl8rf5ekpswpryc3rvkl46s9ytrkg goodmeals\r\n\r\nRocks\r\n\r\nStoney Bitson\r\n\r\nnpub142eclup59nq4pz5gvm5qh9fxt9m393u34hp25w3zlkh76duz0u9qj8kjlz", + "body": "## Remove Duplicates\r\n\r\nMrsNancyJ\r\n\r\n## Add\r\n\r\n## Community Leaders & Meetups\r\n\r\nYegor 🇺🇸 Chicago\n\nnpub1z4m7gkva6yxgvdyclc7zp0vz4ta0s2d9jh8g83w03tp5vdf3kzdsxana6p\n\nKweks 🇹🇿 Tanzania npub1fnn2h0tgm2mwnl0kar5ez25wztum2w0q0rrrf326n0ljn999znwsqf4xnx\r\n\r\nNostrPhx Phoenix Arizona npub1jwev660jrdrfeaw2u9sssv3v4jgsxqs32qmd5yhpgzlesg5j0gase4qha6\r\n\r\nMadeira 🇵🇹 A Place to Be npub1hwmj92v64rm0rj7rtartccr7hldpnumrmq2zd285f8dy6u0jknxs2vsum6\r\n\r\n## Media\r\nnpub1h882a66p0zj5n69s2u8nfzev4f97lzfnlcej84z78p6uqxge5tpqlupz20 Julian Figueroa\n\nnpub1l8jja0522xuslk4vcu67sgkkac6cmyw66sr8druq4ajxkly967tsgw3gsu Darkreading\n\nnpub15dnln6cukw3yrflnv3hnrntdt9amh0uw466u6tns05ymqp3nal4qzz3lfc Yael\r\n\r\n## Privacy, freedom, and digital literacy\r\n\r\nnpub14slk4lshtylkrqg9z0dvng09gn58h88frvnax7uga3v0h25szj4qzjt5d6 Simplifiedprivacy.com\r\n\r\n## Corporate news\r\n\r\nnpub1va6zy0gmr8wp2328xw4h2kdvmcwjrl0nl6djv5kyv0rl4kcjcppqvzckg7 techcrunch\r\n\r\n## news\r\n\r\nnpub1zywesxcqdhweaurfwgnp5n0qkqa9ueypv4c4tkqcvzp7nvjghgtskhpp3a Mac Rumors\n\n## humor\n\nhttps://damus.io/npub1plk0vhd2yma08angaq2rxfdycxv6qs9kx30dgzsgv9xhmkzmrq3sllffh4 Puns\r\n\r\n## Art & Music\n\nnpub1f9lz4ktqnkgq77e04vnmy7ay0zm6fftcsz04y2y06379usc60clss7pxza Lydia\n\nnpub1zrhw0kwfqlr4tcu7hh09dl0gpc8pd9n5s39wprallesdajvp7dwqj98ga5 Ikienea\r\n\r\nnpub1wss5lnnh2tjlp8yfswq4uuszra9pu7m6whg2w873g75sp5w30kgsnx84em Lisa7x8\r\n\r\nnpub1ge4vyzyx85qea2we07nzdx8r5acr5kjj8pkdha2plk7u0h8uv03s9zmvhd aeselics\r\n\r\nnpub13700uhjmtvfl49n4drcr0qg7rk863m8rzqdgceddpfwh2ejlumdqn6375k Minnaar\r\n\r\nnpub1ewfds8776uszff507rnf820xkdtg03tqgz58sr7h8xkxy28elhjs3hydvy Millie May\r\n\r\nnpub1tvhc92jn42rm42qcunz6r276laapkld95t52kr6e3809hv2u3dhqag5vlw Hakusui (Calligraphy Japan)\r\n\r\nnpub17297yqexcemektutlf66sewslf908p8fcmyem34gq0j597wjpp0qlel3am Priscilla Hernandez\r\n\r\nnpub1e4qg56wvd3ehegd8dm7rlgj8cm998myq0ah8e9t5zeqkg7t7s93q750p76 Awayuki\r\n\r\nnpub1e3mx09yq53gyh9368qyuhfstgk8t7p5vvfcnvgwa4994y7rqg37s20qvr5 Austin \n\nnpub19r9qrxmckj2vyk5a5ttyt966s5qu06vmzyczuh97wj8wtyluktxqymeukr Joe Martin\r\n\r\n## Independent Journalists\r\n\r\nWhitney Webb npub1g0587hzzckcncxfm78n0996qe2s58nspy29wf02tqcj5sdzcpj4q6j40hv\r\n\r\nEfrat Fenigson note1yylclwcqhw25k3ux0c5vn0mx0j9ysad9d3gvzvd98efd038pn34qgakztk\n\n## tech news\n\nnpub1gdfl5z7tmwh2yc0q8xcxwwntjn5aylrf5cfe36der2v74qwehjhq9v67c6 hacker news frontpage\r\n\r\n## Permaculture, farming\r\n\r\nLightning goats npub1v60thnx0gz0wq3n6xdnq46y069l9x70xgmjp6lprdl6fv0eux6mqgjj4rp\n\nnpub154xls56nw254e6mq6u6udzrg02g4j7av8cn3g9h4g2nv4c96aqhqyz6eqz Danish Cider\r\n\r\nGardening\r\n\r\nnpub15kwxznyp606ewduu5h4zhfw7d0kxgesyxtmnagm23m2pkls7yjes58adwj All for Gardening\n\n## Travel \n\nnpub105em547c5m5gdxslr4fp2f29jav54sxml6cpk6gda7xyvxuzmv6s84a642 TravelTelly\n\n## Nature\n\nnpub1zwulrffp23wle3tl25dt0jr2q376k0k8vhe9xzjl5jnxnag5tc2sr2hjds \n\nnpub1sur5gd3mrfvcd4nh8dtsdh0ztrqrnaknff0lcfcfz5pn56n8eqkqv9sm0l Animals\r\n\r\n## Parenting\r\n\r\nQW\r\n\r\nnpub1tvqc82mv8cezhax5r34n4muc2c4pgjz8kaye2smj032nngg52clq0rkrq4\n\nSatsie\n\nnpub1fhmmgwe6fk6tn83ahttt6ruyyfnjdm7k8tn7qflert9ajx6dhfyqf3nzcu\r\n\r\n\r\n## Sports\r\n\r\nSpearfishing and freediving\r\n\r\nCharlie\r\nnpub1aa7npyl475d55xkd5rrzsdllkc3s04zcu0rf8jlmca6tn9g7m86qvaren3\r\n\r\nBasketball\r\n\r\nBig Sean Harris\r\nnpub135x4y8w7jty24ggvxfm0c4mqaknk2su0fzzmwrgfdfylj6tz3l9qlv5xpr\r\n\r\n\r\nFitness\r\n\r\nXiaolin npub1cs2pfmk9uc2qk7pc4mn8w5hftpur8572ksmegg43gf4qq7ppzjtsylxsfg\r\n\r\nGolf\r\n\r\nJor npub103m96sra82w4agghew9cdxtzs4s8sl7qsjsvw6h653yml0gjrkzqefd3h5\r\n\r\nKNG golf\r\n\r\nnpub19rfmr3xp4c0k7etv8tpdn0pwgu93yen79dgme2akv0j78zgr3sxqmmceus\r\n\r\nMMA\r\n\r\nCris Cyborg\r\nnpub1wv79gfl4tn46qxs0vcr6kr73rqethvna0kchk4cw06mmdzsgrkdqmkxye0\r\n\r\n## Books\r\n\r\nEshara \r\nnpub1jcjxjg92200kdp8guw8sysg8gr0ez29hahrfdy49h30hgnkpa4kqfvmtwx\r\n\r\n## Faith\r\n\r\nHodlbod npub1jlrs53pkdfjnts29kveljul2sm0actt6n8dxrrzqcersttvcuv3qdjynqn\r\n\r\nJordan Bush\r\nnpub14f0xen78ed7rgvw39v82fwp7tv65yasz2gsgpf4gvxy4q5nlsydsk37k3l\r\n\r\n## Proof of work\r\n\r\nWeldstr\r\nThe_beave \r\n\r\nnpub1q6ya7kz84rfnw6yjmg5kyttuplwpauv43a9ug3cajztx4g0v48eqhtt3sh\r\n\r\nFoodstr\r\n\r\nnpub1ejvhdkt8ppefezgz0sgnwdqrn8l4z8muws2k8dz2tv0a57ac2z9st56q8x Awayslice\n\nnpub18fst23wsr9u7fu5028taaxug06dhrxl8rf5ekpswpryc3rvkl46s9ytrkg goodmeals\r\n\r\nRocks\r\n\r\nStoney Bitson\r\n\r\nnpub142eclup59nq4pz5gvm5qh9fxt9m393u34hp25w3zlkh76duz0u9qj8kjlz\n\nWood \n\nJordan Richner\n\nnpub109m4qpqazdn2sr29uycvsv0s2c447unxvc4s0t802rw4gxl6y56sd9hvru", "reactions": { "url": "https://api.github.com/repos/damus-io/damus/issues/1429/reactions", "total_count": 0, @@ -256211,8 +264982,8 @@ { "id": 5811380900, "node_id": "LA_kwDOHHF5A88AAAABWmKipA", - "url": "https://api.github.com/repos/damus-io/damus/labels/video%20%F0%9F%8E%A5", - "name": "video 🎥", + "url": "https://api.github.com/repos/damus-io/damus/labels/video", + "name": "video", "color": "F4D9A3", "default": false, "description": "" @@ -256332,8 +265103,8 @@ { "id": 5811380900, "node_id": "LA_kwDOHHF5A88AAAABWmKipA", - "url": "https://api.github.com/repos/damus-io/damus/labels/video%20%F0%9F%8E%A5", - "name": "video 🎥", + "url": "https://api.github.com/repos/damus-io/damus/labels/video", + "name": "video", "color": "F4D9A3", "default": false, "description": "" @@ -256459,8 +265230,8 @@ { "id": 5811380900, "node_id": "LA_kwDOHHF5A88AAAABWmKipA", - "url": "https://api.github.com/repos/damus-io/damus/labels/video%20%F0%9F%8E%A5", - "name": "video 🎥", + "url": "https://api.github.com/repos/damus-io/damus/labels/video", + "name": "video", "color": "F4D9A3", "default": false, "description": "" @@ -258131,8 +266902,8 @@ { "id": 5811380900, "node_id": "LA_kwDOHHF5A88AAAABWmKipA", - "url": "https://api.github.com/repos/damus-io/damus/labels/video%20%F0%9F%8E%A5", - "name": "video 🎥", + "url": "https://api.github.com/repos/damus-io/damus/labels/video", + "name": "video", "color": "F4D9A3", "default": false, "description": "" @@ -258221,8 +266992,8 @@ { "id": 5811380900, "node_id": "LA_kwDOHHF5A88AAAABWmKipA", - "url": "https://api.github.com/repos/damus-io/damus/labels/video%20%F0%9F%8E%A5", - "name": "video 🎥", + "url": "https://api.github.com/repos/damus-io/damus/labels/video", + "name": "video", "color": "F4D9A3", "default": false, "description": "" @@ -258317,8 +267088,8 @@ { "id": 5811380900, "node_id": "LA_kwDOHHF5A88AAAABWmKipA", - "url": "https://api.github.com/repos/damus-io/damus/labels/video%20%F0%9F%8E%A5", - "name": "video 🎥", + "url": "https://api.github.com/repos/damus-io/damus/labels/video", + "name": "video", "color": "F4D9A3", "default": false, "description": "" @@ -258413,8 +267184,8 @@ { "id": 5811380900, "node_id": "LA_kwDOHHF5A88AAAABWmKipA", - "url": "https://api.github.com/repos/damus-io/damus/labels/video%20%F0%9F%8E%A5", - "name": "video 🎥", + "url": "https://api.github.com/repos/damus-io/damus/labels/video", + "name": "video", "color": "F4D9A3", "default": false, "description": "" @@ -258509,8 +267280,8 @@ { "id": 5811380900, "node_id": "LA_kwDOHHF5A88AAAABWmKipA", - "url": "https://api.github.com/repos/damus-io/damus/labels/video%20%F0%9F%8E%A5", - "name": "video 🎥", + "url": "https://api.github.com/repos/damus-io/damus/labels/video", + "name": "video", "color": "F4D9A3", "default": false, "description": "" @@ -258605,8 +267376,8 @@ { "id": 5811380900, "node_id": "LA_kwDOHHF5A88AAAABWmKipA", - "url": "https://api.github.com/repos/damus-io/damus/labels/video%20%F0%9F%8E%A5", - "name": "video 🎥", + "url": "https://api.github.com/repos/damus-io/damus/labels/video", + "name": "video", "color": "F4D9A3", "default": false, "description": "" @@ -258701,8 +267472,8 @@ { "id": 5811380900, "node_id": "LA_kwDOHHF5A88AAAABWmKipA", - "url": "https://api.github.com/repos/damus-io/damus/labels/video%20%F0%9F%8E%A5", - "name": "video 🎥", + "url": "https://api.github.com/repos/damus-io/damus/labels/video", + "name": "video", "color": "F4D9A3", "default": false, "description": "" @@ -258797,8 +267568,8 @@ { "id": 5811380900, "node_id": "LA_kwDOHHF5A88AAAABWmKipA", - "url": "https://api.github.com/repos/damus-io/damus/labels/video%20%F0%9F%8E%A5", - "name": "video 🎥", + "url": "https://api.github.com/repos/damus-io/damus/labels/video", + "name": "video", "color": "F4D9A3", "default": false, "description": "" @@ -258893,8 +267664,8 @@ { "id": 5811380900, "node_id": "LA_kwDOHHF5A88AAAABWmKipA", - "url": "https://api.github.com/repos/damus-io/damus/labels/video%20%F0%9F%8E%A5", - "name": "video 🎥", + "url": "https://api.github.com/repos/damus-io/damus/labels/video", + "name": "video", "color": "F4D9A3", "default": false, "description": "" @@ -258989,8 +267760,8 @@ { "id": 5811380900, "node_id": "LA_kwDOHHF5A88AAAABWmKipA", - "url": "https://api.github.com/repos/damus-io/damus/labels/video%20%F0%9F%8E%A5", - "name": "video 🎥", + "url": "https://api.github.com/repos/damus-io/damus/labels/video", + "name": "video", "color": "F4D9A3", "default": false, "description": "" @@ -259085,8 +267856,8 @@ { "id": 5811380900, "node_id": "LA_kwDOHHF5A88AAAABWmKipA", - "url": "https://api.github.com/repos/damus-io/damus/labels/video%20%F0%9F%8E%A5", - "name": "video 🎥", + "url": "https://api.github.com/repos/damus-io/damus/labels/video", + "name": "video", "color": "F4D9A3", "default": false, "description": "" @@ -259181,8 +267952,8 @@ { "id": 5811380900, "node_id": "LA_kwDOHHF5A88AAAABWmKipA", - "url": "https://api.github.com/repos/damus-io/damus/labels/video%20%F0%9F%8E%A5", - "name": "video 🎥", + "url": "https://api.github.com/repos/damus-io/damus/labels/video", + "name": "video", "color": "F4D9A3", "default": false, "description": "" @@ -259277,8 +268048,8 @@ { "id": 5811380900, "node_id": "LA_kwDOHHF5A88AAAABWmKipA", - "url": "https://api.github.com/repos/damus-io/damus/labels/video%20%F0%9F%8E%A5", - "name": "video 🎥", + "url": "https://api.github.com/repos/damus-io/damus/labels/video", + "name": "video", "color": "F4D9A3", "default": false, "description": "" @@ -259373,8 +268144,8 @@ { "id": 5811380900, "node_id": "LA_kwDOHHF5A88AAAABWmKipA", - "url": "https://api.github.com/repos/damus-io/damus/labels/video%20%F0%9F%8E%A5", - "name": "video 🎥", + "url": "https://api.github.com/repos/damus-io/damus/labels/video", + "name": "video", "color": "F4D9A3", "default": false, "description": "" @@ -259469,8 +268240,8 @@ { "id": 5811380900, "node_id": "LA_kwDOHHF5A88AAAABWmKipA", - "url": "https://api.github.com/repos/damus-io/damus/labels/video%20%F0%9F%8E%A5", - "name": "video 🎥", + "url": "https://api.github.com/repos/damus-io/damus/labels/video", + "name": "video", "color": "F4D9A3", "default": false, "description": "" @@ -259565,8 +268336,8 @@ { "id": 5811380900, "node_id": "LA_kwDOHHF5A88AAAABWmKipA", - "url": "https://api.github.com/repos/damus-io/damus/labels/video%20%F0%9F%8E%A5", - "name": "video 🎥", + "url": "https://api.github.com/repos/damus-io/damus/labels/video", + "name": "video", "color": "F4D9A3", "default": false, "description": "" @@ -259661,8 +268432,8 @@ { "id": 5811380900, "node_id": "LA_kwDOHHF5A88AAAABWmKipA", - "url": "https://api.github.com/repos/damus-io/damus/labels/video%20%F0%9F%8E%A5", - "name": "video 🎥", + "url": "https://api.github.com/repos/damus-io/damus/labels/video", + "name": "video", "color": "F4D9A3", "default": false, "description": "" @@ -265058,8 +273829,8 @@ { "id": 5811380900, "node_id": "LA_kwDOHHF5A88AAAABWmKipA", - "url": "https://api.github.com/repos/damus-io/damus/labels/video%20%F0%9F%8E%A5", - "name": "video 🎥", + "url": "https://api.github.com/repos/damus-io/damus/labels/video", + "name": "video", "color": "F4D9A3", "default": false, "description": "" @@ -285944,8 +294715,8 @@ { "id": 5811380900, "node_id": "LA_kwDOHHF5A88AAAABWmKipA", - "url": "https://api.github.com/repos/damus-io/damus/labels/video%20%F0%9F%8E%A5", - "name": "video 🎥", + "url": "https://api.github.com/repos/damus-io/damus/labels/video", + "name": "video", "color": "F4D9A3", "default": false, "description": "" @@ -286064,8 +294835,8 @@ { "id": 5811380900, "node_id": "LA_kwDOHHF5A88AAAABWmKipA", - "url": "https://api.github.com/repos/damus-io/damus/labels/video%20%F0%9F%8E%A5", - "name": "video 🎥", + "url": "https://api.github.com/repos/damus-io/damus/labels/video", + "name": "video", "color": "F4D9A3", "default": false, "description": "" @@ -286190,8 +294961,8 @@ { "id": 5811380900, "node_id": "LA_kwDOHHF5A88AAAABWmKipA", - "url": "https://api.github.com/repos/damus-io/damus/labels/video%20%F0%9F%8E%A5", - "name": "video 🎥", + "url": "https://api.github.com/repos/damus-io/damus/labels/video", + "name": "video", "color": "F4D9A3", "default": false, "description": "" @@ -286316,8 +295087,8 @@ { "id": 5811380900, "node_id": "LA_kwDOHHF5A88AAAABWmKipA", - "url": "https://api.github.com/repos/damus-io/damus/labels/video%20%F0%9F%8E%A5", - "name": "video 🎥", + "url": "https://api.github.com/repos/damus-io/damus/labels/video", + "name": "video", "color": "F4D9A3", "default": false, "description": "" @@ -286442,8 +295213,8 @@ { "id": 5811380900, "node_id": "LA_kwDOHHF5A88AAAABWmKipA", - "url": "https://api.github.com/repos/damus-io/damus/labels/video%20%F0%9F%8E%A5", - "name": "video 🎥", + "url": "https://api.github.com/repos/damus-io/damus/labels/video", + "name": "video", "color": "F4D9A3", "default": false, "description": "" @@ -286568,8 +295339,8 @@ { "id": 5811380900, "node_id": "LA_kwDOHHF5A88AAAABWmKipA", - "url": "https://api.github.com/repos/damus-io/damus/labels/video%20%F0%9F%8E%A5", - "name": "video 🎥", + "url": "https://api.github.com/repos/damus-io/damus/labels/video", + "name": "video", "color": "F4D9A3", "default": false, "description": "" @@ -286694,8 +295465,8 @@ { "id": 5811380900, "node_id": "LA_kwDOHHF5A88AAAABWmKipA", - "url": "https://api.github.com/repos/damus-io/damus/labels/video%20%F0%9F%8E%A5", - "name": "video 🎥", + "url": "https://api.github.com/repos/damus-io/damus/labels/video", + "name": "video", "color": "F4D9A3", "default": false, "description": "" @@ -286820,8 +295591,8 @@ { "id": 5811380900, "node_id": "LA_kwDOHHF5A88AAAABWmKipA", - "url": "https://api.github.com/repos/damus-io/damus/labels/video%20%F0%9F%8E%A5", - "name": "video 🎥", + "url": "https://api.github.com/repos/damus-io/damus/labels/video", + "name": "video", "color": "F4D9A3", "default": false, "description": "" @@ -286946,8 +295717,8 @@ { "id": 5811380900, "node_id": "LA_kwDOHHF5A88AAAABWmKipA", - "url": "https://api.github.com/repos/damus-io/damus/labels/video%20%F0%9F%8E%A5", - "name": "video 🎥", + "url": "https://api.github.com/repos/damus-io/damus/labels/video", + "name": "video", "color": "F4D9A3", "default": false, "description": "" @@ -288483,8 +297254,8 @@ { "id": 5811380900, "node_id": "LA_kwDOHHF5A88AAAABWmKipA", - "url": "https://api.github.com/repos/damus-io/damus/labels/video%20%F0%9F%8E%A5", - "name": "video 🎥", + "url": "https://api.github.com/repos/damus-io/damus/labels/video", + "name": "video", "color": "F4D9A3", "default": false, "description": "" @@ -288624,8 +297395,8 @@ { "id": 5811380900, "node_id": "LA_kwDOHHF5A88AAAABWmKipA", - "url": "https://api.github.com/repos/damus-io/damus/labels/video%20%F0%9F%8E%A5", - "name": "video 🎥", + "url": "https://api.github.com/repos/damus-io/damus/labels/video", + "name": "video", "color": "F4D9A3", "default": false, "description": "" @@ -288771,8 +297542,8 @@ { "id": 5811380900, "node_id": "LA_kwDOHHF5A88AAAABWmKipA", - "url": "https://api.github.com/repos/damus-io/damus/labels/video%20%F0%9F%8E%A5", - "name": "video 🎥", + "url": "https://api.github.com/repos/damus-io/damus/labels/video", + "name": "video", "color": "F4D9A3", "default": false, "description": "" @@ -290724,8 +299495,8 @@ { "id": 5811380900, "node_id": "LA_kwDOHHF5A88AAAABWmKipA", - "url": "https://api.github.com/repos/damus-io/damus/labels/video%20%F0%9F%8E%A5", - "name": "video 🎥", + "url": "https://api.github.com/repos/damus-io/damus/labels/video", + "name": "video", "color": "F4D9A3", "default": false, "description": "" @@ -305778,9 +314549,9 @@ "assignee": null, "assignees": [], "milestone": null, - "comments": 18, + "comments": 19, "created_at": "2023-06-06T04:30:22Z", - "updated_at": "2024-03-13T22:26:22Z", + "updated_at": "2024-03-20T11:35:03Z", "closed_at": null, "author_association": "MEMBER", "active_lock_reason": null, @@ -305848,9 +314619,9 @@ "assignee": null, "assignees": [], "milestone": null, - "comments": 18, + "comments": 19, "created_at": "2023-06-06T04:30:22Z", - "updated_at": "2024-03-13T22:26:22Z", + "updated_at": "2024-03-20T11:35:03Z", "closed_at": null, "author_association": "MEMBER", "active_lock_reason": null, @@ -305924,9 +314695,9 @@ "assignee": null, "assignees": [], "milestone": null, - "comments": 18, + "comments": 19, "created_at": "2023-06-06T04:30:22Z", - "updated_at": "2024-03-13T22:26:22Z", + "updated_at": "2024-03-20T11:35:03Z", "closed_at": null, "author_association": "MEMBER", "active_lock_reason": null, @@ -306000,9 +314771,9 @@ "assignee": null, "assignees": [], "milestone": null, - "comments": 18, + "comments": 19, "created_at": "2023-06-06T04:30:22Z", - "updated_at": "2024-03-13T22:26:22Z", + "updated_at": "2024-03-20T11:35:03Z", "closed_at": null, "author_association": "MEMBER", "active_lock_reason": null, @@ -306076,9 +314847,9 @@ "assignee": null, "assignees": [], "milestone": null, - "comments": 18, + "comments": 19, "created_at": "2023-06-06T04:30:22Z", - "updated_at": "2024-03-13T22:26:22Z", + "updated_at": "2024-03-20T11:35:03Z", "closed_at": null, "author_association": "MEMBER", "active_lock_reason": null, @@ -306152,9 +314923,9 @@ "assignee": null, "assignees": [], "milestone": null, - "comments": 18, + "comments": 19, "created_at": "2023-06-06T04:30:22Z", - "updated_at": "2024-03-13T22:26:22Z", + "updated_at": "2024-03-20T11:35:03Z", "closed_at": null, "author_association": "MEMBER", "active_lock_reason": null, @@ -306228,9 +314999,9 @@ "assignee": null, "assignees": [], "milestone": null, - "comments": 18, + "comments": 19, "created_at": "2023-06-06T04:30:22Z", - "updated_at": "2024-03-13T22:26:22Z", + "updated_at": "2024-03-20T11:35:03Z", "closed_at": null, "author_association": "MEMBER", "active_lock_reason": null, @@ -306304,9 +315075,9 @@ "assignee": null, "assignees": [], "milestone": null, - "comments": 18, + "comments": 19, "created_at": "2023-06-06T04:30:22Z", - "updated_at": "2024-03-13T22:26:22Z", + "updated_at": "2024-03-20T11:35:03Z", "closed_at": null, "author_association": "MEMBER", "active_lock_reason": null, @@ -306380,9 +315151,9 @@ "assignee": null, "assignees": [], "milestone": null, - "comments": 18, + "comments": 19, "created_at": "2023-06-06T04:30:22Z", - "updated_at": "2024-03-13T22:26:22Z", + "updated_at": "2024-03-20T11:35:03Z", "closed_at": null, "author_association": "MEMBER", "active_lock_reason": null, @@ -306456,9 +315227,9 @@ "assignee": null, "assignees": [], "milestone": null, - "comments": 18, + "comments": 19, "created_at": "2023-06-06T04:30:22Z", - "updated_at": "2024-03-13T22:26:22Z", + "updated_at": "2024-03-20T11:35:03Z", "closed_at": null, "author_association": "MEMBER", "active_lock_reason": null, @@ -306532,9 +315303,9 @@ "assignee": null, "assignees": [], "milestone": null, - "comments": 18, + "comments": 19, "created_at": "2023-06-06T04:30:22Z", - "updated_at": "2024-03-13T22:26:22Z", + "updated_at": "2024-03-20T11:35:03Z", "closed_at": null, "author_association": "MEMBER", "active_lock_reason": null, @@ -306608,9 +315379,9 @@ "assignee": null, "assignees": [], "milestone": null, - "comments": 18, + "comments": 19, "created_at": "2023-06-06T04:30:22Z", - "updated_at": "2024-03-13T22:26:22Z", + "updated_at": "2024-03-20T11:35:03Z", "closed_at": null, "author_association": "MEMBER", "active_lock_reason": null, @@ -306684,9 +315455,85 @@ "assignee": null, "assignees": [], "milestone": null, - "comments": 18, + "comments": 19, + "created_at": "2023-06-06T04:30:22Z", + "updated_at": "2024-03-20T11:35:03Z", + "closed_at": null, + "author_association": "MEMBER", + "active_lock_reason": null, + "draft": false, + "pull_request": { + "url": "https://api.github.com/repos/damus-io/damus/pulls/1254", + "html_url": "https://github.com/damus-io/damus/pull/1254", + "diff_url": "https://github.com/damus-io/damus/pull/1254.diff", + "patch_url": "https://github.com/damus-io/damus/pull/1254.patch", + "merged_at": null + }, + "body": "https://github.com/damus-io/damus/assets/43693074/0924953c-097b-43ea-894f-adaa373a98ae\n\r\n", + "reactions": { + "url": "https://api.github.com/repos/damus-io/damus/issues/1254/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/1254/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + "comment": { + "user": "jb55", + "created_at": "2023-10-08T09:04:06Z", + "updated_at": "2023-10-08T09:04:06Z", + "body": "re: [PATCH damus 3/6] add CameraModel and CameraService for interacting with the camera\n\nLooks complicated and I have no idea what all this is for because there are no commit descriptions but I'll merge it for now.\n\nReviewed-by: William Casarin ***@***.***>\n\nOn Tue, Sep 19, 2023 at 01:33:41PM -0700, Suhail Saqan wrote:\n>Closes: https://github.com/damus-io/damus/pull/1254\n>---\n> damus.xcodeproj/project.pbxproj | 12 +\n> damus/Models/Camera/CameraModel.swift | 122 +++\n> .../Camera/CameraService+Extensions.swift | 32 +\n> damus/Models/Camera/CameraService.swift | 693 ++++++++++++++++++\n> 4 files changed, 859 insertions(+)\n> create mode 100644 damus/Models/Camera/CameraModel.swift\n> create mode 100644 damus/Models/Camera/CameraService+Extensions.swift\n> create mode 100644 damus/Models/Camera/CameraService.swift\n>\n>diff --git a/damus.xcodeproj/project.pbxproj b/damus.xcodeproj/project.pbxproj\n>index 18e32e922..b5b5bf6c9 100644\n>--- a/damus.xcodeproj/project.pbxproj\n>+++ b/damus.xcodeproj/project.pbxproj\n>@@ -380,6 +380,9 @@\n> \t\tBA37598A2ABCCDE40018D73B /* ImageResizer.swift in Sources */ = {isa = PBXBuildFile; fileRef = BA3759892ABCCDE30018D73B /* ImageResizer.swift */; };\n> \t\tBA37598D2ABCCE500018D73B /* PhotoCaptureProcessor.swift in Sources */ = {isa = PBXBuildFile; fileRef = BA37598B2ABCCE500018D73B /* PhotoCaptureProcessor.swift */; };\n> \t\tBA37598E2ABCCE500018D73B /* VideoCaptureProcessor.swift in Sources */ = {isa = PBXBuildFile; fileRef = BA37598C2ABCCE500018D73B /* VideoCaptureProcessor.swift */; };\n>+\t\tBA3759922ABCCEBA0018D73B /* CameraService+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = BA37598F2ABCCEBA0018D73B /* CameraService+Extensions.swift */; };\n>+\t\tBA3759932ABCCEBA0018D73B /* CameraModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = BA3759902ABCCEBA0018D73B /* CameraModel.swift */; };\n>+\t\tBA3759942ABCCEBA0018D73B /* CameraService.swift in Sources */ = {isa = PBXBuildFile; fileRef = BA3759912ABCCEBA0018D73B /* CameraService.swift */; };\n> \t\tBA4AB0AE2A63B9270070A32A /* AddEmojiView.swift in Sources */ = {isa = PBXBuildFile; fileRef = BA4AB0AD2A63B9270070A32A /* AddEmojiView.swift */; };\n> \t\tBA4AB0B02A63B94D0070A32A /* EmojiListItemView.swift in Sources */ = {isa = PBXBuildFile; fileRef = BA4AB0AF2A63B94D0070A32A /* EmojiListItemView.swift */; };\n> \t\tBA693074295D649800ADDB87 /* UserSettingsStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = BA693073295D649800ADDB87 /* UserSettingsStore.swift */; };\n>@@ -934,6 +937,9 @@\n> \t\tBA3759892ABCCDE30018D73B /* ImageResizer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ImageResizer.swift; sourceTree = \"<group>\"; };\n> \t\tBA37598B2ABCCE500018D73B /* PhotoCaptureProcessor.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PhotoCaptureProcessor.swift; sourceTree = \"<group>\"; };\n> \t\tBA37598C2ABCCE500018D73B /* VideoCaptureProcessor.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = VideoCaptureProcessor.swift; sourceTree = \"<group>\"; };\n>+\t\tBA37598F2ABCCEBA0018D73B /* CameraService+Extensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = \"CameraService+Extensions.swift\"; sourceTree = \"<group>\"; };\n>+\t\tBA3759902ABCCEBA0018D73B /* CameraModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CameraModel.swift; sourceTree = \"<group>\"; };\n>+\t\tBA3759912ABCCEBA0018D73B /* CameraService.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CameraService.swift; sourceTree = \"<group>\"; };\n> \t\tBA4AB0AD2A63B9270070A32A /* AddEmojiView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AddEmojiView.swift; sourceTree = \"<group>\"; };\n> \t\tBA4AB0AF2A63B94D0070A32A /* EmojiListItemView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EmojiListItemView.swift; sourceTree = \"<group>\"; };\n> \t\tBA693073295D649800ADDB87 /* UserSettingsStore.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserSettingsStore.swift; sourceTree = \"<group>\"; };\n>@@ -1870,6 +1876,9 @@\n> \t\tBA3759882ABCCDE30018D73B /* Camera */ = {\n> \t\t\tisa = PBXGroup;\n> \t\t\tchildren = (\n>+\t\t\t\tBA3759902ABCCEBA0018D73B /* CameraModel.swift */,\n>+\t\t\t\tBA3759912ABCCEBA0018D73B /* CameraService.swift */,\n>+\t\t\t\tBA37598F2ABCCEBA0018D73B /* CameraService+Extensions.swift */,\n> \t\t\t\tBA3759892ABCCDE30018D73B /* ImageResizer.swift */,\n> \t\t\t\tBA37598B2ABCCE500018D73B /* PhotoCaptureProcessor.swift */,\n> \t\t\t\tBA37598C2ABCCE500018D73B /* VideoCaptureProcessor.swift */,\n>@@ -2204,6 +2213,7 @@\n> \t\t\t\t4C363A8428233689006E126D /* Parser.swift in Sources */,\n> \t\t\t\t3AAA95CA298DF87B00F3D526 /* TranslationService.swift in Sources */,\n> \t\t\t\t4CE4F9E328528C5200C00DD9 /* AddRelayView.swift in Sources */,\n>+\t\t\t\tBA3759922ABCCEBA0018D73B /* CameraService+Extensions.swift in Sources */,\n> \t\t\t\t4C363A9A28283854006E126D /* Reply.swift in Sources */,\n> \t\t\t\tBA693074295D649800ADDB87 /* UserSettingsStore.swift in Sources */,\n> \t\t\t\t4CFF8F6729CC9E3A008DB934 /* ImageView.swift in Sources */,\n>@@ -2240,6 +2250,7 @@\n> \t\t\t\t4C198DF529F88D2E004C165C /* ImageMetadata.swift in Sources */,\n> \t\t\t\t4CCEB7AE29B53D260078AA28 /* SearchingEventView.swift in Sources */,\n> \t\t\t\t4CF0ABE929844AF100D66079 /* AnyCodable.swift in Sources */,\n>+\t\t\t\tBA3759932ABCCEBA0018D73B /* CameraModel.swift in Sources */,\n> \t\t\t\t4C0A3F8F280F640A000448DE /* ThreadModel.swift in Sources */,\n> \t\t\t\t4C3AC79F2833115300E1F516 /* FollowButtonView.swift in Sources */,\n> \t\t\t\t4C4E137B2A76D5FB00BDD832 /* MuteThreadNotify.swift in Sources */,\n>@@ -2339,6 +2350,7 @@\n> \t\t\t\t4C5F9114283D694D0052CD1C /* FollowTarget.swift in Sources */,\n> \t\t\t\t4CF0ABD629817F5B00D66079 /* ReportView.swift in Sources */,\n> \t\t\t\t4C1A9A2729DDE31900516EAC /* TranslationSettingsView.swift in Sources */,\n>+\t\t\t\tBA3759942ABCCEBA0018D73B /* CameraService.swift in Sources */,\n> \t\t\t\t4CB8838629656C8B00DC99E7 /* NIP05.swift in Sources */,\n> \t\t\t\t4CF0ABD82981980C00D66079 /* Lists.swift in Sources */,\n> \t\t\t\tF71694EA2A662232001F4053 /* SuggestedUsersView.swift in Sources */,\n>diff --git a/damus/Models/Camera/CameraModel.swift b/damus/Models/Camera/CameraModel.swift\n>new file mode 100644\n>index 000000000..73def5730\n>--- /dev/null\n>+++ b/damus/Models/Camera/CameraModel.swift\n>@@ -0,0 +1,122 @@\n>+//\n>+// CameraModel.swift\n>+// damus\n>+//\n>+// Created by Suhail Saqan on 8/5/23.\n>+//\n>+\n>+import Foundation\n>+import AVFoundation\n>+import Combine\n>+\n>+final class CameraModel: ObservableObject {\n>+ private let service = CameraService()\n>+\n>+ @Published var showAlertError = false\n>+\n>+ @Published var isFlashOn = false\n>+\n>+ @Published var willCapturePhoto = false\n>+\n>+ @Published var isCameraButtonDisabled = false\n>+\n>+ @Published var isPhotoProcessing = false\n>+\n>+ @Published var isRecording = false\n>+\n>+ @Published var captureMode: CameraMediaType = .image\n>+\n>+ @Published public var mediaItems: [MediaItem] = []\n>+\n>+ @Published var thumbnail: Thumbnail!\n>+\n>+ var alertError: AlertError!\n>+\n>+ var session: AVCaptureSession\n>+\n>+ private var subscriptions = Set<AnyCancellable>()\n>+\n>+ init() {\n>+ self.session = service.session\n>+\n>+ service.$shouldShowAlertView.sink { [weak self] (val) in\n>+ self?.alertError = self?.service.alertError\n>+ self?.showAlertError = val\n>+ }\n>+ .store(in: &self.subscriptions)\n>+\n>+ service.$flashMode.sink { [weak self] (mode) in\n>+ self?.isFlashOn = mode == .on\n>+ }\n>+ .store(in: &self.subscriptions)\n>+\n>+ service.$willCapturePhoto.sink { [weak self] (val) in\n>+ self?.willCapturePhoto = val\n>+ }\n>+ .store(in: &self.subscriptions)\n>+\n>+ service.$isCameraButtonDisabled.sink { [weak self] (val) in\n>+ self?.isCameraButtonDisabled = val\n>+ }\n>+ .store(in: &self.subscriptions)\n>+\n>+ service.$isPhotoProcessing.sink { [weak self] (val) in\n>+ self?.isPhotoProcessing = val\n>+ }\n>+ .store(in: &self.subscriptions)\n>+\n>+ service.$isRecording.sink { [weak self] (val) in\n>+ self?.isRecording = val\n>+ }\n>+ .store(in: &self.subscriptions)\n>+\n>+ service.$captureMode.sink { [weak self] (mode) in\n>+ self?.captureMode = mode\n>+ }\n>+ .store(in: &self.subscriptions)\n>+\n>+ service.$mediaItems.sink { [weak self] (mode) in\n>+ self?.mediaItems = mode\n>+ }\n>+ .store(in: &self.subscriptions)\n>+\n>+ service.$thumbnail.sink { [weak self] (thumbnail) in\n>+ guard let pic = thumbnail else { return }\n>+ self?.thumbnail = pic\n>+ }\n>+ .store(in: &self.subscriptions)\n>+ }\n>+\n>+ func configure() {\n>+ service.checkForPermissions()\n>+ service.configure()\n>+ }\n>+\n>+ func stop() {\n>+ service.stop()\n>+ }\n>+\n>+ func capturePhoto() {\n>+ service.capturePhoto()\n>+ }\n>+\n>+ func startRecording() {\n>+ service.startRecording()\n>+ }\n>+\n>+ func stopRecording() {\n>+ service.stopRecording()\n>+ }\n>+\n>+ func flipCamera() {\n>+ service.changeCamera()\n>+ }\n>+\n>+ func zoom(with factor: CGFloat) {\n>+ service.set(zoom: factor)\n>+ }\n>+\n>+ func switchFlash() {\n>+ service.flashMode = service.flashMode == .on ? .off : .on\n>+ }\n>+}\n>diff --git a/damus/Models/Camera/CameraService+Extensions.swift b/damus/Models/Camera/CameraService+Extensions.swift\n>new file mode 100644\n>index 000000000..2c31c4884\n>--- /dev/null\n>+++ b/damus/Models/Camera/CameraService+Extensions.swift\n>@@ -0,0 +1,32 @@\n>+//\n>+// CameraService+Extensions.swift\n>+// damus\n>+//\n>+// Created by Suhail Saqan on 8/5/23.\n>+//\n>+\n>+import Foundation\n>+import UIKit\n>+import AVFoundation\n>+\n>+extension AVCaptureVideoOrientation {\n>+ init?(deviceOrientation: UIDeviceOrientation) {\n>+ switch deviceOrientation {\n>+ case .portrait: self = .portrait\n>+ case .portraitUpsideDown: self = .portraitUpsideDown\n>+ case .landscapeLeft: self = .landscapeRight\n>+ case .landscapeRight: self = .landscapeLeft\n>+ default: return nil\n>+ }\n>+ }\n>+\n>+ init?(interfaceOrientation: UIInterfaceOrientation) {\n>+ switch interfaceOrientation {\n>+ case .portrait: self = .portrait\n>+ case .portraitUpsideDown: self = .portraitUpsideDown\n>+ case .landscapeLeft: self = .landscapeLeft\n>+ case .landscapeRight: self = .landscapeRight\n>+ default: return nil\n>+ }\n>+ }\n>+}\n>diff --git a/damus/Models/Camera/CameraService.swift b/damus/Models/Camera/CameraService.swift\n>new file mode 100644\n>index 000000000..e5a617163\n>--- /dev/null\n>+++ b/damus/Models/Camera/CameraService.swift\n>@@ -0,0 +1,693 @@\n>+//\n>+// CameraService.swift\n>+// Campus\n>+//\n>+// Created by Suhail Saqan on 8/5/23.\n>+//\n>+\n>+import Foundation\n>+import Combine\n>+import AVFoundation\n>+import Photos\n>+import UIKit\n>+\n>+public struct Thumbnail: Identifiable, Equatable {\n>+ public var id: String\n>+ public var type: CameraMediaType\n>+ public var url: URL\n>+\n>+ public init(id: String = UUID().uuidString, type: CameraMediaType, url: URL) {\n>+ self.id = id\n>+ self.type = type\n>+ self.url = url\n>+ }\n>+\n>+ public var thumbnailImage: UIImage? {\n>+ switch type {\n>+ case .image:\n>+ return ImageResizer(targetWidth: 100).resize(at: url)\n>+ case .video:\n>+ return generateVideoThumbnail(for: url)\n>+ }\n>+ }\n>+}\n>+\n>+public struct AlertError {\n>+ public var title: String = \"\"\n>+ public var message: String = \"\"\n>+ public var primaryButtonTitle = \"Accept\"\n>+ public var secondaryButtonTitle: String?\n>+ public var primaryAction: (() -> ())?\n>+ public var secondaryAction: (() -> ())?\n>+\n>+ public init(title: String = \"\", message: String = \"\", primaryButtonTitle: String = \"Accept\", secondaryButtonTitle: String? = nil, primaryAction: (() -> ())? = nil, secondaryAction: (() -> ())? = nil) {\n>+ self.title = title\n>+ self.message = message\n>+ self.primaryAction = primaryAction\n>+ self.primaryButtonTitle = primaryButtonTitle\n>+ self.secondaryAction = secondaryAction\n>+ }\n>+}\n>+\n>+func generateVideoThumbnail(for videoURL: URL) -> UIImage? {\n>+ let asset = AVAsset(url: videoURL)\n>+ let imageGenerator = AVAssetImageGenerator(asset: asset)\n>+ imageGenerator.appliesPreferredTrackTransform = true\n>+\n>+ do {\n>+ let cgImage = try imageGenerator.copyCGImage(at: .zero, actualTime: nil)\n>+ return UIImage(cgImage: cgImage)\n>+ } catch {\n>+ print(\"Error generating thumbnail: \\(error)\")\n>+ return nil\n>+ }\n>+}\n>+\n>+public enum CameraMediaType {\n>+ case image\n>+ case video\n>+}\n>+\n>+public struct MediaItem {\n>+ let url: URL\n>+ let type: CameraMediaType\n>+}\n>+\n>+public class CameraService: NSObject, Identifiable {\n>+ public let session = AVCaptureSession()\n>+\n>+ public var isSessionRunning = false\n>+ public var isConfigured = false\n>+ var setupResult: SessionSetupResult = .success\n>+\n>+ public var alertError: AlertError = AlertError()\n>+\n>+ @Published public var flashMode: AVCaptureDevice.FlashMode = .off\n>+ @Published public var shouldShowAlertView = false\n>+ @Published public var isPhotoProcessing = false\n>+ @Published public var captureMode: CameraMediaType = .image\n>+ @Published public var isRecording: Bool = false\n>+\n>+ @Published public var willCapturePhoto = false\n>+ @Published public var isCameraButtonDisabled = false\n>+ @Published public var isCameraUnavailable = false\n>+ @Published public var thumbnail: Thumbnail?\n>+ @Published public var mediaItems: [MediaItem] = []\n>+\n>+ public let sessionQueue = DispatchQueue(label: \"io.damus.camera\")\n>+\n>+ @objc dynamic public var videoDeviceInput: AVCaptureDeviceInput!\n>+ @objc dynamic public var audioDeviceInput: AVCaptureDeviceInput!\n>+\n>+ public let videoDeviceDiscoverySession = AVCaptureDevice.DiscoverySession(deviceTypes: [.builtInWideAngleCamera, .builtInDualCamera, .builtInTrueDepthCamera], mediaType: .video, position: .unspecified)\n>+\n>+ public let photoOutput = AVCapturePhotoOutput()\n>+\n>+ public let movieOutput = AVCaptureMovieFileOutput()\n>+\n>+ var videoCaptureProcessor: VideoCaptureProcessor?\n>+ var photoCaptureProcessor: PhotoCaptureProcessor?\n>+\n>+ public var keyValueObservations = [NSKeyValueObservation]()\n>+\n>+ override public init() {\n>+ super.init()\n>+\n>+ DispatchQueue.main.async {\n>+ self.isCameraButtonDisabled = true\n>+ self.isCameraUnavailable = true\n>+ }\n>+ }\n>+\n>+ enum SessionSetupResult {\n>+ case success\n>+ case notAuthorized\n>+ case configurationFailed\n>+ }\n>+\n>+ public func configure() {\n>+ if !self.isSessionRunning && !self.isConfigured {\n>+ sessionQueue.async {\n>+ self.configureSession()\n>+ }\n>+ }\n>+ }\n>+\n>+ public func checkForPermissions() {\n>+ switch AVCaptureDevice.authorizationStatus(for: .video) {\n>+ case .authorized:\n>+ break\n>+ case .notDetermined:\n>+ sessionQueue.suspend()\n>+ AVCaptureDevice.requestAccess(for: .video, completionHandler: { granted in\n>+ if !granted {\n>+ self.setupResult = .notAuthorized\n>+ }\n>+ self.sessionQueue.resume()\n>+ })\n>+\n>+ default:\n>+ setupResult = .notAuthorized\n>+\n>+ DispatchQueue.main.async {\n>+ self.alertError = AlertError(title: \"Camera Access\", message: \"Damus needs camera and microphone access. Enable in settings.\", primaryButtonTitle: \"Go to settings\", secondaryButtonTitle: nil, primaryAction: {\n>+ UIApplication.shared.open(URL(string: UIApplication.openSettingsURLString)!,\n>+ options: [:], completionHandler: nil)\n>+\n>+ }, secondaryAction: nil)\n>+ self.shouldShowAlertView = true\n>+ self.isCameraUnavailable = true\n>+ self.isCameraButtonDisabled = true\n>+ }\n>+ }\n>+ }\n>+\n>+ private func configureSession() {\n>+ if setupResult != .success {\n>+ return\n>+ }\n>+\n>+ session.beginConfiguration()\n>+\n>+ session.sessionPreset = .high\n>+\n>+ // Add video input.\n>+ do {\n>+ var defaultVideoDevice: AVCaptureDevice?\n>+\n>+ if let backCameraDevice = AVCaptureDevice.default(.builtInWideAngleCamera, for: .video, position: .back) {\n>+ // If a rear dual camera is not available, default to the rear wide angle camera.\n>+ defaultVideoDevice = backCameraDevice\n>+ } else if let frontCameraDevice = AVCaptureDevice.default(.builtInWideAngleCamera, for: .video, position: .front) {\n>+ // If the rear wide angle camera isn't available, default to the front wide angle camera.\n>+ defaultVideoDevice = frontCameraDevice\n>+ }\n>+\n>+ guard let videoDevice = defaultVideoDevice else {\n>+ print(\"Default video device is unavailable.\")\n>+ setupResult = .configurationFailed\n>+ session.commitConfiguration()\n>+ return\n>+ }\n>+\n>+ let videoDeviceInput = try AVCaptureDeviceInput(device: videoDevice)\n>+\n>+ if session.canAddInput(videoDeviceInput) {\n>+ session.addInput(videoDeviceInput)\n>+ self.videoDeviceInput = videoDeviceInput\n>+ } else {\n>+ print(\"Couldn't add video device input to the session.\")\n>+ setupResult = .configurationFailed\n>+ session.commitConfiguration()\n>+ return\n>+ }\n>+\n>+ let audioDevice = AVCaptureDevice.default(for: .audio)\n>+ let audioDeviceInput = try AVCaptureDeviceInput(device: audioDevice!)\n>+\n>+ if session.canAddInput(audioDeviceInput) {\n>+ session.addInput(audioDeviceInput)\n>+ self.audioDeviceInput = audioDeviceInput\n>+ } else {\n>+ print(\"Couldn't add audio device input to the session.\")\n>+ setupResult = .configurationFailed\n>+ session.commitConfiguration()\n>+ return\n>+ }\n>+\n>+ // Add video output\n>+ if session.canAddOutput(movieOutput) {\n>+ session.addOutput(movieOutput)\n>+ } else {\n>+ print(\"Could not add movie output to the session\")\n>+ setupResult = .configurationFailed\n>+ session.commitConfiguration()\n>+ return\n>+ }\n>+ } catch {\n>+ print(\"Couldn't create video device input: \\(error)\")\n>+ setupResult = .configurationFailed\n>+ session.commitConfiguration()\n>+ return\n>+ }\n>+\n>+ // Add the photo output.\n>+ if session.canAddOutput(photoOutput) {\n>+ session.addOutput(photoOutput)\n>+\n>+ photoOutput.maxPhotoQualityPrioritization = .quality\n>+\n>+ } else {\n>+ print(\"Could not add photo output to the session\")\n>+ setupResult = .configurationFailed\n>+ session.commitConfiguration()\n>+ return\n>+ }\n>+\n>+ session.commitConfiguration()\n>+ self.isConfigured = true\n>+\n>+ self.start()\n>+ }\n>+\n>+ private func resumeInterruptedSession() {\n>+ sessionQueue.async {\n>+ self.session.startRunning()\n>+ self.isSessionRunning = self.session.isRunning\n>+ if !self.session.isRunning {\n>+ DispatchQueue.main.async {\n>+ self.alertError = AlertError(title: \"Camera Error\", message: \"Unable to resume camera\", primaryButtonTitle: \"Accept\", secondaryButtonTitle: nil, primaryAction: nil, secondaryAction: nil)\n>+ self.shouldShowAlertView = true\n>+ self.isCameraUnavailable = true\n>+ self.isCameraButtonDisabled = true\n>+ }\n>+ } else {\n>+ DispatchQueue.main.async {\n>+ self.isCameraUnavailable = false\n>+ self.isCameraButtonDisabled = false\n>+ }\n>+ }\n>+ }\n>+ }\n>+\n>+ public func changeCamera() {\n>+ DispatchQueue.main.async {\n>+ self.isCameraButtonDisabled = true\n>+ }\n>+\n>+ sessionQueue.async {\n>+ let currentVideoDevice = self.videoDeviceInput.device\n>+ let currentPosition = currentVideoDevice.position\n>+\n>+ let preferredPosition: AVCaptureDevice.Position\n>+ let preferredDeviceType: AVCaptureDevice.DeviceType\n>+\n>+ switch currentPosition {\n>+ case .unspecified, .front:\n>+ preferredPosition = .back\n>+ preferredDeviceType = .builtInWideAngleCamera\n>+\n>+ case .back:\n>+ preferredPosition = .front\n>+ preferredDeviceType = .builtInWideAngleCamera\n>+\n>+ @unknown default:\n>+ print(\"Unknown capture position. Defaulting to back, dual-camera.\")\n>+ preferredPosition = .back\n>+ preferredDeviceType = .builtInWideAngleCamera\n>+ }\n>+ let devices = self.videoDeviceDiscoverySession.devices\n>+ var newVideoDevice: AVCaptureDevice? = nil\n>+\n>+ if let device = devices.first(where: { $0.position == preferredPosition && $0.deviceType == preferredDeviceType }) {\n>+ newVideoDevice = device\n>+ } else if let device = devices.first(where: { $0.position == preferredPosition }) {\n>+ newVideoDevice = device\n>+ }\n>+\n>+ if let videoDevice = newVideoDevice {\n>+ do {\n>+ let videoDeviceInput = try AVCaptureDeviceInput(device: videoDevice)\n>+\n>+ self.session.beginConfiguration()\n>+\n>+ self.session.removeInput(self.videoDeviceInput)\n>+\n>+ if self.session.canAddInput(videoDeviceInput) {\n>+ NotificationCenter.default.removeObserver(self, name: .AVCaptureDeviceSubjectAreaDidChange, object: currentVideoDevice)\n>+ NotificationCenter.default.addObserver(self, selector: #selector(self.subjectAreaDidChange), name: .AVCaptureDeviceSubjectAreaDidChange, object: videoDeviceInput.device)\n>+\n>+ self.session.addInput(videoDeviceInput)\n>+ self.videoDeviceInput = videoDeviceInput\n>+ } else {\n>+ self.session.addInput(self.videoDeviceInput)\n>+ }\n>+\n>+ if let connection = self.photoOutput.connection(with: .video) {\n>+ if connection.isVideoStabilizationSupported {\n>+ connection.preferredVideoStabilizationMode = .auto\n>+ }\n>+ }\n>+\n>+ self.photoOutput.maxPhotoQualityPrioritization = .quality\n>+\n>+ self.session.commitConfiguration()\n>+ } catch {\n>+ print(\"Error occurred while creating video device input: \\(error)\")\n>+ }\n>+ }\n>+\n>+ DispatchQueue.main.async {\n>+ self.isCameraButtonDisabled = false\n>+ }\n>+ }\n>+ }\n>+\n>+ public func focus(with focusMode: AVCaptureDevice.FocusMode, exposureMode: AVCaptureDevice.ExposureMode, at devicePoint: CGPoint, monitorSubjectAreaChange: Bool) {\n>+ sessionQueue.async {\n>+ guard let device = self.videoDeviceInput?.device else { return }\n>+ do {\n>+ try device.lockForConfiguration()\n>+\n>+ if device.isFocusPointOfInterestSupported && device.isFocusModeSupported(focusMode) {\n>+ device.focusPointOfInterest = devicePoint\n>+ device.focusMode = focusMode\n>+ }\n>+\n>+ if device.isExposurePointOfInterestSupported && device.isExposureModeSupported(exposureMode) {\n>+ device.exposurePointOfInterest = devicePoint\n>+ device.exposureMode = exposureMode\n>+ }\n>+\n>+ device.isSubjectAreaChangeMonitoringEnabled = monitorSubjectAreaChange\n>+ device.unlockForConfiguration()\n>+ } catch {\n>+ print(\"Could not lock device for configuration: \\(error)\")\n>+ }\n>+ }\n>+ }\n>+\n>+\n>+ public func focus(at focusPoint: CGPoint) {\n>+ let device = self.videoDeviceInput.device\n>+ do {\n>+ try device.lockForConfiguration()\n>+ if device.isFocusPointOfInterestSupported {\n>+ device.focusPointOfInterest = focusPoint\n>+ device.exposurePointOfInterest = focusPoint\n>+ device.exposureMode = .continuousAutoExposure\n>+ device.focusMode = .continuousAutoFocus\n>+ device.unlockForConfiguration()\n>+ }\n>+ }\n>+ catch {\n>+ print(error.localizedDescription)\n>+ }\n>+ }\n>+\n>+ @objc public func stop(completion: (() -> ())? = nil) {\n>+ sessionQueue.async {\n>+ if self.isSessionRunning {\n>+ if self.setupResult == .success {\n>+ self.session.stopRunning()\n>+ self.isSessionRunning = self.session.isRunning\n>+ print(\"CAMERA STOPPED\")\n>+ self.removeObservers()\n>+\n>+ if !self.session.isRunning {\n>+ DispatchQueue.main.async {\n>+ self.isCameraButtonDisabled = true\n>+ self.isCameraUnavailable = true\n>+ completion?()\n>+ }\n>+ }\n>+ }\n>+ }\n>+ }\n>+ }\n>+\n>+ @objc public func start() {\n>+ sessionQueue.async {\n>+ if !self.isSessionRunning && self.isConfigured {\n>+ switch self.setupResult {\n>+ case .success:\n>+ self.addObservers()\n>+ self.session.startRunning()\n>+ print(\"CAMERA RUNNING\")\n>+ self.isSessionRunning = self.session.isRunning\n>+\n>+ if self.session.isRunning {\n>+ DispatchQueue.main.async {\n>+ self.isCameraButtonDisabled = false\n>+ self.isCameraUnavailable = false\n>+ }\n>+ }\n>+\n>+ case .notAuthorized:\n>+ print(\"Application not authorized to use camera\")\n>+ DispatchQueue.main.async {\n>+ self.isCameraButtonDisabled = true\n>+ self.isCameraUnavailable = true\n>+ }\n>+\n>+ case .configurationFailed:\n>+ DispatchQueue.main.async {\n>+ self.alertError = AlertError(title: \"Camera Error\", message: \"Camera configuration failed. Either your device camera is not available or other application is using it\", primaryButtonTitle: \"Accept\", secondaryButtonTitle: nil, primaryAction: nil, secondaryAction: nil)\n>+ self.shouldShowAlertView = true\n>+ self.isCameraButtonDisabled = true\n>+ self.isCameraUnavailable = true\n>+ }\n>+ }\n>+ }\n>+ }\n>+ }\n>+\n>+ public func set(zoom: CGFloat) {\n>+ let factor = zoom < 1 ? 1 : zoom\n>+ let device = self.videoDeviceInput.device\n>+\n>+ do {\n>+ try device.lockForConfiguration()\n>+ device.videoZoomFactor = factor\n>+ device.unlockForConfiguration()\n>+ }\n>+ catch {\n>+ print(error.localizedDescription)\n>+ }\n>+ }\n>+\n>+ public func capturePhoto() {\n>+ if self.setupResult != .configurationFailed {\n>+ let videoPreviewLayerOrientation: AVCaptureVideoOrientation = .portrait\n>+ self.isCameraButtonDisabled = true\n>+\n>+ sessionQueue.async {\n>+ if let photoOutputConnection = self.photoOutput.connection(with: .video) {\n>+ photoOutputConnection.videoOrientation = videoPreviewLayerOrientation\n>+ }\n>+ var photoSettings = AVCapturePhotoSettings()\n>+\n>+ // Capture HEIF photos when supported. Enable according to user settings and high-resolution photos.\n>+ if (self.photoOutput.availablePhotoCodecTypes.contains(.hevc)) {\n>+ photoSettings = AVCapturePhotoSettings(format: [AVVideoCodecKey: AVVideoCodecType.hevc])\n>+ }\n>+\n>+ if self.videoDeviceInput.device.isFlashAvailable {\n>+ photoSettings.flashMode = self.flashMode\n>+ }\n>+\n>+ if !photoSettings.__availablePreviewPhotoPixelFormatTypes.isEmpty {\n>+ photoSettings.previewPhotoFormat = [kCVPixelBufferPixelFormatTypeKey as String: photoSettings.__availablePreviewPhotoPixelFormatTypes.first!]\n>+ }\n>+\n>+ photoSettings.photoQualityPrioritization = .speed\n>+\n>+ if self.photoCaptureProcessor == nil {\n>+ self.photoCaptureProcessor = PhotoCaptureProcessor(with: photoSettings, photoOutput: self.photoOutput, willCapturePhotoAnimation: {\n>+ DispatchQueue.main.async {\n>+ self.willCapturePhoto.toggle()\n>+ self.willCapturePhoto.toggle()\n>+ }\n>+ }, completionHandler: { (photoCaptureProcessor) in\n>+ if let data = photoCaptureProcessor.photoData {\n>+ let url = self.savePhoto(data: data)\n>+ if let unwrappedURL = url {\n>+ self.thumbnail = Thumbnail(type: .image, url: unwrappedURL)\n>+ }\n>+ } else {\n>+ print(\"Data for photo not found\")\n>+ }\n>+\n>+ self.isCameraButtonDisabled = false\n>+ }, photoProcessingHandler: { animate in\n>+ self.isPhotoProcessing = animate\n>+ })\n>+ }\n>+\n>+ self.photoCaptureProcessor?.capturePhoto(settings: photoSettings)\n>+ }\n>+ }\n>+ }\n>+\n>+ public func startRecording() {\n>+ if self.setupResult != .configurationFailed {\n>+ let videoPreviewLayerOrientation: AVCaptureVideoOrientation = .portrait\n>+ self.isCameraButtonDisabled = true\n>+\n>+ sessionQueue.async {\n>+ if let videoOutputConnection = self.movieOutput.connection(with: .video) {\n>+ videoOutputConnection.videoOrientation = videoPreviewLayerOrientation\n>+\n>+ var videoSettings = [String: Any]()\n>+\n>+ if self.movieOutput.availableVideoCodecTypes.contains(.hevc) == true {\n>+ videoSettings[AVVideoCodecKey] = AVVideoCodecType.hevc\n>+ self.movieOutput.setOutputSettings(videoSettings, for: videoOutputConnection)\n>+ }\n>+ }\n>+\n>+ if self.videoCaptureProcessor == nil {\n>+ self.videoCaptureProcessor = VideoCaptureProcessor(movieOutput: self.movieOutput, beginHandler: {\n>+ self.isRecording = true\n>+ }, completionHandler: { (videoCaptureProcessor, outputFileURL) in\n>+ self.isCameraButtonDisabled = false\n>+ self.captureMode = .image\n>+\n>+ self.mediaItems.append(MediaItem(url: outputFileURL, type: .video))\n>+ self.thumbnail = Thumbnail(type: .video, url: outputFileURL)\n>+ }, videoProcessingHandler: { animate in\n>+ self.isPhotoProcessing = animate\n>+ })\n>+ }\n>+\n>+ self.videoCaptureProcessor?.startCapture(session: self.session)\n>+ }\n>+ }\n>+ }\n>+\n>+ func stopRecording() {\n>+ if let videoCaptureProcessor = self.videoCaptureProcessor {\n>+ isRecording = false\n>+ videoCaptureProcessor.stopCapture()\n>+ }\n>+ }\n>+\n>+ func savePhoto(imageType: String = \"jpeg\", data: Data) -> URL? {\n>+ guard let uiImage = UIImage(data: data) else {\n>+ print(\"Error converting media data to UIImage\")\n>+ return nil\n>+ }\n>+\n>+ guard let compressedData = uiImage.jpegData(compressionQuality: 0.8) else {\n>+ print(\"Error converting UIImage to JPEG data\")\n>+ return nil\n>+ }\n>+\n>+ let temporaryDirectory = NSTemporaryDirectory()\n>+ let tempFileName = \"\\(UUID().uuidString).\\(imageType)\"\n>+ let tempFileURL = URL(fileURLWithPath: temporaryDirectory).appendingPathComponent(tempFileName)\n>+\n>+ do {\n>+ try compressedData.write(to: tempFileURL)\n>+ self.mediaItems.append(MediaItem(url: tempFileURL, type: .image))\n>+ return tempFileURL\n>+ } catch {\n>+ print(\"Error saving image data to temporary URL: \\(error.localizedDescription)\")\n>+ }\n>+ return nil\n>+ }\n>+\n>+ private func addObservers() {\n>+ let systemPressureStateObservation = observe(\\.videoDeviceInput.device.systemPressureState, options: .new) { _, change in\n>+ guard let systemPressureState = change.newValue else { return }\n>+ self.setRecommendedFrameRateRangeForPressureState(systemPressureState: systemPressureState)\n>+ }\n>+ keyValueObservations.append(systemPressureStateObservation)\n>+\n>+// NotificationCenter.default.addObserver(self, selector: #selector(self.onOrientationChange), name: UIDevice.orientationDidChangeNotification, object: nil)\n>+\n>+ NotificationCenter.default.addObserver(self,\n>+ selector: #selector(subjectAreaDidChange),\n>+ name: .AVCaptureDeviceSubjectAreaDidChange,\n>+ object: videoDeviceInput.device)\n>+\n>+ NotificationCenter.default.addObserver(self, selector: #selector(uiRequestedNewFocusArea), name: .init(rawValue: \"UserDidRequestNewFocusPoint\"), object: nil)\n>+\n>+ NotificationCenter.default.addObserver(self,\n>+ selector: #selector(sessionRuntimeError),\n>+ name: .AVCaptureSessionRuntimeError,\n>+ object: session)\n>+\n>+ NotificationCenter.default.addObserver(self,\n>+ selector: #selector(sessionWasInterrupted),\n>+ name: .AVCaptureSessionWasInterrupted,\n>+ object: session)\n>+\n>+ NotificationCenter.default.addObserver(self,\n>+ selector: #selector(sessionInterruptionEnded),\n>+ name: .AVCaptureSessionInterruptionEnded,\n>+ object: session)\n>+ }\n>+\n>+ private func removeObservers() {\n>+ NotificationCenter.default.removeObserver(self)\n>+\n>+ for keyValueObservation in keyValueObservations {\n>+ keyValueObservation.invalidate()\n>+ }\n>+ keyValueObservations.removeAll()\n>+ }\n>+\n>+ @objc private func uiRequestedNewFocusArea(notification: NSNotification) {\n>+ guard let userInfo = notification.userInfo as? [String: Any], let devicePoint = userInfo[\"devicePoint\"] as? CGPoint else { return }\n>+ self.focus(at: devicePoint)\n>+ }\n>+\n>+ @objc\n>+ private func subjectAreaDidChange(notification: NSNotification) {\n>+ let devicePoint = CGPoint(x: 0.5, y: 0.5)\n>+ focus(with: .continuousAutoFocus, exposureMode: .continuousAutoExposure, at: devicePoint, monitorSubjectAreaChange: false)\n>+ }\n>+\n>+ @objc\n>+ private func sessionRuntimeError(notification: NSNotification) {\n>+ guard let error = notification.userInfo?[AVCaptureSessionErrorKey] as? AVError else { return }\n>+\n>+ print(\"Capture session runtime error: \\(error)\")\n>+\n>+ if error.code == .mediaServicesWereReset {\n>+ sessionQueue.async {\n>+ if self.isSessionRunning {\n>+ self.session.startRunning()\n>+ self.isSessionRunning = self.session.isRunning\n>+ }\n>+ }\n>+ }\n>+ }\n>+\n>+ private func setRecommendedFrameRateRangeForPressureState(systemPressureState: AVCaptureDevice.SystemPressureState) {\n>+ let pressureLevel = systemPressureState.level\n>+ if pressureLevel == .serious || pressureLevel == .critical {\n>+ do {\n>+ try self.videoDeviceInput.device.lockForConfiguration()\n>+ print(\"WARNING: Reached elevated system pressure level: \\(pressureLevel). Throttling frame rate.\")\n>+ self.videoDeviceInput.device.activeVideoMinFrameDuration = CMTime(value: 1, timescale: 20)\n>+ self.videoDeviceInput.device.activeVideoMaxFrameDuration = CMTime(value: 1, timescale: 15)\n>+ self.videoDeviceInput.device.unlockForConfiguration()\n>+ } catch {\n>+ print(\"Could not lock device for configuration: \\(error)\")\n>+ }\n>+ } else if pressureLevel == .shutdown {\n>+ print(\"Session stopped running due to shutdown system pressure level.\")\n>+ }\n>+ }\n>+\n>+ @objc\n>+ private func sessionWasInterrupted(notification: NSNotification) {\n>+ DispatchQueue.main.async {\n>+ self.isCameraUnavailable = true\n>+ }\n>+\n>+ if let userInfoValue = notification.userInfo?[AVCaptureSessionInterruptionReasonKey] as AnyObject?,\n>+ let reasonIntegerValue = userInfoValue.integerValue,\n>+ let reason = AVCaptureSession.InterruptionReason(rawValue: reasonIntegerValue) {\n>+ print(\"Capture session was interrupted with reason \\(reason)\")\n>+\n>+ if reason == .audioDeviceInUseByAnotherClient || reason == .videoDeviceInUseByAnotherClient {\n>+ print(\"Session stopped running due to video devies in use by another client.\")\n>+ } else if reason == .videoDeviceNotAvailableWithMultipleForegroundApps {\n>+ print(\"Session stopped running due to video devies is not available with multiple foreground apps.\")\n>+ } else if reason == .videoDeviceNotAvailableDueToSystemPressure {\n>+ print(\"Session stopped running due to shutdown system pressure level.\")\n>+ }\n>+ }\n>+ }\n>+\n>+ @objc\n>+ private func sessionInterruptionEnded(notification: NSNotification) {\n>+ print(\"Capture session interruption ended\")\n>+ DispatchQueue.main.async {\n>+ self.isCameraUnavailable = false\n>+ }\n>+ }\n>+}\n>\n" + } + }, + { + "issue": { + "url": "https://api.github.com/repos/damus-io/damus/issues/1254", + "repository_url": "https://api.github.com/repos/damus-io/damus", + "labels_url": "https://api.github.com/repos/damus-io/damus/issues/1254/labels{/name}", + "comments_url": "https://api.github.com/repos/damus-io/damus/issues/1254/comments", + "events_url": "https://api.github.com/repos/damus-io/damus/issues/1254/events", + "html_url": "https://github.com/damus-io/damus/pull/1254", + "id": 1743062441, + "node_id": "PR_kwDOHHF5A85SQ2Ff", + "number": 1254, + "title": "Redesign In-App Camera.", + "user": { + "login": "suhailsaqan", + "id": 43693074, + "node_id": "MDQ6VXNlcjQzNjkzMDc0", + "avatar_url": "https://avatars.githubusercontent.com/u/43693074?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/suhailsaqan", + "html_url": "https://github.com/suhailsaqan", + "followers_url": "https://api.github.com/users/suhailsaqan/followers", + "following_url": "https://api.github.com/users/suhailsaqan/following{/other_user}", + "gists_url": "https://api.github.com/users/suhailsaqan/gists{/gist_id}", + "starred_url": "https://api.github.com/users/suhailsaqan/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/suhailsaqan/subscriptions", + "organizations_url": "https://api.github.com/users/suhailsaqan/orgs", + "repos_url": "https://api.github.com/users/suhailsaqan/repos", + "events_url": "https://api.github.com/users/suhailsaqan/events{/privacy}", + "received_events_url": "https://api.github.com/users/suhailsaqan/received_events", + "type": "User", + "site_admin": false + }, + "labels": [], + "state": "open", + "locked": false, + "assignee": null, + "assignees": [], + "milestone": null, + "comments": 19, "created_at": "2023-06-06T04:30:22Z", - "updated_at": "2024-03-13T22:26:22Z", + "updated_at": "2024-03-20T11:35:03Z", "closed_at": null, "author_association": "MEMBER", "active_lock_reason": null, @@ -306717,9 +315564,9 @@ }, "comment": { "user": "jb55", - "created_at": "2023-10-08T09:04:06Z", - "updated_at": "2023-10-08T09:04:06Z", - "body": "re: [PATCH damus 3/6] add CameraModel and CameraService for interacting with the camera\n\nLooks complicated and I have no idea what all this is for because there are no commit descriptions but I'll merge it for now.\n\nReviewed-by: William Casarin ***@***.***>\n\nOn Tue, Sep 19, 2023 at 01:33:41PM -0700, Suhail Saqan wrote:\n>Closes: https://github.com/damus-io/damus/pull/1254\n>---\n> damus.xcodeproj/project.pbxproj | 12 +\n> damus/Models/Camera/CameraModel.swift | 122 +++\n> .../Camera/CameraService+Extensions.swift | 32 +\n> damus/Models/Camera/CameraService.swift | 693 ++++++++++++++++++\n> 4 files changed, 859 insertions(+)\n> create mode 100644 damus/Models/Camera/CameraModel.swift\n> create mode 100644 damus/Models/Camera/CameraService+Extensions.swift\n> create mode 100644 damus/Models/Camera/CameraService.swift\n>\n>diff --git a/damus.xcodeproj/project.pbxproj b/damus.xcodeproj/project.pbxproj\n>index 18e32e922..b5b5bf6c9 100644\n>--- a/damus.xcodeproj/project.pbxproj\n>+++ b/damus.xcodeproj/project.pbxproj\n>@@ -380,6 +380,9 @@\n> \t\tBA37598A2ABCCDE40018D73B /* ImageResizer.swift in Sources */ = {isa = PBXBuildFile; fileRef = BA3759892ABCCDE30018D73B /* ImageResizer.swift */; };\n> \t\tBA37598D2ABCCE500018D73B /* PhotoCaptureProcessor.swift in Sources */ = {isa = PBXBuildFile; fileRef = BA37598B2ABCCE500018D73B /* PhotoCaptureProcessor.swift */; };\n> \t\tBA37598E2ABCCE500018D73B /* VideoCaptureProcessor.swift in Sources */ = {isa = PBXBuildFile; fileRef = BA37598C2ABCCE500018D73B /* VideoCaptureProcessor.swift */; };\n>+\t\tBA3759922ABCCEBA0018D73B /* CameraService+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = BA37598F2ABCCEBA0018D73B /* CameraService+Extensions.swift */; };\n>+\t\tBA3759932ABCCEBA0018D73B /* CameraModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = BA3759902ABCCEBA0018D73B /* CameraModel.swift */; };\n>+\t\tBA3759942ABCCEBA0018D73B /* CameraService.swift in Sources */ = {isa = PBXBuildFile; fileRef = BA3759912ABCCEBA0018D73B /* CameraService.swift */; };\n> \t\tBA4AB0AE2A63B9270070A32A /* AddEmojiView.swift in Sources */ = {isa = PBXBuildFile; fileRef = BA4AB0AD2A63B9270070A32A /* AddEmojiView.swift */; };\n> \t\tBA4AB0B02A63B94D0070A32A /* EmojiListItemView.swift in Sources */ = {isa = PBXBuildFile; fileRef = BA4AB0AF2A63B94D0070A32A /* EmojiListItemView.swift */; };\n> \t\tBA693074295D649800ADDB87 /* UserSettingsStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = BA693073295D649800ADDB87 /* UserSettingsStore.swift */; };\n>@@ -934,6 +937,9 @@\n> \t\tBA3759892ABCCDE30018D73B /* ImageResizer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ImageResizer.swift; sourceTree = \"<group>\"; };\n> \t\tBA37598B2ABCCE500018D73B /* PhotoCaptureProcessor.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PhotoCaptureProcessor.swift; sourceTree = \"<group>\"; };\n> \t\tBA37598C2ABCCE500018D73B /* VideoCaptureProcessor.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = VideoCaptureProcessor.swift; sourceTree = \"<group>\"; };\n>+\t\tBA37598F2ABCCEBA0018D73B /* CameraService+Extensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = \"CameraService+Extensions.swift\"; sourceTree = \"<group>\"; };\n>+\t\tBA3759902ABCCEBA0018D73B /* CameraModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CameraModel.swift; sourceTree = \"<group>\"; };\n>+\t\tBA3759912ABCCEBA0018D73B /* CameraService.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CameraService.swift; sourceTree = \"<group>\"; };\n> \t\tBA4AB0AD2A63B9270070A32A /* AddEmojiView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AddEmojiView.swift; sourceTree = \"<group>\"; };\n> \t\tBA4AB0AF2A63B94D0070A32A /* EmojiListItemView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EmojiListItemView.swift; sourceTree = \"<group>\"; };\n> \t\tBA693073295D649800ADDB87 /* UserSettingsStore.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserSettingsStore.swift; sourceTree = \"<group>\"; };\n>@@ -1870,6 +1876,9 @@\n> \t\tBA3759882ABCCDE30018D73B /* Camera */ = {\n> \t\t\tisa = PBXGroup;\n> \t\t\tchildren = (\n>+\t\t\t\tBA3759902ABCCEBA0018D73B /* CameraModel.swift */,\n>+\t\t\t\tBA3759912ABCCEBA0018D73B /* CameraService.swift */,\n>+\t\t\t\tBA37598F2ABCCEBA0018D73B /* CameraService+Extensions.swift */,\n> \t\t\t\tBA3759892ABCCDE30018D73B /* ImageResizer.swift */,\n> \t\t\t\tBA37598B2ABCCE500018D73B /* PhotoCaptureProcessor.swift */,\n> \t\t\t\tBA37598C2ABCCE500018D73B /* VideoCaptureProcessor.swift */,\n>@@ -2204,6 +2213,7 @@\n> \t\t\t\t4C363A8428233689006E126D /* Parser.swift in Sources */,\n> \t\t\t\t3AAA95CA298DF87B00F3D526 /* TranslationService.swift in Sources */,\n> \t\t\t\t4CE4F9E328528C5200C00DD9 /* AddRelayView.swift in Sources */,\n>+\t\t\t\tBA3759922ABCCEBA0018D73B /* CameraService+Extensions.swift in Sources */,\n> \t\t\t\t4C363A9A28283854006E126D /* Reply.swift in Sources */,\n> \t\t\t\tBA693074295D649800ADDB87 /* UserSettingsStore.swift in Sources */,\n> \t\t\t\t4CFF8F6729CC9E3A008DB934 /* ImageView.swift in Sources */,\n>@@ -2240,6 +2250,7 @@\n> \t\t\t\t4C198DF529F88D2E004C165C /* ImageMetadata.swift in Sources */,\n> \t\t\t\t4CCEB7AE29B53D260078AA28 /* SearchingEventView.swift in Sources */,\n> \t\t\t\t4CF0ABE929844AF100D66079 /* AnyCodable.swift in Sources */,\n>+\t\t\t\tBA3759932ABCCEBA0018D73B /* CameraModel.swift in Sources */,\n> \t\t\t\t4C0A3F8F280F640A000448DE /* ThreadModel.swift in Sources */,\n> \t\t\t\t4C3AC79F2833115300E1F516 /* FollowButtonView.swift in Sources */,\n> \t\t\t\t4C4E137B2A76D5FB00BDD832 /* MuteThreadNotify.swift in Sources */,\n>@@ -2339,6 +2350,7 @@\n> \t\t\t\t4C5F9114283D694D0052CD1C /* FollowTarget.swift in Sources */,\n> \t\t\t\t4CF0ABD629817F5B00D66079 /* ReportView.swift in Sources */,\n> \t\t\t\t4C1A9A2729DDE31900516EAC /* TranslationSettingsView.swift in Sources */,\n>+\t\t\t\tBA3759942ABCCEBA0018D73B /* CameraService.swift in Sources */,\n> \t\t\t\t4CB8838629656C8B00DC99E7 /* NIP05.swift in Sources */,\n> \t\t\t\t4CF0ABD82981980C00D66079 /* Lists.swift in Sources */,\n> \t\t\t\tF71694EA2A662232001F4053 /* SuggestedUsersView.swift in Sources */,\n>diff --git a/damus/Models/Camera/CameraModel.swift b/damus/Models/Camera/CameraModel.swift\n>new file mode 100644\n>index 000000000..73def5730\n>--- /dev/null\n>+++ b/damus/Models/Camera/CameraModel.swift\n>@@ -0,0 +1,122 @@\n>+//\n>+// CameraModel.swift\n>+// damus\n>+//\n>+// Created by Suhail Saqan on 8/5/23.\n>+//\n>+\n>+import Foundation\n>+import AVFoundation\n>+import Combine\n>+\n>+final class CameraModel: ObservableObject {\n>+ private let service = CameraService()\n>+\n>+ @Published var showAlertError = false\n>+\n>+ @Published var isFlashOn = false\n>+\n>+ @Published var willCapturePhoto = false\n>+\n>+ @Published var isCameraButtonDisabled = false\n>+\n>+ @Published var isPhotoProcessing = false\n>+\n>+ @Published var isRecording = false\n>+\n>+ @Published var captureMode: CameraMediaType = .image\n>+\n>+ @Published public var mediaItems: [MediaItem] = []\n>+\n>+ @Published var thumbnail: Thumbnail!\n>+\n>+ var alertError: AlertError!\n>+\n>+ var session: AVCaptureSession\n>+\n>+ private var subscriptions = Set<AnyCancellable>()\n>+\n>+ init() {\n>+ self.session = service.session\n>+\n>+ service.$shouldShowAlertView.sink { [weak self] (val) in\n>+ self?.alertError = self?.service.alertError\n>+ self?.showAlertError = val\n>+ }\n>+ .store(in: &self.subscriptions)\n>+\n>+ service.$flashMode.sink { [weak self] (mode) in\n>+ self?.isFlashOn = mode == .on\n>+ }\n>+ .store(in: &self.subscriptions)\n>+\n>+ service.$willCapturePhoto.sink { [weak self] (val) in\n>+ self?.willCapturePhoto = val\n>+ }\n>+ .store(in: &self.subscriptions)\n>+\n>+ service.$isCameraButtonDisabled.sink { [weak self] (val) in\n>+ self?.isCameraButtonDisabled = val\n>+ }\n>+ .store(in: &self.subscriptions)\n>+\n>+ service.$isPhotoProcessing.sink { [weak self] (val) in\n>+ self?.isPhotoProcessing = val\n>+ }\n>+ .store(in: &self.subscriptions)\n>+\n>+ service.$isRecording.sink { [weak self] (val) in\n>+ self?.isRecording = val\n>+ }\n>+ .store(in: &self.subscriptions)\n>+\n>+ service.$captureMode.sink { [weak self] (mode) in\n>+ self?.captureMode = mode\n>+ }\n>+ .store(in: &self.subscriptions)\n>+\n>+ service.$mediaItems.sink { [weak self] (mode) in\n>+ self?.mediaItems = mode\n>+ }\n>+ .store(in: &self.subscriptions)\n>+\n>+ service.$thumbnail.sink { [weak self] (thumbnail) in\n>+ guard let pic = thumbnail else { return }\n>+ self?.thumbnail = pic\n>+ }\n>+ .store(in: &self.subscriptions)\n>+ }\n>+\n>+ func configure() {\n>+ service.checkForPermissions()\n>+ service.configure()\n>+ }\n>+\n>+ func stop() {\n>+ service.stop()\n>+ }\n>+\n>+ func capturePhoto() {\n>+ service.capturePhoto()\n>+ }\n>+\n>+ func startRecording() {\n>+ service.startRecording()\n>+ }\n>+\n>+ func stopRecording() {\n>+ service.stopRecording()\n>+ }\n>+\n>+ func flipCamera() {\n>+ service.changeCamera()\n>+ }\n>+\n>+ func zoom(with factor: CGFloat) {\n>+ service.set(zoom: factor)\n>+ }\n>+\n>+ func switchFlash() {\n>+ service.flashMode = service.flashMode == .on ? .off : .on\n>+ }\n>+}\n>diff --git a/damus/Models/Camera/CameraService+Extensions.swift b/damus/Models/Camera/CameraService+Extensions.swift\n>new file mode 100644\n>index 000000000..2c31c4884\n>--- /dev/null\n>+++ b/damus/Models/Camera/CameraService+Extensions.swift\n>@@ -0,0 +1,32 @@\n>+//\n>+// CameraService+Extensions.swift\n>+// damus\n>+//\n>+// Created by Suhail Saqan on 8/5/23.\n>+//\n>+\n>+import Foundation\n>+import UIKit\n>+import AVFoundation\n>+\n>+extension AVCaptureVideoOrientation {\n>+ init?(deviceOrientation: UIDeviceOrientation) {\n>+ switch deviceOrientation {\n>+ case .portrait: self = .portrait\n>+ case .portraitUpsideDown: self = .portraitUpsideDown\n>+ case .landscapeLeft: self = .landscapeRight\n>+ case .landscapeRight: self = .landscapeLeft\n>+ default: return nil\n>+ }\n>+ }\n>+\n>+ init?(interfaceOrientation: UIInterfaceOrientation) {\n>+ switch interfaceOrientation {\n>+ case .portrait: self = .portrait\n>+ case .portraitUpsideDown: self = .portraitUpsideDown\n>+ case .landscapeLeft: self = .landscapeLeft\n>+ case .landscapeRight: self = .landscapeRight\n>+ default: return nil\n>+ }\n>+ }\n>+}\n>diff --git a/damus/Models/Camera/CameraService.swift b/damus/Models/Camera/CameraService.swift\n>new file mode 100644\n>index 000000000..e5a617163\n>--- /dev/null\n>+++ b/damus/Models/Camera/CameraService.swift\n>@@ -0,0 +1,693 @@\n>+//\n>+// CameraService.swift\n>+// Campus\n>+//\n>+// Created by Suhail Saqan on 8/5/23.\n>+//\n>+\n>+import Foundation\n>+import Combine\n>+import AVFoundation\n>+import Photos\n>+import UIKit\n>+\n>+public struct Thumbnail: Identifiable, Equatable {\n>+ public var id: String\n>+ public var type: CameraMediaType\n>+ public var url: URL\n>+\n>+ public init(id: String = UUID().uuidString, type: CameraMediaType, url: URL) {\n>+ self.id = id\n>+ self.type = type\n>+ self.url = url\n>+ }\n>+\n>+ public var thumbnailImage: UIImage? {\n>+ switch type {\n>+ case .image:\n>+ return ImageResizer(targetWidth: 100).resize(at: url)\n>+ case .video:\n>+ return generateVideoThumbnail(for: url)\n>+ }\n>+ }\n>+}\n>+\n>+public struct AlertError {\n>+ public var title: String = \"\"\n>+ public var message: String = \"\"\n>+ public var primaryButtonTitle = \"Accept\"\n>+ public var secondaryButtonTitle: String?\n>+ public var primaryAction: (() -> ())?\n>+ public var secondaryAction: (() -> ())?\n>+\n>+ public init(title: String = \"\", message: String = \"\", primaryButtonTitle: String = \"Accept\", secondaryButtonTitle: String? = nil, primaryAction: (() -> ())? = nil, secondaryAction: (() -> ())? = nil) {\n>+ self.title = title\n>+ self.message = message\n>+ self.primaryAction = primaryAction\n>+ self.primaryButtonTitle = primaryButtonTitle\n>+ self.secondaryAction = secondaryAction\n>+ }\n>+}\n>+\n>+func generateVideoThumbnail(for videoURL: URL) -> UIImage? {\n>+ let asset = AVAsset(url: videoURL)\n>+ let imageGenerator = AVAssetImageGenerator(asset: asset)\n>+ imageGenerator.appliesPreferredTrackTransform = true\n>+\n>+ do {\n>+ let cgImage = try imageGenerator.copyCGImage(at: .zero, actualTime: nil)\n>+ return UIImage(cgImage: cgImage)\n>+ } catch {\n>+ print(\"Error generating thumbnail: \\(error)\")\n>+ return nil\n>+ }\n>+}\n>+\n>+public enum CameraMediaType {\n>+ case image\n>+ case video\n>+}\n>+\n>+public struct MediaItem {\n>+ let url: URL\n>+ let type: CameraMediaType\n>+}\n>+\n>+public class CameraService: NSObject, Identifiable {\n>+ public let session = AVCaptureSession()\n>+\n>+ public var isSessionRunning = false\n>+ public var isConfigured = false\n>+ var setupResult: SessionSetupResult = .success\n>+\n>+ public var alertError: AlertError = AlertError()\n>+\n>+ @Published public var flashMode: AVCaptureDevice.FlashMode = .off\n>+ @Published public var shouldShowAlertView = false\n>+ @Published public var isPhotoProcessing = false\n>+ @Published public var captureMode: CameraMediaType = .image\n>+ @Published public var isRecording: Bool = false\n>+\n>+ @Published public var willCapturePhoto = false\n>+ @Published public var isCameraButtonDisabled = false\n>+ @Published public var isCameraUnavailable = false\n>+ @Published public var thumbnail: Thumbnail?\n>+ @Published public var mediaItems: [MediaItem] = []\n>+\n>+ public let sessionQueue = DispatchQueue(label: \"io.damus.camera\")\n>+\n>+ @objc dynamic public var videoDeviceInput: AVCaptureDeviceInput!\n>+ @objc dynamic public var audioDeviceInput: AVCaptureDeviceInput!\n>+\n>+ public let videoDeviceDiscoverySession = AVCaptureDevice.DiscoverySession(deviceTypes: [.builtInWideAngleCamera, .builtInDualCamera, .builtInTrueDepthCamera], mediaType: .video, position: .unspecified)\n>+\n>+ public let photoOutput = AVCapturePhotoOutput()\n>+\n>+ public let movieOutput = AVCaptureMovieFileOutput()\n>+\n>+ var videoCaptureProcessor: VideoCaptureProcessor?\n>+ var photoCaptureProcessor: PhotoCaptureProcessor?\n>+\n>+ public var keyValueObservations = [NSKeyValueObservation]()\n>+\n>+ override public init() {\n>+ super.init()\n>+\n>+ DispatchQueue.main.async {\n>+ self.isCameraButtonDisabled = true\n>+ self.isCameraUnavailable = true\n>+ }\n>+ }\n>+\n>+ enum SessionSetupResult {\n>+ case success\n>+ case notAuthorized\n>+ case configurationFailed\n>+ }\n>+\n>+ public func configure() {\n>+ if !self.isSessionRunning && !self.isConfigured {\n>+ sessionQueue.async {\n>+ self.configureSession()\n>+ }\n>+ }\n>+ }\n>+\n>+ public func checkForPermissions() {\n>+ switch AVCaptureDevice.authorizationStatus(for: .video) {\n>+ case .authorized:\n>+ break\n>+ case .notDetermined:\n>+ sessionQueue.suspend()\n>+ AVCaptureDevice.requestAccess(for: .video, completionHandler: { granted in\n>+ if !granted {\n>+ self.setupResult = .notAuthorized\n>+ }\n>+ self.sessionQueue.resume()\n>+ })\n>+\n>+ default:\n>+ setupResult = .notAuthorized\n>+\n>+ DispatchQueue.main.async {\n>+ self.alertError = AlertError(title: \"Camera Access\", message: \"Damus needs camera and microphone access. Enable in settings.\", primaryButtonTitle: \"Go to settings\", secondaryButtonTitle: nil, primaryAction: {\n>+ UIApplication.shared.open(URL(string: UIApplication.openSettingsURLString)!,\n>+ options: [:], completionHandler: nil)\n>+\n>+ }, secondaryAction: nil)\n>+ self.shouldShowAlertView = true\n>+ self.isCameraUnavailable = true\n>+ self.isCameraButtonDisabled = true\n>+ }\n>+ }\n>+ }\n>+\n>+ private func configureSession() {\n>+ if setupResult != .success {\n>+ return\n>+ }\n>+\n>+ session.beginConfiguration()\n>+\n>+ session.sessionPreset = .high\n>+\n>+ // Add video input.\n>+ do {\n>+ var defaultVideoDevice: AVCaptureDevice?\n>+\n>+ if let backCameraDevice = AVCaptureDevice.default(.builtInWideAngleCamera, for: .video, position: .back) {\n>+ // If a rear dual camera is not available, default to the rear wide angle camera.\n>+ defaultVideoDevice = backCameraDevice\n>+ } else if let frontCameraDevice = AVCaptureDevice.default(.builtInWideAngleCamera, for: .video, position: .front) {\n>+ // If the rear wide angle camera isn't available, default to the front wide angle camera.\n>+ defaultVideoDevice = frontCameraDevice\n>+ }\n>+\n>+ guard let videoDevice = defaultVideoDevice else {\n>+ print(\"Default video device is unavailable.\")\n>+ setupResult = .configurationFailed\n>+ session.commitConfiguration()\n>+ return\n>+ }\n>+\n>+ let videoDeviceInput = try AVCaptureDeviceInput(device: videoDevice)\n>+\n>+ if session.canAddInput(videoDeviceInput) {\n>+ session.addInput(videoDeviceInput)\n>+ self.videoDeviceInput = videoDeviceInput\n>+ } else {\n>+ print(\"Couldn't add video device input to the session.\")\n>+ setupResult = .configurationFailed\n>+ session.commitConfiguration()\n>+ return\n>+ }\n>+\n>+ let audioDevice = AVCaptureDevice.default(for: .audio)\n>+ let audioDeviceInput = try AVCaptureDeviceInput(device: audioDevice!)\n>+\n>+ if session.canAddInput(audioDeviceInput) {\n>+ session.addInput(audioDeviceInput)\n>+ self.audioDeviceInput = audioDeviceInput\n>+ } else {\n>+ print(\"Couldn't add audio device input to the session.\")\n>+ setupResult = .configurationFailed\n>+ session.commitConfiguration()\n>+ return\n>+ }\n>+\n>+ // Add video output\n>+ if session.canAddOutput(movieOutput) {\n>+ session.addOutput(movieOutput)\n>+ } else {\n>+ print(\"Could not add movie output to the session\")\n>+ setupResult = .configurationFailed\n>+ session.commitConfiguration()\n>+ return\n>+ }\n>+ } catch {\n>+ print(\"Couldn't create video device input: \\(error)\")\n>+ setupResult = .configurationFailed\n>+ session.commitConfiguration()\n>+ return\n>+ }\n>+\n>+ // Add the photo output.\n>+ if session.canAddOutput(photoOutput) {\n>+ session.addOutput(photoOutput)\n>+\n>+ photoOutput.maxPhotoQualityPrioritization = .quality\n>+\n>+ } else {\n>+ print(\"Could not add photo output to the session\")\n>+ setupResult = .configurationFailed\n>+ session.commitConfiguration()\n>+ return\n>+ }\n>+\n>+ session.commitConfiguration()\n>+ self.isConfigured = true\n>+\n>+ self.start()\n>+ }\n>+\n>+ private func resumeInterruptedSession() {\n>+ sessionQueue.async {\n>+ self.session.startRunning()\n>+ self.isSessionRunning = self.session.isRunning\n>+ if !self.session.isRunning {\n>+ DispatchQueue.main.async {\n>+ self.alertError = AlertError(title: \"Camera Error\", message: \"Unable to resume camera\", primaryButtonTitle: \"Accept\", secondaryButtonTitle: nil, primaryAction: nil, secondaryAction: nil)\n>+ self.shouldShowAlertView = true\n>+ self.isCameraUnavailable = true\n>+ self.isCameraButtonDisabled = true\n>+ }\n>+ } else {\n>+ DispatchQueue.main.async {\n>+ self.isCameraUnavailable = false\n>+ self.isCameraButtonDisabled = false\n>+ }\n>+ }\n>+ }\n>+ }\n>+\n>+ public func changeCamera() {\n>+ DispatchQueue.main.async {\n>+ self.isCameraButtonDisabled = true\n>+ }\n>+\n>+ sessionQueue.async {\n>+ let currentVideoDevice = self.videoDeviceInput.device\n>+ let currentPosition = currentVideoDevice.position\n>+\n>+ let preferredPosition: AVCaptureDevice.Position\n>+ let preferredDeviceType: AVCaptureDevice.DeviceType\n>+\n>+ switch currentPosition {\n>+ case .unspecified, .front:\n>+ preferredPosition = .back\n>+ preferredDeviceType = .builtInWideAngleCamera\n>+\n>+ case .back:\n>+ preferredPosition = .front\n>+ preferredDeviceType = .builtInWideAngleCamera\n>+\n>+ @unknown default:\n>+ print(\"Unknown capture position. Defaulting to back, dual-camera.\")\n>+ preferredPosition = .back\n>+ preferredDeviceType = .builtInWideAngleCamera\n>+ }\n>+ let devices = self.videoDeviceDiscoverySession.devices\n>+ var newVideoDevice: AVCaptureDevice? = nil\n>+\n>+ if let device = devices.first(where: { $0.position == preferredPosition && $0.deviceType == preferredDeviceType }) {\n>+ newVideoDevice = device\n>+ } else if let device = devices.first(where: { $0.position == preferredPosition }) {\n>+ newVideoDevice = device\n>+ }\n>+\n>+ if let videoDevice = newVideoDevice {\n>+ do {\n>+ let videoDeviceInput = try AVCaptureDeviceInput(device: videoDevice)\n>+\n>+ self.session.beginConfiguration()\n>+\n>+ self.session.removeInput(self.videoDeviceInput)\n>+\n>+ if self.session.canAddInput(videoDeviceInput) {\n>+ NotificationCenter.default.removeObserver(self, name: .AVCaptureDeviceSubjectAreaDidChange, object: currentVideoDevice)\n>+ NotificationCenter.default.addObserver(self, selector: #selector(self.subjectAreaDidChange), name: .AVCaptureDeviceSubjectAreaDidChange, object: videoDeviceInput.device)\n>+\n>+ self.session.addInput(videoDeviceInput)\n>+ self.videoDeviceInput = videoDeviceInput\n>+ } else {\n>+ self.session.addInput(self.videoDeviceInput)\n>+ }\n>+\n>+ if let connection = self.photoOutput.connection(with: .video) {\n>+ if connection.isVideoStabilizationSupported {\n>+ connection.preferredVideoStabilizationMode = .auto\n>+ }\n>+ }\n>+\n>+ self.photoOutput.maxPhotoQualityPrioritization = .quality\n>+\n>+ self.session.commitConfiguration()\n>+ } catch {\n>+ print(\"Error occurred while creating video device input: \\(error)\")\n>+ }\n>+ }\n>+\n>+ DispatchQueue.main.async {\n>+ self.isCameraButtonDisabled = false\n>+ }\n>+ }\n>+ }\n>+\n>+ public func focus(with focusMode: AVCaptureDevice.FocusMode, exposureMode: AVCaptureDevice.ExposureMode, at devicePoint: CGPoint, monitorSubjectAreaChange: Bool) {\n>+ sessionQueue.async {\n>+ guard let device = self.videoDeviceInput?.device else { return }\n>+ do {\n>+ try device.lockForConfiguration()\n>+\n>+ if device.isFocusPointOfInterestSupported && device.isFocusModeSupported(focusMode) {\n>+ device.focusPointOfInterest = devicePoint\n>+ device.focusMode = focusMode\n>+ }\n>+\n>+ if device.isExposurePointOfInterestSupported && device.isExposureModeSupported(exposureMode) {\n>+ device.exposurePointOfInterest = devicePoint\n>+ device.exposureMode = exposureMode\n>+ }\n>+\n>+ device.isSubjectAreaChangeMonitoringEnabled = monitorSubjectAreaChange\n>+ device.unlockForConfiguration()\n>+ } catch {\n>+ print(\"Could not lock device for configuration: \\(error)\")\n>+ }\n>+ }\n>+ }\n>+\n>+\n>+ public func focus(at focusPoint: CGPoint) {\n>+ let device = self.videoDeviceInput.device\n>+ do {\n>+ try device.lockForConfiguration()\n>+ if device.isFocusPointOfInterestSupported {\n>+ device.focusPointOfInterest = focusPoint\n>+ device.exposurePointOfInterest = focusPoint\n>+ device.exposureMode = .continuousAutoExposure\n>+ device.focusMode = .continuousAutoFocus\n>+ device.unlockForConfiguration()\n>+ }\n>+ }\n>+ catch {\n>+ print(error.localizedDescription)\n>+ }\n>+ }\n>+\n>+ @objc public func stop(completion: (() -> ())? = nil) {\n>+ sessionQueue.async {\n>+ if self.isSessionRunning {\n>+ if self.setupResult == .success {\n>+ self.session.stopRunning()\n>+ self.isSessionRunning = self.session.isRunning\n>+ print(\"CAMERA STOPPED\")\n>+ self.removeObservers()\n>+\n>+ if !self.session.isRunning {\n>+ DispatchQueue.main.async {\n>+ self.isCameraButtonDisabled = true\n>+ self.isCameraUnavailable = true\n>+ completion?()\n>+ }\n>+ }\n>+ }\n>+ }\n>+ }\n>+ }\n>+\n>+ @objc public func start() {\n>+ sessionQueue.async {\n>+ if !self.isSessionRunning && self.isConfigured {\n>+ switch self.setupResult {\n>+ case .success:\n>+ self.addObservers()\n>+ self.session.startRunning()\n>+ print(\"CAMERA RUNNING\")\n>+ self.isSessionRunning = self.session.isRunning\n>+\n>+ if self.session.isRunning {\n>+ DispatchQueue.main.async {\n>+ self.isCameraButtonDisabled = false\n>+ self.isCameraUnavailable = false\n>+ }\n>+ }\n>+\n>+ case .notAuthorized:\n>+ print(\"Application not authorized to use camera\")\n>+ DispatchQueue.main.async {\n>+ self.isCameraButtonDisabled = true\n>+ self.isCameraUnavailable = true\n>+ }\n>+\n>+ case .configurationFailed:\n>+ DispatchQueue.main.async {\n>+ self.alertError = AlertError(title: \"Camera Error\", message: \"Camera configuration failed. Either your device camera is not available or other application is using it\", primaryButtonTitle: \"Accept\", secondaryButtonTitle: nil, primaryAction: nil, secondaryAction: nil)\n>+ self.shouldShowAlertView = true\n>+ self.isCameraButtonDisabled = true\n>+ self.isCameraUnavailable = true\n>+ }\n>+ }\n>+ }\n>+ }\n>+ }\n>+\n>+ public func set(zoom: CGFloat) {\n>+ let factor = zoom < 1 ? 1 : zoom\n>+ let device = self.videoDeviceInput.device\n>+\n>+ do {\n>+ try device.lockForConfiguration()\n>+ device.videoZoomFactor = factor\n>+ device.unlockForConfiguration()\n>+ }\n>+ catch {\n>+ print(error.localizedDescription)\n>+ }\n>+ }\n>+\n>+ public func capturePhoto() {\n>+ if self.setupResult != .configurationFailed {\n>+ let videoPreviewLayerOrientation: AVCaptureVideoOrientation = .portrait\n>+ self.isCameraButtonDisabled = true\n>+\n>+ sessionQueue.async {\n>+ if let photoOutputConnection = self.photoOutput.connection(with: .video) {\n>+ photoOutputConnection.videoOrientation = videoPreviewLayerOrientation\n>+ }\n>+ var photoSettings = AVCapturePhotoSettings()\n>+\n>+ // Capture HEIF photos when supported. Enable according to user settings and high-resolution photos.\n>+ if (self.photoOutput.availablePhotoCodecTypes.contains(.hevc)) {\n>+ photoSettings = AVCapturePhotoSettings(format: [AVVideoCodecKey: AVVideoCodecType.hevc])\n>+ }\n>+\n>+ if self.videoDeviceInput.device.isFlashAvailable {\n>+ photoSettings.flashMode = self.flashMode\n>+ }\n>+\n>+ if !photoSettings.__availablePreviewPhotoPixelFormatTypes.isEmpty {\n>+ photoSettings.previewPhotoFormat = [kCVPixelBufferPixelFormatTypeKey as String: photoSettings.__availablePreviewPhotoPixelFormatTypes.first!]\n>+ }\n>+\n>+ photoSettings.photoQualityPrioritization = .speed\n>+\n>+ if self.photoCaptureProcessor == nil {\n>+ self.photoCaptureProcessor = PhotoCaptureProcessor(with: photoSettings, photoOutput: self.photoOutput, willCapturePhotoAnimation: {\n>+ DispatchQueue.main.async {\n>+ self.willCapturePhoto.toggle()\n>+ self.willCapturePhoto.toggle()\n>+ }\n>+ }, completionHandler: { (photoCaptureProcessor) in\n>+ if let data = photoCaptureProcessor.photoData {\n>+ let url = self.savePhoto(data: data)\n>+ if let unwrappedURL = url {\n>+ self.thumbnail = Thumbnail(type: .image, url: unwrappedURL)\n>+ }\n>+ } else {\n>+ print(\"Data for photo not found\")\n>+ }\n>+\n>+ self.isCameraButtonDisabled = false\n>+ }, photoProcessingHandler: { animate in\n>+ self.isPhotoProcessing = animate\n>+ })\n>+ }\n>+\n>+ self.photoCaptureProcessor?.capturePhoto(settings: photoSettings)\n>+ }\n>+ }\n>+ }\n>+\n>+ public func startRecording() {\n>+ if self.setupResult != .configurationFailed {\n>+ let videoPreviewLayerOrientation: AVCaptureVideoOrientation = .portrait\n>+ self.isCameraButtonDisabled = true\n>+\n>+ sessionQueue.async {\n>+ if let videoOutputConnection = self.movieOutput.connection(with: .video) {\n>+ videoOutputConnection.videoOrientation = videoPreviewLayerOrientation\n>+\n>+ var videoSettings = [String: Any]()\n>+\n>+ if self.movieOutput.availableVideoCodecTypes.contains(.hevc) == true {\n>+ videoSettings[AVVideoCodecKey] = AVVideoCodecType.hevc\n>+ self.movieOutput.setOutputSettings(videoSettings, for: videoOutputConnection)\n>+ }\n>+ }\n>+\n>+ if self.videoCaptureProcessor == nil {\n>+ self.videoCaptureProcessor = VideoCaptureProcessor(movieOutput: self.movieOutput, beginHandler: {\n>+ self.isRecording = true\n>+ }, completionHandler: { (videoCaptureProcessor, outputFileURL) in\n>+ self.isCameraButtonDisabled = false\n>+ self.captureMode = .image\n>+\n>+ self.mediaItems.append(MediaItem(url: outputFileURL, type: .video))\n>+ self.thumbnail = Thumbnail(type: .video, url: outputFileURL)\n>+ }, videoProcessingHandler: { animate in\n>+ self.isPhotoProcessing = animate\n>+ })\n>+ }\n>+\n>+ self.videoCaptureProcessor?.startCapture(session: self.session)\n>+ }\n>+ }\n>+ }\n>+\n>+ func stopRecording() {\n>+ if let videoCaptureProcessor = self.videoCaptureProcessor {\n>+ isRecording = false\n>+ videoCaptureProcessor.stopCapture()\n>+ }\n>+ }\n>+\n>+ func savePhoto(imageType: String = \"jpeg\", data: Data) -> URL? {\n>+ guard let uiImage = UIImage(data: data) else {\n>+ print(\"Error converting media data to UIImage\")\n>+ return nil\n>+ }\n>+\n>+ guard let compressedData = uiImage.jpegData(compressionQuality: 0.8) else {\n>+ print(\"Error converting UIImage to JPEG data\")\n>+ return nil\n>+ }\n>+\n>+ let temporaryDirectory = NSTemporaryDirectory()\n>+ let tempFileName = \"\\(UUID().uuidString).\\(imageType)\"\n>+ let tempFileURL = URL(fileURLWithPath: temporaryDirectory).appendingPathComponent(tempFileName)\n>+\n>+ do {\n>+ try compressedData.write(to: tempFileURL)\n>+ self.mediaItems.append(MediaItem(url: tempFileURL, type: .image))\n>+ return tempFileURL\n>+ } catch {\n>+ print(\"Error saving image data to temporary URL: \\(error.localizedDescription)\")\n>+ }\n>+ return nil\n>+ }\n>+\n>+ private func addObservers() {\n>+ let systemPressureStateObservation = observe(\\.videoDeviceInput.device.systemPressureState, options: .new) { _, change in\n>+ guard let systemPressureState = change.newValue else { return }\n>+ self.setRecommendedFrameRateRangeForPressureState(systemPressureState: systemPressureState)\n>+ }\n>+ keyValueObservations.append(systemPressureStateObservation)\n>+\n>+// NotificationCenter.default.addObserver(self, selector: #selector(self.onOrientationChange), name: UIDevice.orientationDidChangeNotification, object: nil)\n>+\n>+ NotificationCenter.default.addObserver(self,\n>+ selector: #selector(subjectAreaDidChange),\n>+ name: .AVCaptureDeviceSubjectAreaDidChange,\n>+ object: videoDeviceInput.device)\n>+\n>+ NotificationCenter.default.addObserver(self, selector: #selector(uiRequestedNewFocusArea), name: .init(rawValue: \"UserDidRequestNewFocusPoint\"), object: nil)\n>+\n>+ NotificationCenter.default.addObserver(self,\n>+ selector: #selector(sessionRuntimeError),\n>+ name: .AVCaptureSessionRuntimeError,\n>+ object: session)\n>+\n>+ NotificationCenter.default.addObserver(self,\n>+ selector: #selector(sessionWasInterrupted),\n>+ name: .AVCaptureSessionWasInterrupted,\n>+ object: session)\n>+\n>+ NotificationCenter.default.addObserver(self,\n>+ selector: #selector(sessionInterruptionEnded),\n>+ name: .AVCaptureSessionInterruptionEnded,\n>+ object: session)\n>+ }\n>+\n>+ private func removeObservers() {\n>+ NotificationCenter.default.removeObserver(self)\n>+\n>+ for keyValueObservation in keyValueObservations {\n>+ keyValueObservation.invalidate()\n>+ }\n>+ keyValueObservations.removeAll()\n>+ }\n>+\n>+ @objc private func uiRequestedNewFocusArea(notification: NSNotification) {\n>+ guard let userInfo = notification.userInfo as? [String: Any], let devicePoint = userInfo[\"devicePoint\"] as? CGPoint else { return }\n>+ self.focus(at: devicePoint)\n>+ }\n>+\n>+ @objc\n>+ private func subjectAreaDidChange(notification: NSNotification) {\n>+ let devicePoint = CGPoint(x: 0.5, y: 0.5)\n>+ focus(with: .continuousAutoFocus, exposureMode: .continuousAutoExposure, at: devicePoint, monitorSubjectAreaChange: false)\n>+ }\n>+\n>+ @objc\n>+ private func sessionRuntimeError(notification: NSNotification) {\n>+ guard let error = notification.userInfo?[AVCaptureSessionErrorKey] as? AVError else { return }\n>+\n>+ print(\"Capture session runtime error: \\(error)\")\n>+\n>+ if error.code == .mediaServicesWereReset {\n>+ sessionQueue.async {\n>+ if self.isSessionRunning {\n>+ self.session.startRunning()\n>+ self.isSessionRunning = self.session.isRunning\n>+ }\n>+ }\n>+ }\n>+ }\n>+\n>+ private func setRecommendedFrameRateRangeForPressureState(systemPressureState: AVCaptureDevice.SystemPressureState) {\n>+ let pressureLevel = systemPressureState.level\n>+ if pressureLevel == .serious || pressureLevel == .critical {\n>+ do {\n>+ try self.videoDeviceInput.device.lockForConfiguration()\n>+ print(\"WARNING: Reached elevated system pressure level: \\(pressureLevel). Throttling frame rate.\")\n>+ self.videoDeviceInput.device.activeVideoMinFrameDuration = CMTime(value: 1, timescale: 20)\n>+ self.videoDeviceInput.device.activeVideoMaxFrameDuration = CMTime(value: 1, timescale: 15)\n>+ self.videoDeviceInput.device.unlockForConfiguration()\n>+ } catch {\n>+ print(\"Could not lock device for configuration: \\(error)\")\n>+ }\n>+ } else if pressureLevel == .shutdown {\n>+ print(\"Session stopped running due to shutdown system pressure level.\")\n>+ }\n>+ }\n>+\n>+ @objc\n>+ private func sessionWasInterrupted(notification: NSNotification) {\n>+ DispatchQueue.main.async {\n>+ self.isCameraUnavailable = true\n>+ }\n>+\n>+ if let userInfoValue = notification.userInfo?[AVCaptureSessionInterruptionReasonKey] as AnyObject?,\n>+ let reasonIntegerValue = userInfoValue.integerValue,\n>+ let reason = AVCaptureSession.InterruptionReason(rawValue: reasonIntegerValue) {\n>+ print(\"Capture session was interrupted with reason \\(reason)\")\n>+\n>+ if reason == .audioDeviceInUseByAnotherClient || reason == .videoDeviceInUseByAnotherClient {\n>+ print(\"Session stopped running due to video devies in use by another client.\")\n>+ } else if reason == .videoDeviceNotAvailableWithMultipleForegroundApps {\n>+ print(\"Session stopped running due to video devies is not available with multiple foreground apps.\")\n>+ } else if reason == .videoDeviceNotAvailableDueToSystemPressure {\n>+ print(\"Session stopped running due to shutdown system pressure level.\")\n>+ }\n>+ }\n>+ }\n>+\n>+ @objc\n>+ private func sessionInterruptionEnded(notification: NSNotification) {\n>+ print(\"Capture session interruption ended\")\n>+ DispatchQueue.main.async {\n>+ self.isCameraUnavailable = false\n>+ }\n>+ }\n>+}\n>\n" + "created_at": "2023-10-08T09:04:11Z", + "updated_at": "2023-10-08T09:04:11Z", + "body": "This is almost ready but\n\n\t\"change the camera view to the new custom camera\"\n\nJust needs rebased because I can't seem to apply the patch.\n\nlooks like due to conflicts in damus/Views/PostView.swift\n" } }, { @@ -306760,9 +315607,9 @@ "assignee": null, "assignees": [], "milestone": null, - "comments": 18, + "comments": 19, "created_at": "2023-06-06T04:30:22Z", - "updated_at": "2024-03-13T22:26:22Z", + "updated_at": "2024-03-20T11:35:03Z", "closed_at": null, "author_association": "MEMBER", "active_lock_reason": null, @@ -306793,9 +315640,9 @@ }, "comment": { "user": "jb55", - "created_at": "2023-10-08T09:04:11Z", - "updated_at": "2023-10-08T09:04:11Z", - "body": "This is almost ready but\n\n\t\"change the camera view to the new custom camera\"\n\nJust needs rebased because I can't seem to apply the patch.\n\nlooks like due to conflicts in damus/Views/PostView.swift\n" + "created_at": "2024-01-18T18:52:25Z", + "updated_at": "2024-01-18T18:52:25Z", + "body": "this is in the merge queue, I just haven't had a chance to test it yet." } }, { @@ -306836,9 +315683,9 @@ "assignee": null, "assignees": [], "milestone": null, - "comments": 18, + "comments": 19, "created_at": "2023-06-06T04:30:22Z", - "updated_at": "2024-03-13T22:26:22Z", + "updated_at": "2024-03-20T11:35:03Z", "closed_at": null, "author_association": "MEMBER", "active_lock_reason": null, @@ -306869,9 +315716,9 @@ }, "comment": { "user": "jb55", - "created_at": "2024-01-18T18:52:25Z", - "updated_at": "2024-01-18T18:52:25Z", - "body": "this is in the merge queue, I just haven't had a chance to test it yet." + "created_at": "2024-01-22T22:50:35Z", + "updated_at": "2024-01-22T22:50:35Z", + "body": "it's merged ! the media previews are broken though, it just shows text" } }, { @@ -306912,9 +315759,9 @@ "assignee": null, "assignees": [], "milestone": null, - "comments": 18, + "comments": 19, "created_at": "2023-06-06T04:30:22Z", - "updated_at": "2024-03-13T22:26:22Z", + "updated_at": "2024-03-20T11:35:03Z", "closed_at": null, "author_association": "MEMBER", "active_lock_reason": null, @@ -306945,9 +315792,9 @@ }, "comment": { "user": "jb55", - "created_at": "2024-01-22T22:50:35Z", - "updated_at": "2024-01-22T22:50:35Z", - "body": "it's merged ! the media previews are broken though, it just shows text" + "created_at": "2024-01-29T22:12:27Z", + "updated_at": "2024-01-29T22:12:27Z", + "body": "had to revert this due to regressions that were introduced: when you upload multiple media separately it only shows the first media item. " } }, { @@ -306988,9 +315835,9 @@ "assignee": null, "assignees": [], "milestone": null, - "comments": 18, + "comments": 19, "created_at": "2023-06-06T04:30:22Z", - "updated_at": "2024-03-13T22:26:22Z", + "updated_at": "2024-03-20T11:35:03Z", "closed_at": null, "author_association": "MEMBER", "active_lock_reason": null, @@ -307021,9 +315868,9 @@ }, "comment": { "user": "jb55", - "created_at": "2024-01-29T22:12:27Z", - "updated_at": "2024-01-29T22:12:27Z", - "body": "had to revert this due to regressions that were introduced: when you upload multiple media separately it only shows the first media item. " + "created_at": "2024-03-11T10:25:57Z", + "updated_at": "2024-03-11T10:25:57Z", + "body": "I tried to merge this but it looks like its too out of sync\n\nOn Sat, Feb 10, 2024 at 02:56:24PM -0800, Suhail Saqan wrote:\n>https://github.com/damus-io/damus/assets/43693074/da243dcb-1084-4165-af9f-dcff46bfeefe\n>\n>\n>You can view, comment on, or merge this pull request online at:\n>\n> https://github.com/damus-io/damus/pull/1254\n>\n>-- Commit Summary --\n>\n> * redesign camera view\n>\n>-- File Changes --\n>\n> M damus.xcodeproj/project.pbxproj (28)\n> A damus/Models/CameraViewModel.swift (237)\n> A damus/Views/Camera/CameraPreview.swift (83)\n> A damus/Views/Camera/CameraView.swift (156)\n> M damus/Views/PostView.swift (28)\n>\n>-- Patch Links --\n>\n>https://github.com/damus-io/damus/pull/1254.patch\n>https://github.com/damus-io/damus/pull/1254.diff\n>\n>-- \n>Reply to this email directly or view it on GitHub:\n>https://github.com/damus-io/damus/pull/1254\n>You are receiving this because you are subscribed to this thread.\n>\n>Message ID: ***@***.***&gt;\n>\n" } }, { @@ -307064,9 +315911,9 @@ "assignee": null, "assignees": [], "milestone": null, - "comments": 18, + "comments": 19, "created_at": "2023-06-06T04:30:22Z", - "updated_at": "2024-03-13T22:26:22Z", + "updated_at": "2024-03-20T11:35:03Z", "closed_at": null, "author_association": "MEMBER", "active_lock_reason": null, @@ -307096,10 +315943,10 @@ "state_reason": null }, "comment": { - "user": "jb55", - "created_at": "2024-03-11T10:25:57Z", - "updated_at": "2024-03-11T10:25:57Z", - "body": "I tried to merge this but it looks like its too out of sync\n\nOn Sat, Feb 10, 2024 at 02:56:24PM -0800, Suhail Saqan wrote:\n>https://github.com/damus-io/damus/assets/43693074/da243dcb-1084-4165-af9f-dcff46bfeefe\n>\n>\n>You can view, comment on, or merge this pull request online at:\n>\n> https://github.com/damus-io/damus/pull/1254\n>\n>-- Commit Summary --\n>\n> * redesign camera view\n>\n>-- File Changes --\n>\n> M damus.xcodeproj/project.pbxproj (28)\n> A damus/Models/CameraViewModel.swift (237)\n> A damus/Views/Camera/CameraPreview.swift (83)\n> A damus/Views/Camera/CameraView.swift (156)\n> M damus/Views/PostView.swift (28)\n>\n>-- Patch Links --\n>\n>https://github.com/damus-io/damus/pull/1254.patch\n>https://github.com/damus-io/damus/pull/1254.diff\n>\n>-- \n>Reply to this email directly or view it on GitHub:\n>https://github.com/damus-io/damus/pull/1254\n>You are receiving this because you are subscribed to this thread.\n>\n>Message ID: ***@***.***&gt;\n>\n" + "user": "suhailsaqan", + "created_at": "2024-03-13T22:26:20Z", + "updated_at": "2024-03-13T22:26:20Z", + "body": "> I tried to merge this but it looks like its too out of sync\r\n\r\nRebased!" } }, { @@ -307140,9 +315987,9 @@ "assignee": null, "assignees": [], "milestone": null, - "comments": 18, + "comments": 19, "created_at": "2023-06-06T04:30:22Z", - "updated_at": "2024-03-13T22:26:22Z", + "updated_at": "2024-03-20T11:35:03Z", "closed_at": null, "author_association": "MEMBER", "active_lock_reason": null, @@ -307172,10 +316019,10 @@ "state_reason": null }, "comment": { - "user": "suhailsaqan", - "created_at": "2024-03-13T22:26:20Z", - "updated_at": "2024-03-13T22:26:20Z", - "body": "> I tried to merge this but it looks like its too out of sync\r\n\r\nRebased!" + "user": "jb55", + "created_at": "2024-03-20T11:35:01Z", + "updated_at": "2024-03-20T11:35:01Z", + "body": "On Sat, Feb 10, 2024 at 02:56:24PM -0800, Suhail Saqan wrote:\n>Closes: https://github.com/damus-io/damus/pull/1254\n>---\n\nThis is great! The one fairly bad UX thing is that when you upload\nmultiple photos it seems to only show the progress on the first one?\nThis makes it seem like uploading the other ones have failed... but then\nit randomly pops in.\n\nHere's a video of this:\n\nhttps://cdn.jb55.com/s/18a95d4889dab4fb.mp4\n\n> damus.xcodeproj/project.pbxproj | 10 +-\n> .../DamusNotificationService.xcscheme | 1 -\n> damus/Views/Camera/CameraMediaView.swift | 89 +++++++\n> damus/Views/Camera/CameraView.swift | 221 ++++++++++++++++++\n> damus/Views/PostView.swift | 25 +-\n> 5 files changed, 338 insertions(+), 8 deletions(-)\n> create mode 100644 damus/Views/Camera/CameraMediaView.swift\n> create mode 100644 damus/Views/Camera/CameraView.swift\n>\n>diff --git a/damus.xcodeproj/project.pbxproj b/damus.xcodeproj/project.pbxproj\n>index de4189afe..601de76a8 100644\n>--- a/damus.xcodeproj/project.pbxproj\n>+++ b/damus.xcodeproj/project.pbxproj\n>@@ -433,11 +433,12 @@\n> \t\tB59CAD4D2B688D1000677E8B /* MutelistManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = B533694D2B66D791008A805E /* MutelistManager.swift */; };\n> \t\tB5A75C2A2B546D94007AFBC0 /* MuteItemTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5A75C292B546D94007AFBC0 /* MuteItemTests.swift */; };\n> \t\tB5B4D1432B37D47600844320 /* NdbExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5B4D1422B37D47600844320 /* NdbExtensions.swift */; };\n>-\t\tBA0F0A6F2B36207E001641B2 /* CameraMediaView.swift in Sources */ = {isa = PBXBuildFile; fileRef = BA0F0A6E2B36207E001641B2 /* CameraMediaView.swift */; };\n> \t\tBA10192F2B449556009C57DA /* CameraPreview.swift in Sources */ = {isa = PBXBuildFile; fileRef = BA10192E2B449556009C57DA /* CameraPreview.swift */; };\n> \t\tB5C60C202B530D5100C5ECA7 /* MuteItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5C60C1F2B530D5100C5ECA7 /* MuteItem.swift */; };\n> \t\tB5C60C212B530D5600C5ECA7 /* MuteItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5C60C1F2B530D5100C5ECA7 /* MuteItem.swift */; };\n> \t\tB5C60C232B532A8700C5ECA7 /* DamusDuration.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5C60C222B532A8700C5ECA7 /* DamusDuration.swift */; };\n>+\t\tBA15BB6B2B7833660045B913 /* CameraMediaView.swift in Sources */ = {isa = PBXBuildFile; fileRef = BA15BB6A2B7833660045B913 /* CameraMediaView.swift */; };\n>+\t\tBA15BB6D2B78336D0045B913 /* CameraView.swift in Sources */ = {isa = PBXBuildFile; fileRef = BA15BB6C2B78336D0045B913 /* CameraView.swift */; };\n> \t\tBA37598A2ABCCDE40018D73B /* ImageResizer.swift in Sources */ = {isa = PBXBuildFile; fileRef = BA3759892ABCCDE30018D73B /* ImageResizer.swift */; };\n> \t\tBA37598D2ABCCE500018D73B /* PhotoCaptureProcessor.swift in Sources */ = {isa = PBXBuildFile; fileRef = BA37598B2ABCCE500018D73B /* PhotoCaptureProcessor.swift */; };\n> \t\tBA37598E2ABCCE500018D73B /* VideoCaptureProcessor.swift in Sources */ = {isa = PBXBuildFile; fileRef = BA37598C2ABCCE500018D73B /* VideoCaptureProcessor.swift */; };\n>@@ -1355,10 +1356,11 @@\n> \t\tB57B4C652B312C3700A232C0 /* NostrAuth.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NostrAuth.swift; sourceTree = \"<group>\"; };\n> \t\tB5A75C292B546D94007AFBC0 /* MuteItemTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MuteItemTests.swift; sourceTree = \"<group>\"; usesTabs = 0; };\n> \t\tB5B4D1422B37D47600844320 /* NdbExtensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NdbExtensions.swift; sourceTree = \"<group>\"; usesTabs = 0; };\n>-\t\tBA0F0A6E2B36207E001641B2 /* CameraMediaView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CameraMediaView.swift; sourceTree = \"<group>\"; };\n> \t\tBA10192E2B449556009C57DA /* CameraPreview.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CameraPreview.swift; sourceTree = \"<group>\"; };\n> \t\tB5C60C1F2B530D5100C5ECA7 /* MuteItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MuteItem.swift; sourceTree = \"<group>\"; usesTabs = 0; };\n> \t\tB5C60C222B532A8700C5ECA7 /* DamusDuration.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DamusDuration.swift; sourceTree = \"<group>\"; usesTabs = 0; };\n>+\t\tBA15BB6A2B7833660045B913 /* CameraMediaView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CameraMediaView.swift; sourceTree = \"<group>\"; };\n>+\t\tBA15BB6C2B78336D0045B913 /* CameraView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CameraView.swift; sourceTree = \"<group>\"; };\n> \t\tBA3759892ABCCDE30018D73B /* ImageResizer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ImageResizer.swift; sourceTree = \"<group>\"; };\n> \t\tBA37598B2ABCCE500018D73B /* PhotoCaptureProcessor.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PhotoCaptureProcessor.swift; sourceTree = \"<group>\"; };\n> \t\tBA37598C2ABCCE500018D73B /* VideoCaptureProcessor.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = VideoCaptureProcessor.swift; sourceTree = \"<group>\"; };\n>@@ -2692,8 +2694,10 @@\n> \t\tBA3759952ABCCF360018D73B /* Camera */ = {\n> \t\t\tisa = PBXGroup;\n> \t\t\tchildren = (\n>+\t\t\t\tBA15BB6A2B7833660045B913 /* CameraMediaView.swift */,\n> \t\t\t\tBA3759962ABCCF360018D73B /* CameraPreview.swift */,\n> \t\t\t\tE02429942B7E97740088B16C /* CameraController.swift */,\n>+\t\t\t\tBA15BB6C2B78336D0045B913 /* CameraView.swift */,\n> \t\t\t);\n> \t\t\tpath = Camera;\n> \t\t\tsourceTree = \"<group>\";\n>@@ -3045,6 +3049,7 @@\n> \t\t\t\t4C4793042A993DC000489948 /* midl.c in Sources */,\n> \t\t\t\t0E8A4BB72AE4359200065E81 /* NostrFilter+Hashable.swift in Sources */,\n> \t\t\t\t4C4793012A993CDA00489948 /* mdb.c in Sources */,\n>+\t\t\t\tBA15BB6D2B78336D0045B913 /* CameraView.swift in Sources */,\n> \t\t\t\t4CE9FBBA2A6B3C63007E485C /* nostrdb.c in Sources */,\n> \t\t\t\tADFE73552AD4793100EC7326 /* QRScanNSECView.swift in Sources */,\n> \t\t\t\t4C3AC79D2833036D00E1F516 /* FollowingView.swift in Sources */,\n>@@ -3131,6 +3136,7 @@\n> \t\t\t\t647D9A8D2968520300A295DE /* SideMenuView.swift in Sources */,\n> \t\t\t\tF7F0BA272978E54D009531F3 /* ParticipantsView.swift in Sources */,\n> \t\t\t\t4CF0ABE32981BC7D00D66079 /* UserView.swift in Sources */,\n>+\t\t\t\tBA15BB6B2B7833660045B913 /* CameraMediaView.swift in Sources */,\n> \t\t\t\t4CE0E2AF29A2E82100DB4CA2 /* EventHolder.swift in Sources */,\n> \t\t\t\tB51C1CEA2B55A60A00E312A9 /* AddMuteItemView.swift in Sources */,\n> \t\t\t\t4C5D5C992A6AF8F80024563C /* NdbNote.swift in Sources */,\n>diff --git a/damus.xcodeproj/xcshareddata/xcschemes/DamusNotificationService.xcscheme b/damus.xcodeproj/xcshareddata/xcschemes/DamusNotificationService.xcscheme\n>index 4c06fd6b8..d2f574995 100644\n>--- a/damus.xcodeproj/xcshareddata/xcschemes/DamusNotificationService.xcscheme\n>+++ b/damus.xcodeproj/xcshareddata/xcschemes/DamusNotificationService.xcscheme\n>@@ -77,7 +77,6 @@\n> savedToolIdentifier = \"\"\n> useCustomWorkingDirectory = \"NO\"\n> debugDocumentVersioning = \"YES\"\n>- askForAppToLaunch = \"Yes\"\n> launchAutomaticallySubstyle = \"2\">\n> <BuildableProductRunnable\n> runnableDebuggingMode = \"0\">\n>diff --git a/damus/Views/Camera/CameraMediaView.swift b/damus/Views/Camera/CameraMediaView.swift\n>new file mode 100644\n>index 000000000..bce63083a\n>--- /dev/null\n>+++ b/damus/Views/Camera/CameraMediaView.swift\n>@@ -0,0 +1,89 @@\n>+//\n>+// MediaViewer.swift\n>+// damus\n>+//\n>+// Created by Suhail Saqan on 12/22/23.\n>+//\n>+\n>+import SwiftUI\n>+import Kingfisher\n>+\n>+// MARK: - Camera Media Viewer\n>+struct CameraMediaView: View {\n>+ let video_controller: VideoController\n>+ let urls: [MediaUrl]\n>+\n>+ @Environment(\\.presentationMode) var presentationMode\n>+\n>+ @State private var selectedIndex = 0\n>+ @State var showMenu = true\n>+\n>+ let settings: UserSettingsStore\n>+\n>+ var tabViewIndicator: some View {\n>+ HStack(spacing: 10) {\n>+ ForEach(urls.indices, id: \\.self) { index in\n>+ Capsule()\n>+ .fill(index == selectedIndex ? Color(UIColor.label) : Color.secondary)\n>+ .frame(width: 7, height: 7)\n>+ .onTapGesture {\n>+ selectedIndex = index\n>+ }\n>+ }\n>+ }\n>+ .padding()\n>+ .background(.regularMaterial)\n>+ .clipShape(Capsule())\n>+ }\n>+\n>+ var body: some View {\n>+ ZStack {\n>+ Color(.systemBackground)\n>+ .ignoresSafeArea()\n>+\n>+ TabView(selection: $selectedIndex) {\n>+ ForEach(urls.indices, id: \\.self) { index in\n>+ ZoomableScrollView {\n>+ ImageContainerView(video_controller: video_controller, url: urls[index], settings: settings)\n>+ .aspectRatio(contentMode: .fit)\n>+ .padding(.top, Theme.safeAreaInsets?.top)\n>+ .padding(.bottom, Theme.safeAreaInsets?.bottom)\n>+ }\n>+ .ignoresSafeArea()\n>+ .tag(index)\n>+ }\n>+ }\n>+ .ignoresSafeArea()\n>+ .tabViewStyle(PageTabViewStyle(indexDisplayMode: .never))\n>+ .gesture(TapGesture(count: 2).onEnded {\n>+ // Prevents menu from hiding on double tap\n>+ })\n>+ .gesture(TapGesture(count: 1).onEnded {\n>+ showMenu.toggle()\n>+ })\n>+ .overlay(\n>+ GeometryReader { geo in\n>+ VStack {\n>+ if showMenu {\n>+ NavDismissBarView()\n>+ Spacer()\n>+\n>+ if (urls.count > 1) {\n>+ tabViewIndicator\n>+ }\n>+ }\n>+ }\n>+ .animation(.easeInOut, value: showMenu)\n>+ .padding(.bottom, geo.safeAreaInsets.bottom == 0 ? 12 : 0)\n>+ }\n>+ )\n>+ }\n>+ }\n>+}\n>+\n>+struct CameraMediaView_Previews: PreviewProvider {\n>+ static var previews: some View {\n>+ let url: MediaUrl = .image(URL(string: \"https://jb55.com/red-me.jpg\")!)\n>+ CameraMediaView(video_controller: test_damus_state.video, urls: [url], settings: test_damus_state.settings)\n>+ }\n>+}\n>diff --git a/damus/Views/Camera/CameraView.swift b/damus/Views/Camera/CameraView.swift\n>new file mode 100644\n>index 000000000..4c4d07d44\n>--- /dev/null\n>+++ b/damus/Views/Camera/CameraView.swift\n>@@ -0,0 +1,221 @@\n>+//\n>+// CameraView.swift\n>+// damus\n>+//\n>+// Created by Suhail Saqan on 8/5/23.\n>+//\n>+\n>+import SwiftUI\n>+import Combine\n>+import AVFoundation\n>+\n>+struct CameraView: View {\n>+ let damus_state: DamusState\n>+ let action: (([MediaItem]) -> Void)\n>+\n>+ @Environment(\\.presentationMode) var presentationMode\n>+\n>+ @StateObject var model: CameraModel\n>+\n>+ @State var currentZoomFactor: CGFloat = 1.0\n>+\n>+ public init(damus_state: DamusState, action: @escaping (([MediaItem]) -> Void)) {\n>+ self.damus_state = damus_state\n>+ self.action = action\n>+ _model = StateObject(wrappedValue: CameraModel())\n>+ }\n>+\n>+ var captureButton: some View {\n>+ Button {\n>+ if model.isRecording {\n>+ withAnimation {\n>+ model.stopRecording()\n>+ }\n>+ } else {\n>+ withAnimation {\n>+ model.capturePhoto()\n>+ }\n>+ }\n>+ UIImpactFeedbackGenerator(style: .medium).impactOccurred()\n>+ } label: {\n>+ ZStack {\n>+ Circle()\n>+ .fill( model.isRecording ? .red : DamusColors.black)\n>+ .frame(width: model.isRecording ? 85 : 65, height: model.isRecording ? 85 : 65, alignment: .center)\n>+\n>+ Circle()\n>+ .stroke( model.isRecording ? .red : DamusColors.white, lineWidth: 4)\n>+ .frame(width: model.isRecording ? 95 : 75, height: model.isRecording ? 95 : 75, alignment: .center)\n>+ }\n>+ .frame(alignment: .center)\n>+ }\n>+ .simultaneousGesture(\n>+ LongPressGesture(minimumDuration: 0.5).onEnded({ value in\n>+ if (!model.isCameraButtonDisabled) {\n>+ withAnimation {\n>+ model.startRecording()\n>+ model.captureMode = .video\n>+ }\n>+ }\n>+ })\n>+ )\n>+ .buttonStyle(.plain)\n>+ }\n>+\n>+ var capturedPhotoThumbnail: some View {\n>+ ZStack {\n>+ if model.thumbnail != nil {\n>+ Image(uiImage: model.thumbnail.thumbnailImage!)\n>+ .resizable()\n>+ .aspectRatio(contentMode: .fill)\n>+ .frame(width: 60, height: 60)\n>+ .clipShape(RoundedRectangle(cornerRadius: 10, style: .continuous))\n>+ }\n>+ if model.isPhotoProcessing {\n>+ ProgressView()\n>+ .progressViewStyle(CircularProgressViewStyle(tint: DamusColors.white))\n>+ }\n>+ }\n>+ }\n>+\n>+ var closeButton: some View {\n>+ Button {\n>+ presentationMode.wrappedValue.dismiss()\n>+ model.stop()\n>+ } label: {\n>+ HStack {\n>+ Image(systemName: \"xmark\")\n>+ .font(.system(size: 24))\n>+ }\n>+ .frame(minWidth: 40, minHeight: 40)\n>+ }\n>+ .accentColor(DamusColors.white)\n>+ }\n>+\n>+ var flipCameraButton: some View {\n>+ Button(action: {\n>+ model.flipCamera()\n>+ }, label: {\n>+ HStack {\n>+ Image(systemName: \"camera.rotate.fill\")\n>+ .font(.system(size: 20))\n>+ }\n>+ .frame(minWidth: 40, minHeight: 40)\n>+ })\n>+ .accentColor(DamusColors.white)\n>+ }\n>+\n>+ var toggleFlashButton: some View {\n>+ Button(action: {\n>+ model.switchFlash()\n>+ }, label: {\n>+ HStack {\n>+ Image(systemName: model.isFlashOn ? \"bolt.fill\" : \"bolt.slash.fill\")\n>+ .font(.system(size: 20))\n>+ }\n>+ .frame(minWidth: 40, minHeight: 40)\n>+ })\n>+ .accentColor(model.isFlashOn ? .yellow : DamusColors.white)\n>+ }\n>+\n>+ var body: some View {\n>+ NavigationView {\n>+ GeometryReader { reader in\n>+ ZStack {\n>+ DamusColors.black.edgesIgnoringSafeArea(.all)\n>+\n>+ CameraPreview(session: model.session)\n>+ .padding(.bottom, 175)\n>+ .edgesIgnoringSafeArea(.all)\n>+ .gesture(\n>+ DragGesture().onChanged({ (val) in\n>+ if abs(val.translation.height) > abs(val.translation.width) {\n>+ let percentage: CGFloat = -(val.translation.height / reader.size.height)\n>+ let calc = currentZoomFactor + percentage\n>+ let zoomFactor: CGFloat = min(max(calc, 1), 5)\n>+\n>+ currentZoomFactor = zoomFactor\n>+ model.zoom(with: zoomFactor)\n>+ }\n>+ })\n>+ )\n>+ .onAppear {\n>+ model.configure()\n>+ }\n>+ .alert(isPresented: $model.showAlertError, content: {\n>+ Alert(title: Text(model.alertError.title), message: Text(model.alertError.message), dismissButton: .default(Text(model.alertError.primaryButtonTitle), action: {\n>+ model.alertError.primaryAction?()\n>+ }))\n>+ })\n>+ .overlay(\n>+ Group {\n>+ if model.willCapturePhoto {\n>+ Color.black\n>+ }\n>+ }\n>+ )\n>+\n>+ VStack {\n>+ if !model.isRecording {\n>+ HStack {\n>+ closeButton\n>+\n>+ Spacer()\n>+\n>+ HStack {\n>+ flipCameraButton\n>+ toggleFlashButton\n>+ }\n>+ }\n>+ .padding(.horizontal, 20)\n>+ }\n>+\n>+ Spacer()\n>+\n>+ HStack(alignment: .center) {\n>+ if !model.mediaItems.isEmpty {\n>+ NavigationLink(destination: CameraMediaView(video_controller: damus_state.video, urls: model.mediaItems.map { mediaItem in\n>+ switch mediaItem.type {\n>+ case .image:\n>+ return .image(mediaItem.url)\n>+ case .video:\n>+ return .video(mediaItem.url)\n>+ }\n>+ }, settings: damus_state.settings)\n>+ .navigationBarBackButtonHidden(true)\n>+ ) {\n>+ capturedPhotoThumbnail\n>+ }\n>+ .frame(width: 100, alignment: .leading)\n>+ }\n>+\n>+ Spacer()\n>+\n>+ captureButton\n>+\n>+ Spacer()\n>+\n>+ if !model.mediaItems.isEmpty {\n>+ Button(action: {\n>+ action(model.mediaItems)\n>+ presentationMode.wrappedValue.dismiss()\n>+ model.stop()\n>+ }) {\n>+ Text(\"Upload\")\n>+ .frame(width: 100, height: 40, alignment: .center)\n>+ .foregroundColor(DamusColors.white)\n>+ .overlay {\n>+ RoundedRectangle(cornerRadius: 24)\n>+ .stroke(DamusColors.white, lineWidth: 2)\n>+ }\n>+ }\n>+ }\n>+ }\n>+ .frame(height: 100)\n>+ .padding([.horizontal, .vertical], 20)\n>+ }\n>+ }\n>+ }\n>+ }\n>+ }\n>+}\n>diff --git a/damus/Views/PostView.swift b/damus/Views/PostView.swift\n>index 89846b27f..7450dd5a5 100644\n>--- a/damus/Views/PostView.swift\n>+++ b/damus/Views/PostView.swift\n>@@ -58,6 +58,7 @@ struct PostView: View {\n> @State var textHeight: CGFloat? = nil\n>\n> @State var preUploadedMedia: PreUploadedMedia? = nil\n>+ @State var mediaToUpload: [MediaUpload] = []\n>\n> @StateObject var image_upload: ImageUploadModel = ImageUploadModel()\n> @StateObject var tagModel: TagModel = TagModel()\n>@@ -379,6 +380,15 @@ struct PostView: View {\n> pks.append(pk)\n> }\n> }\n>+\n>+ func addToMediaToUpload(mediaItem: MediaItem) {\n>+ switch mediaItem.type {\n>+ case .image:\n>+ mediaToUpload.append(.image(mediaItem.url))\n>+ case .video:\n>+ mediaToUpload.append(.video(mediaItem.url))\n>+ }\n>+ }\n>\n> var body: some View {\n> GeometryReader { (deviceSize: GeometryProxy) in\n>@@ -433,11 +443,16 @@ struct PostView: View {\n> Button(NSLocalizedString(\"Cancel\", comment: \"Button to cancel the upload.\"), role: .cancel) {}\n> }\n> }\n>- .sheet(isPresented: $attach_camera) {\n>- CameraController(uploader: damus_state.settings.default_media_uploader) {\n>- self.attach_camera = false\n>- self.attach_media = true\n>- }\n>+ .fullScreenCover(isPresented: $attach_camera) {\n>+ CameraView(damus_state: damus_state, action: { items in\n>+ for item in items {\n>+ addToMediaToUpload(mediaItem: item)\n>+ }\n>+ for media in mediaToUpload {\n>+ self.handle_upload(media: media)\n>+ }\n>+ mediaToUpload = []\n>+ })\n> }\n> .onAppear() {\n> let loaded_draft = load_draft()\n" } }, { @@ -308194,8 +317041,8 @@ { "id": 5811380900, "node_id": "LA_kwDOHHF5A88AAAABWmKipA", - "url": "https://api.github.com/repos/damus-io/damus/labels/video%20%F0%9F%8E%A5", - "name": "video 🎥", + "url": "https://api.github.com/repos/damus-io/damus/labels/video", + "name": "video", "color": "F4D9A3", "default": false, "description": "" @@ -308315,8 +317162,8 @@ { "id": 5811380900, "node_id": "LA_kwDOHHF5A88AAAABWmKipA", - "url": "https://api.github.com/repos/damus-io/damus/labels/video%20%F0%9F%8E%A5", - "name": "video 🎥", + "url": "https://api.github.com/repos/damus-io/damus/labels/video", + "name": "video", "color": "F4D9A3", "default": false, "description": "" @@ -308442,8 +317289,8 @@ { "id": 5811380900, "node_id": "LA_kwDOHHF5A88AAAABWmKipA", - "url": "https://api.github.com/repos/damus-io/damus/labels/video%20%F0%9F%8E%A5", - "name": "video 🎥", + "url": "https://api.github.com/repos/damus-io/damus/labels/video", + "name": "video", "color": "F4D9A3", "default": false, "description": "" @@ -308569,8 +317416,8 @@ { "id": 5811380900, "node_id": "LA_kwDOHHF5A88AAAABWmKipA", - "url": "https://api.github.com/repos/damus-io/damus/labels/video%20%F0%9F%8E%A5", - "name": "video 🎥", + "url": "https://api.github.com/repos/damus-io/damus/labels/video", + "name": "video", "color": "F4D9A3", "default": false, "description": "" @@ -309202,9 +318049,9 @@ "assignee": null, "assignees": [], "milestone": null, - "comments": 2, + "comments": 3, "created_at": "2023-06-04T13:49:39Z", - "updated_at": "2024-02-13T03:20:23Z", + "updated_at": "2024-03-20T15:41:41Z", "closed_at": null, "author_association": "NONE", "active_lock_reason": null, @@ -309283,9 +318130,9 @@ "assignee": null, "assignees": [], "milestone": null, - "comments": 2, + "comments": 3, "created_at": "2023-06-04T13:49:39Z", - "updated_at": "2024-02-13T03:20:23Z", + "updated_at": "2024-03-20T15:41:41Z", "closed_at": null, "author_association": "NONE", "active_lock_reason": null, @@ -309370,9 +318217,9 @@ "assignee": null, "assignees": [], "milestone": null, - "comments": 2, + "comments": 3, "created_at": "2023-06-04T13:49:39Z", - "updated_at": "2024-02-13T03:20:23Z", + "updated_at": "2024-03-20T15:41:41Z", "closed_at": null, "author_association": "NONE", "active_lock_reason": null, @@ -309402,6 +318249,93 @@ }, { "issue": { + "url": "https://api.github.com/repos/damus-io/damus/issues/1243", + "repository_url": "https://api.github.com/repos/damus-io/damus", + "labels_url": "https://api.github.com/repos/damus-io/damus/issues/1243/labels{/name}", + "comments_url": "https://api.github.com/repos/damus-io/damus/issues/1243/comments", + "events_url": "https://api.github.com/repos/damus-io/damus/issues/1243/events", + "html_url": "https://github.com/damus-io/damus/issues/1243", + "id": 1740386208, + "node_id": "I_kwDOHHF5A85nvC-g", + "number": 1243, + "title": "quote many notes in one event", + "user": { + "login": "shaibearary", + "id": 26760878, + "node_id": "MDQ6VXNlcjI2NzYwODc4", + "avatar_url": "https://avatars.githubusercontent.com/u/26760878?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/shaibearary", + "html_url": "https://github.com/shaibearary", + "followers_url": "https://api.github.com/users/shaibearary/followers", + "following_url": "https://api.github.com/users/shaibearary/following{/other_user}", + "gists_url": "https://api.github.com/users/shaibearary/gists{/gist_id}", + "starred_url": "https://api.github.com/users/shaibearary/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/shaibearary/subscriptions", + "organizations_url": "https://api.github.com/users/shaibearary/orgs", + "repos_url": "https://api.github.com/users/shaibearary/repos", + "events_url": "https://api.github.com/users/shaibearary/events{/privacy}", + "received_events_url": "https://api.github.com/users/shaibearary/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "id": 5667222085, + "node_id": "LA_kwDOHHF5A88AAAABUcryRQ", + "url": "https://api.github.com/repos/damus-io/damus/labels/design", + "name": "design", + "color": "5319E7", + "default": false, + "description": "Design exploration & definition is required" + }, + { + "id": 5667230655, + "node_id": "LA_kwDOHHF5A88AAAABUcsTvw", + "url": "https://api.github.com/repos/damus-io/damus/labels/feature", + "name": "feature", + "color": "BFDADC", + "default": false, + "description": "New feature request" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "assignees": [], + "milestone": null, + "comments": 3, + "created_at": "2023-06-04T13:49:39Z", + "updated_at": "2024-03-20T15:41:41Z", + "closed_at": null, + "author_association": "NONE", + "active_lock_reason": null, + "body": "Hey devs,\r\nI have an event like this\r\n{\r\n \"content\": \"Here are the Top 10 Events for You\\nnostr:note1sv56a2ufdf6z9f89n2lyx5vmd0clqrpdlquw3makts8jqq6g0mus3xyxx4\\nnostr:note1v9m8xk4gva8ngdgux5s0esce2t8achrhqw8x5d5fwqrhjxz0f04qc9hv8h\\nnostr:note1d82ykvgm0seyp4z6xnh9xfpjttqmaup0wjle7lnfa7d5vq0thvrq2myf37\\nnostr:note195yacr052yr60lat20z3r90dxym6nxv303mw46un0qqaql67gc8q0pl8wj\\nnostr:note1v8t5sel2ddpx6eaczy40qxrkhp5ku9lpj243tscr4fem5v5r70gs0a44dn\\nnostr:note1zehe30m64xwyndvcx8t8ag6vm29f8ez7gpayecehatulzgex5whsr9nfyy\\nnostr:note1jq5nncs4vmlguyqae6jpef7s2ep84dmatkfh3kgmp5enau25yu6q806f94\\nnostr:note190z7q5ttphgecw8jfnp20qstpwp6xz4ft6ppu8u4zf6uxy9dwkeqmfpryu\\nnostr:note1ajn2l3c8ug0eqkfr2thqd2qg3pdudsqsv373p34c0lq9cpnl8lwqxqull2\\nnostr:note13zjj5lvj4x4e2dndq8pr7p5prddryzksr4x9lvpaxsfr7znzxrqsyeluky\",\r\n \"created_at\": 1685884960,\r\n \"id\": \"6ccdae5b656d179507d2f9261257db90df4535532e35bed7b005f5928cd207c3\",\r\n \"kind\": 1,\r\n \"pubkey\": \"6b55f4a84dc094d1707254d8141290cbe922edb6f8d9d001f13b309bb21e686a\",\r\n \"sig\": \"0d88e7dc564b8cb04a2f79afb930488134ab01ee172e6885bcfed3e48bb46361bc008bd13fe48acac1ba5f011d215d139ad4812e011a983d7ed3c8e3cf8db725\",\r\n \"tags\": [\r\n [\r\n \"q\",\r\n \"8329aeab896a7422a4e59abe43519b6bf1f00c2df838e8efb65c0f2003487ef9\"\r\n ],\r\n [\r\n \"q\",\r\n \"6176735aa8674f34351c3520fcc31952cfdc5c77038e6a3689700779184f4bea\"\r\n ],\r\n [\r\n \"q\",\r\n \"69d44b311b7c3240d45a34ee5324325ac1bef02f74bf9f7e69ef9b4601ebbb06\"\r\n ],\r\n [\r\n \"q\",\r\n \"2d09dc0df45107a7ffab53c51195ed3137a999917c76eaeb937801d07f5e460e\"\r\n ],\r\n [\r\n \"q\",\r\n \"61d74867ea6b426d67b8112af01876b8696e17e192ab15c303aa73ba3283f3d1\"\r\n ],\r\n [\r\n \"q\",\r\n \"166f98bf7aa99c49b59831d67ea34cda8a93e45e407a4ce337eaf9f12326a3af\"\r\n ],\r\n [\r\n \"q\",\r\n \"902939e21566fe8e101dcea41ca7d056427ab77d5d9378d91b0d333ef1542734\"\r\n ],\r\n [\r\n \"q\",\r\n \"2bc5e0516b0dd19c38f24cc2a7820b0b83a30aa95e821e1f951275c310ad75b2\"\r\n ],\r\n [\r\n \"q\",\r\n \"eca6afc707e21f90592352ee06a808885bc6c010647d10c6b87fc05c067f3fdc\"\r\n ],\r\n [\r\n \"q\",\r\n \"88a52a7d92a9ab95366d01c23f06811b5a320ad01d4c5fb03d34123f0a6230c1\"\r\n ]\r\n ],\r\n \"meta\": {\r\n \"revision\": 0,\r\n \"created\": 1685885957562,\r\n \"version\": 0\r\n },\r\n \"$loki\": 5603\r\n}\r\n\r\nIt shows like this in iris/snort \r\n![image](https://github.com/damus-io/damus/assets/26760878/02518e72-5f0a-4a28-b548-86e0909c5265)\r\nbut like this in damus\r\n![image](https://github.com/damus-io/damus/assets/26760878/867af3be-3be7-4446-bd8b-f4ba69244f38)\r\n\r\nis there a way to show multi notes? \r\nthank you !", + "reactions": { + "url": "https://api.github.com/repos/damus-io/damus/issues/1243/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/1243/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + "comment": { + "user": "alltheseas", + "created_at": "2024-03-20T15:40:58Z", + "updated_at": "2024-03-20T15:41:41Z", + "body": "Recreated issue. See note14h38krt5mmjwgprktpq67llxzl6xfm2dtla48cwk4tkp7qf97mfq70ggvs\r\n\r\nIn Damus one event only quoted\n\n![image](https://github.com/damus-io/damus/assets/64376233/2a431232-2d44-4e9c-9e39-a3f327877105)\r\n\r\nNjump (outside Damus)\r\n\r\n![Screenshot 2024-03-20 at 10 40 42 AM](https://github.com/damus-io/damus/assets/64376233/d106435a-efae-4ceb-9aa4-23c7e89b6ac3)\r\n" + } + }, + { + "issue": { "url": "https://api.github.com/repos/damus-io/damus/issues/1242", "repository_url": "https://api.github.com/repos/damus-io/damus", "labels_url": "https://api.github.com/repos/damus-io/damus/issues/1242/labels{/name}", @@ -339536,7 +348470,7 @@ "id": 10536809, "node_id": "MI_kwDOHHF5A84AoMdp", "number": 14, - "title": "1.8 post Madeira", + "title": "1.8 post Madeira: UX/UI/Design focus", "description": "", "creator": { "login": "alltheseas", @@ -339558,11 +348492,11 @@ "type": "User", "site_admin": false }, - "open_issues": 11, - "closed_issues": 0, + "open_issues": 13, + "closed_issues": 1, "state": "open", "created_at": "2024-02-09T17:16:56Z", - "updated_at": "2024-03-17T12:05:31Z", + "updated_at": "2024-03-20T15:28:11Z", "due_on": null, "closed_at": null }, @@ -339684,7 +348618,7 @@ "id": 10536809, "node_id": "MI_kwDOHHF5A84AoMdp", "number": 14, - "title": "1.8 post Madeira", + "title": "1.8 post Madeira: UX/UI/Design focus", "description": "", "creator": { "login": "alltheseas", @@ -339706,11 +348640,11 @@ "type": "User", "site_admin": false }, - "open_issues": 11, - "closed_issues": 0, + "open_issues": 13, + "closed_issues": 1, "state": "open", "created_at": "2024-02-09T17:16:56Z", - "updated_at": "2024-03-17T12:05:31Z", + "updated_at": "2024-03-20T15:28:11Z", "due_on": null, "closed_at": null }, @@ -339838,7 +348772,7 @@ "id": 10536809, "node_id": "MI_kwDOHHF5A84AoMdp", "number": 14, - "title": "1.8 post Madeira", + "title": "1.8 post Madeira: UX/UI/Design focus", "description": "", "creator": { "login": "alltheseas", @@ -339860,11 +348794,11 @@ "type": "User", "site_admin": false }, - "open_issues": 11, - "closed_issues": 0, + "open_issues": 13, + "closed_issues": 1, "state": "open", "created_at": "2024-02-09T17:16:56Z", - "updated_at": "2024-03-17T12:05:31Z", + "updated_at": "2024-03-20T15:28:11Z", "due_on": null, "closed_at": null }, @@ -339992,7 +348926,7 @@ "id": 10536809, "node_id": "MI_kwDOHHF5A84AoMdp", "number": 14, - "title": "1.8 post Madeira", + "title": "1.8 post Madeira: UX/UI/Design focus", "description": "", "creator": { "login": "alltheseas", @@ -340014,11 +348948,11 @@ "type": "User", "site_admin": false }, - "open_issues": 11, - "closed_issues": 0, + "open_issues": 13, + "closed_issues": 1, "state": "open", "created_at": "2024-02-09T17:16:56Z", - "updated_at": "2024-03-17T12:05:31Z", + "updated_at": "2024-03-20T15:28:11Z", "due_on": null, "closed_at": null }, @@ -340146,7 +349080,7 @@ "id": 10536809, "node_id": "MI_kwDOHHF5A84AoMdp", "number": 14, - "title": "1.8 post Madeira", + "title": "1.8 post Madeira: UX/UI/Design focus", "description": "", "creator": { "login": "alltheseas", @@ -340168,11 +349102,11 @@ "type": "User", "site_admin": false }, - "open_issues": 11, - "closed_issues": 0, + "open_issues": 13, + "closed_issues": 1, "state": "open", "created_at": "2024-02-09T17:16:56Z", - "updated_at": "2024-03-17T12:05:31Z", + "updated_at": "2024-03-20T15:28:11Z", "due_on": null, "closed_at": null }, @@ -340300,7 +349234,7 @@ "id": 10536809, "node_id": "MI_kwDOHHF5A84AoMdp", "number": 14, - "title": "1.8 post Madeira", + "title": "1.8 post Madeira: UX/UI/Design focus", "description": "", "creator": { "login": "alltheseas", @@ -340322,11 +349256,11 @@ "type": "User", "site_admin": false }, - "open_issues": 11, - "closed_issues": 0, + "open_issues": 13, + "closed_issues": 1, "state": "open", "created_at": "2024-02-09T17:16:56Z", - "updated_at": "2024-03-17T12:05:31Z", + "updated_at": "2024-03-20T15:28:11Z", "due_on": null, "closed_at": null }, @@ -340454,7 +349388,7 @@ "id": 10536809, "node_id": "MI_kwDOHHF5A84AoMdp", "number": 14, - "title": "1.8 post Madeira", + "title": "1.8 post Madeira: UX/UI/Design focus", "description": "", "creator": { "login": "alltheseas", @@ -340476,11 +349410,11 @@ "type": "User", "site_admin": false }, - "open_issues": 11, - "closed_issues": 0, + "open_issues": 13, + "closed_issues": 1, "state": "open", "created_at": "2024-02-09T17:16:56Z", - "updated_at": "2024-03-17T12:05:31Z", + "updated_at": "2024-03-20T15:28:11Z", "due_on": null, "closed_at": null }, @@ -340608,7 +349542,7 @@ "id": 10536809, "node_id": "MI_kwDOHHF5A84AoMdp", "number": 14, - "title": "1.8 post Madeira", + "title": "1.8 post Madeira: UX/UI/Design focus", "description": "", "creator": { "login": "alltheseas", @@ -340630,11 +349564,11 @@ "type": "User", "site_admin": false }, - "open_issues": 11, - "closed_issues": 0, + "open_issues": 13, + "closed_issues": 1, "state": "open", "created_at": "2024-02-09T17:16:56Z", - "updated_at": "2024-03-17T12:05:31Z", + "updated_at": "2024-03-20T15:28:11Z", "due_on": null, "closed_at": null }, @@ -340762,7 +349696,7 @@ "id": 10536809, "node_id": "MI_kwDOHHF5A84AoMdp", "number": 14, - "title": "1.8 post Madeira", + "title": "1.8 post Madeira: UX/UI/Design focus", "description": "", "creator": { "login": "alltheseas", @@ -340784,11 +349718,11 @@ "type": "User", "site_admin": false }, - "open_issues": 11, - "closed_issues": 0, + "open_issues": 13, + "closed_issues": 1, "state": "open", "created_at": "2024-02-09T17:16:56Z", - "updated_at": "2024-03-17T12:05:31Z", + "updated_at": "2024-03-20T15:28:11Z", "due_on": null, "closed_at": null }, @@ -349173,9 +358107,9 @@ "assignee": null, "assignees": [], "milestone": null, - "comments": 1, + "comments": 2, "created_at": "2023-05-04T05:56:40Z", - "updated_at": "2023-12-04T16:20:54Z", + "updated_at": "2024-03-17T19:48:36Z", "closed_at": null, "author_association": "COLLABORATOR", "active_lock_reason": null, @@ -349254,9 +358188,9 @@ "assignee": null, "assignees": [], "milestone": null, - "comments": 1, + "comments": 2, "created_at": "2023-05-04T05:56:40Z", - "updated_at": "2023-12-04T16:20:54Z", + "updated_at": "2024-03-17T19:48:36Z", "closed_at": null, "author_association": "COLLABORATOR", "active_lock_reason": null, @@ -349286,6 +358220,93 @@ }, { "issue": { + "url": "https://api.github.com/repos/damus-io/damus/issues/1075", + "repository_url": "https://api.github.com/repos/damus-io/damus", + "labels_url": "https://api.github.com/repos/damus-io/damus/issues/1075/labels{/name}", + "comments_url": "https://api.github.com/repos/damus-io/damus/issues/1075/comments", + "events_url": "https://api.github.com/repos/damus-io/damus/issues/1075/events", + "html_url": "https://github.com/damus-io/damus/issues/1075", + "id": 1695307698, + "node_id": "I_kwDOHHF5A85lDFey", + "number": 1075, + "title": "Mutiple Filter / Advanced Search with Multiple Criteria ", + "user": { + "login": "alltheseas", + "id": 64376233, + "node_id": "MDQ6VXNlcjY0Mzc2MjMz", + "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/alltheseas", + "html_url": "https://github.com/alltheseas", + "followers_url": "https://api.github.com/users/alltheseas/followers", + "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", + "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", + "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", + "organizations_url": "https://api.github.com/users/alltheseas/orgs", + "repos_url": "https://api.github.com/users/alltheseas/repos", + "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", + "received_events_url": "https://api.github.com/users/alltheseas/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "id": 3994718399, + "node_id": "LA_kwDOHHF5A87uGpC_", + "url": "https://api.github.com/repos/damus-io/damus/labels/enhancement", + "name": "enhancement", + "color": "a2eeef", + "default": true, + "description": "Improvement" + }, + { + "id": 6213404742, + "node_id": "LA_kwDOHHF5A88AAAABclkIRg", + "url": "https://api.github.com/repos/damus-io/damus/labels/search", + "name": "search", + "color": "0e8a16", + "default": false, + "description": "" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "assignees": [], + "milestone": null, + "comments": 2, + "created_at": "2023-05-04T05:56:40Z", + "updated_at": "2024-03-17T19:48:36Z", + "closed_at": null, + "author_association": "COLLABORATOR", + "active_lock_reason": null, + "body": "## User Story\r\nAs a Damus user looking for very specific pieces of information, I would like to search for info using multiple criteria, so that I can focus on the information I want to see, and remove the noise that I don't want to see.\r\n\r\n### Acceptance Criteria\r\nUser can search/filter for:\r\n1. Presence or lack of npub, and\r\n2. Presence or lack of media, and\r\n3. Presence or lack of keyword, and\n4. From - to date range, and\r\n5. Some combination of these.\r\n\r\nOrigin: https://damus.io/note1mxwra7yx9a5q0h8vh8dwrjfsypwm0npw7dpjwqnwpqp7gkpz4vdqafcee0", + "reactions": { + "url": "https://api.github.com/repos/damus-io/damus/issues/1075/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/1075/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + "comment": { + "user": "alltheseas", + "created_at": "2024-03-17T19:48:35Z", + "updated_at": "2024-03-17T19:48:35Z", + "body": "> Yeah I use a tool that uses this API, I use it to find old events https://nosey.vercel.app super useful!\n\n> hey frens is there anyway we can use this for the search https://docs.nostr.wine\n\nFrom sleepy" + } + }, + { + "issue": { "url": "https://api.github.com/repos/damus-io/damus/issues/1074", "repository_url": "https://api.github.com/repos/damus-io/damus", "labels_url": "https://api.github.com/repos/damus-io/damus/issues/1074/labels{/name}", @@ -353699,8 +362720,8 @@ { "id": 6158662124, "node_id": "LA_kwDOHHF5A88AAAABbxW57A", - "url": "https://api.github.com/repos/damus-io/damus/labels/signal/noise%20ratio%20%F0%9F%91%80/%F0%9F%92%A5", - "name": "signal/noise ratio 👀/💥", + "url": "https://api.github.com/repos/damus-io/damus/labels/signal-to-noise-ratio", + "name": "signal-to-noise-ratio", "color": "0E8A16", "default": false, "description": "" @@ -353789,8 +362810,8 @@ { "id": 6158662124, "node_id": "LA_kwDOHHF5A88AAAABbxW57A", - "url": "https://api.github.com/repos/damus-io/damus/labels/signal/noise%20ratio%20%F0%9F%91%80/%F0%9F%92%A5", - "name": "signal/noise ratio 👀/💥", + "url": "https://api.github.com/repos/damus-io/damus/labels/signal-to-noise-ratio", + "name": "signal-to-noise-ratio", "color": "0E8A16", "default": false, "description": "" @@ -353885,8 +362906,8 @@ { "id": 6158662124, "node_id": "LA_kwDOHHF5A88AAAABbxW57A", - "url": "https://api.github.com/repos/damus-io/damus/labels/signal/noise%20ratio%20%F0%9F%91%80/%F0%9F%92%A5", - "name": "signal/noise ratio 👀/💥", + "url": "https://api.github.com/repos/damus-io/damus/labels/signal-to-noise-ratio", + "name": "signal-to-noise-ratio", "color": "0E8A16", "default": false, "description": "" @@ -380872,8 +389893,8 @@ { "id": 6158662124, "node_id": "LA_kwDOHHF5A88AAAABbxW57A", - "url": "https://api.github.com/repos/damus-io/damus/labels/signal/noise%20ratio%20%F0%9F%91%80/%F0%9F%92%A5", - "name": "signal/noise ratio 👀/💥", + "url": "https://api.github.com/repos/damus-io/damus/labels/signal-to-noise-ratio", + "name": "signal-to-noise-ratio", "color": "0E8A16", "default": false, "description": "" @@ -380962,8 +389983,8 @@ { "id": 6158662124, "node_id": "LA_kwDOHHF5A88AAAABbxW57A", - "url": "https://api.github.com/repos/damus-io/damus/labels/signal/noise%20ratio%20%F0%9F%91%80/%F0%9F%92%A5", - "name": "signal/noise ratio 👀/💥", + "url": "https://api.github.com/repos/damus-io/damus/labels/signal-to-noise-ratio", + "name": "signal-to-noise-ratio", "color": "0E8A16", "default": false, "description": "" @@ -381058,8 +390079,8 @@ { "id": 6158662124, "node_id": "LA_kwDOHHF5A88AAAABbxW57A", - "url": "https://api.github.com/repos/damus-io/damus/labels/signal/noise%20ratio%20%F0%9F%91%80/%F0%9F%92%A5", - "name": "signal/noise ratio 👀/💥", + "url": "https://api.github.com/repos/damus-io/damus/labels/signal-to-noise-ratio", + "name": "signal-to-noise-ratio", "color": "0E8A16", "default": false, "description": "" @@ -413521,8 +422542,8 @@ { "id": 6158662124, "node_id": "LA_kwDOHHF5A88AAAABbxW57A", - "url": "https://api.github.com/repos/damus-io/damus/labels/signal/noise%20ratio%20%F0%9F%91%80/%F0%9F%92%A5", - "name": "signal/noise ratio 👀/💥", + "url": "https://api.github.com/repos/damus-io/damus/labels/signal-to-noise-ratio", + "name": "signal-to-noise-ratio", "color": "0E8A16", "default": false, "description": "" @@ -413602,8 +422623,8 @@ { "id": 6158662124, "node_id": "LA_kwDOHHF5A88AAAABbxW57A", - "url": "https://api.github.com/repos/damus-io/damus/labels/signal/noise%20ratio%20%F0%9F%91%80/%F0%9F%92%A5", - "name": "signal/noise ratio 👀/💥", + "url": "https://api.github.com/repos/damus-io/damus/labels/signal-to-noise-ratio", + "name": "signal-to-noise-ratio", "color": "0E8A16", "default": false, "description": "" @@ -413689,8 +422710,8 @@ { "id": 6158662124, "node_id": "LA_kwDOHHF5A88AAAABbxW57A", - "url": "https://api.github.com/repos/damus-io/damus/labels/signal/noise%20ratio%20%F0%9F%91%80/%F0%9F%92%A5", - "name": "signal/noise ratio 👀/💥", + "url": "https://api.github.com/repos/damus-io/damus/labels/signal-to-noise-ratio", + "name": "signal-to-noise-ratio", "color": "0E8A16", "default": false, "description": "" @@ -413776,8 +422797,8 @@ { "id": 6158662124, "node_id": "LA_kwDOHHF5A88AAAABbxW57A", - "url": "https://api.github.com/repos/damus-io/damus/labels/signal/noise%20ratio%20%F0%9F%91%80/%F0%9F%92%A5", - "name": "signal/noise ratio 👀/💥", + "url": "https://api.github.com/repos/damus-io/damus/labels/signal-to-noise-ratio", + "name": "signal-to-noise-ratio", "color": "0E8A16", "default": false, "description": "" @@ -413863,8 +422884,8 @@ { "id": 6158662124, "node_id": "LA_kwDOHHF5A88AAAABbxW57A", - "url": "https://api.github.com/repos/damus-io/damus/labels/signal/noise%20ratio%20%F0%9F%91%80/%F0%9F%92%A5", - "name": "signal/noise ratio 👀/💥", + "url": "https://api.github.com/repos/damus-io/damus/labels/signal-to-noise-ratio", + "name": "signal-to-noise-ratio", "color": "0E8A16", "default": false, "description": "" @@ -413950,8 +422971,8 @@ { "id": 6158662124, "node_id": "LA_kwDOHHF5A88AAAABbxW57A", - "url": "https://api.github.com/repos/damus-io/damus/labels/signal/noise%20ratio%20%F0%9F%91%80/%F0%9F%92%A5", - "name": "signal/noise ratio 👀/💥", + "url": "https://api.github.com/repos/damus-io/damus/labels/signal-to-noise-ratio", + "name": "signal-to-noise-ratio", "color": "0E8A16", "default": false, "description": "" @@ -414037,8 +423058,8 @@ { "id": 6158662124, "node_id": "LA_kwDOHHF5A88AAAABbxW57A", - "url": "https://api.github.com/repos/damus-io/damus/labels/signal/noise%20ratio%20%F0%9F%91%80/%F0%9F%92%A5", - "name": "signal/noise ratio 👀/💥", + "url": "https://api.github.com/repos/damus-io/damus/labels/signal-to-noise-ratio", + "name": "signal-to-noise-ratio", "color": "0E8A16", "default": false, "description": "" @@ -414738,14 +423759,298 @@ { "id": 6158662124, "node_id": "LA_kwDOHHF5A88AAAABbxW57A", - "url": "https://api.github.com/repos/damus-io/damus/labels/signal/noise%20ratio%20%F0%9F%91%80/%F0%9F%92%A5", - "name": "signal/noise ratio 👀/💥", + "url": "https://api.github.com/repos/damus-io/damus/labels/signal-to-noise-ratio", + "name": "signal-to-noise-ratio", "color": "0E8A16", "default": false, "description": "" } ], - "state": "closed", + "state": "open", + "locked": false, + "assignee": { + "login": "fishcharlie", + "id": 860375, + "node_id": "MDQ6VXNlcjg2MDM3NQ==", + "avatar_url": "https://avatars.githubusercontent.com/u/860375?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/fishcharlie", + "html_url": "https://github.com/fishcharlie", + "followers_url": "https://api.github.com/users/fishcharlie/followers", + "following_url": "https://api.github.com/users/fishcharlie/following{/other_user}", + "gists_url": "https://api.github.com/users/fishcharlie/gists{/gist_id}", + "starred_url": "https://api.github.com/users/fishcharlie/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/fishcharlie/subscriptions", + "organizations_url": "https://api.github.com/users/fishcharlie/orgs", + "repos_url": "https://api.github.com/users/fishcharlie/repos", + "events_url": "https://api.github.com/users/fishcharlie/events{/privacy}", + "received_events_url": "https://api.github.com/users/fishcharlie/received_events", + "type": "User", + "site_admin": false + }, + "assignees": [ + { + "login": "fishcharlie", + "id": 860375, + "node_id": "MDQ6VXNlcjg2MDM3NQ==", + "avatar_url": "https://avatars.githubusercontent.com/u/860375?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/fishcharlie", + "html_url": "https://github.com/fishcharlie", + "followers_url": "https://api.github.com/users/fishcharlie/followers", + "following_url": "https://api.github.com/users/fishcharlie/following{/other_user}", + "gists_url": "https://api.github.com/users/fishcharlie/gists{/gist_id}", + "starred_url": "https://api.github.com/users/fishcharlie/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/fishcharlie/subscriptions", + "organizations_url": "https://api.github.com/users/fishcharlie/orgs", + "repos_url": "https://api.github.com/users/fishcharlie/repos", + "events_url": "https://api.github.com/users/fishcharlie/events{/privacy}", + "received_events_url": "https://api.github.com/users/fishcharlie/received_events", + "type": "User", + "site_admin": false + } + ], + "milestone": null, + "comments": 28, + "created_at": "2023-04-02T23:49:39Z", + "updated_at": "2024-03-20T08:20:03Z", + "closed_at": null, + "author_association": "COLLABORATOR", + "active_lock_reason": null, + "body": "## Bounty\r\n1,000,000 sats posted by Karnage\r\n\r\nhttps://damus.io/note1mefmevqeqqjghw4d7tzk6rp46n3sc0u3syazx2j6k8hqjxmv2svqz0fchn\r\n\r\n## User Story\r\nAs a Damus user looking to avoid notes with a particular keyword, I would like the capability to mute notes that contain a keyword I specify, so that I don't see any notes containing this keyword. \r\n\r\n### Acceptance Criteria \r\n1. User can specify a keyword they would like muted in settings \r\n2. User can see, and modify list of muted keywords by adding, or deleting words. \r\n3. If a note contains a muted keyword, the note is not displayed to user\r\n-in timeline\r\n-in universe view \r\n-in notifications \r\n-in DMs\r\n-in zaps\r\n4. User does not receive any notifications associated with notes containing this keyword \r\n5. User has an option to mute from everyone, or from people user does not follow\r\n6. User can select a mute duration: 24 hours, 1 week, 1 month, or forever. Default is forever. \r\n7. If no words are muted, the following message is displayed: \r\n> *You aren't muting any words.* \r\n\r\n> When you mute words you won't see any notifications for notes that include them, or see notes that include muted words in your timeline. \r\n8. Hashtag of muted word is muted.\r\n9. If in replies/thread, muted notes are collapsed to a single row stating: \"Note contains a word you've muted.\" and moved to bottom of reply thread.\r\n10. User has a tappable option to show the muted note `Show` (similar to \r\n![image](https://user-images.githubusercontent.com/64376233/229396257-ad039968-9885-4a41-a023-42782f9881ca.jpeg) )\r\n11. Bonus: user can mute a phrase as well (for instance the spammy/zero effort string \"Hello world! #introductions\")", + "reactions": { + "url": "https://api.github.com/repos/damus-io/damus/issues/856/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/856/timeline", + "performed_via_github_app": null, + "state_reason": "reopened" + } + }, + { + "issue": { + "url": "https://api.github.com/repos/damus-io/damus/issues/856", + "repository_url": "https://api.github.com/repos/damus-io/damus", + "labels_url": "https://api.github.com/repos/damus-io/damus/issues/856/labels{/name}", + "comments_url": "https://api.github.com/repos/damus-io/damus/issues/856/comments", + "events_url": "https://api.github.com/repos/damus-io/damus/issues/856/events", + "html_url": "https://github.com/damus-io/damus/issues/856", + "id": 1651138989, + "node_id": "I_kwDOHHF5A85iamGt", + "number": 856, + "title": "Mute note with presence of keyword (1,000,000 sats bounty)", + "user": { + "login": "alltheseas", + "id": 64376233, + "node_id": "MDQ6VXNlcjY0Mzc2MjMz", + "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/alltheseas", + "html_url": "https://github.com/alltheseas", + "followers_url": "https://api.github.com/users/alltheseas/followers", + "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", + "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", + "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", + "organizations_url": "https://api.github.com/users/alltheseas/orgs", + "repos_url": "https://api.github.com/users/alltheseas/repos", + "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", + "received_events_url": "https://api.github.com/users/alltheseas/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "id": 3994718399, + "node_id": "LA_kwDOHHF5A87uGpC_", + "url": "https://api.github.com/repos/damus-io/damus/labels/enhancement", + "name": "enhancement", + "color": "a2eeef", + "default": true, + "description": "Improvement" + }, + { + "id": 5667230655, + "node_id": "LA_kwDOHHF5A88AAAABUcsTvw", + "url": "https://api.github.com/repos/damus-io/damus/labels/feature", + "name": "feature", + "color": "BFDADC", + "default": false, + "description": "New feature request" + }, + { + "id": 5667341106, + "node_id": "LA_kwDOHHF5A88AAAABUczDMg", + "url": "https://api.github.com/repos/damus-io/damus/labels/bounty", + "name": "bounty", + "color": "D93F0B", + "default": false, + "description": "Sats" + }, + { + "id": 6158662124, + "node_id": "LA_kwDOHHF5A88AAAABbxW57A", + "url": "https://api.github.com/repos/damus-io/damus/labels/signal-to-noise-ratio", + "name": "signal-to-noise-ratio", + "color": "0E8A16", + "default": false, + "description": "" + } + ], + "state": "open", + "locked": false, + "assignee": { + "login": "fishcharlie", + "id": 860375, + "node_id": "MDQ6VXNlcjg2MDM3NQ==", + "avatar_url": "https://avatars.githubusercontent.com/u/860375?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/fishcharlie", + "html_url": "https://github.com/fishcharlie", + "followers_url": "https://api.github.com/users/fishcharlie/followers", + "following_url": "https://api.github.com/users/fishcharlie/following{/other_user}", + "gists_url": "https://api.github.com/users/fishcharlie/gists{/gist_id}", + "starred_url": "https://api.github.com/users/fishcharlie/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/fishcharlie/subscriptions", + "organizations_url": "https://api.github.com/users/fishcharlie/orgs", + "repos_url": "https://api.github.com/users/fishcharlie/repos", + "events_url": "https://api.github.com/users/fishcharlie/events{/privacy}", + "received_events_url": "https://api.github.com/users/fishcharlie/received_events", + "type": "User", + "site_admin": false + }, + "assignees": [ + { + "login": "fishcharlie", + "id": 860375, + "node_id": "MDQ6VXNlcjg2MDM3NQ==", + "avatar_url": "https://avatars.githubusercontent.com/u/860375?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/fishcharlie", + "html_url": "https://github.com/fishcharlie", + "followers_url": "https://api.github.com/users/fishcharlie/followers", + "following_url": "https://api.github.com/users/fishcharlie/following{/other_user}", + "gists_url": "https://api.github.com/users/fishcharlie/gists{/gist_id}", + "starred_url": "https://api.github.com/users/fishcharlie/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/fishcharlie/subscriptions", + "organizations_url": "https://api.github.com/users/fishcharlie/orgs", + "repos_url": "https://api.github.com/users/fishcharlie/repos", + "events_url": "https://api.github.com/users/fishcharlie/events{/privacy}", + "received_events_url": "https://api.github.com/users/fishcharlie/received_events", + "type": "User", + "site_admin": false + } + ], + "milestone": null, + "comments": 28, + "created_at": "2023-04-02T23:49:39Z", + "updated_at": "2024-03-20T08:20:03Z", + "closed_at": null, + "author_association": "COLLABORATOR", + "active_lock_reason": null, + "body": "## Bounty\r\n1,000,000 sats posted by Karnage\r\n\r\nhttps://damus.io/note1mefmevqeqqjghw4d7tzk6rp46n3sc0u3syazx2j6k8hqjxmv2svqz0fchn\r\n\r\n## User Story\r\nAs a Damus user looking to avoid notes with a particular keyword, I would like the capability to mute notes that contain a keyword I specify, so that I don't see any notes containing this keyword. \r\n\r\n### Acceptance Criteria \r\n1. User can specify a keyword they would like muted in settings \r\n2. User can see, and modify list of muted keywords by adding, or deleting words. \r\n3. If a note contains a muted keyword, the note is not displayed to user\r\n-in timeline\r\n-in universe view \r\n-in notifications \r\n-in DMs\r\n-in zaps\r\n4. User does not receive any notifications associated with notes containing this keyword \r\n5. User has an option to mute from everyone, or from people user does not follow\r\n6. User can select a mute duration: 24 hours, 1 week, 1 month, or forever. Default is forever. \r\n7. If no words are muted, the following message is displayed: \r\n> *You aren't muting any words.* \r\n\r\n> When you mute words you won't see any notifications for notes that include them, or see notes that include muted words in your timeline. \r\n8. Hashtag of muted word is muted.\r\n9. If in replies/thread, muted notes are collapsed to a single row stating: \"Note contains a word you've muted.\" and moved to bottom of reply thread.\r\n10. User has a tappable option to show the muted note `Show` (similar to \r\n![image](https://user-images.githubusercontent.com/64376233/229396257-ad039968-9885-4a41-a023-42782f9881ca.jpeg) )\r\n11. Bonus: user can mute a phrase as well (for instance the spammy/zero effort string \"Hello world! #introductions\")", + "reactions": { + "url": "https://api.github.com/repos/damus-io/damus/issues/856/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/856/timeline", + "performed_via_github_app": null, + "state_reason": "reopened" + }, + "comment": { + "user": "alltheseas", + "created_at": "2023-08-01T19:47:13Z", + "updated_at": "2023-08-01T19:47:13Z", + "body": "@jb55 mentions this is related to nostrscript, and is on list of top priorities\r\n\r\n> - Muting words, nostrscript filters\r\n" + } + }, + { + "issue": { + "url": "https://api.github.com/repos/damus-io/damus/issues/856", + "repository_url": "https://api.github.com/repos/damus-io/damus", + "labels_url": "https://api.github.com/repos/damus-io/damus/issues/856/labels{/name}", + "comments_url": "https://api.github.com/repos/damus-io/damus/issues/856/comments", + "events_url": "https://api.github.com/repos/damus-io/damus/issues/856/events", + "html_url": "https://github.com/damus-io/damus/issues/856", + "id": 1651138989, + "node_id": "I_kwDOHHF5A85iamGt", + "number": 856, + "title": "Mute note with presence of keyword (1,000,000 sats bounty)", + "user": { + "login": "alltheseas", + "id": 64376233, + "node_id": "MDQ6VXNlcjY0Mzc2MjMz", + "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/alltheseas", + "html_url": "https://github.com/alltheseas", + "followers_url": "https://api.github.com/users/alltheseas/followers", + "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", + "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", + "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", + "organizations_url": "https://api.github.com/users/alltheseas/orgs", + "repos_url": "https://api.github.com/users/alltheseas/repos", + "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", + "received_events_url": "https://api.github.com/users/alltheseas/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "id": 3994718399, + "node_id": "LA_kwDOHHF5A87uGpC_", + "url": "https://api.github.com/repos/damus-io/damus/labels/enhancement", + "name": "enhancement", + "color": "a2eeef", + "default": true, + "description": "Improvement" + }, + { + "id": 5667230655, + "node_id": "LA_kwDOHHF5A88AAAABUcsTvw", + "url": "https://api.github.com/repos/damus-io/damus/labels/feature", + "name": "feature", + "color": "BFDADC", + "default": false, + "description": "New feature request" + }, + { + "id": 5667341106, + "node_id": "LA_kwDOHHF5A88AAAABUczDMg", + "url": "https://api.github.com/repos/damus-io/damus/labels/bounty", + "name": "bounty", + "color": "D93F0B", + "default": false, + "description": "Sats" + }, + { + "id": 6158662124, + "node_id": "LA_kwDOHHF5A88AAAABbxW57A", + "url": "https://api.github.com/repos/damus-io/damus/labels/signal-to-noise-ratio", + "name": "signal-to-noise-ratio", + "color": "0E8A16", + "default": false, + "description": "" + } + ], + "state": "open", "locked": false, "assignee": { "login": "fishcharlie", @@ -414790,10 +424095,10 @@ } ], "milestone": null, - "comments": 26, + "comments": 28, "created_at": "2023-04-02T23:49:39Z", - "updated_at": "2024-02-26T20:05:56Z", - "closed_at": "2024-02-26T20:05:56Z", + "updated_at": "2024-03-20T08:20:03Z", + "closed_at": null, "author_association": "COLLABORATOR", "active_lock_reason": null, "body": "## Bounty\r\n1,000,000 sats posted by Karnage\r\n\r\nhttps://damus.io/note1mefmevqeqqjghw4d7tzk6rp46n3sc0u3syazx2j6k8hqjxmv2svqz0fchn\r\n\r\n## User Story\r\nAs a Damus user looking to avoid notes with a particular keyword, I would like the capability to mute notes that contain a keyword I specify, so that I don't see any notes containing this keyword. \r\n\r\n### Acceptance Criteria \r\n1. User can specify a keyword they would like muted in settings \r\n2. User can see, and modify list of muted keywords by adding, or deleting words. \r\n3. If a note contains a muted keyword, the note is not displayed to user\r\n-in timeline\r\n-in universe view \r\n-in notifications \r\n-in DMs\r\n-in zaps\r\n4. User does not receive any notifications associated with notes containing this keyword \r\n5. User has an option to mute from everyone, or from people user does not follow\r\n6. User can select a mute duration: 24 hours, 1 week, 1 month, or forever. Default is forever. \r\n7. If no words are muted, the following message is displayed: \r\n> *You aren't muting any words.* \r\n\r\n> When you mute words you won't see any notifications for notes that include them, or see notes that include muted words in your timeline. \r\n8. Hashtag of muted word is muted.\r\n9. If in replies/thread, muted notes are collapsed to a single row stating: \"Note contains a word you've muted.\" and moved to bottom of reply thread.\r\n10. User has a tappable option to show the muted note `Show` (similar to \r\n![image](https://user-images.githubusercontent.com/64376233/229396257-ad039968-9885-4a41-a023-42782f9881ca.jpeg) )\r\n11. Bonus: user can mute a phrase as well (for instance the spammy/zero effort string \"Hello world! #introductions\")", @@ -414811,7 +424116,13 @@ }, "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/856/timeline", "performed_via_github_app": null, - "state_reason": "completed" + "state_reason": "reopened" + }, + "comment": { + "user": "alltheseas", + "created_at": "2023-11-17T15:38:14Z", + "updated_at": "2023-11-17T15:38:14Z", + "body": "![image](https://github.com/damus-io/damus/assets/64376233/7b8e5d97-8b70-4d7d-b479-d57977cf856e)\n\nWould be useful to mute a phrase" } }, { @@ -414877,14 +424188,14 @@ { "id": 6158662124, "node_id": "LA_kwDOHHF5A88AAAABbxW57A", - "url": "https://api.github.com/repos/damus-io/damus/labels/signal/noise%20ratio%20%F0%9F%91%80/%F0%9F%92%A5", - "name": "signal/noise ratio 👀/💥", + "url": "https://api.github.com/repos/damus-io/damus/labels/signal-to-noise-ratio", + "name": "signal-to-noise-ratio", "color": "0E8A16", "default": false, "description": "" } ], - "state": "closed", + "state": "open", "locked": false, "assignee": { "login": "fishcharlie", @@ -414929,10 +424240,10 @@ } ], "milestone": null, - "comments": 26, + "comments": 28, "created_at": "2023-04-02T23:49:39Z", - "updated_at": "2024-02-26T20:05:56Z", - "closed_at": "2024-02-26T20:05:56Z", + "updated_at": "2024-03-20T08:20:03Z", + "closed_at": null, "author_association": "COLLABORATOR", "active_lock_reason": null, "body": "## Bounty\r\n1,000,000 sats posted by Karnage\r\n\r\nhttps://damus.io/note1mefmevqeqqjghw4d7tzk6rp46n3sc0u3syazx2j6k8hqjxmv2svqz0fchn\r\n\r\n## User Story\r\nAs a Damus user looking to avoid notes with a particular keyword, I would like the capability to mute notes that contain a keyword I specify, so that I don't see any notes containing this keyword. \r\n\r\n### Acceptance Criteria \r\n1. User can specify a keyword they would like muted in settings \r\n2. User can see, and modify list of muted keywords by adding, or deleting words. \r\n3. If a note contains a muted keyword, the note is not displayed to user\r\n-in timeline\r\n-in universe view \r\n-in notifications \r\n-in DMs\r\n-in zaps\r\n4. User does not receive any notifications associated with notes containing this keyword \r\n5. User has an option to mute from everyone, or from people user does not follow\r\n6. User can select a mute duration: 24 hours, 1 week, 1 month, or forever. Default is forever. \r\n7. If no words are muted, the following message is displayed: \r\n> *You aren't muting any words.* \r\n\r\n> When you mute words you won't see any notifications for notes that include them, or see notes that include muted words in your timeline. \r\n8. Hashtag of muted word is muted.\r\n9. If in replies/thread, muted notes are collapsed to a single row stating: \"Note contains a word you've muted.\" and moved to bottom of reply thread.\r\n10. User has a tappable option to show the muted note `Show` (similar to \r\n![image](https://user-images.githubusercontent.com/64376233/229396257-ad039968-9885-4a41-a023-42782f9881ca.jpeg) )\r\n11. Bonus: user can mute a phrase as well (for instance the spammy/zero effort string \"Hello world! #introductions\")", @@ -414950,13 +424261,13 @@ }, "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/856/timeline", "performed_via_github_app": null, - "state_reason": "completed" + "state_reason": "reopened" }, "comment": { - "user": "alltheseas", - "created_at": "2023-08-01T19:47:13Z", - "updated_at": "2023-08-01T19:47:13Z", - "body": "@jb55 mentions this is related to nostrscript, and is on list of top priorities\r\n\r\n> - Muting words, nostrscript filters\r\n" + "user": "fishcharlie", + "created_at": "2024-01-07T20:27:43Z", + "updated_at": "2024-01-07T20:27:43Z", + "body": "Going to start working on this." } }, { @@ -415022,14 +424333,14 @@ { "id": 6158662124, "node_id": "LA_kwDOHHF5A88AAAABbxW57A", - "url": "https://api.github.com/repos/damus-io/damus/labels/signal/noise%20ratio%20%F0%9F%91%80/%F0%9F%92%A5", - "name": "signal/noise ratio 👀/💥", + "url": "https://api.github.com/repos/damus-io/damus/labels/signal-to-noise-ratio", + "name": "signal-to-noise-ratio", "color": "0E8A16", "default": false, "description": "" } ], - "state": "closed", + "state": "open", "locked": false, "assignee": { "login": "fishcharlie", @@ -415074,10 +424385,10 @@ } ], "milestone": null, - "comments": 26, + "comments": 28, "created_at": "2023-04-02T23:49:39Z", - "updated_at": "2024-02-26T20:05:56Z", - "closed_at": "2024-02-26T20:05:56Z", + "updated_at": "2024-03-20T08:20:03Z", + "closed_at": null, "author_association": "COLLABORATOR", "active_lock_reason": null, "body": "## Bounty\r\n1,000,000 sats posted by Karnage\r\n\r\nhttps://damus.io/note1mefmevqeqqjghw4d7tzk6rp46n3sc0u3syazx2j6k8hqjxmv2svqz0fchn\r\n\r\n## User Story\r\nAs a Damus user looking to avoid notes with a particular keyword, I would like the capability to mute notes that contain a keyword I specify, so that I don't see any notes containing this keyword. \r\n\r\n### Acceptance Criteria \r\n1. User can specify a keyword they would like muted in settings \r\n2. User can see, and modify list of muted keywords by adding, or deleting words. \r\n3. If a note contains a muted keyword, the note is not displayed to user\r\n-in timeline\r\n-in universe view \r\n-in notifications \r\n-in DMs\r\n-in zaps\r\n4. User does not receive any notifications associated with notes containing this keyword \r\n5. User has an option to mute from everyone, or from people user does not follow\r\n6. User can select a mute duration: 24 hours, 1 week, 1 month, or forever. Default is forever. \r\n7. If no words are muted, the following message is displayed: \r\n> *You aren't muting any words.* \r\n\r\n> When you mute words you won't see any notifications for notes that include them, or see notes that include muted words in your timeline. \r\n8. Hashtag of muted word is muted.\r\n9. If in replies/thread, muted notes are collapsed to a single row stating: \"Note contains a word you've muted.\" and moved to bottom of reply thread.\r\n10. User has a tappable option to show the muted note `Show` (similar to \r\n![image](https://user-images.githubusercontent.com/64376233/229396257-ad039968-9885-4a41-a023-42782f9881ca.jpeg) )\r\n11. Bonus: user can mute a phrase as well (for instance the spammy/zero effort string \"Hello world! #introductions\")", @@ -415095,13 +424406,13 @@ }, "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/856/timeline", "performed_via_github_app": null, - "state_reason": "completed" + "state_reason": "reopened" }, "comment": { - "user": "alltheseas", - "created_at": "2023-11-17T15:38:14Z", - "updated_at": "2023-11-17T15:38:14Z", - "body": "![image](https://github.com/damus-io/damus/assets/64376233/7b8e5d97-8b70-4d7d-b479-d57977cf856e)\n\nWould be useful to mute a phrase" + "user": "fishcharlie", + "created_at": "2024-01-10T22:45:20Z", + "updated_at": "2024-01-10T22:45:20Z", + "body": "Regarding acceptance criteria 6:\r\n\r\n> User can select a mute duration: 24 hours, 1 week, 1 month, or forever. Default is forever.\r\n\r\nHow would we feel about removing that item in the acceptance criteria? Currently I'm using the NIP standard for mute lists (see #1718). Which would make time based mute lists tricky. Especially for a client device that isn't guaranteed to always be online.\r\n\r\nPlease see @jb55's post here regarding similar difficulties for scheduled posts: https://github.com/damus-io/damus/issues/1241#issuecomment-1776279430.\r\n\r\nThere are some workarounds we can do here. But none of which really apply to the root ticket of `Mute note with presence of keyword`. I will also mention that Damus today does not support mute durations for threads or users. So regardless, this should be broken into two tickets. One for `Mute note with presence of keyword` & another for `Allow user to choose mute duration`. It's not one unit of work.\r\n\r\nHowever. I'm hesitant to ignore that acceptance criteria because there is a bounty on this issue. It would be unfair to the bounty payer to adjust the requirements after the fact without their approval.\r\n\r\nAlso PS: I am planning on implementing the `Bonus: user can mute a phrase as well (for instance the spammy/zero effort string \"Hello world! #introductions\")` acceptance criteria.\r\n\r\ncc/ @jb55 @alltheseas" } }, { @@ -415167,14 +424478,14 @@ { "id": 6158662124, "node_id": "LA_kwDOHHF5A88AAAABbxW57A", - "url": "https://api.github.com/repos/damus-io/damus/labels/signal/noise%20ratio%20%F0%9F%91%80/%F0%9F%92%A5", - "name": "signal/noise ratio 👀/💥", + "url": "https://api.github.com/repos/damus-io/damus/labels/signal-to-noise-ratio", + "name": "signal-to-noise-ratio", "color": "0E8A16", "default": false, "description": "" } ], - "state": "closed", + "state": "open", "locked": false, "assignee": { "login": "fishcharlie", @@ -415219,10 +424530,10 @@ } ], "milestone": null, - "comments": 26, + "comments": 28, "created_at": "2023-04-02T23:49:39Z", - "updated_at": "2024-02-26T20:05:56Z", - "closed_at": "2024-02-26T20:05:56Z", + "updated_at": "2024-03-20T08:20:03Z", + "closed_at": null, "author_association": "COLLABORATOR", "active_lock_reason": null, "body": "## Bounty\r\n1,000,000 sats posted by Karnage\r\n\r\nhttps://damus.io/note1mefmevqeqqjghw4d7tzk6rp46n3sc0u3syazx2j6k8hqjxmv2svqz0fchn\r\n\r\n## User Story\r\nAs a Damus user looking to avoid notes with a particular keyword, I would like the capability to mute notes that contain a keyword I specify, so that I don't see any notes containing this keyword. \r\n\r\n### Acceptance Criteria \r\n1. User can specify a keyword they would like muted in settings \r\n2. User can see, and modify list of muted keywords by adding, or deleting words. \r\n3. If a note contains a muted keyword, the note is not displayed to user\r\n-in timeline\r\n-in universe view \r\n-in notifications \r\n-in DMs\r\n-in zaps\r\n4. User does not receive any notifications associated with notes containing this keyword \r\n5. User has an option to mute from everyone, or from people user does not follow\r\n6. User can select a mute duration: 24 hours, 1 week, 1 month, or forever. Default is forever. \r\n7. If no words are muted, the following message is displayed: \r\n> *You aren't muting any words.* \r\n\r\n> When you mute words you won't see any notifications for notes that include them, or see notes that include muted words in your timeline. \r\n8. Hashtag of muted word is muted.\r\n9. If in replies/thread, muted notes are collapsed to a single row stating: \"Note contains a word you've muted.\" and moved to bottom of reply thread.\r\n10. User has a tappable option to show the muted note `Show` (similar to \r\n![image](https://user-images.githubusercontent.com/64376233/229396257-ad039968-9885-4a41-a023-42782f9881ca.jpeg) )\r\n11. Bonus: user can mute a phrase as well (for instance the spammy/zero effort string \"Hello world! #introductions\")", @@ -415240,13 +424551,13 @@ }, "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/856/timeline", "performed_via_github_app": null, - "state_reason": "completed" + "state_reason": "reopened" }, "comment": { - "user": "fishcharlie", - "created_at": "2024-01-07T20:27:43Z", - "updated_at": "2024-01-07T20:27:43Z", - "body": "Going to start working on this." + "user": "alltheseas", + "created_at": "2024-01-10T23:18:16Z", + "updated_at": "2024-01-10T23:18:16Z", + "body": "@karnagebitcoin \n\nHow do you feel about removing the duration acceptance criteria? If we do this, the likelihood we roll out this feature soon increases substantially. \n\n> User can select a mute duration: 24 hours, 1 week, 1 month, or forever. \n\n\n\n" } }, { @@ -415312,14 +424623,14 @@ { "id": 6158662124, "node_id": "LA_kwDOHHF5A88AAAABbxW57A", - "url": "https://api.github.com/repos/damus-io/damus/labels/signal/noise%20ratio%20%F0%9F%91%80/%F0%9F%92%A5", - "name": "signal/noise ratio 👀/💥", + "url": "https://api.github.com/repos/damus-io/damus/labels/signal-to-noise-ratio", + "name": "signal-to-noise-ratio", "color": "0E8A16", "default": false, "description": "" } ], - "state": "closed", + "state": "open", "locked": false, "assignee": { "login": "fishcharlie", @@ -415364,10 +424675,10 @@ } ], "milestone": null, - "comments": 26, + "comments": 28, "created_at": "2023-04-02T23:49:39Z", - "updated_at": "2024-02-26T20:05:56Z", - "closed_at": "2024-02-26T20:05:56Z", + "updated_at": "2024-03-20T08:20:03Z", + "closed_at": null, "author_association": "COLLABORATOR", "active_lock_reason": null, "body": "## Bounty\r\n1,000,000 sats posted by Karnage\r\n\r\nhttps://damus.io/note1mefmevqeqqjghw4d7tzk6rp46n3sc0u3syazx2j6k8hqjxmv2svqz0fchn\r\n\r\n## User Story\r\nAs a Damus user looking to avoid notes with a particular keyword, I would like the capability to mute notes that contain a keyword I specify, so that I don't see any notes containing this keyword. \r\n\r\n### Acceptance Criteria \r\n1. User can specify a keyword they would like muted in settings \r\n2. User can see, and modify list of muted keywords by adding, or deleting words. \r\n3. If a note contains a muted keyword, the note is not displayed to user\r\n-in timeline\r\n-in universe view \r\n-in notifications \r\n-in DMs\r\n-in zaps\r\n4. User does not receive any notifications associated with notes containing this keyword \r\n5. User has an option to mute from everyone, or from people user does not follow\r\n6. User can select a mute duration: 24 hours, 1 week, 1 month, or forever. Default is forever. \r\n7. If no words are muted, the following message is displayed: \r\n> *You aren't muting any words.* \r\n\r\n> When you mute words you won't see any notifications for notes that include them, or see notes that include muted words in your timeline. \r\n8. Hashtag of muted word is muted.\r\n9. If in replies/thread, muted notes are collapsed to a single row stating: \"Note contains a word you've muted.\" and moved to bottom of reply thread.\r\n10. User has a tappable option to show the muted note `Show` (similar to \r\n![image](https://user-images.githubusercontent.com/64376233/229396257-ad039968-9885-4a41-a023-42782f9881ca.jpeg) )\r\n11. Bonus: user can mute a phrase as well (for instance the spammy/zero effort string \"Hello world! #introductions\")", @@ -415385,13 +424696,13 @@ }, "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/856/timeline", "performed_via_github_app": null, - "state_reason": "completed" + "state_reason": "reopened" }, "comment": { - "user": "fishcharlie", - "created_at": "2024-01-10T22:45:20Z", - "updated_at": "2024-01-10T22:45:20Z", - "body": "Regarding acceptance criteria 6:\r\n\r\n> User can select a mute duration: 24 hours, 1 week, 1 month, or forever. Default is forever.\r\n\r\nHow would we feel about removing that item in the acceptance criteria? Currently I'm using the NIP standard for mute lists (see #1718). Which would make time based mute lists tricky. Especially for a client device that isn't guaranteed to always be online.\r\n\r\nPlease see @jb55's post here regarding similar difficulties for scheduled posts: https://github.com/damus-io/damus/issues/1241#issuecomment-1776279430.\r\n\r\nThere are some workarounds we can do here. But none of which really apply to the root ticket of `Mute note with presence of keyword`. I will also mention that Damus today does not support mute durations for threads or users. So regardless, this should be broken into two tickets. One for `Mute note with presence of keyword` & another for `Allow user to choose mute duration`. It's not one unit of work.\r\n\r\nHowever. I'm hesitant to ignore that acceptance criteria because there is a bounty on this issue. It would be unfair to the bounty payer to adjust the requirements after the fact without their approval.\r\n\r\nAlso PS: I am planning on implementing the `Bonus: user can mute a phrase as well (for instance the spammy/zero effort string \"Hello world! #introductions\")` acceptance criteria.\r\n\r\ncc/ @jb55 @alltheseas" + "user": "jb55", + "created_at": "2024-01-11T00:04:17Z", + "updated_at": "2024-01-11T00:04:17Z", + "body": "On Wed, Jan 10, 2024 at 02:45:31PM -0800, Charlie Fish wrote:\n>Regarding acceptance criteria 6:\n>\n>> User can select a mute duration: 24 hours, 1 week, 1 month, or\n>> forever. Default is forever.\n>\n>How would we feel about removing that item in the acceptance criteria?\n>Currently I'm using the NIP standard for mute lists (see #1718). Which\n>would make time based mute lists tricky. Especially for a client device\n>that isn't guaranteed to always be online.\n\nWhy would needing to be online affect this? Wouldn't you just need to\nstore when to unmute? Then whenever you're active it can just check if\nits still muted. This is a bit different than scheduled posts. but yeah\nthey could probably be separate tasks. We should have mute durations for\nusers as well.\n" } }, { @@ -415457,14 +424768,14 @@ { "id": 6158662124, "node_id": "LA_kwDOHHF5A88AAAABbxW57A", - "url": "https://api.github.com/repos/damus-io/damus/labels/signal/noise%20ratio%20%F0%9F%91%80/%F0%9F%92%A5", - "name": "signal/noise ratio 👀/💥", + "url": "https://api.github.com/repos/damus-io/damus/labels/signal-to-noise-ratio", + "name": "signal-to-noise-ratio", "color": "0E8A16", "default": false, "description": "" } ], - "state": "closed", + "state": "open", "locked": false, "assignee": { "login": "fishcharlie", @@ -415509,10 +424820,10 @@ } ], "milestone": null, - "comments": 26, + "comments": 28, "created_at": "2023-04-02T23:49:39Z", - "updated_at": "2024-02-26T20:05:56Z", - "closed_at": "2024-02-26T20:05:56Z", + "updated_at": "2024-03-20T08:20:03Z", + "closed_at": null, "author_association": "COLLABORATOR", "active_lock_reason": null, "body": "## Bounty\r\n1,000,000 sats posted by Karnage\r\n\r\nhttps://damus.io/note1mefmevqeqqjghw4d7tzk6rp46n3sc0u3syazx2j6k8hqjxmv2svqz0fchn\r\n\r\n## User Story\r\nAs a Damus user looking to avoid notes with a particular keyword, I would like the capability to mute notes that contain a keyword I specify, so that I don't see any notes containing this keyword. \r\n\r\n### Acceptance Criteria \r\n1. User can specify a keyword they would like muted in settings \r\n2. User can see, and modify list of muted keywords by adding, or deleting words. \r\n3. If a note contains a muted keyword, the note is not displayed to user\r\n-in timeline\r\n-in universe view \r\n-in notifications \r\n-in DMs\r\n-in zaps\r\n4. User does not receive any notifications associated with notes containing this keyword \r\n5. User has an option to mute from everyone, or from people user does not follow\r\n6. User can select a mute duration: 24 hours, 1 week, 1 month, or forever. Default is forever. \r\n7. If no words are muted, the following message is displayed: \r\n> *You aren't muting any words.* \r\n\r\n> When you mute words you won't see any notifications for notes that include them, or see notes that include muted words in your timeline. \r\n8. Hashtag of muted word is muted.\r\n9. If in replies/thread, muted notes are collapsed to a single row stating: \"Note contains a word you've muted.\" and moved to bottom of reply thread.\r\n10. User has a tappable option to show the muted note `Show` (similar to \r\n![image](https://user-images.githubusercontent.com/64376233/229396257-ad039968-9885-4a41-a023-42782f9881ca.jpeg) )\r\n11. Bonus: user can mute a phrase as well (for instance the spammy/zero effort string \"Hello world! #introductions\")", @@ -415530,13 +424841,13 @@ }, "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/856/timeline", "performed_via_github_app": null, - "state_reason": "completed" + "state_reason": "reopened" }, "comment": { - "user": "alltheseas", - "created_at": "2024-01-10T23:18:16Z", - "updated_at": "2024-01-10T23:18:16Z", - "body": "@karnagebitcoin \n\nHow do you feel about removing the duration acceptance criteria? If we do this, the likelihood we roll out this feature soon increases substantially. \n\n> User can select a mute duration: 24 hours, 1 week, 1 month, or forever. \n\n\n\n" + "user": "fishcharlie", + "created_at": "2024-01-11T00:13:42Z", + "updated_at": "2024-01-11T00:13:42Z", + "body": "> Why would needing to be online affect this? Wouldn't you just need to store when to unmute?\r\n\r\n@jb55 If we are just talking about offline storing of mute duration, that is possible, yes. Easy almost.\r\n\r\nThe problem is with the kind:10000 mute list (#1718). Once that mute duration has passed, Damus (or some client) needs to be active to sign & relay an updated kind:10000 mute list that removed that item where the mute duration has passed.\r\n\r\nI guess it's possible to do mute durations and sync it next time you're online. But there is a chance that your Damus mute list wouldn't match your kind:10000 mute list.\r\n\r\nExample:\r\n\r\n1. User mutes Account A for 1 month\r\n2. User never uses Damus again (or deletes the app) 😢\r\n3. 1 month passes (or longer)\r\n4. Users kind:10000 mute list still contains Account A\r\n\r\nMaybe a minor edge case, but an edge case nonetheless." } }, { @@ -415602,14 +424913,14 @@ { "id": 6158662124, "node_id": "LA_kwDOHHF5A88AAAABbxW57A", - "url": "https://api.github.com/repos/damus-io/damus/labels/signal/noise%20ratio%20%F0%9F%91%80/%F0%9F%92%A5", - "name": "signal/noise ratio 👀/💥", + "url": "https://api.github.com/repos/damus-io/damus/labels/signal-to-noise-ratio", + "name": "signal-to-noise-ratio", "color": "0E8A16", "default": false, "description": "" } ], - "state": "closed", + "state": "open", "locked": false, "assignee": { "login": "fishcharlie", @@ -415654,10 +424965,10 @@ } ], "milestone": null, - "comments": 26, + "comments": 28, "created_at": "2023-04-02T23:49:39Z", - "updated_at": "2024-02-26T20:05:56Z", - "closed_at": "2024-02-26T20:05:56Z", + "updated_at": "2024-03-20T08:20:03Z", + "closed_at": null, "author_association": "COLLABORATOR", "active_lock_reason": null, "body": "## Bounty\r\n1,000,000 sats posted by Karnage\r\n\r\nhttps://damus.io/note1mefmevqeqqjghw4d7tzk6rp46n3sc0u3syazx2j6k8hqjxmv2svqz0fchn\r\n\r\n## User Story\r\nAs a Damus user looking to avoid notes with a particular keyword, I would like the capability to mute notes that contain a keyword I specify, so that I don't see any notes containing this keyword. \r\n\r\n### Acceptance Criteria \r\n1. User can specify a keyword they would like muted in settings \r\n2. User can see, and modify list of muted keywords by adding, or deleting words. \r\n3. If a note contains a muted keyword, the note is not displayed to user\r\n-in timeline\r\n-in universe view \r\n-in notifications \r\n-in DMs\r\n-in zaps\r\n4. User does not receive any notifications associated with notes containing this keyword \r\n5. User has an option to mute from everyone, or from people user does not follow\r\n6. User can select a mute duration: 24 hours, 1 week, 1 month, or forever. Default is forever. \r\n7. If no words are muted, the following message is displayed: \r\n> *You aren't muting any words.* \r\n\r\n> When you mute words you won't see any notifications for notes that include them, or see notes that include muted words in your timeline. \r\n8. Hashtag of muted word is muted.\r\n9. If in replies/thread, muted notes are collapsed to a single row stating: \"Note contains a word you've muted.\" and moved to bottom of reply thread.\r\n10. User has a tappable option to show the muted note `Show` (similar to \r\n![image](https://user-images.githubusercontent.com/64376233/229396257-ad039968-9885-4a41-a023-42782f9881ca.jpeg) )\r\n11. Bonus: user can mute a phrase as well (for instance the spammy/zero effort string \"Hello world! #introductions\")", @@ -415675,13 +424986,13 @@ }, "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/856/timeline", "performed_via_github_app": null, - "state_reason": "completed" + "state_reason": "reopened" }, "comment": { "user": "jb55", - "created_at": "2024-01-11T00:04:17Z", - "updated_at": "2024-01-11T00:04:17Z", - "body": "On Wed, Jan 10, 2024 at 02:45:31PM -0800, Charlie Fish wrote:\n>Regarding acceptance criteria 6:\n>\n>> User can select a mute duration: 24 hours, 1 week, 1 month, or\n>> forever. Default is forever.\n>\n>How would we feel about removing that item in the acceptance criteria?\n>Currently I'm using the NIP standard for mute lists (see #1718). Which\n>would make time based mute lists tricky. Especially for a client device\n>that isn't guaranteed to always be online.\n\nWhy would needing to be online affect this? Wouldn't you just need to\nstore when to unmute? Then whenever you're active it can just check if\nits still muted. This is a bit different than scheduled posts. but yeah\nthey could probably be separate tasks. We should have mute durations for\nusers as well.\n" + "created_at": "2024-01-11T00:38:35Z", + "updated_at": "2024-01-11T00:38:35Z", + "body": "On Wed, Jan 10, 2024 at 04:13:53PM -0800, Charlie Fish wrote:\n>> Why would needing to be online affect this? Wouldn't you just need to store when to unmute?\n>\n>@jb55 If we are just talking about offline storing of mute duration, that is possible, yes. Easy almost.\n>\n>The problem is with the kind:10000 mute list (#1718). Once that mute duration has passed, Damus (or some client) needs to be active to sign & relay an updated kind:10000 mute list that removed that item where the mute duration has passed.\n>\n>I guess it's possible to do mute durations and sync it next time you're online. But there is a chance that your Damus mute list wouldn't match your kind:10000 mute list.\n>\n>Example:\n>\n>1. User mutes Account A for 1 month\n>2. User never uses Damus again (or deletes the app) 😢\n>3. 1 month passes (or longer)\n>4. Users kind:10000 mute list still contains Account A\n>\n>Maybe a minor edge case, but an edge case nonetheless.\n\nyeah I wouldn't get worked up over this edgecase. Having just an expiry\ntime that is checked by whatever app you login to is fine.\n\nNot sure if this is spec'd on the mutelist NIP but that would be cool if it\nwas.\n" } }, { @@ -415747,14 +425058,14 @@ { "id": 6158662124, "node_id": "LA_kwDOHHF5A88AAAABbxW57A", - "url": "https://api.github.com/repos/damus-io/damus/labels/signal/noise%20ratio%20%F0%9F%91%80/%F0%9F%92%A5", - "name": "signal/noise ratio 👀/💥", + "url": "https://api.github.com/repos/damus-io/damus/labels/signal-to-noise-ratio", + "name": "signal-to-noise-ratio", "color": "0E8A16", "default": false, "description": "" } ], - "state": "closed", + "state": "open", "locked": false, "assignee": { "login": "fishcharlie", @@ -415799,10 +425110,10 @@ } ], "milestone": null, - "comments": 26, + "comments": 28, "created_at": "2023-04-02T23:49:39Z", - "updated_at": "2024-02-26T20:05:56Z", - "closed_at": "2024-02-26T20:05:56Z", + "updated_at": "2024-03-20T08:20:03Z", + "closed_at": null, "author_association": "COLLABORATOR", "active_lock_reason": null, "body": "## Bounty\r\n1,000,000 sats posted by Karnage\r\n\r\nhttps://damus.io/note1mefmevqeqqjghw4d7tzk6rp46n3sc0u3syazx2j6k8hqjxmv2svqz0fchn\r\n\r\n## User Story\r\nAs a Damus user looking to avoid notes with a particular keyword, I would like the capability to mute notes that contain a keyword I specify, so that I don't see any notes containing this keyword. \r\n\r\n### Acceptance Criteria \r\n1. User can specify a keyword they would like muted in settings \r\n2. User can see, and modify list of muted keywords by adding, or deleting words. \r\n3. If a note contains a muted keyword, the note is not displayed to user\r\n-in timeline\r\n-in universe view \r\n-in notifications \r\n-in DMs\r\n-in zaps\r\n4. User does not receive any notifications associated with notes containing this keyword \r\n5. User has an option to mute from everyone, or from people user does not follow\r\n6. User can select a mute duration: 24 hours, 1 week, 1 month, or forever. Default is forever. \r\n7. If no words are muted, the following message is displayed: \r\n> *You aren't muting any words.* \r\n\r\n> When you mute words you won't see any notifications for notes that include them, or see notes that include muted words in your timeline. \r\n8. Hashtag of muted word is muted.\r\n9. If in replies/thread, muted notes are collapsed to a single row stating: \"Note contains a word you've muted.\" and moved to bottom of reply thread.\r\n10. User has a tappable option to show the muted note `Show` (similar to \r\n![image](https://user-images.githubusercontent.com/64376233/229396257-ad039968-9885-4a41-a023-42782f9881ca.jpeg) )\r\n11. Bonus: user can mute a phrase as well (for instance the spammy/zero effort string \"Hello world! #introductions\")", @@ -415820,13 +425131,13 @@ }, "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/856/timeline", "performed_via_github_app": null, - "state_reason": "completed" + "state_reason": "reopened" }, "comment": { "user": "fishcharlie", - "created_at": "2024-01-11T00:13:42Z", - "updated_at": "2024-01-11T00:13:42Z", - "body": "> Why would needing to be online affect this? Wouldn't you just need to store when to unmute?\r\n\r\n@jb55 If we are just talking about offline storing of mute duration, that is possible, yes. Easy almost.\r\n\r\nThe problem is with the kind:10000 mute list (#1718). Once that mute duration has passed, Damus (or some client) needs to be active to sign & relay an updated kind:10000 mute list that removed that item where the mute duration has passed.\r\n\r\nI guess it's possible to do mute durations and sync it next time you're online. But there is a chance that your Damus mute list wouldn't match your kind:10000 mute list.\r\n\r\nExample:\r\n\r\n1. User mutes Account A for 1 month\r\n2. User never uses Damus again (or deletes the app) 😢\r\n3. 1 month passes (or longer)\r\n4. Users kind:10000 mute list still contains Account A\r\n\r\nMaybe a minor edge case, but an edge case nonetheless." + "created_at": "2024-01-11T00:46:03Z", + "updated_at": "2024-01-11T00:46:03Z", + "body": "> yeah I wouldn't get worked up over this edgecase\r\n\r\nFair enough.\r\n\r\n> Having just an expiry time that is checked by whatever app you login to is fine\r\n\r\nDon't quite understand this. In the kind:10000 spec I didn't see any way to specify an expiry time. Obviously if that existed, it would be really easy, and this conversation probably wouldn't even be occurring 😆.\r\n\r\nSo the only way to do it is Damus sending a new kind:10000 mute list after the expiration time has passed. Which is possible if we accept the edge case that Damus has to be active for that new mute list to be signed & relayed.\r\n\r\nJust wanna make sure we are on the same page about that.\r\n\r\nIf there are no issues I'll move forward with storing the expiration time locally (on Damus only). And once that time passes, if Damus is active, it will relay a new kind:10000 list removing that muted item. The expiration time/duration itself will never be relayed to other clients. It will be stored locally only. Only other clients/relays will see that an item has been removed after Damus is active and it sends that new kind:10000 list." } }, { @@ -415892,14 +425203,14 @@ { "id": 6158662124, "node_id": "LA_kwDOHHF5A88AAAABbxW57A", - "url": "https://api.github.com/repos/damus-io/damus/labels/signal/noise%20ratio%20%F0%9F%91%80/%F0%9F%92%A5", - "name": "signal/noise ratio 👀/💥", + "url": "https://api.github.com/repos/damus-io/damus/labels/signal-to-noise-ratio", + "name": "signal-to-noise-ratio", "color": "0E8A16", "default": false, "description": "" } ], - "state": "closed", + "state": "open", "locked": false, "assignee": { "login": "fishcharlie", @@ -415944,10 +425255,10 @@ } ], "milestone": null, - "comments": 26, + "comments": 28, "created_at": "2023-04-02T23:49:39Z", - "updated_at": "2024-02-26T20:05:56Z", - "closed_at": "2024-02-26T20:05:56Z", + "updated_at": "2024-03-20T08:20:03Z", + "closed_at": null, "author_association": "COLLABORATOR", "active_lock_reason": null, "body": "## Bounty\r\n1,000,000 sats posted by Karnage\r\n\r\nhttps://damus.io/note1mefmevqeqqjghw4d7tzk6rp46n3sc0u3syazx2j6k8hqjxmv2svqz0fchn\r\n\r\n## User Story\r\nAs a Damus user looking to avoid notes with a particular keyword, I would like the capability to mute notes that contain a keyword I specify, so that I don't see any notes containing this keyword. \r\n\r\n### Acceptance Criteria \r\n1. User can specify a keyword they would like muted in settings \r\n2. User can see, and modify list of muted keywords by adding, or deleting words. \r\n3. If a note contains a muted keyword, the note is not displayed to user\r\n-in timeline\r\n-in universe view \r\n-in notifications \r\n-in DMs\r\n-in zaps\r\n4. User does not receive any notifications associated with notes containing this keyword \r\n5. User has an option to mute from everyone, or from people user does not follow\r\n6. User can select a mute duration: 24 hours, 1 week, 1 month, or forever. Default is forever. \r\n7. If no words are muted, the following message is displayed: \r\n> *You aren't muting any words.* \r\n\r\n> When you mute words you won't see any notifications for notes that include them, or see notes that include muted words in your timeline. \r\n8. Hashtag of muted word is muted.\r\n9. If in replies/thread, muted notes are collapsed to a single row stating: \"Note contains a word you've muted.\" and moved to bottom of reply thread.\r\n10. User has a tappable option to show the muted note `Show` (similar to \r\n![image](https://user-images.githubusercontent.com/64376233/229396257-ad039968-9885-4a41-a023-42782f9881ca.jpeg) )\r\n11. Bonus: user can mute a phrase as well (for instance the spammy/zero effort string \"Hello world! #introductions\")", @@ -415965,13 +425276,13 @@ }, "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/856/timeline", "performed_via_github_app": null, - "state_reason": "completed" + "state_reason": "reopened" }, "comment": { - "user": "jb55", - "created_at": "2024-01-11T00:38:35Z", - "updated_at": "2024-01-11T00:38:35Z", - "body": "On Wed, Jan 10, 2024 at 04:13:53PM -0800, Charlie Fish wrote:\n>> Why would needing to be online affect this? Wouldn't you just need to store when to unmute?\n>\n>@jb55 If we are just talking about offline storing of mute duration, that is possible, yes. Easy almost.\n>\n>The problem is with the kind:10000 mute list (#1718). Once that mute duration has passed, Damus (or some client) needs to be active to sign & relay an updated kind:10000 mute list that removed that item where the mute duration has passed.\n>\n>I guess it's possible to do mute durations and sync it next time you're online. But there is a chance that your Damus mute list wouldn't match your kind:10000 mute list.\n>\n>Example:\n>\n>1. User mutes Account A for 1 month\n>2. User never uses Damus again (or deletes the app) 😢\n>3. 1 month passes (or longer)\n>4. Users kind:10000 mute list still contains Account A\n>\n>Maybe a minor edge case, but an edge case nonetheless.\n\nyeah I wouldn't get worked up over this edgecase. Having just an expiry\ntime that is checked by whatever app you login to is fine.\n\nNot sure if this is spec'd on the mutelist NIP but that would be cool if it\nwas.\n" + "user": "karnagebitcoin", + "created_at": "2024-01-11T01:12:51Z", + "updated_at": "2024-01-11T01:12:51Z", + "body": "Totally fine by me if the duration is not implemented with this, and is split off into another task if it's too much. I just hope that it does get implemented eventually because I often forget to unmute. I use mute mostly as a \"timeout\" to get something out of my sight for a while, but it doesn't mean I never want to see it, except in cases where I do (crypto shit)" } }, { @@ -416037,14 +425348,14 @@ { "id": 6158662124, "node_id": "LA_kwDOHHF5A88AAAABbxW57A", - "url": "https://api.github.com/repos/damus-io/damus/labels/signal/noise%20ratio%20%F0%9F%91%80/%F0%9F%92%A5", - "name": "signal/noise ratio 👀/💥", + "url": "https://api.github.com/repos/damus-io/damus/labels/signal-to-noise-ratio", + "name": "signal-to-noise-ratio", "color": "0E8A16", "default": false, "description": "" } ], - "state": "closed", + "state": "open", "locked": false, "assignee": { "login": "fishcharlie", @@ -416089,10 +425400,10 @@ } ], "milestone": null, - "comments": 26, + "comments": 28, "created_at": "2023-04-02T23:49:39Z", - "updated_at": "2024-02-26T20:05:56Z", - "closed_at": "2024-02-26T20:05:56Z", + "updated_at": "2024-03-20T08:20:03Z", + "closed_at": null, "author_association": "COLLABORATOR", "active_lock_reason": null, "body": "## Bounty\r\n1,000,000 sats posted by Karnage\r\n\r\nhttps://damus.io/note1mefmevqeqqjghw4d7tzk6rp46n3sc0u3syazx2j6k8hqjxmv2svqz0fchn\r\n\r\n## User Story\r\nAs a Damus user looking to avoid notes with a particular keyword, I would like the capability to mute notes that contain a keyword I specify, so that I don't see any notes containing this keyword. \r\n\r\n### Acceptance Criteria \r\n1. User can specify a keyword they would like muted in settings \r\n2. User can see, and modify list of muted keywords by adding, or deleting words. \r\n3. If a note contains a muted keyword, the note is not displayed to user\r\n-in timeline\r\n-in universe view \r\n-in notifications \r\n-in DMs\r\n-in zaps\r\n4. User does not receive any notifications associated with notes containing this keyword \r\n5. User has an option to mute from everyone, or from people user does not follow\r\n6. User can select a mute duration: 24 hours, 1 week, 1 month, or forever. Default is forever. \r\n7. If no words are muted, the following message is displayed: \r\n> *You aren't muting any words.* \r\n\r\n> When you mute words you won't see any notifications for notes that include them, or see notes that include muted words in your timeline. \r\n8. Hashtag of muted word is muted.\r\n9. If in replies/thread, muted notes are collapsed to a single row stating: \"Note contains a word you've muted.\" and moved to bottom of reply thread.\r\n10. User has a tappable option to show the muted note `Show` (similar to \r\n![image](https://user-images.githubusercontent.com/64376233/229396257-ad039968-9885-4a41-a023-42782f9881ca.jpeg) )\r\n11. Bonus: user can mute a phrase as well (for instance the spammy/zero effort string \"Hello world! #introductions\")", @@ -416110,13 +425421,13 @@ }, "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/856/timeline", "performed_via_github_app": null, - "state_reason": "completed" + "state_reason": "reopened" }, "comment": { - "user": "fishcharlie", - "created_at": "2024-01-11T00:46:03Z", - "updated_at": "2024-01-11T00:46:03Z", - "body": "> yeah I wouldn't get worked up over this edgecase\r\n\r\nFair enough.\r\n\r\n> Having just an expiry time that is checked by whatever app you login to is fine\r\n\r\nDon't quite understand this. In the kind:10000 spec I didn't see any way to specify an expiry time. Obviously if that existed, it would be really easy, and this conversation probably wouldn't even be occurring 😆.\r\n\r\nSo the only way to do it is Damus sending a new kind:10000 mute list after the expiration time has passed. Which is possible if we accept the edge case that Damus has to be active for that new mute list to be signed & relayed.\r\n\r\nJust wanna make sure we are on the same page about that.\r\n\r\nIf there are no issues I'll move forward with storing the expiration time locally (on Damus only). And once that time passes, if Damus is active, it will relay a new kind:10000 list removing that muted item. The expiration time/duration itself will never be relayed to other clients. It will be stored locally only. Only other clients/relays will see that an item has been removed after Damus is active and it sends that new kind:10000 list." + "user": "jb55", + "created_at": "2024-01-11T01:46:00Z", + "updated_at": "2024-01-11T01:46:00Z", + "body": "On Wed, Jan 10, 2024 at 04:46:13PM -0800, Charlie Fish wrote:\n>> yeah I wouldn't get worked up over this edgecase\n>\n>Fair enough.\n>\n>> Having just an expiry time that is checked by whatever app you login\n>> to is fine\n>\n>Don't quite understand this. In the kind:10000 spec I didn't see any\n>way to specify an expiry time. Obviously if that existed, it would be\n>really easy, and this conversation probably wouldn't even be occurring\n>😆.\n\nwe can add it to the spec?\n\n>So the only way to do it is Damus sending a new kind:10000 mute list\n>after the expiration time has passed. Which is possible if we accept\n>the edge case that Damus has to be active for that new mute list to be\n>signed & relayed.\n\nit's not the only wany to do it\n" } }, { @@ -416182,14 +425493,14 @@ { "id": 6158662124, "node_id": "LA_kwDOHHF5A88AAAABbxW57A", - "url": "https://api.github.com/repos/damus-io/damus/labels/signal/noise%20ratio%20%F0%9F%91%80/%F0%9F%92%A5", - "name": "signal/noise ratio 👀/💥", + "url": "https://api.github.com/repos/damus-io/damus/labels/signal-to-noise-ratio", + "name": "signal-to-noise-ratio", "color": "0E8A16", "default": false, "description": "" } ], - "state": "closed", + "state": "open", "locked": false, "assignee": { "login": "fishcharlie", @@ -416234,10 +425545,10 @@ } ], "milestone": null, - "comments": 26, + "comments": 28, "created_at": "2023-04-02T23:49:39Z", - "updated_at": "2024-02-26T20:05:56Z", - "closed_at": "2024-02-26T20:05:56Z", + "updated_at": "2024-03-20T08:20:03Z", + "closed_at": null, "author_association": "COLLABORATOR", "active_lock_reason": null, "body": "## Bounty\r\n1,000,000 sats posted by Karnage\r\n\r\nhttps://damus.io/note1mefmevqeqqjghw4d7tzk6rp46n3sc0u3syazx2j6k8hqjxmv2svqz0fchn\r\n\r\n## User Story\r\nAs a Damus user looking to avoid notes with a particular keyword, I would like the capability to mute notes that contain a keyword I specify, so that I don't see any notes containing this keyword. \r\n\r\n### Acceptance Criteria \r\n1. User can specify a keyword they would like muted in settings \r\n2. User can see, and modify list of muted keywords by adding, or deleting words. \r\n3. If a note contains a muted keyword, the note is not displayed to user\r\n-in timeline\r\n-in universe view \r\n-in notifications \r\n-in DMs\r\n-in zaps\r\n4. User does not receive any notifications associated with notes containing this keyword \r\n5. User has an option to mute from everyone, or from people user does not follow\r\n6. User can select a mute duration: 24 hours, 1 week, 1 month, or forever. Default is forever. \r\n7. If no words are muted, the following message is displayed: \r\n> *You aren't muting any words.* \r\n\r\n> When you mute words you won't see any notifications for notes that include them, or see notes that include muted words in your timeline. \r\n8. Hashtag of muted word is muted.\r\n9. If in replies/thread, muted notes are collapsed to a single row stating: \"Note contains a word you've muted.\" and moved to bottom of reply thread.\r\n10. User has a tappable option to show the muted note `Show` (similar to \r\n![image](https://user-images.githubusercontent.com/64376233/229396257-ad039968-9885-4a41-a023-42782f9881ca.jpeg) )\r\n11. Bonus: user can mute a phrase as well (for instance the spammy/zero effort string \"Hello world! #introductions\")", @@ -416255,13 +425566,13 @@ }, "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/856/timeline", "performed_via_github_app": null, - "state_reason": "completed" + "state_reason": "reopened" }, "comment": { - "user": "karnagebitcoin", - "created_at": "2024-01-11T01:12:51Z", - "updated_at": "2024-01-11T01:12:51Z", - "body": "Totally fine by me if the duration is not implemented with this, and is split off into another task if it's too much. I just hope that it does get implemented eventually because I often forget to unmute. I use mute mostly as a \"timeout\" to get something out of my sight for a while, but it doesn't mean I never want to see it, except in cases where I do (crypto shit)" + "user": "fishcharlie", + "created_at": "2024-01-11T01:49:26Z", + "updated_at": "2024-01-11T01:49:26Z", + "body": "@jb55 \r\n\r\n> we can add it to the spec?\r\n\r\nOk I'm new to that. I'll look into this tomorrow and let you know if I have any questions. If you have any tips/pointers in the meantime, let me know." } }, { @@ -416327,14 +425638,14 @@ { "id": 6158662124, "node_id": "LA_kwDOHHF5A88AAAABbxW57A", - "url": "https://api.github.com/repos/damus-io/damus/labels/signal/noise%20ratio%20%F0%9F%91%80/%F0%9F%92%A5", - "name": "signal/noise ratio 👀/💥", + "url": "https://api.github.com/repos/damus-io/damus/labels/signal-to-noise-ratio", + "name": "signal-to-noise-ratio", "color": "0E8A16", "default": false, "description": "" } ], - "state": "closed", + "state": "open", "locked": false, "assignee": { "login": "fishcharlie", @@ -416379,10 +425690,10 @@ } ], "milestone": null, - "comments": 26, + "comments": 28, "created_at": "2023-04-02T23:49:39Z", - "updated_at": "2024-02-26T20:05:56Z", - "closed_at": "2024-02-26T20:05:56Z", + "updated_at": "2024-03-20T08:20:03Z", + "closed_at": null, "author_association": "COLLABORATOR", "active_lock_reason": null, "body": "## Bounty\r\n1,000,000 sats posted by Karnage\r\n\r\nhttps://damus.io/note1mefmevqeqqjghw4d7tzk6rp46n3sc0u3syazx2j6k8hqjxmv2svqz0fchn\r\n\r\n## User Story\r\nAs a Damus user looking to avoid notes with a particular keyword, I would like the capability to mute notes that contain a keyword I specify, so that I don't see any notes containing this keyword. \r\n\r\n### Acceptance Criteria \r\n1. User can specify a keyword they would like muted in settings \r\n2. User can see, and modify list of muted keywords by adding, or deleting words. \r\n3. If a note contains a muted keyword, the note is not displayed to user\r\n-in timeline\r\n-in universe view \r\n-in notifications \r\n-in DMs\r\n-in zaps\r\n4. User does not receive any notifications associated with notes containing this keyword \r\n5. User has an option to mute from everyone, or from people user does not follow\r\n6. User can select a mute duration: 24 hours, 1 week, 1 month, or forever. Default is forever. \r\n7. If no words are muted, the following message is displayed: \r\n> *You aren't muting any words.* \r\n\r\n> When you mute words you won't see any notifications for notes that include them, or see notes that include muted words in your timeline. \r\n8. Hashtag of muted word is muted.\r\n9. If in replies/thread, muted notes are collapsed to a single row stating: \"Note contains a word you've muted.\" and moved to bottom of reply thread.\r\n10. User has a tappable option to show the muted note `Show` (similar to \r\n![image](https://user-images.githubusercontent.com/64376233/229396257-ad039968-9885-4a41-a023-42782f9881ca.jpeg) )\r\n11. Bonus: user can mute a phrase as well (for instance the spammy/zero effort string \"Hello world! #introductions\")", @@ -416400,13 +425711,13 @@ }, "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/856/timeline", "performed_via_github_app": null, - "state_reason": "completed" + "state_reason": "reopened" }, "comment": { - "user": "jb55", - "created_at": "2024-01-11T01:46:00Z", - "updated_at": "2024-01-11T01:46:00Z", - "body": "On Wed, Jan 10, 2024 at 04:46:13PM -0800, Charlie Fish wrote:\n>> yeah I wouldn't get worked up over this edgecase\n>\n>Fair enough.\n>\n>> Having just an expiry time that is checked by whatever app you login\n>> to is fine\n>\n>Don't quite understand this. In the kind:10000 spec I didn't see any\n>way to specify an expiry time. Obviously if that existed, it would be\n>really easy, and this conversation probably wouldn't even be occurring\n>😆.\n\nwe can add it to the spec?\n\n>So the only way to do it is Damus sending a new kind:10000 mute list\n>after the expiration time has passed. Which is possible if we accept\n>the edge case that Damus has to be active for that new mute list to be\n>signed & relayed.\n\nit's not the only wany to do it\n" + "user": "alltheseas", + "created_at": "2024-01-11T02:03:09Z", + "updated_at": "2024-01-11T02:03:09Z", + "body": "Here is the lists NIP, which includes mute kind 10000. \n\nhttps://github.com/nostr-protocol/nips/blob/master/51.md\n\nWould e.g. an expiry time be an added and optional tag? \n\n![image](https://github.com/damus-io/damus/assets/64376233/fa248138-a1c0-4bf6-b2e8-e3879706d042)" } }, { @@ -416472,14 +425783,14 @@ { "id": 6158662124, "node_id": "LA_kwDOHHF5A88AAAABbxW57A", - "url": "https://api.github.com/repos/damus-io/damus/labels/signal/noise%20ratio%20%F0%9F%91%80/%F0%9F%92%A5", - "name": "signal/noise ratio 👀/💥", + "url": "https://api.github.com/repos/damus-io/damus/labels/signal-to-noise-ratio", + "name": "signal-to-noise-ratio", "color": "0E8A16", "default": false, "description": "" } ], - "state": "closed", + "state": "open", "locked": false, "assignee": { "login": "fishcharlie", @@ -416524,10 +425835,10 @@ } ], "milestone": null, - "comments": 26, + "comments": 28, "created_at": "2023-04-02T23:49:39Z", - "updated_at": "2024-02-26T20:05:56Z", - "closed_at": "2024-02-26T20:05:56Z", + "updated_at": "2024-03-20T08:20:03Z", + "closed_at": null, "author_association": "COLLABORATOR", "active_lock_reason": null, "body": "## Bounty\r\n1,000,000 sats posted by Karnage\r\n\r\nhttps://damus.io/note1mefmevqeqqjghw4d7tzk6rp46n3sc0u3syazx2j6k8hqjxmv2svqz0fchn\r\n\r\n## User Story\r\nAs a Damus user looking to avoid notes with a particular keyword, I would like the capability to mute notes that contain a keyword I specify, so that I don't see any notes containing this keyword. \r\n\r\n### Acceptance Criteria \r\n1. User can specify a keyword they would like muted in settings \r\n2. User can see, and modify list of muted keywords by adding, or deleting words. \r\n3. If a note contains a muted keyword, the note is not displayed to user\r\n-in timeline\r\n-in universe view \r\n-in notifications \r\n-in DMs\r\n-in zaps\r\n4. User does not receive any notifications associated with notes containing this keyword \r\n5. User has an option to mute from everyone, or from people user does not follow\r\n6. User can select a mute duration: 24 hours, 1 week, 1 month, or forever. Default is forever. \r\n7. If no words are muted, the following message is displayed: \r\n> *You aren't muting any words.* \r\n\r\n> When you mute words you won't see any notifications for notes that include them, or see notes that include muted words in your timeline. \r\n8. Hashtag of muted word is muted.\r\n9. If in replies/thread, muted notes are collapsed to a single row stating: \"Note contains a word you've muted.\" and moved to bottom of reply thread.\r\n10. User has a tappable option to show the muted note `Show` (similar to \r\n![image](https://user-images.githubusercontent.com/64376233/229396257-ad039968-9885-4a41-a023-42782f9881ca.jpeg) )\r\n11. Bonus: user can mute a phrase as well (for instance the spammy/zero effort string \"Hello world! #introductions\")", @@ -416545,13 +425856,13 @@ }, "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/856/timeline", "performed_via_github_app": null, - "state_reason": "completed" + "state_reason": "reopened" }, "comment": { - "user": "fishcharlie", - "created_at": "2024-01-11T01:49:26Z", - "updated_at": "2024-01-11T01:49:26Z", - "body": "@jb55 \r\n\r\n> we can add it to the spec?\r\n\r\nOk I'm new to that. I'll look into this tomorrow and let you know if I have any questions. If you have any tips/pointers in the meantime, let me know." + "user": "jb55", + "created_at": "2024-01-11T02:19:55Z", + "updated_at": "2024-01-11T02:19:55Z", + "body": "On Wed, Jan 10, 2024 at 06:03:19PM -0800, alltheseas wrote:\n>Here is the lists NIP, which includes mute kind 10000.\n>\n>https://github.com/nostr-protocol/nips/blob/master/51.md\n>\n>Would e.g. an expiry time be an added and optional tag?\n\nI would add the expiry as an extra element of the tag. For example:\n\n[\"word\", \"etf\", \"1706149129\"]\n[\"p\", \"32e1827635450ebb3c5a7d12c1f8e7b2b514439ac10a67eef3d9fd9c5c68e245\", \"1706149129\"]\n\naka \"mute jb55 and the word etf until 2 weeks from now\"\n" } }, { @@ -416617,14 +425928,14 @@ { "id": 6158662124, "node_id": "LA_kwDOHHF5A88AAAABbxW57A", - "url": "https://api.github.com/repos/damus-io/damus/labels/signal/noise%20ratio%20%F0%9F%91%80/%F0%9F%92%A5", - "name": "signal/noise ratio 👀/💥", + "url": "https://api.github.com/repos/damus-io/damus/labels/signal-to-noise-ratio", + "name": "signal-to-noise-ratio", "color": "0E8A16", "default": false, "description": "" } ], - "state": "closed", + "state": "open", "locked": false, "assignee": { "login": "fishcharlie", @@ -416669,10 +425980,10 @@ } ], "milestone": null, - "comments": 26, + "comments": 28, "created_at": "2023-04-02T23:49:39Z", - "updated_at": "2024-02-26T20:05:56Z", - "closed_at": "2024-02-26T20:05:56Z", + "updated_at": "2024-03-20T08:20:03Z", + "closed_at": null, "author_association": "COLLABORATOR", "active_lock_reason": null, "body": "## Bounty\r\n1,000,000 sats posted by Karnage\r\n\r\nhttps://damus.io/note1mefmevqeqqjghw4d7tzk6rp46n3sc0u3syazx2j6k8hqjxmv2svqz0fchn\r\n\r\n## User Story\r\nAs a Damus user looking to avoid notes with a particular keyword, I would like the capability to mute notes that contain a keyword I specify, so that I don't see any notes containing this keyword. \r\n\r\n### Acceptance Criteria \r\n1. User can specify a keyword they would like muted in settings \r\n2. User can see, and modify list of muted keywords by adding, or deleting words. \r\n3. If a note contains a muted keyword, the note is not displayed to user\r\n-in timeline\r\n-in universe view \r\n-in notifications \r\n-in DMs\r\n-in zaps\r\n4. User does not receive any notifications associated with notes containing this keyword \r\n5. User has an option to mute from everyone, or from people user does not follow\r\n6. User can select a mute duration: 24 hours, 1 week, 1 month, or forever. Default is forever. \r\n7. If no words are muted, the following message is displayed: \r\n> *You aren't muting any words.* \r\n\r\n> When you mute words you won't see any notifications for notes that include them, or see notes that include muted words in your timeline. \r\n8. Hashtag of muted word is muted.\r\n9. If in replies/thread, muted notes are collapsed to a single row stating: \"Note contains a word you've muted.\" and moved to bottom of reply thread.\r\n10. User has a tappable option to show the muted note `Show` (similar to \r\n![image](https://user-images.githubusercontent.com/64376233/229396257-ad039968-9885-4a41-a023-42782f9881ca.jpeg) )\r\n11. Bonus: user can mute a phrase as well (for instance the spammy/zero effort string \"Hello world! #introductions\")", @@ -416690,13 +426001,13 @@ }, "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/856/timeline", "performed_via_github_app": null, - "state_reason": "completed" + "state_reason": "reopened" }, "comment": { - "user": "alltheseas", - "created_at": "2024-01-11T02:03:09Z", - "updated_at": "2024-01-11T02:03:09Z", - "body": "Here is the lists NIP, which includes mute kind 10000. \n\nhttps://github.com/nostr-protocol/nips/blob/master/51.md\n\nWould e.g. an expiry time be an added and optional tag? \n\n![image](https://github.com/damus-io/damus/assets/64376233/fa248138-a1c0-4bf6-b2e8-e3879706d042)" + "user": "fishcharlie", + "created_at": "2024-01-14T21:01:44Z", + "updated_at": "2024-01-14T21:01:44Z", + "body": "https://groups.google.com/a/damus.io/g/patches/c/gy7WlaGYRKE" } }, { @@ -416762,14 +426073,14 @@ { "id": 6158662124, "node_id": "LA_kwDOHHF5A88AAAABbxW57A", - "url": "https://api.github.com/repos/damus-io/damus/labels/signal/noise%20ratio%20%F0%9F%91%80/%F0%9F%92%A5", - "name": "signal/noise ratio 👀/💥", + "url": "https://api.github.com/repos/damus-io/damus/labels/signal-to-noise-ratio", + "name": "signal-to-noise-ratio", "color": "0E8A16", "default": false, "description": "" } ], - "state": "closed", + "state": "open", "locked": false, "assignee": { "login": "fishcharlie", @@ -416814,10 +426125,10 @@ } ], "milestone": null, - "comments": 26, + "comments": 28, "created_at": "2023-04-02T23:49:39Z", - "updated_at": "2024-02-26T20:05:56Z", - "closed_at": "2024-02-26T20:05:56Z", + "updated_at": "2024-03-20T08:20:03Z", + "closed_at": null, "author_association": "COLLABORATOR", "active_lock_reason": null, "body": "## Bounty\r\n1,000,000 sats posted by Karnage\r\n\r\nhttps://damus.io/note1mefmevqeqqjghw4d7tzk6rp46n3sc0u3syazx2j6k8hqjxmv2svqz0fchn\r\n\r\n## User Story\r\nAs a Damus user looking to avoid notes with a particular keyword, I would like the capability to mute notes that contain a keyword I specify, so that I don't see any notes containing this keyword. \r\n\r\n### Acceptance Criteria \r\n1. User can specify a keyword they would like muted in settings \r\n2. User can see, and modify list of muted keywords by adding, or deleting words. \r\n3. If a note contains a muted keyword, the note is not displayed to user\r\n-in timeline\r\n-in universe view \r\n-in notifications \r\n-in DMs\r\n-in zaps\r\n4. User does not receive any notifications associated with notes containing this keyword \r\n5. User has an option to mute from everyone, or from people user does not follow\r\n6. User can select a mute duration: 24 hours, 1 week, 1 month, or forever. Default is forever. \r\n7. If no words are muted, the following message is displayed: \r\n> *You aren't muting any words.* \r\n\r\n> When you mute words you won't see any notifications for notes that include them, or see notes that include muted words in your timeline. \r\n8. Hashtag of muted word is muted.\r\n9. If in replies/thread, muted notes are collapsed to a single row stating: \"Note contains a word you've muted.\" and moved to bottom of reply thread.\r\n10. User has a tappable option to show the muted note `Show` (similar to \r\n![image](https://user-images.githubusercontent.com/64376233/229396257-ad039968-9885-4a41-a023-42782f9881ca.jpeg) )\r\n11. Bonus: user can mute a phrase as well (for instance the spammy/zero effort string \"Hello world! #introductions\")", @@ -416835,13 +426146,13 @@ }, "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/856/timeline", "performed_via_github_app": null, - "state_reason": "completed" + "state_reason": "reopened" }, "comment": { - "user": "jb55", - "created_at": "2024-01-11T02:19:55Z", - "updated_at": "2024-01-11T02:19:55Z", - "body": "On Wed, Jan 10, 2024 at 06:03:19PM -0800, alltheseas wrote:\n>Here is the lists NIP, which includes mute kind 10000.\n>\n>https://github.com/nostr-protocol/nips/blob/master/51.md\n>\n>Would e.g. an expiry time be an added and optional tag?\n\nI would add the expiry as an extra element of the tag. For example:\n\n[\"word\", \"etf\", \"1706149129\"]\n[\"p\", \"32e1827635450ebb3c5a7d12c1f8e7b2b514439ac10a67eef3d9fd9c5c68e245\", \"1706149129\"]\n\naka \"mute jb55 and the word etf until 2 weeks from now\"\n" + "user": "karnagebitcoin", + "created_at": "2024-01-23T01:18:31Z", + "updated_at": "2024-01-23T01:18:31Z", + "body": "@jb55 is this all done then? Can I pay out the bounty to Charlie?" } }, { @@ -416907,14 +426218,14 @@ { "id": 6158662124, "node_id": "LA_kwDOHHF5A88AAAABbxW57A", - "url": "https://api.github.com/repos/damus-io/damus/labels/signal/noise%20ratio%20%F0%9F%91%80/%F0%9F%92%A5", - "name": "signal/noise ratio 👀/💥", + "url": "https://api.github.com/repos/damus-io/damus/labels/signal-to-noise-ratio", + "name": "signal-to-noise-ratio", "color": "0E8A16", "default": false, "description": "" } ], - "state": "closed", + "state": "open", "locked": false, "assignee": { "login": "fishcharlie", @@ -416959,10 +426270,10 @@ } ], "milestone": null, - "comments": 26, + "comments": 28, "created_at": "2023-04-02T23:49:39Z", - "updated_at": "2024-02-26T20:05:56Z", - "closed_at": "2024-02-26T20:05:56Z", + "updated_at": "2024-03-20T08:20:03Z", + "closed_at": null, "author_association": "COLLABORATOR", "active_lock_reason": null, "body": "## Bounty\r\n1,000,000 sats posted by Karnage\r\n\r\nhttps://damus.io/note1mefmevqeqqjghw4d7tzk6rp46n3sc0u3syazx2j6k8hqjxmv2svqz0fchn\r\n\r\n## User Story\r\nAs a Damus user looking to avoid notes with a particular keyword, I would like the capability to mute notes that contain a keyword I specify, so that I don't see any notes containing this keyword. \r\n\r\n### Acceptance Criteria \r\n1. User can specify a keyword they would like muted in settings \r\n2. User can see, and modify list of muted keywords by adding, or deleting words. \r\n3. If a note contains a muted keyword, the note is not displayed to user\r\n-in timeline\r\n-in universe view \r\n-in notifications \r\n-in DMs\r\n-in zaps\r\n4. User does not receive any notifications associated with notes containing this keyword \r\n5. User has an option to mute from everyone, or from people user does not follow\r\n6. User can select a mute duration: 24 hours, 1 week, 1 month, or forever. Default is forever. \r\n7. If no words are muted, the following message is displayed: \r\n> *You aren't muting any words.* \r\n\r\n> When you mute words you won't see any notifications for notes that include them, or see notes that include muted words in your timeline. \r\n8. Hashtag of muted word is muted.\r\n9. If in replies/thread, muted notes are collapsed to a single row stating: \"Note contains a word you've muted.\" and moved to bottom of reply thread.\r\n10. User has a tappable option to show the muted note `Show` (similar to \r\n![image](https://user-images.githubusercontent.com/64376233/229396257-ad039968-9885-4a41-a023-42782f9881ca.jpeg) )\r\n11. Bonus: user can mute a phrase as well (for instance the spammy/zero effort string \"Hello world! #introductions\")", @@ -416980,13 +426291,13 @@ }, "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/856/timeline", "performed_via_github_app": null, - "state_reason": "completed" + "state_reason": "reopened" }, "comment": { - "user": "fishcharlie", - "created_at": "2024-01-14T21:01:44Z", - "updated_at": "2024-01-14T21:01:44Z", - "body": "https://groups.google.com/a/damus.io/g/patches/c/gy7WlaGYRKE" + "user": "jb55", + "created_at": "2024-01-23T01:51:42Z", + "updated_at": "2024-01-23T01:51:52Z", + "body": "yeah you can pay them out. there are a few issues that we are fixing but it seems to be working." } }, { @@ -417052,14 +426363,14 @@ { "id": 6158662124, "node_id": "LA_kwDOHHF5A88AAAABbxW57A", - "url": "https://api.github.com/repos/damus-io/damus/labels/signal/noise%20ratio%20%F0%9F%91%80/%F0%9F%92%A5", - "name": "signal/noise ratio 👀/💥", + "url": "https://api.github.com/repos/damus-io/damus/labels/signal-to-noise-ratio", + "name": "signal-to-noise-ratio", "color": "0E8A16", "default": false, "description": "" } ], - "state": "closed", + "state": "open", "locked": false, "assignee": { "login": "fishcharlie", @@ -417104,10 +426415,10 @@ } ], "milestone": null, - "comments": 26, + "comments": 28, "created_at": "2023-04-02T23:49:39Z", - "updated_at": "2024-02-26T20:05:56Z", - "closed_at": "2024-02-26T20:05:56Z", + "updated_at": "2024-03-20T08:20:03Z", + "closed_at": null, "author_association": "COLLABORATOR", "active_lock_reason": null, "body": "## Bounty\r\n1,000,000 sats posted by Karnage\r\n\r\nhttps://damus.io/note1mefmevqeqqjghw4d7tzk6rp46n3sc0u3syazx2j6k8hqjxmv2svqz0fchn\r\n\r\n## User Story\r\nAs a Damus user looking to avoid notes with a particular keyword, I would like the capability to mute notes that contain a keyword I specify, so that I don't see any notes containing this keyword. \r\n\r\n### Acceptance Criteria \r\n1. User can specify a keyword they would like muted in settings \r\n2. User can see, and modify list of muted keywords by adding, or deleting words. \r\n3. If a note contains a muted keyword, the note is not displayed to user\r\n-in timeline\r\n-in universe view \r\n-in notifications \r\n-in DMs\r\n-in zaps\r\n4. User does not receive any notifications associated with notes containing this keyword \r\n5. User has an option to mute from everyone, or from people user does not follow\r\n6. User can select a mute duration: 24 hours, 1 week, 1 month, or forever. Default is forever. \r\n7. If no words are muted, the following message is displayed: \r\n> *You aren't muting any words.* \r\n\r\n> When you mute words you won't see any notifications for notes that include them, or see notes that include muted words in your timeline. \r\n8. Hashtag of muted word is muted.\r\n9. If in replies/thread, muted notes are collapsed to a single row stating: \"Note contains a word you've muted.\" and moved to bottom of reply thread.\r\n10. User has a tappable option to show the muted note `Show` (similar to \r\n![image](https://user-images.githubusercontent.com/64376233/229396257-ad039968-9885-4a41-a023-42782f9881ca.jpeg) )\r\n11. Bonus: user can mute a phrase as well (for instance the spammy/zero effort string \"Hello world! #introductions\")", @@ -417125,13 +426436,13 @@ }, "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/856/timeline", "performed_via_github_app": null, - "state_reason": "completed" + "state_reason": "reopened" }, "comment": { - "user": "karnagebitcoin", - "created_at": "2024-01-23T01:18:31Z", - "updated_at": "2024-01-23T01:18:31Z", - "body": "@jb55 is this all done then? Can I pay out the bounty to Charlie?" + "user": "fishcharlie", + "created_at": "2024-01-23T01:54:10Z", + "updated_at": "2024-01-23T01:54:10Z", + "body": "@karnagebitcoin My nostr npub is: `npub16amr0pgqzl8l57npcupjmv8j3055042g07w4qj4tu3zf4yd48nlsh96569`. My lightning address is: `fishcharlie@strike.me`. For verification you can also view it in the commit description of the commit @jb55 merged in: f341a37" } }, { @@ -417197,14 +426508,14 @@ { "id": 6158662124, "node_id": "LA_kwDOHHF5A88AAAABbxW57A", - "url": "https://api.github.com/repos/damus-io/damus/labels/signal/noise%20ratio%20%F0%9F%91%80/%F0%9F%92%A5", - "name": "signal/noise ratio 👀/💥", + "url": "https://api.github.com/repos/damus-io/damus/labels/signal-to-noise-ratio", + "name": "signal-to-noise-ratio", "color": "0E8A16", "default": false, "description": "" } ], - "state": "closed", + "state": "open", "locked": false, "assignee": { "login": "fishcharlie", @@ -417249,10 +426560,10 @@ } ], "milestone": null, - "comments": 26, + "comments": 28, "created_at": "2023-04-02T23:49:39Z", - "updated_at": "2024-02-26T20:05:56Z", - "closed_at": "2024-02-26T20:05:56Z", + "updated_at": "2024-03-20T08:20:03Z", + "closed_at": null, "author_association": "COLLABORATOR", "active_lock_reason": null, "body": "## Bounty\r\n1,000,000 sats posted by Karnage\r\n\r\nhttps://damus.io/note1mefmevqeqqjghw4d7tzk6rp46n3sc0u3syazx2j6k8hqjxmv2svqz0fchn\r\n\r\n## User Story\r\nAs a Damus user looking to avoid notes with a particular keyword, I would like the capability to mute notes that contain a keyword I specify, so that I don't see any notes containing this keyword. \r\n\r\n### Acceptance Criteria \r\n1. User can specify a keyword they would like muted in settings \r\n2. User can see, and modify list of muted keywords by adding, or deleting words. \r\n3. If a note contains a muted keyword, the note is not displayed to user\r\n-in timeline\r\n-in universe view \r\n-in notifications \r\n-in DMs\r\n-in zaps\r\n4. User does not receive any notifications associated with notes containing this keyword \r\n5. User has an option to mute from everyone, or from people user does not follow\r\n6. User can select a mute duration: 24 hours, 1 week, 1 month, or forever. Default is forever. \r\n7. If no words are muted, the following message is displayed: \r\n> *You aren't muting any words.* \r\n\r\n> When you mute words you won't see any notifications for notes that include them, or see notes that include muted words in your timeline. \r\n8. Hashtag of muted word is muted.\r\n9. If in replies/thread, muted notes are collapsed to a single row stating: \"Note contains a word you've muted.\" and moved to bottom of reply thread.\r\n10. User has a tappable option to show the muted note `Show` (similar to \r\n![image](https://user-images.githubusercontent.com/64376233/229396257-ad039968-9885-4a41-a023-42782f9881ca.jpeg) )\r\n11. Bonus: user can mute a phrase as well (for instance the spammy/zero effort string \"Hello world! #introductions\")", @@ -417270,13 +426581,13 @@ }, "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/856/timeline", "performed_via_github_app": null, - "state_reason": "completed" + "state_reason": "reopened" }, "comment": { - "user": "jb55", - "created_at": "2024-01-23T01:51:42Z", - "updated_at": "2024-01-23T01:51:52Z", - "body": "yeah you can pay them out. there are a few issues that we are fixing but it seems to be working." + "user": "karnagebitcoin", + "created_at": "2024-01-23T02:39:55Z", + "updated_at": "2024-01-23T02:39:55Z", + "body": "@fishcharlie dmed u" } }, { @@ -417342,14 +426653,14 @@ { "id": 6158662124, "node_id": "LA_kwDOHHF5A88AAAABbxW57A", - "url": "https://api.github.com/repos/damus-io/damus/labels/signal/noise%20ratio%20%F0%9F%91%80/%F0%9F%92%A5", - "name": "signal/noise ratio 👀/💥", + "url": "https://api.github.com/repos/damus-io/damus/labels/signal-to-noise-ratio", + "name": "signal-to-noise-ratio", "color": "0E8A16", "default": false, "description": "" } ], - "state": "closed", + "state": "open", "locked": false, "assignee": { "login": "fishcharlie", @@ -417394,10 +426705,10 @@ } ], "milestone": null, - "comments": 26, + "comments": 28, "created_at": "2023-04-02T23:49:39Z", - "updated_at": "2024-02-26T20:05:56Z", - "closed_at": "2024-02-26T20:05:56Z", + "updated_at": "2024-03-20T08:20:03Z", + "closed_at": null, "author_association": "COLLABORATOR", "active_lock_reason": null, "body": "## Bounty\r\n1,000,000 sats posted by Karnage\r\n\r\nhttps://damus.io/note1mefmevqeqqjghw4d7tzk6rp46n3sc0u3syazx2j6k8hqjxmv2svqz0fchn\r\n\r\n## User Story\r\nAs a Damus user looking to avoid notes with a particular keyword, I would like the capability to mute notes that contain a keyword I specify, so that I don't see any notes containing this keyword. \r\n\r\n### Acceptance Criteria \r\n1. User can specify a keyword they would like muted in settings \r\n2. User can see, and modify list of muted keywords by adding, or deleting words. \r\n3. If a note contains a muted keyword, the note is not displayed to user\r\n-in timeline\r\n-in universe view \r\n-in notifications \r\n-in DMs\r\n-in zaps\r\n4. User does not receive any notifications associated with notes containing this keyword \r\n5. User has an option to mute from everyone, or from people user does not follow\r\n6. User can select a mute duration: 24 hours, 1 week, 1 month, or forever. Default is forever. \r\n7. If no words are muted, the following message is displayed: \r\n> *You aren't muting any words.* \r\n\r\n> When you mute words you won't see any notifications for notes that include them, or see notes that include muted words in your timeline. \r\n8. Hashtag of muted word is muted.\r\n9. If in replies/thread, muted notes are collapsed to a single row stating: \"Note contains a word you've muted.\" and moved to bottom of reply thread.\r\n10. User has a tappable option to show the muted note `Show` (similar to \r\n![image](https://user-images.githubusercontent.com/64376233/229396257-ad039968-9885-4a41-a023-42782f9881ca.jpeg) )\r\n11. Bonus: user can mute a phrase as well (for instance the spammy/zero effort string \"Hello world! #introductions\")", @@ -417415,13 +426726,13 @@ }, "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/856/timeline", "performed_via_github_app": null, - "state_reason": "completed" + "state_reason": "reopened" }, "comment": { "user": "fishcharlie", - "created_at": "2024-01-23T01:54:10Z", - "updated_at": "2024-01-23T01:54:10Z", - "body": "@karnagebitcoin My nostr npub is: `npub16amr0pgqzl8l57npcupjmv8j3055042g07w4qj4tu3zf4yd48nlsh96569`. My lightning address is: `fishcharlie@strike.me`. For verification you can also view it in the commit description of the commit @jb55 merged in: f341a37" + "created_at": "2024-01-23T04:54:14Z", + "updated_at": "2024-01-23T04:54:14Z", + "body": "Thanks again @karnagebitcoin!!!" } }, { @@ -417487,14 +426798,14 @@ { "id": 6158662124, "node_id": "LA_kwDOHHF5A88AAAABbxW57A", - "url": "https://api.github.com/repos/damus-io/damus/labels/signal/noise%20ratio%20%F0%9F%91%80/%F0%9F%92%A5", - "name": "signal/noise ratio 👀/💥", + "url": "https://api.github.com/repos/damus-io/damus/labels/signal-to-noise-ratio", + "name": "signal-to-noise-ratio", "color": "0E8A16", "default": false, "description": "" } ], - "state": "closed", + "state": "open", "locked": false, "assignee": { "login": "fishcharlie", @@ -417539,10 +426850,10 @@ } ], "milestone": null, - "comments": 26, + "comments": 28, "created_at": "2023-04-02T23:49:39Z", - "updated_at": "2024-02-26T20:05:56Z", - "closed_at": "2024-02-26T20:05:56Z", + "updated_at": "2024-03-20T08:20:03Z", + "closed_at": null, "author_association": "COLLABORATOR", "active_lock_reason": null, "body": "## Bounty\r\n1,000,000 sats posted by Karnage\r\n\r\nhttps://damus.io/note1mefmevqeqqjghw4d7tzk6rp46n3sc0u3syazx2j6k8hqjxmv2svqz0fchn\r\n\r\n## User Story\r\nAs a Damus user looking to avoid notes with a particular keyword, I would like the capability to mute notes that contain a keyword I specify, so that I don't see any notes containing this keyword. \r\n\r\n### Acceptance Criteria \r\n1. User can specify a keyword they would like muted in settings \r\n2. User can see, and modify list of muted keywords by adding, or deleting words. \r\n3. If a note contains a muted keyword, the note is not displayed to user\r\n-in timeline\r\n-in universe view \r\n-in notifications \r\n-in DMs\r\n-in zaps\r\n4. User does not receive any notifications associated with notes containing this keyword \r\n5. User has an option to mute from everyone, or from people user does not follow\r\n6. User can select a mute duration: 24 hours, 1 week, 1 month, or forever. Default is forever. \r\n7. If no words are muted, the following message is displayed: \r\n> *You aren't muting any words.* \r\n\r\n> When you mute words you won't see any notifications for notes that include them, or see notes that include muted words in your timeline. \r\n8. Hashtag of muted word is muted.\r\n9. If in replies/thread, muted notes are collapsed to a single row stating: \"Note contains a word you've muted.\" and moved to bottom of reply thread.\r\n10. User has a tappable option to show the muted note `Show` (similar to \r\n![image](https://user-images.githubusercontent.com/64376233/229396257-ad039968-9885-4a41-a023-42782f9881ca.jpeg) )\r\n11. Bonus: user can mute a phrase as well (for instance the spammy/zero effort string \"Hello world! #introductions\")", @@ -417560,13 +426871,13 @@ }, "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/856/timeline", "performed_via_github_app": null, - "state_reason": "completed" + "state_reason": "reopened" }, "comment": { - "user": "karnagebitcoin", - "created_at": "2024-01-23T02:39:55Z", - "updated_at": "2024-01-23T02:39:55Z", - "body": "@fishcharlie dmed u" + "user": "alltheseas", + "created_at": "2024-01-24T16:18:47Z", + "updated_at": "2024-01-24T16:18:47Z", + "body": "@fishcharlie fyi tested yesterday - DM with muted word is shown/not hidden. I wonder if we should have a \"spam\" or low signal folder perhaps based on muted words, and web-of-trust. " } }, { @@ -417632,14 +426943,14 @@ { "id": 6158662124, "node_id": "LA_kwDOHHF5A88AAAABbxW57A", - "url": "https://api.github.com/repos/damus-io/damus/labels/signal/noise%20ratio%20%F0%9F%91%80/%F0%9F%92%A5", - "name": "signal/noise ratio 👀/💥", + "url": "https://api.github.com/repos/damus-io/damus/labels/signal-to-noise-ratio", + "name": "signal-to-noise-ratio", "color": "0E8A16", "default": false, "description": "" } ], - "state": "closed", + "state": "open", "locked": false, "assignee": { "login": "fishcharlie", @@ -417684,10 +426995,10 @@ } ], "milestone": null, - "comments": 26, + "comments": 28, "created_at": "2023-04-02T23:49:39Z", - "updated_at": "2024-02-26T20:05:56Z", - "closed_at": "2024-02-26T20:05:56Z", + "updated_at": "2024-03-20T08:20:03Z", + "closed_at": null, "author_association": "COLLABORATOR", "active_lock_reason": null, "body": "## Bounty\r\n1,000,000 sats posted by Karnage\r\n\r\nhttps://damus.io/note1mefmevqeqqjghw4d7tzk6rp46n3sc0u3syazx2j6k8hqjxmv2svqz0fchn\r\n\r\n## User Story\r\nAs a Damus user looking to avoid notes with a particular keyword, I would like the capability to mute notes that contain a keyword I specify, so that I don't see any notes containing this keyword. \r\n\r\n### Acceptance Criteria \r\n1. User can specify a keyword they would like muted in settings \r\n2. User can see, and modify list of muted keywords by adding, or deleting words. \r\n3. If a note contains a muted keyword, the note is not displayed to user\r\n-in timeline\r\n-in universe view \r\n-in notifications \r\n-in DMs\r\n-in zaps\r\n4. User does not receive any notifications associated with notes containing this keyword \r\n5. User has an option to mute from everyone, or from people user does not follow\r\n6. User can select a mute duration: 24 hours, 1 week, 1 month, or forever. Default is forever. \r\n7. If no words are muted, the following message is displayed: \r\n> *You aren't muting any words.* \r\n\r\n> When you mute words you won't see any notifications for notes that include them, or see notes that include muted words in your timeline. \r\n8. Hashtag of muted word is muted.\r\n9. If in replies/thread, muted notes are collapsed to a single row stating: \"Note contains a word you've muted.\" and moved to bottom of reply thread.\r\n10. User has a tappable option to show the muted note `Show` (similar to \r\n![image](https://user-images.githubusercontent.com/64376233/229396257-ad039968-9885-4a41-a023-42782f9881ca.jpeg) )\r\n11. Bonus: user can mute a phrase as well (for instance the spammy/zero effort string \"Hello world! #introductions\")", @@ -417705,13 +427016,13 @@ }, "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/856/timeline", "performed_via_github_app": null, - "state_reason": "completed" + "state_reason": "reopened" }, "comment": { "user": "fishcharlie", - "created_at": "2024-01-23T04:54:14Z", - "updated_at": "2024-01-23T04:54:14Z", - "body": "Thanks again @karnagebitcoin!!!" + "created_at": "2024-01-24T16:22:57Z", + "updated_at": "2024-01-24T16:22:57Z", + "body": "@alltheseas Mind creating a new ticket for that and assigning me? There is for sure some cleanup work we have to do.\r\n\r\nAlso I was gonna create a ticket for this issue @jb55 reported: https://damus.io/nevent1qqsyspz3g8qfctjh5aclktgxxlkpmrwvrg3gn57ux9gcsldduhs7y8qpy9mhxue69uhhyetvv9ujumtfdej8xtnrdakj7mn0wd68ytmkxyhhwucprpmhxw309akk7mnpvshx5c34x5hxxmmd8gurqwpsqy2hwumn8ghj7un9d3shjtnddaehgu3wwp6kyqgswaehxw309ahx7um5wgh8w6twv5q3gamnwvaz7tmjv4kxz7fwv3sk6atn9e5k7qgdwaehxw309ahx7uewd3hkcqgcwaehxw309amk2mrrdakk2tnwdaehgu3wwa5kuegpzemhxue69uhhyetvv9ujumn0wd68ytnzv9hxgqg4waehxw309ajkgetw9ehx7um5wghxcctwvstmqgk3\r\n\r\nHowever, I haven't gotten a chance to create that ticket yet. If you have some extra time and want to that would be great.\r\n\r\nOther things @jb55 mentioned in direct messages that I haven't gotten a chance to create tickets for yet:\r\n\r\n- another thing from testing: I can't see to change the duration when adding a word I'm guessing non-words as well\r\n- also we should put the muted words at the top, my mute list is huge and I have to scroll down to see it. or maybe these could be tabs" } }, { @@ -417777,14 +427088,14 @@ { "id": 6158662124, "node_id": "LA_kwDOHHF5A88AAAABbxW57A", - "url": "https://api.github.com/repos/damus-io/damus/labels/signal/noise%20ratio%20%F0%9F%91%80/%F0%9F%92%A5", - "name": "signal/noise ratio 👀/💥", + "url": "https://api.github.com/repos/damus-io/damus/labels/signal-to-noise-ratio", + "name": "signal-to-noise-ratio", "color": "0E8A16", "default": false, "description": "" } ], - "state": "closed", + "state": "open", "locked": false, "assignee": { "login": "fishcharlie", @@ -417829,10 +427140,10 @@ } ], "milestone": null, - "comments": 26, + "comments": 28, "created_at": "2023-04-02T23:49:39Z", - "updated_at": "2024-02-26T20:05:56Z", - "closed_at": "2024-02-26T20:05:56Z", + "updated_at": "2024-03-20T08:20:03Z", + "closed_at": null, "author_association": "COLLABORATOR", "active_lock_reason": null, "body": "## Bounty\r\n1,000,000 sats posted by Karnage\r\n\r\nhttps://damus.io/note1mefmevqeqqjghw4d7tzk6rp46n3sc0u3syazx2j6k8hqjxmv2svqz0fchn\r\n\r\n## User Story\r\nAs a Damus user looking to avoid notes with a particular keyword, I would like the capability to mute notes that contain a keyword I specify, so that I don't see any notes containing this keyword. \r\n\r\n### Acceptance Criteria \r\n1. User can specify a keyword they would like muted in settings \r\n2. User can see, and modify list of muted keywords by adding, or deleting words. \r\n3. If a note contains a muted keyword, the note is not displayed to user\r\n-in timeline\r\n-in universe view \r\n-in notifications \r\n-in DMs\r\n-in zaps\r\n4. User does not receive any notifications associated with notes containing this keyword \r\n5. User has an option to mute from everyone, or from people user does not follow\r\n6. User can select a mute duration: 24 hours, 1 week, 1 month, or forever. Default is forever. \r\n7. If no words are muted, the following message is displayed: \r\n> *You aren't muting any words.* \r\n\r\n> When you mute words you won't see any notifications for notes that include them, or see notes that include muted words in your timeline. \r\n8. Hashtag of muted word is muted.\r\n9. If in replies/thread, muted notes are collapsed to a single row stating: \"Note contains a word you've muted.\" and moved to bottom of reply thread.\r\n10. User has a tappable option to show the muted note `Show` (similar to \r\n![image](https://user-images.githubusercontent.com/64376233/229396257-ad039968-9885-4a41-a023-42782f9881ca.jpeg) )\r\n11. Bonus: user can mute a phrase as well (for instance the spammy/zero effort string \"Hello world! #introductions\")", @@ -417850,13 +427161,13 @@ }, "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/856/timeline", "performed_via_github_app": null, - "state_reason": "completed" + "state_reason": "reopened" }, "comment": { - "user": "alltheseas", - "created_at": "2024-01-24T16:18:47Z", - "updated_at": "2024-01-24T16:18:47Z", - "body": "@fishcharlie fyi tested yesterday - DM with muted word is shown/not hidden. I wonder if we should have a \"spam\" or low signal folder perhaps based on muted words, and web-of-trust. " + "user": "jb55", + "created_at": "2024-01-24T16:59:40Z", + "updated_at": "2024-01-24T16:59:40Z", + "body": "On Wed, Jan 24, 2024 at 08:23:09AM -0800, Charlie Fish wrote:\n>Other things @jb55 mentioned in direct messages that I haven't gotten a\n>chance to create tickets for yet:\n\n>- another thing from testing: I can't see to change the duration when\n> adding a word I'm guessing non-words as well\n\n>- also we should put the muted words at the top, my mute list is huge\n> and I have to scroll down to see it. or maybe these could be tabs\n\nyeah these are most important.\n\nAlso:\n\nI can't seem to change the duration when adding a mute item.\n" } }, { @@ -417922,14 +427233,14 @@ { "id": 6158662124, "node_id": "LA_kwDOHHF5A88AAAABbxW57A", - "url": "https://api.github.com/repos/damus-io/damus/labels/signal/noise%20ratio%20%F0%9F%91%80/%F0%9F%92%A5", - "name": "signal/noise ratio 👀/💥", + "url": "https://api.github.com/repos/damus-io/damus/labels/signal-to-noise-ratio", + "name": "signal-to-noise-ratio", "color": "0E8A16", "default": false, "description": "" } ], - "state": "closed", + "state": "open", "locked": false, "assignee": { "login": "fishcharlie", @@ -417974,10 +427285,10 @@ } ], "milestone": null, - "comments": 26, + "comments": 28, "created_at": "2023-04-02T23:49:39Z", - "updated_at": "2024-02-26T20:05:56Z", - "closed_at": "2024-02-26T20:05:56Z", + "updated_at": "2024-03-20T08:20:03Z", + "closed_at": null, "author_association": "COLLABORATOR", "active_lock_reason": null, "body": "## Bounty\r\n1,000,000 sats posted by Karnage\r\n\r\nhttps://damus.io/note1mefmevqeqqjghw4d7tzk6rp46n3sc0u3syazx2j6k8hqjxmv2svqz0fchn\r\n\r\n## User Story\r\nAs a Damus user looking to avoid notes with a particular keyword, I would like the capability to mute notes that contain a keyword I specify, so that I don't see any notes containing this keyword. \r\n\r\n### Acceptance Criteria \r\n1. User can specify a keyword they would like muted in settings \r\n2. User can see, and modify list of muted keywords by adding, or deleting words. \r\n3. If a note contains a muted keyword, the note is not displayed to user\r\n-in timeline\r\n-in universe view \r\n-in notifications \r\n-in DMs\r\n-in zaps\r\n4. User does not receive any notifications associated with notes containing this keyword \r\n5. User has an option to mute from everyone, or from people user does not follow\r\n6. User can select a mute duration: 24 hours, 1 week, 1 month, or forever. Default is forever. \r\n7. If no words are muted, the following message is displayed: \r\n> *You aren't muting any words.* \r\n\r\n> When you mute words you won't see any notifications for notes that include them, or see notes that include muted words in your timeline. \r\n8. Hashtag of muted word is muted.\r\n9. If in replies/thread, muted notes are collapsed to a single row stating: \"Note contains a word you've muted.\" and moved to bottom of reply thread.\r\n10. User has a tappable option to show the muted note `Show` (similar to \r\n![image](https://user-images.githubusercontent.com/64376233/229396257-ad039968-9885-4a41-a023-42782f9881ca.jpeg) )\r\n11. Bonus: user can mute a phrase as well (for instance the spammy/zero effort string \"Hello world! #introductions\")", @@ -417995,13 +427306,13 @@ }, "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/856/timeline", "performed_via_github_app": null, - "state_reason": "completed" + "state_reason": "reopened" }, "comment": { - "user": "fishcharlie", - "created_at": "2024-01-24T16:22:57Z", - "updated_at": "2024-01-24T16:22:57Z", - "body": "@alltheseas Mind creating a new ticket for that and assigning me? There is for sure some cleanup work we have to do.\r\n\r\nAlso I was gonna create a ticket for this issue @jb55 reported: https://damus.io/nevent1qqsyspz3g8qfctjh5aclktgxxlkpmrwvrg3gn57ux9gcsldduhs7y8qpy9mhxue69uhhyetvv9ujumtfdej8xtnrdakj7mn0wd68ytmkxyhhwucprpmhxw309akk7mnpvshx5c34x5hxxmmd8gurqwpsqy2hwumn8ghj7un9d3shjtnddaehgu3wwp6kyqgswaehxw309ahx7um5wgh8w6twv5q3gamnwvaz7tmjv4kxz7fwv3sk6atn9e5k7qgdwaehxw309ahx7uewd3hkcqgcwaehxw309amk2mrrdakk2tnwdaehgu3wwa5kuegpzemhxue69uhhyetvv9ujumn0wd68ytnzv9hxgqg4waehxw309ajkgetw9ehx7um5wghxcctwvstmqgk3\r\n\r\nHowever, I haven't gotten a chance to create that ticket yet. If you have some extra time and want to that would be great.\r\n\r\nOther things @jb55 mentioned in direct messages that I haven't gotten a chance to create tickets for yet:\r\n\r\n- another thing from testing: I can't see to change the duration when adding a word I'm guessing non-words as well\r\n- also we should put the muted words at the top, my mute list is huge and I have to scroll down to see it. or maybe these could be tabs" + "user": "alltheseas", + "created_at": "2024-01-24T18:03:34Z", + "updated_at": "2024-01-24T18:03:34Z", + "body": "Added these as new issues. Links are above. " } }, { @@ -418067,14 +427378,14 @@ { "id": 6158662124, "node_id": "LA_kwDOHHF5A88AAAABbxW57A", - "url": "https://api.github.com/repos/damus-io/damus/labels/signal/noise%20ratio%20%F0%9F%91%80/%F0%9F%92%A5", - "name": "signal/noise ratio 👀/💥", + "url": "https://api.github.com/repos/damus-io/damus/labels/signal-to-noise-ratio", + "name": "signal-to-noise-ratio", "color": "0E8A16", "default": false, "description": "" } ], - "state": "closed", + "state": "open", "locked": false, "assignee": { "login": "fishcharlie", @@ -418119,10 +427430,10 @@ } ], "milestone": null, - "comments": 26, + "comments": 28, "created_at": "2023-04-02T23:49:39Z", - "updated_at": "2024-02-26T20:05:56Z", - "closed_at": "2024-02-26T20:05:56Z", + "updated_at": "2024-03-20T08:20:03Z", + "closed_at": null, "author_association": "COLLABORATOR", "active_lock_reason": null, "body": "## Bounty\r\n1,000,000 sats posted by Karnage\r\n\r\nhttps://damus.io/note1mefmevqeqqjghw4d7tzk6rp46n3sc0u3syazx2j6k8hqjxmv2svqz0fchn\r\n\r\n## User Story\r\nAs a Damus user looking to avoid notes with a particular keyword, I would like the capability to mute notes that contain a keyword I specify, so that I don't see any notes containing this keyword. \r\n\r\n### Acceptance Criteria \r\n1. User can specify a keyword they would like muted in settings \r\n2. User can see, and modify list of muted keywords by adding, or deleting words. \r\n3. If a note contains a muted keyword, the note is not displayed to user\r\n-in timeline\r\n-in universe view \r\n-in notifications \r\n-in DMs\r\n-in zaps\r\n4. User does not receive any notifications associated with notes containing this keyword \r\n5. User has an option to mute from everyone, or from people user does not follow\r\n6. User can select a mute duration: 24 hours, 1 week, 1 month, or forever. Default is forever. \r\n7. If no words are muted, the following message is displayed: \r\n> *You aren't muting any words.* \r\n\r\n> When you mute words you won't see any notifications for notes that include them, or see notes that include muted words in your timeline. \r\n8. Hashtag of muted word is muted.\r\n9. If in replies/thread, muted notes are collapsed to a single row stating: \"Note contains a word you've muted.\" and moved to bottom of reply thread.\r\n10. User has a tappable option to show the muted note `Show` (similar to \r\n![image](https://user-images.githubusercontent.com/64376233/229396257-ad039968-9885-4a41-a023-42782f9881ca.jpeg) )\r\n11. Bonus: user can mute a phrase as well (for instance the spammy/zero effort string \"Hello world! #introductions\")", @@ -418140,13 +427451,13 @@ }, "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/856/timeline", "performed_via_github_app": null, - "state_reason": "completed" + "state_reason": "reopened" }, "comment": { "user": "jb55", - "created_at": "2024-01-24T16:59:40Z", - "updated_at": "2024-01-24T16:59:40Z", - "body": "On Wed, Jan 24, 2024 at 08:23:09AM -0800, Charlie Fish wrote:\n>Other things @jb55 mentioned in direct messages that I haven't gotten a\n>chance to create tickets for yet:\n\n>- another thing from testing: I can't see to change the duration when\n> adding a word I'm guessing non-words as well\n\n>- also we should put the muted words at the top, my mute list is huge\n> and I have to scroll down to see it. or maybe these could be tabs\n\nyeah these are most important.\n\nAlso:\n\nI can't seem to change the duration when adding a mute item.\n" + "created_at": "2024-01-28T02:18:20Z", + "updated_at": "2024-01-28T02:18:20Z", + "body": "re-opening this because it's not quite ready yet. we should probably have a policy to only pay out when code is ready not when it's merged, since we can sometimes merge code that is not ready. @karnagebitcoin let me know if you want a refund for now since I said it was ready when it was not." } }, { @@ -418212,14 +427523,14 @@ { "id": 6158662124, "node_id": "LA_kwDOHHF5A88AAAABbxW57A", - "url": "https://api.github.com/repos/damus-io/damus/labels/signal/noise%20ratio%20%F0%9F%91%80/%F0%9F%92%A5", - "name": "signal/noise ratio 👀/💥", + "url": "https://api.github.com/repos/damus-io/damus/labels/signal-to-noise-ratio", + "name": "signal-to-noise-ratio", "color": "0E8A16", "default": false, "description": "" } ], - "state": "closed", + "state": "open", "locked": false, "assignee": { "login": "fishcharlie", @@ -418264,10 +427575,10 @@ } ], "milestone": null, - "comments": 26, + "comments": 28, "created_at": "2023-04-02T23:49:39Z", - "updated_at": "2024-02-26T20:05:56Z", - "closed_at": "2024-02-26T20:05:56Z", + "updated_at": "2024-03-20T08:20:03Z", + "closed_at": null, "author_association": "COLLABORATOR", "active_lock_reason": null, "body": "## Bounty\r\n1,000,000 sats posted by Karnage\r\n\r\nhttps://damus.io/note1mefmevqeqqjghw4d7tzk6rp46n3sc0u3syazx2j6k8hqjxmv2svqz0fchn\r\n\r\n## User Story\r\nAs a Damus user looking to avoid notes with a particular keyword, I would like the capability to mute notes that contain a keyword I specify, so that I don't see any notes containing this keyword. \r\n\r\n### Acceptance Criteria \r\n1. User can specify a keyword they would like muted in settings \r\n2. User can see, and modify list of muted keywords by adding, or deleting words. \r\n3. If a note contains a muted keyword, the note is not displayed to user\r\n-in timeline\r\n-in universe view \r\n-in notifications \r\n-in DMs\r\n-in zaps\r\n4. User does not receive any notifications associated with notes containing this keyword \r\n5. User has an option to mute from everyone, or from people user does not follow\r\n6. User can select a mute duration: 24 hours, 1 week, 1 month, or forever. Default is forever. \r\n7. If no words are muted, the following message is displayed: \r\n> *You aren't muting any words.* \r\n\r\n> When you mute words you won't see any notifications for notes that include them, or see notes that include muted words in your timeline. \r\n8. Hashtag of muted word is muted.\r\n9. If in replies/thread, muted notes are collapsed to a single row stating: \"Note contains a word you've muted.\" and moved to bottom of reply thread.\r\n10. User has a tappable option to show the muted note `Show` (similar to \r\n![image](https://user-images.githubusercontent.com/64376233/229396257-ad039968-9885-4a41-a023-42782f9881ca.jpeg) )\r\n11. Bonus: user can mute a phrase as well (for instance the spammy/zero effort string \"Hello world! #introductions\")", @@ -418285,13 +427596,13 @@ }, "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/856/timeline", "performed_via_github_app": null, - "state_reason": "completed" + "state_reason": "reopened" }, "comment": { - "user": "alltheseas", - "created_at": "2024-01-24T18:03:34Z", - "updated_at": "2024-01-24T18:03:34Z", - "body": "Added these as new issues. Links are above. " + "user": "karnagebitcoin", + "created_at": "2024-01-28T12:15:00Z", + "updated_at": "2024-01-28T12:15:00Z", + "body": "> re-opening this because it's not quite ready yet. we should probably have a policy to only pay out when code is ready not when it's merged, since we can sometimes merge code that is not ready. @karnagebitcoin let me know if you want a refund for now since I said it was ready when it was not.\r\n\r\nno refund necessary. I trust that it will work eventually ;) " } }, { @@ -418357,14 +427668,14 @@ { "id": 6158662124, "node_id": "LA_kwDOHHF5A88AAAABbxW57A", - "url": "https://api.github.com/repos/damus-io/damus/labels/signal/noise%20ratio%20%F0%9F%91%80/%F0%9F%92%A5", - "name": "signal/noise ratio 👀/💥", + "url": "https://api.github.com/repos/damus-io/damus/labels/signal-to-noise-ratio", + "name": "signal-to-noise-ratio", "color": "0E8A16", "default": false, "description": "" } ], - "state": "closed", + "state": "open", "locked": false, "assignee": { "login": "fishcharlie", @@ -418409,10 +427720,10 @@ } ], "milestone": null, - "comments": 26, + "comments": 28, "created_at": "2023-04-02T23:49:39Z", - "updated_at": "2024-02-26T20:05:56Z", - "closed_at": "2024-02-26T20:05:56Z", + "updated_at": "2024-03-20T08:20:03Z", + "closed_at": null, "author_association": "COLLABORATOR", "active_lock_reason": null, "body": "## Bounty\r\n1,000,000 sats posted by Karnage\r\n\r\nhttps://damus.io/note1mefmevqeqqjghw4d7tzk6rp46n3sc0u3syazx2j6k8hqjxmv2svqz0fchn\r\n\r\n## User Story\r\nAs a Damus user looking to avoid notes with a particular keyword, I would like the capability to mute notes that contain a keyword I specify, so that I don't see any notes containing this keyword. \r\n\r\n### Acceptance Criteria \r\n1. User can specify a keyword they would like muted in settings \r\n2. User can see, and modify list of muted keywords by adding, or deleting words. \r\n3. If a note contains a muted keyword, the note is not displayed to user\r\n-in timeline\r\n-in universe view \r\n-in notifications \r\n-in DMs\r\n-in zaps\r\n4. User does not receive any notifications associated with notes containing this keyword \r\n5. User has an option to mute from everyone, or from people user does not follow\r\n6. User can select a mute duration: 24 hours, 1 week, 1 month, or forever. Default is forever. \r\n7. If no words are muted, the following message is displayed: \r\n> *You aren't muting any words.* \r\n\r\n> When you mute words you won't see any notifications for notes that include them, or see notes that include muted words in your timeline. \r\n8. Hashtag of muted word is muted.\r\n9. If in replies/thread, muted notes are collapsed to a single row stating: \"Note contains a word you've muted.\" and moved to bottom of reply thread.\r\n10. User has a tappable option to show the muted note `Show` (similar to \r\n![image](https://user-images.githubusercontent.com/64376233/229396257-ad039968-9885-4a41-a023-42782f9881ca.jpeg) )\r\n11. Bonus: user can mute a phrase as well (for instance the spammy/zero effort string \"Hello world! #introductions\")", @@ -418430,13 +427741,13 @@ }, "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/856/timeline", "performed_via_github_app": null, - "state_reason": "completed" + "state_reason": "reopened" }, "comment": { - "user": "jb55", - "created_at": "2024-01-28T02:18:20Z", - "updated_at": "2024-01-28T02:18:20Z", - "body": "re-opening this because it's not quite ready yet. we should probably have a policy to only pay out when code is ready not when it's merged, since we can sometimes merge code that is not ready. @karnagebitcoin let me know if you want a refund for now since I said it was ready when it was not." + "user": "alltheseas", + "created_at": "2024-03-19T21:37:15Z", + "updated_at": "2024-03-19T21:37:15Z", + "body": "@jb55 you ok to keep these open til merged to testflight or appstore? \n\nThis one is on master, and not yet on appstore. " } }, { @@ -418502,14 +427813,14 @@ { "id": 6158662124, "node_id": "LA_kwDOHHF5A88AAAABbxW57A", - "url": "https://api.github.com/repos/damus-io/damus/labels/signal/noise%20ratio%20%F0%9F%91%80/%F0%9F%92%A5", - "name": "signal/noise ratio 👀/💥", + "url": "https://api.github.com/repos/damus-io/damus/labels/signal-to-noise-ratio", + "name": "signal-to-noise-ratio", "color": "0E8A16", "default": false, "description": "" } ], - "state": "closed", + "state": "open", "locked": false, "assignee": { "login": "fishcharlie", @@ -418554,10 +427865,10 @@ } ], "milestone": null, - "comments": 26, + "comments": 28, "created_at": "2023-04-02T23:49:39Z", - "updated_at": "2024-02-26T20:05:56Z", - "closed_at": "2024-02-26T20:05:56Z", + "updated_at": "2024-03-20T08:20:03Z", + "closed_at": null, "author_association": "COLLABORATOR", "active_lock_reason": null, "body": "## Bounty\r\n1,000,000 sats posted by Karnage\r\n\r\nhttps://damus.io/note1mefmevqeqqjghw4d7tzk6rp46n3sc0u3syazx2j6k8hqjxmv2svqz0fchn\r\n\r\n## User Story\r\nAs a Damus user looking to avoid notes with a particular keyword, I would like the capability to mute notes that contain a keyword I specify, so that I don't see any notes containing this keyword. \r\n\r\n### Acceptance Criteria \r\n1. User can specify a keyword they would like muted in settings \r\n2. User can see, and modify list of muted keywords by adding, or deleting words. \r\n3. If a note contains a muted keyword, the note is not displayed to user\r\n-in timeline\r\n-in universe view \r\n-in notifications \r\n-in DMs\r\n-in zaps\r\n4. User does not receive any notifications associated with notes containing this keyword \r\n5. User has an option to mute from everyone, or from people user does not follow\r\n6. User can select a mute duration: 24 hours, 1 week, 1 month, or forever. Default is forever. \r\n7. If no words are muted, the following message is displayed: \r\n> *You aren't muting any words.* \r\n\r\n> When you mute words you won't see any notifications for notes that include them, or see notes that include muted words in your timeline. \r\n8. Hashtag of muted word is muted.\r\n9. If in replies/thread, muted notes are collapsed to a single row stating: \"Note contains a word you've muted.\" and moved to bottom of reply thread.\r\n10. User has a tappable option to show the muted note `Show` (similar to \r\n![image](https://user-images.githubusercontent.com/64376233/229396257-ad039968-9885-4a41-a023-42782f9881ca.jpeg) )\r\n11. Bonus: user can mute a phrase as well (for instance the spammy/zero effort string \"Hello world! #introductions\")", @@ -418575,13 +427886,13 @@ }, "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/856/timeline", "performed_via_github_app": null, - "state_reason": "completed" + "state_reason": "reopened" }, "comment": { - "user": "karnagebitcoin", - "created_at": "2024-01-28T12:15:00Z", - "updated_at": "2024-01-28T12:15:00Z", - "body": "> re-opening this because it's not quite ready yet. we should probably have a policy to only pay out when code is ready not when it's merged, since we can sometimes merge code that is not ready. @karnagebitcoin let me know if you want a refund for now since I said it was ready when it was not.\r\n\r\nno refund necessary. I trust that it will work eventually ;) " + "user": "jb55", + "created_at": "2024-03-20T08:20:02Z", + "updated_at": "2024-03-20T08:20:02Z", + "body": "On Tue, Mar 19, 2024 at 02:37:36PM -0700, alltheseas wrote:\n>@jb55 you ok to keep these open til merged to testflight or appstore?\n\nWe don't really have a mechanism for that yet, since github closes\nthings automatically when patches/PRs are merged.\n\nWe could perhaps have a testflight branch and configure github to close\nthe issue when it's merged into that? Otherwise we would have to treat\nmaster as our testflight branch and use another for tip dev.\n" } }, { @@ -525551,9 +534862,9 @@ "assignee": null, "assignees": [], "milestone": null, - "comments": 4, + "comments": 5, "created_at": "2023-01-26T18:25:28Z", - "updated_at": "2023-06-30T06:32:15Z", + "updated_at": "2024-03-18T16:23:00Z", "closed_at": null, "author_association": "COLLABORATOR", "active_lock_reason": null, @@ -525623,9 +534934,9 @@ "assignee": null, "assignees": [], "milestone": null, - "comments": 4, + "comments": 5, "created_at": "2023-01-26T18:25:28Z", - "updated_at": "2023-06-30T06:32:15Z", + "updated_at": "2024-03-18T16:23:00Z", "closed_at": null, "author_association": "COLLABORATOR", "active_lock_reason": null, @@ -525701,9 +535012,9 @@ "assignee": null, "assignees": [], "milestone": null, - "comments": 4, + "comments": 5, "created_at": "2023-01-26T18:25:28Z", - "updated_at": "2023-06-30T06:32:15Z", + "updated_at": "2024-03-18T16:23:00Z", "closed_at": null, "author_association": "COLLABORATOR", "active_lock_reason": null, @@ -525779,9 +535090,9 @@ "assignee": null, "assignees": [], "milestone": null, - "comments": 4, + "comments": 5, "created_at": "2023-01-26T18:25:28Z", - "updated_at": "2023-06-30T06:32:15Z", + "updated_at": "2024-03-18T16:23:00Z", "closed_at": null, "author_association": "COLLABORATOR", "active_lock_reason": null, @@ -525857,9 +535168,9 @@ "assignee": null, "assignees": [], "milestone": null, - "comments": 4, + "comments": 5, "created_at": "2023-01-26T18:25:28Z", - "updated_at": "2023-06-30T06:32:15Z", + "updated_at": "2024-03-18T16:23:00Z", "closed_at": null, "author_association": "COLLABORATOR", "active_lock_reason": null, @@ -525889,6 +535200,84 @@ }, { "issue": { + "url": "https://api.github.com/repos/damus-io/damus/issues/407", + "repository_url": "https://api.github.com/repos/damus-io/damus", + "labels_url": "https://api.github.com/repos/damus-io/damus/issues/407/labels{/name}", + "comments_url": "https://api.github.com/repos/damus-io/damus/issues/407/comments", + "events_url": "https://api.github.com/repos/damus-io/damus/issues/407/events", + "html_url": "https://github.com/damus-io/damus/issues/407", + "id": 1558578131, + "node_id": "I_kwDOHHF5A85c5gPT", + "number": 407, + "title": "Integrate Nests (f/k/a Spaces) [Feature Request][Enhancement]", + "user": { + "login": "alltheseas", + "id": 64376233, + "node_id": "MDQ6VXNlcjY0Mzc2MjMz", + "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/alltheseas", + "html_url": "https://github.com/alltheseas", + "followers_url": "https://api.github.com/users/alltheseas/followers", + "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", + "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", + "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", + "organizations_url": "https://api.github.com/users/alltheseas/orgs", + "repos_url": "https://api.github.com/users/alltheseas/repos", + "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", + "received_events_url": "https://api.github.com/users/alltheseas/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "id": 5667230655, + "node_id": "LA_kwDOHHF5A88AAAABUcsTvw", + "url": "https://api.github.com/repos/damus-io/damus/labels/feature", + "name": "feature", + "color": "BFDADC", + "default": false, + "description": "New feature request" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "assignees": [], + "milestone": null, + "comments": 5, + "created_at": "2023-01-26T18:25:28Z", + "updated_at": "2024-03-18T16:23:00Z", + "closed_at": null, + "author_association": "COLLABORATOR", + "active_lock_reason": null, + "body": "## User Stories ##\r\n1. As a pleb who uses Damus that would like to speak with the plebs, I would like the capability to host a nest, so that I may speak with and hear the wise counsel of the plebs.\r\n2. \r\n3. As a pleb who uses Damus that would like to speak with the plebs, I would like the capability to join a nest, so that I may speak with and hear the wise counsel of the plebs.\r\n\r\n### Acceptance Criteria ###\r\n1. Damus user can create a nest,\r\n2. Damus user can see current nests, and\r\n4. Damus user can join a nest, and\r\n5. Damus user can leave a nest, and\r\n6. Nest creator can bring plebs up to stage as a speaker (no more than 11 speakers total), and\r\n7. Nest creator can remove plebs from stage, and\r\n8. Nest creator can add co-hosts (no more than 2 co-hosts), and\r\n9. Anyone can share the nest with a shareable method (e.g. link), and\r\n10. User joins with their mic on mute by default, and\r\n11. User has option to un/mute, and\r\n12. Anyone can see who is participating in a nest.", + "reactions": { + "url": "https://api.github.com/repos/damus-io/damus/issues/407/reactions", + "total_count": 1, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 1, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/damus-io/damus/issues/407/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + "comment": { + "user": "alltheseas", + "created_at": "2024-03-18T16:22:06Z", + "updated_at": "2024-03-18T16:23:00Z", + "body": "Is nests hardcoded? Is it a protocol?\r\n\r\nspaces -> can broadcast to 20k ppl\r\n\r\nnests -> ?\r\n\r\nsimpler version nests webRTC p2p\r\n\r\ntwo different products" + } + }, + { + "issue": { "url": "https://api.github.com/repos/damus-io/damus/issues/406", "repository_url": "https://api.github.com/repos/damus-io/damus", "labels_url": "https://api.github.com/repos/damus-io/damus/issues/406/labels{/name}", diff --git a/exported/nostrdb.json b/exported/nostrdb.json @@ -4676,15 +4676,15 @@ "site_admin": false }, "labels": [], - "state": "open", + "state": "closed", "locked": false, "assignee": null, "assignees": [], "milestone": null, "comments": 4, "created_at": "2023-07-26T23:12:40Z", - "updated_at": "2023-12-04T22:39:25Z", - "closed_at": null, + "updated_at": "2024-03-18T06:00:46Z", + "closed_at": "2024-03-18T06:00:46Z", "author_association": "CONTRIBUTOR", "active_lock_reason": null, "draft": false, @@ -4746,15 +4746,15 @@ "site_admin": false }, "labels": [], - "state": "open", + "state": "closed", "locked": false, "assignee": null, "assignees": [], "milestone": null, "comments": 4, "created_at": "2023-07-26T23:12:40Z", - "updated_at": "2023-12-04T22:39:25Z", - "closed_at": null, + "updated_at": "2024-03-18T06:00:46Z", + "closed_at": "2024-03-18T06:00:46Z", "author_association": "CONTRIBUTOR", "active_lock_reason": null, "draft": false, @@ -4822,15 +4822,15 @@ "site_admin": false }, "labels": [], - "state": "open", + "state": "closed", "locked": false, "assignee": null, "assignees": [], "milestone": null, "comments": 4, "created_at": "2023-07-26T23:12:40Z", - "updated_at": "2023-12-04T22:39:25Z", - "closed_at": null, + "updated_at": "2024-03-18T06:00:46Z", + "closed_at": "2024-03-18T06:00:46Z", "author_association": "CONTRIBUTOR", "active_lock_reason": null, "draft": false, @@ -4898,15 +4898,15 @@ "site_admin": false }, "labels": [], - "state": "open", + "state": "closed", "locked": false, "assignee": null, "assignees": [], "milestone": null, "comments": 4, "created_at": "2023-07-26T23:12:40Z", - "updated_at": "2023-12-04T22:39:25Z", - "closed_at": null, + "updated_at": "2024-03-18T06:00:46Z", + "closed_at": "2024-03-18T06:00:46Z", "author_association": "CONTRIBUTOR", "active_lock_reason": null, "draft": false, @@ -4974,15 +4974,15 @@ "site_admin": false }, "labels": [], - "state": "open", + "state": "closed", "locked": false, "assignee": null, "assignees": [], "milestone": null, "comments": 4, "created_at": "2023-07-26T23:12:40Z", - "updated_at": "2023-12-04T22:39:25Z", - "closed_at": null, + "updated_at": "2024-03-18T06:00:46Z", + "closed_at": "2024-03-18T06:00:46Z", "author_association": "CONTRIBUTOR", "active_lock_reason": null, "draft": false, diff --git a/exported/notecrumbs.json b/exported/notecrumbs.json @@ -1,6 +1,156 @@ [ { "issue": { + "url": "https://api.github.com/repos/damus-io/notecrumbs/issues/12", + "repository_url": "https://api.github.com/repos/damus-io/notecrumbs", + "labels_url": "https://api.github.com/repos/damus-io/notecrumbs/issues/12/labels{/name}", + "comments_url": "https://api.github.com/repos/damus-io/notecrumbs/issues/12/comments", + "events_url": "https://api.github.com/repos/damus-io/notecrumbs/issues/12/events", + "html_url": "https://github.com/damus-io/notecrumbs/issues/12", + "id": 2193173170, + "node_id": "I_kwDOK6pDSc6CuSqy", + "number": 12, + "title": "Missing Arabic font", + "user": { + "login": "alltheseas", + "id": 64376233, + "node_id": "MDQ6VXNlcjY0Mzc2MjMz", + "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/alltheseas", + "html_url": "https://github.com/alltheseas", + "followers_url": "https://api.github.com/users/alltheseas/followers", + "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", + "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", + "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", + "organizations_url": "https://api.github.com/users/alltheseas/orgs", + "repos_url": "https://api.github.com/users/alltheseas/repos", + "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", + "received_events_url": "https://api.github.com/users/alltheseas/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "id": 6709019982, + "node_id": "LA_kwDOK6pDSc8AAAABj-OFTg", + "url": "https://api.github.com/repos/damus-io/notecrumbs/labels/localization", + "name": "localization", + "color": "4B75F9", + "default": false, + "description": "" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "assignees": [], + "milestone": null, + "comments": 1, + "created_at": "2024-03-18T20:01:19Z", + "updated_at": "2024-03-18T20:05:37Z", + "closed_at": null, + "author_association": "NONE", + "active_lock_reason": null, + "body": "related https://github.com/damus-io/api/issues/4", + "reactions": { + "url": "https://api.github.com/repos/damus-io/notecrumbs/issues/12/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/damus-io/notecrumbs/issues/12/timeline", + "performed_via_github_app": null, + "state_reason": null + } + }, + { + "issue": { + "url": "https://api.github.com/repos/damus-io/notecrumbs/issues/12", + "repository_url": "https://api.github.com/repos/damus-io/notecrumbs", + "labels_url": "https://api.github.com/repos/damus-io/notecrumbs/issues/12/labels{/name}", + "comments_url": "https://api.github.com/repos/damus-io/notecrumbs/issues/12/comments", + "events_url": "https://api.github.com/repos/damus-io/notecrumbs/issues/12/events", + "html_url": "https://github.com/damus-io/notecrumbs/issues/12", + "id": 2193173170, + "node_id": "I_kwDOK6pDSc6CuSqy", + "number": 12, + "title": "Missing Arabic font", + "user": { + "login": "alltheseas", + "id": 64376233, + "node_id": "MDQ6VXNlcjY0Mzc2MjMz", + "avatar_url": "https://avatars.githubusercontent.com/u/64376233?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/alltheseas", + "html_url": "https://github.com/alltheseas", + "followers_url": "https://api.github.com/users/alltheseas/followers", + "following_url": "https://api.github.com/users/alltheseas/following{/other_user}", + "gists_url": "https://api.github.com/users/alltheseas/gists{/gist_id}", + "starred_url": "https://api.github.com/users/alltheseas/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/alltheseas/subscriptions", + "organizations_url": "https://api.github.com/users/alltheseas/orgs", + "repos_url": "https://api.github.com/users/alltheseas/repos", + "events_url": "https://api.github.com/users/alltheseas/events{/privacy}", + "received_events_url": "https://api.github.com/users/alltheseas/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "id": 6709019982, + "node_id": "LA_kwDOK6pDSc8AAAABj-OFTg", + "url": "https://api.github.com/repos/damus-io/notecrumbs/labels/localization", + "name": "localization", + "color": "4B75F9", + "default": false, + "description": "" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "assignees": [], + "milestone": null, + "comments": 1, + "created_at": "2024-03-18T20:01:19Z", + "updated_at": "2024-03-18T20:05:37Z", + "closed_at": null, + "author_association": "NONE", + "active_lock_reason": null, + "body": "related https://github.com/damus-io/api/issues/4", + "reactions": { + "url": "https://api.github.com/repos/damus-io/notecrumbs/issues/12/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/damus-io/notecrumbs/issues/12/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + "comment": { + "user": "jb55", + "created_at": "2024-03-18T20:05:36Z", + "updated_at": "2024-03-18T20:05:36Z", + "body": "It's a bit more complicated than this when it comes to arabic. Arabic\nrequires proper text shaping (right-to-left text). This is currently not\nsupported by egui.\n\nhttps://github.com/emilk/egui/issues/56\n" + } + }, + { + "issue": { "url": "https://api.github.com/repos/damus-io/notecrumbs/issues/11", "repository_url": "https://api.github.com/repos/damus-io/notecrumbs", "labels_url": "https://api.github.com/repos/damus-io/notecrumbs/issues/11/labels{/name}",