Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package neonmodem for openSUSE:Factory 
checked in at 2024-08-16 12:23:48
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/neonmodem (Old)
 and      /work/SRC/openSUSE:Factory/.neonmodem.new.2698 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "neonmodem"

Fri Aug 16 12:23:48 2024 rev:3 rq:1194109 version:1.0.6+git0.63db4bd

Changes:
--------
--- /work/SRC/openSUSE:Factory/neonmodem/neonmodem.changes      2024-05-29 
19:37:26.435939287 +0200
+++ /work/SRC/openSUSE:Factory/.neonmodem.new.2698/neonmodem.changes    
2024-08-16 12:24:24.524924141 +0200
@@ -1,0 +2,18 @@
+Thu Aug 15 09:05:18 UTC 2024 - felix.niederwan...@suse.de
+
+- Update to version 1.0.6+git0.63db4bd:
+  * Fix goreleaser
+  * Remove `q` for quit, add config file info
+  * Fix #50, implementation of nested replies
+  * Fix #31, bugfix for missing comments in Lemmy
+  * Fix #57, introduce null.* types
+  * Fix #32, forum filter implementation for Lemmy
+  * Fix #52 pt 2, move tea.Quit to view
+  * Fix #52, ignore `n` shortcut when filtering
+  * Fix #42, rm `q` key for closing Having the `q` key in addition to the 
`Esc` key for closing windows and quitting the app just adds unnecessary 
complexity and breaks the UX flow.
+  * Update dependencies
+  * Fix #63, rm panic for loadSystems, add log info
+  * Bump golang.org/x/image from 0.16.0 to 0.18.0
+  * Bump github.com/hashicorp/go-retryablehttp from 0.7.6 to 0.7.7
+
+-------------------------------------------------------------------

Old:
----
  neonmodem-1.0.5+git0.b2e8808.obscpio

New:
----
  neonmodem-1.0.6+git0.63db4bd.obscpio

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ neonmodem.spec ++++++
--- /var/tmp/diff_new_pack.r76Vdb/_old  2024-08-16 12:24:25.336957888 +0200
+++ /var/tmp/diff_new_pack.r76Vdb/_new  2024-08-16 12:24:25.340958054 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           neonmodem
-Version:        1.0.5+git0.b2e8808
+Version:        1.0.6+git0.63db4bd
 Release:        0
 Summary:        BBS-style command line client for Discourse, Lemmy, Lobsters 
and Hacker News
 License:        GPL-3.0-only

++++++ _service ++++++
--- /var/tmp/diff_new_pack.r76Vdb/_old  2024-08-16 12:24:25.372959384 +0200
+++ /var/tmp/diff_new_pack.r76Vdb/_new  2024-08-16 12:24:25.376959551 +0200
@@ -2,7 +2,7 @@
   <service name="obs_scm" mode="manual">
     <param name="url">https://github.com/mrusme/neonmodem.git</param>
     <param name="scm">git</param>
-    <param name="revision">v1.0.5</param>
+    <param name="revision">v1.0.6</param>
     <param name="versionformat">@PARENT_TAG@+git@TAG_OFFSET@.%h</param>
        <param name="versionrewrite-pattern">v(.*)</param>
        <param name="changesgenerate">enable</param>

++++++ neonmodem-1.0.5+git0.b2e8808.obscpio -> 
neonmodem-1.0.6+git0.63db4bd.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/neonmodem-1.0.5+git0.b2e8808/.github/workflows/release.yml 
new/neonmodem-1.0.6+git0.63db4bd/.github/workflows/release.yml
--- old/neonmodem-1.0.5+git0.b2e8808/.github/workflows/release.yml      
2024-05-24 19:49:04.000000000 +0200
+++ new/neonmodem-1.0.6+git0.63db4bd/.github/workflows/release.yml      
2024-08-01 21:08:39.000000000 +0200
@@ -15,13 +15,13 @@
     - name: Set up Go
       uses: actions/setup-go@v3
       with:
-        go-version: 1.19
+        go-version: 1.21
 
     - name: Run GoReleaser
-      uses: goreleaser/goreleaser-action@v3
+      uses: goreleaser/goreleaser-action@v6
       with:
         distribution: goreleaser
-        version: latest
-        args: release --rm-dist --timeout 80m
+        version: '~> v2'
+        args: release --clean --timeout 80m
       env:
         GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/neonmodem-1.0.5+git0.b2e8808/README.md 
new/neonmodem-1.0.6+git0.63db4bd/README.md
--- old/neonmodem-1.0.5+git0.b2e8808/README.md  2024-05-24 19:49:04.000000000 
+0200
+++ new/neonmodem-1.0.6+git0.63db4bd/README.md  2024-08-01 21:08:39.000000000 
+0200
@@ -91,13 +91,12 @@
 Before launching *Neon Modem Overdrive* it requires initial setup of the 
 services (a.k.a. *systems*). Run `neonmodem connect --help` to find out more.
 
-Connecting a service will add it to the configuration TOML.
-
-### Linux/Unix
-`~/.config/neonmodem.toml`
-
-### MacOS
-`$HOME/Library/Application\ Support/neonmodem.toml`
+Connecting a service will add it to the configuration TOML. The configuration 
+file location depends on the operating system. On Unix systems, it is in 
+`$XDG_CONFIG_HOME/neonmodem.toml` if `$XDG_CONFIG_HOME` is non-empty, 
otherwise 
+`$HOME/.config/neonmodem.toml` is used. On Darwin, the configuration is in 
+`$HOME/Library/Application Support/neonmodem.toml`. On Windows, it is in 
+`%AppData%\neonmodem.toml`.
 
 
 ### Systems
@@ -174,7 +173,7 @@
 - `n`: Write new post in on the system/forum of the current selected post
 - `C-e`: Open system selector
 - `C-t`: Open forum selector
-- `q`/`esc`: Quit
+- `esc`: Quit
 
 In the post view dialog:
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/neonmodem-1.0.5+git0.b2e8808/cmd/root.go 
new/neonmodem-1.0.6+git0.63db4bd/cmd/root.go
--- old/neonmodem-1.0.5+git0.b2e8808/cmd/root.go        2024-05-24 
19:49:04.000000000 +0200
+++ new/neonmodem-1.0.6+git0.63db4bd/cmd/root.go        2024-08-01 
21:08:39.000000000 +0200
@@ -94,7 +94,8 @@
                sysCfg.Config["proxy"] = CFG.Proxy
                sys, err := system.New(sysCfg.Type, &sysCfg.Config, LOG)
                if err != nil {
-                       c.Logger.Errorf("error loading system: %s", err)
+                       c.Logger.Errorf("error loading system %s: %s", 
sysCfg.Type, err)
+                       c.Logger.Infof("system %s won't be available due to 
errors", sysCfg.Type)
                        errs = append(errs, err)
                } else {
                        c.Logger.Debugf("loaded %s system", sysCfg.Type)
@@ -120,13 +121,7 @@
                var err error
 
                c := ctx.New(EMBEDFS, &CFG, LOG)
-               errs := loadSystems(&c)
-               if len(errs) > 0 {
-                       for _, err = range errs {
-                               c.Logger.Error(err)
-                       }
-                       panic("Error(s) loading system(s)")
-               }
+               _ = loadSystems(&c)
 
                tui := tea.NewProgram(ui.NewModel(&c), tea.WithAltScreen())
                err = tui.Start()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/neonmodem-1.0.5+git0.b2e8808/go.mod 
new/neonmodem-1.0.6+git0.63db4bd/go.mod
--- old/neonmodem-1.0.5+git0.b2e8808/go.mod     2024-05-24 19:49:04.000000000 
+0200
+++ new/neonmodem-1.0.6+git0.63db4bd/go.mod     2024-08-01 21:08:39.000000000 
+0200
@@ -3,28 +3,28 @@
 go 1.21
 
 require (
-       github.com/JohannesKaufmann/html-to-markdown v1.5.0
+       github.com/JohannesKaufmann/html-to-markdown v1.6.0
        github.com/araddon/dateparse v0.0.0-20210429162001-6b43995a97de
        github.com/charmbracelet/bubbles v0.18.0
-       github.com/charmbracelet/bubbletea v0.26.3
+       github.com/charmbracelet/bubbletea v0.26.6
        github.com/charmbracelet/glamour v0.7.0
-       github.com/charmbracelet/lipgloss v0.11.0
+       github.com/charmbracelet/lipgloss v0.12.1
        github.com/eliukblau/pixterm v1.3.1
        github.com/google/uuid v1.6.0
-       github.com/hashicorp/go-retryablehttp v0.7.6
+       github.com/hashicorp/go-retryablehttp v0.7.7
        github.com/hermanschaaf/hackernews v1.0.1
-       github.com/mattn/go-runewidth v0.0.15
+       github.com/mattn/go-runewidth v0.0.16
        github.com/mergestat/timediff v0.0.3
        github.com/muesli/ansi v0.0.0-20230316100256-276c6243b2f6
        github.com/muesli/reflow v0.3.0
        github.com/muesli/termenv v0.15.2
        github.com/pelletier/go-toml/v2 v2.2.2
        github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c
-       github.com/spf13/cobra v1.8.0
-       github.com/spf13/viper v1.18.2
+       github.com/spf13/cobra v1.8.1
+       github.com/spf13/viper v1.19.0
        go.elara.ws/go-lemmy v0.19.0
        go.uber.org/zap v1.27.0
-       golang.org/x/term v0.20.0
+       golang.org/x/term v0.22.0
 )
 
 require (
@@ -34,17 +34,17 @@
        github.com/atotto/clipboard v0.1.4 // indirect
        github.com/aymanbagabas/go-osc52/v2 v2.0.1 // indirect
        github.com/aymerick/douceur v0.2.0 // indirect
-       github.com/charmbracelet/x/ansi v0.1.1 // indirect
-       github.com/charmbracelet/x/input v0.1.1 // indirect
+       github.com/charmbracelet/x/ansi v0.1.4 // indirect
+       github.com/charmbracelet/x/input v0.1.3 // indirect
        github.com/charmbracelet/x/term v0.1.1 // indirect
        github.com/charmbracelet/x/windows v0.1.2 // indirect
-       github.com/containerd/console v1.0.4 // indirect
        github.com/disintegration/imaging v1.6.2 // indirect
-       github.com/dlclark/regexp2 v1.11.0 // indirect
+       github.com/dlclark/regexp2 v1.11.2 // indirect
        github.com/erikgeiser/coninput v0.0.0-20211004153227-1c3628e74d0f // 
indirect
        github.com/fsnotify/fsnotify v1.7.0 // indirect
        github.com/google/go-querystring v1.1.0 // indirect
        github.com/gorilla/css v1.0.1 // indirect
+       github.com/guregu/null v4.0.0+incompatible // indirect
        github.com/hashicorp/go-cleanhttp v0.5.2 // indirect
        github.com/hashicorp/hcl v1.0.0 // indirect
        github.com/inconshreveable/mousetrap v1.1.0 // indirect
@@ -52,12 +52,12 @@
        github.com/magiconair/properties v1.8.7 // indirect
        github.com/mattn/go-isatty v0.0.20 // indirect
        github.com/mattn/go-localereader v0.0.1 // indirect
-       github.com/microcosm-cc/bluemonday v1.0.26 // indirect
+       github.com/microcosm-cc/bluemonday v1.0.27 // indirect
        github.com/mitchellh/mapstructure v1.5.0 // indirect
        github.com/muesli/cancelreader v0.2.2 // indirect
        github.com/olekukonko/tablewriter v0.0.5 // indirect
        github.com/rivo/uniseg v0.4.7 // indirect
-       github.com/sagikazarmark/locafero v0.4.0 // indirect
+       github.com/sagikazarmark/locafero v0.6.0 // indirect
        github.com/sagikazarmark/slog-shim v0.1.0 // indirect
        github.com/sahilm/fuzzy v0.1.1 // indirect
        github.com/sourcegraph/conc v0.3.0 // indirect
@@ -66,15 +66,15 @@
        github.com/spf13/pflag v1.0.5 // indirect
        github.com/subosito/gotenv v1.6.0 // indirect
        github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e // indirect
-       github.com/yuin/goldmark v1.7.1 // indirect
-       github.com/yuin/goldmark-emoji v1.0.2 // indirect
+       github.com/yuin/goldmark v1.7.4 // indirect
+       github.com/yuin/goldmark-emoji v1.0.3 // indirect
        go.uber.org/multierr v1.11.0 // indirect
-       golang.org/x/exp v0.0.0-20240506185415-9bf2ced13842 // indirect
-       golang.org/x/image v0.16.0 // indirect
-       golang.org/x/net v0.25.0 // indirect
+       golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56 // indirect
+       golang.org/x/image v0.18.0 // indirect
+       golang.org/x/net v0.27.0 // indirect
        golang.org/x/sync v0.7.0 // indirect
-       golang.org/x/sys v0.20.0 // indirect
-       golang.org/x/text v0.15.0 // indirect
+       golang.org/x/sys v0.22.0 // indirect
+       golang.org/x/text v0.16.0 // indirect
        gopkg.in/ini.v1 v1.67.0 // indirect
        gopkg.in/yaml.v3 v3.0.1 // indirect
 )
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/neonmodem-1.0.5+git0.b2e8808/go.sum 
new/neonmodem-1.0.6+git0.63db4bd/go.sum
--- old/neonmodem-1.0.5+git0.b2e8808/go.sum     2024-05-24 19:49:04.000000000 
+0200
+++ new/neonmodem-1.0.6+git0.63db4bd/go.sum     2024-08-01 21:08:39.000000000 
+0200
@@ -1,15 +1,12 @@
 github.com/JohannesKaufmann/html-to-markdown v1.5.0 
h1:cEAcqpxk0hUJOXEVGrgILGW76d1GpyGY7PCnAaWQyAI=
 github.com/JohannesKaufmann/html-to-markdown v1.5.0/go.mod 
h1:QTO/aTyEDukulzu269jY0xiHeAGsNxmuUBo2Q0hPsK8=
+github.com/JohannesKaufmann/html-to-markdown v1.6.0 
h1:04VXMiE50YYfCfLboJCLcgqF5x+rHJnb1ssNmqpLH/k=
+github.com/JohannesKaufmann/html-to-markdown v1.6.0/go.mod 
h1:NUI78lGg/a7vpEJTz/0uOcYMaibytE4BUOQS8k78yPQ=
 github.com/PuerkitoBio/goquery v1.8.1/go.mod 
h1:Q8ICL1kNUJ2sXGoAhPGUdYDJvgQgHzJsnnd3H7Ho5jQ=
-github.com/PuerkitoBio/goquery v1.9.1 
h1:mTL6XjbJTZdpfL+Gwl5U2h1l9yEkJjhmlTeV9VPW7UI=
-github.com/PuerkitoBio/goquery v1.9.1/go.mod 
h1:cW1n6TmIMDoORQU5IU/P1T3tGFunOeXEpGP2WHRwkbY=
 github.com/PuerkitoBio/goquery v1.9.2 
h1:4/wZksC3KgkQw7SQgkKotmKljk0M6V8TUvA8Wb4yPeE=
 github.com/PuerkitoBio/goquery v1.9.2/go.mod 
h1:GHPCaP0ODyyxqcNoFGYlAprUFH81NuRPd0GX3Zu2Mvk=
-github.com/alecthomas/assert/v2 v2.6.0 
h1:o3WJwILtexrEUk3cUVal3oiQY2tfgr/FHWiz/v2n4FU=
-github.com/alecthomas/assert/v2 v2.6.0/go.mod 
h1:Bze95FyfUr7x34QZrjL+XP+0qgp/zg8yS+TtBj1WA3k=
 github.com/alecthomas/assert/v2 v2.7.0 
h1:QtqSACNS3tF7oasA8CU6A6sXZSBDqnm7RfpLl9bZqbE=
-github.com/alecthomas/chroma/v2 v2.13.0 
h1:VP72+99Fb2zEcYM0MeaWJmV+xQvz5v5cxRHd+ooU1lI=
-github.com/alecthomas/chroma/v2 v2.13.0/go.mod 
h1:BUGjjsD+ndS6eX37YgTchSEG+Jg9Jv1GiZs9sqPqztk=
+github.com/alecthomas/assert/v2 v2.7.0/go.mod 
h1:Bze95FyfUr7x34QZrjL+XP+0qgp/zg8yS+TtBj1WA3k=
 github.com/alecthomas/chroma/v2 v2.14.0 
h1:R3+wzpnUArGcQz7fCETQBzO5n9IMNi13iIs46aU4V9E=
 github.com/alecthomas/chroma/v2 v2.14.0/go.mod 
h1:QolEbTfmUHIMVpBqxeDnNBj2uoeI4EbYP4i6n68SG4I=
 github.com/alecthomas/repr v0.4.0 
h1:GhI2A8MACjfegCPVq9f1FLvIBS+DrQ2KQBFZP1iFzXc=
@@ -27,27 +24,30 @@
 github.com/aymerick/douceur v0.2.0/go.mod 
h1:wlT5vV2O3h55X9m7iVYN0TBM0NH/MmbLnd30/FjWUq4=
 github.com/charmbracelet/bubbles v0.18.0 
h1:PYv1A036luoBGroX6VWjQIE9Syf2Wby2oOl/39KLfy0=
 github.com/charmbracelet/bubbles v0.18.0/go.mod 
h1:08qhZhtIwzgrtBjAcJnij1t1H0ZRjwHyGsy6AL11PSw=
-github.com/charmbracelet/bubbletea v0.25.0 
h1:bAfwk7jRz7FKFl9RzlIULPkStffg5k6pNt5dywy4TcM=
-github.com/charmbracelet/bubbletea v0.25.0/go.mod 
h1:EN3QDR1T5ZdWmdfDzYcqOCAps45+QIJbLOBxmVNWNNg=
 github.com/charmbracelet/bubbletea v0.26.3 
h1:iXyGvI+FfOWqkB2V07m1DF3xxQijxjY2j8PqiXYqasg=
 github.com/charmbracelet/bubbletea v0.26.3/go.mod 
h1:bpZHfDHTYJC5g+FBK+ptJRCQotRC+Dhh3AoMxa/2+3Q=
+github.com/charmbracelet/bubbletea v0.26.6 
h1:zTCWSuST+3yZYZnVSvbXwKOPRSNZceVeqpzOLN2zq1s=
+github.com/charmbracelet/bubbletea v0.26.6/go.mod 
h1:dz8CWPlfCCGLFbBlTY4N7bjLiyOGDJEnd2Muu7pOWhk=
 github.com/charmbracelet/glamour v0.7.0 
h1:2BtKGZ4iVJCDfMF229EzbeR1QRKLWztO9dMtjmqZSng=
 github.com/charmbracelet/glamour v0.7.0/go.mod 
h1:jUMh5MeihljJPQbJ/wf4ldw2+yBP59+ctV36jASy7ps=
-github.com/charmbracelet/lipgloss v0.10.0 
h1:KWeXFSexGcfahHX+54URiZGkBFazf70JNMtwg/AFW3s=
-github.com/charmbracelet/lipgloss v0.10.0/go.mod 
h1:Wig9DSfvANsxqkRsqj6x87irdy123SR4dOXlKa91ciE=
 github.com/charmbracelet/lipgloss v0.11.0 
h1:UoAcbQ6Qml8hDwSWs0Y1cB5TEQuZkDPH/ZqwWWYTG4g=
 github.com/charmbracelet/lipgloss v0.11.0/go.mod 
h1:1UdRTH9gYgpcdNN5oBtjbu/IzNKtzVtb7sqN1t9LNn8=
+github.com/charmbracelet/lipgloss v0.12.1 
h1:/gmzszl+pedQpjCOH+wFkZr/N90Snz40J/NR7A0zQcs=
+github.com/charmbracelet/lipgloss v0.12.1/go.mod 
h1:V2CiwIuhx9S1S1ZlADfOj9HmxeMAORuz5izHb0zGbB8=
 github.com/charmbracelet/x/ansi v0.1.1 
h1:CGAduulr6egay/YVbGc8Hsu8deMg1xZ/bkaXTPi1JDk=
 github.com/charmbracelet/x/ansi v0.1.1/go.mod 
h1:dk73KoMTT5AX5BsX0KrqhsTqAnhZZoCBjs7dGWp4Ktw=
+github.com/charmbracelet/x/ansi v0.1.4 
h1:IEU3D6+dWwPSgZ6HBH+v6oUuZ/nVawMiWj5831KfiLM=
+github.com/charmbracelet/x/ansi v0.1.4/go.mod 
h1:dk73KoMTT5AX5BsX0KrqhsTqAnhZZoCBjs7dGWp4Ktw=
 github.com/charmbracelet/x/input v0.1.1 
h1:YDOJaTUKCqtGnq9PHzx3pkkl4pXDOANUHmhH3DqMtM4=
 github.com/charmbracelet/x/input v0.1.1/go.mod 
h1:jvdTVUnNWj/RD6hjC4FsoB0SeZCJ2ZBkiuFP9zXvZI0=
+github.com/charmbracelet/x/input v0.1.3 
h1:oy4TMhyGQsYs/WWJwu1ELUMFnjiUAXwtDf048fHbCkg=
+github.com/charmbracelet/x/input v0.1.3/go.mod 
h1:1gaCOyw1KI9e2j00j/BBZ4ErzRZqa05w0Ghn83yIhKU=
 github.com/charmbracelet/x/term v0.1.1 
h1:3cosVAiPOig+EV4X9U+3LDgtwwAoEzJjNdwbXDjF6yI=
 github.com/charmbracelet/x/term v0.1.1/go.mod 
h1:wB1fHt5ECsu3mXYusyzcngVWWlu1KKUmmLhfgr/Flxw=
 github.com/charmbracelet/x/windows v0.1.2 
h1:Iumiwq2G+BRmgoayww/qfcvof7W/3uLoelhxojXlRWg=
 github.com/charmbracelet/x/windows v0.1.2/go.mod 
h1:GLEO/l+lizvFDBPLIOk+49gdX49L9YWMB5t+DZd0jkQ=
-github.com/containerd/console v1.0.4 
h1:F2g4+oChYvBTsASRTz8NP6iIAi97J3TtSAsLbIFn4ro=
-github.com/containerd/console v1.0.4/go.mod 
h1:YynlIjWYF8myEu6sdkwKIvGQq+cOckRm6So2avqoYAk=
 github.com/cpuguy83/go-md2man/v2 v2.0.3/go.mod 
h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=
+github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod 
h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=
 github.com/davecgh/go-spew v1.1.0/go.mod 
h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
 github.com/davecgh/go-spew v1.1.1/go.mod 
h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
 github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc 
h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM=
@@ -56,34 +56,35 @@
 github.com/disintegration/imaging v1.6.2/go.mod 
h1:44/5580QXChDfwIclfc/PCwrr44amcmDAg8hxG0Ewe4=
 github.com/dlclark/regexp2 v1.11.0 
h1:G/nrcoOa7ZXlpoa/91N3X7mM3r8eIlMBBJZvsz/mxKI=
 github.com/dlclark/regexp2 v1.11.0/go.mod 
h1:DHkYz0B9wPfa6wondMfaivmHpzrQ3v9q8cnmRbL6yW8=
+github.com/dlclark/regexp2 v1.11.2 
h1:/u628IuisSTwri5/UKloiIsH8+qF2Pu7xEQX+yIKg68=
+github.com/dlclark/regexp2 v1.11.2/go.mod 
h1:DHkYz0B9wPfa6wondMfaivmHpzrQ3v9q8cnmRbL6yW8=
 github.com/eliukblau/pixterm v1.3.1 
h1:XeouQViH+lmzCa7sMUoK2cd7qlgHYGLIjwRKaOdJbKA=
 github.com/eliukblau/pixterm v1.3.1/go.mod 
h1:on5ueknFt+ZFVvIVVzQ7/JXwPjv5fJd8Q1Ybh7XixfU=
 github.com/erikgeiser/coninput v0.0.0-20211004153227-1c3628e74d0f 
h1:Y/CXytFA4m6baUTXGLOoWe4PQhGxaX0KpnayAqC48p4=
 github.com/erikgeiser/coninput v0.0.0-20211004153227-1c3628e74d0f/go.mod 
h1:vw97MGsxSvLiUE2X8qFplwetxpGLQrlU1Q9AUEIzCaM=
-github.com/fatih/color v1.14.1 h1:qfhVLaG5s+nCROl1zJsZRxFeYrHLqWroPOQ8BWiNb4w=
-github.com/fatih/color v1.14.1/go.mod 
h1:2oHN61fhTpgcxD3TSWCgKDiH1+x4OiDVVGH8WlgGZGg=
+github.com/fatih/color v1.16.0 h1:zmkK9Ngbjj+K0yRhTVONQh1p/HknKYSlNT+vZCzyokM=
+github.com/fatih/color v1.16.0/go.mod 
h1:fL2Sau1YI5c0pdGEVCbKQbLXB6edEj1ZgiY4NijnWvE=
 github.com/frankban/quicktest v1.14.6 
h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8=
 github.com/frankban/quicktest v1.14.6/go.mod 
h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0=
 github.com/fsnotify/fsnotify v1.7.0 
h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA=
 github.com/fsnotify/fsnotify v1.7.0/go.mod 
h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM=
 github.com/google/go-cmp v0.5.2/go.mod 
h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
-github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38=
-github.com/google/go-cmp v0.5.9/go.mod 
h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
+github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI=
+github.com/google/go-cmp v0.6.0/go.mod 
h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
 github.com/google/go-querystring v1.1.0 
h1:AnCroh3fv4ZBgVIf1Iwtovgjaw/GiKJo8M8yD/fhyJ8=
 github.com/google/go-querystring v1.1.0/go.mod 
h1:Kcdr2DB4koayq7X8pmAG4sNG59So17icRSOU623lUBU=
 github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
 github.com/google/uuid v1.6.0/go.mod 
h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
 github.com/gorilla/css v1.0.1 h1:ntNaBIghp6JmvWnxbZKANoLyuXTPZ4cAMlo6RyhlbO8=
 github.com/gorilla/css v1.0.1/go.mod 
h1:BvnYkspnSzMmwRK+b8/xgNPLiIuNZr6vbZBTPQ2A3b0=
+github.com/guregu/null v4.0.0+incompatible 
h1:4zw0ckM7ECd6FNNddc3Fu4aty9nTlpkkzH7dPn4/4Gw=
+github.com/guregu/null v4.0.0+incompatible/go.mod 
h1:ePGpQaN9cw0tj45IR5E5ehMvsFlLlQZAkkOXZurJ3NM=
 github.com/hashicorp/go-cleanhttp v0.5.2 
h1:035FKYIWjmULyFRBKPs8TBQoi0x6d9G4xc9neXJWAZQ=
 github.com/hashicorp/go-cleanhttp v0.5.2/go.mod 
h1:kO/YDlP8L1346E6Sodw+PrpBSV4/SoxCXGY6BqNFT48=
-github.com/hashicorp/go-hclog v0.9.2/go.mod 
h1:5CU+agLiy3J7N7QjHK5d05KxGsuXiQLrjA0H7acj2lQ=
-github.com/hashicorp/go-hclog v1.5.0 
h1:bI2ocEMgcVlz55Oj1xZNBsVi900c7II+fWDyV9o+13c=
-github.com/hashicorp/go-hclog v1.5.0/go.mod 
h1:W4Qnvbt70Wk/zYJryRzDRU/4r0kIg0PVHBcfoyhpF5M=
-github.com/hashicorp/go-retryablehttp v0.7.5 
h1:bJj+Pj19UZMIweq/iie+1u5YCdGrnxCT9yvm0e+Nd5M=
-github.com/hashicorp/go-retryablehttp v0.7.5/go.mod 
h1:Jy/gPYAdjqffZ/yFGCFV2doI5wjtH1ewM9u8iYVjtX8=
-github.com/hashicorp/go-retryablehttp v0.7.6 
h1:TwRYfx2z2C4cLbXmT8I5PgP/xmuqASDyiVuGYfs9GZM=
-github.com/hashicorp/go-retryablehttp v0.7.6/go.mod 
h1:pkQpWZeYWskR+D1tR2O5OcBFOxfA7DoAO6xtkuQnHTk=
+github.com/hashicorp/go-hclog v1.6.3 
h1:Qr2kF+eVWjTiYmU7Y31tYlP1h0q/X3Nl3tPGdaB11/k=
+github.com/hashicorp/go-hclog v1.6.3/go.mod 
h1:W4Qnvbt70Wk/zYJryRzDRU/4r0kIg0PVHBcfoyhpF5M=
+github.com/hashicorp/go-retryablehttp v0.7.7 
h1:C8hUCYzor8PIfXHa4UrZkU4VvK8o9ISHxT2Q8+VepXU=
+github.com/hashicorp/go-retryablehttp v0.7.7/go.mod 
h1:pkQpWZeYWskR+D1tR2O5OcBFOxfA7DoAO6xtkuQnHTk=
 github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4=
 github.com/hashicorp/hcl v1.0.0/go.mod 
h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ=
 github.com/hermanschaaf/hackernews v1.0.1 
h1:n6dT7LPkFA4Ke4UrIzOa80YjwSXqF5sMKmUbIYtqMDY=
@@ -117,10 +118,14 @@
 github.com/mattn/go-runewidth v0.0.12/go.mod 
h1:RAqKPSqVFrSLVXbA8x7dzmKdmGzieGRCM46jaSJTDAk=
 github.com/mattn/go-runewidth v0.0.15 
h1:UNAjwbU9l54TA3KzvqLGxwWjHmMgBUVhBiTjelZgg3U=
 github.com/mattn/go-runewidth v0.0.15/go.mod 
h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w=
+github.com/mattn/go-runewidth v0.0.16 
h1:E5ScNMtiwvlvB5paMFdw9p4kSQzbXFikJ5SQO6TULQc=
+github.com/mattn/go-runewidth v0.0.16/go.mod 
h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w=
 github.com/mergestat/timediff v0.0.3 
h1:ucCNh4/ZrTPjFZ081PccNbhx9spymCJkFxSzgVuPU+Y=
 github.com/mergestat/timediff v0.0.3/go.mod 
h1:yvMUaRu2oetc+9IbPLYBJviz6sA7xz8OXMDfhBl7YSI=
 github.com/microcosm-cc/bluemonday v1.0.26 
h1:xbqSvqzQMeEHCqMi64VAs4d8uy6Mequs3rQ0k/Khz58=
 github.com/microcosm-cc/bluemonday v1.0.26/go.mod 
h1:JyzOCs9gkyQyjs+6h10UEVSe02CGwkhd72Xdqh78TWs=
+github.com/microcosm-cc/bluemonday v1.0.27 
h1:MpEUotklkwCSLeH+Qdx1VJgNqLlpY2KXwXFM08ygZfk=
+github.com/microcosm-cc/bluemonday v1.0.27/go.mod 
h1:jFi9vgW+H7c3V0lb6nR74Ib/DIB5OBs92Dimizgw2cA=
 github.com/mitchellh/mapstructure v1.5.0 
h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY=
 github.com/mitchellh/mapstructure v1.5.0/go.mod 
h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo=
 github.com/muesli/ansi v0.0.0-20230316100256-276c6243b2f6 
h1:ZK8zHtRHOkbHy6Mmr5D264iyp3TiX5OmNcI5cIARiQI=
@@ -133,8 +138,6 @@
 github.com/muesli/termenv v0.15.2/go.mod 
h1:Epx+iuz8sNs7mNKhxzH4fWXGNpZwUaJKRS1noLXviQ8=
 github.com/olekukonko/tablewriter v0.0.5 
h1:P2Ga83D34wi1o9J6Wh1mRuqd4mF/x/lgBS7N7AbDhec=
 github.com/olekukonko/tablewriter v0.0.5/go.mod 
h1:hPp6KlRPjbx+hW8ykQs1w3UBbZlj6HuIJcUGPhkA7kY=
-github.com/pelletier/go-toml/v2 v2.2.0 
h1:QLgLl2yMN7N+ruc31VynXs1vhMZa7CeHHejIeBAsoHo=
-github.com/pelletier/go-toml/v2 v2.2.0/go.mod 
h1:1t835xjRzz80PqgE6HHgN2JOsmgYu/h4qDAS4n929Rs=
 github.com/pelletier/go-toml/v2 v2.2.2 
h1:aYUidT7k73Pcl9nb2gScu7NSrKCSHIDE89b3+6Wq+LM=
 github.com/pelletier/go-toml/v2 v2.2.2/go.mod 
h1:1t835xjRzz80PqgE6HHgN2JOsmgYu/h4qDAS4n929Rs=
 github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c 
h1:+mdjkGKdHQG3305AYmdv1U2eRNDiU2ErMBj1gwrq8eQ=
@@ -152,6 +155,8 @@
 github.com/russross/blackfriday/v2 v2.1.0/go.mod 
h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
 github.com/sagikazarmark/locafero v0.4.0 
h1:HApY1R9zGo4DBgr7dqsTH/JJxLTTsOt7u6keLGt6kNQ=
 github.com/sagikazarmark/locafero v0.4.0/go.mod 
h1:Pe1W6UlPYUk/+wc/6KFhbORCfqzgYEpgQ3O5fPuL3H4=
+github.com/sagikazarmark/locafero v0.6.0 
h1:ON7AQg37yzcRPU69mt7gwhFEBwxI6P9T4Qu3N51bwOk=
+github.com/sagikazarmark/locafero v0.6.0/go.mod 
h1:77OmuIc6VTraTXKXIs/uvUxKGUXjE1GbemJYHqdNjX0=
 github.com/sagikazarmark/slog-shim v0.1.0 
h1:diDBnUNK9N/354PgrxMywXnAwEr1QZcOr6gto+ugjYE=
 github.com/sagikazarmark/slog-shim v0.1.0/go.mod 
h1:SrcSrq8aKtyuqEI1uvTDTK1arOWRIczQRv+GVI1AkeQ=
 github.com/sahilm/fuzzy v0.1.1 h1:ceu5RHF8DGgoi+/dR5PsECjCDH1BE3Fnmpo7aVXOdRA=
@@ -162,6 +167,7 @@
 github.com/sergi/go-diff v1.0.0/go.mod 
h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo=
 github.com/sergi/go-diff v1.2.0 h1:XU+rvMAioB0UC3q1MFrIQy4Vo5/4VsRDQQXHsEya6xQ=
 github.com/sergi/go-diff v1.2.0/go.mod 
h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM=
+github.com/sergi/go-diff v1.3.1/go.mod 
h1:aMJSSKb2lpPvRNec0+w3fl7LP9IOFzdc9Pa4NFbPK1I=
 github.com/sourcegraph/conc v0.3.0 
h1:OQTbbt6P72L20UqAkXXuLOj79LfEanQ+YQFNpLA9ySo=
 github.com/sourcegraph/conc v0.3.0/go.mod 
h1:Sdozi7LEKbFPqYX2/J+iBAM6HpqSLTASQIKqDmF7Mt0=
 github.com/spf13/afero v1.11.0 h1:WJQKhtpdm3v2IzqG8VMqrr6Rf3UYpEF239Jy9wNepM8=
@@ -170,15 +176,18 @@
 github.com/spf13/cast v1.6.0/go.mod 
h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo=
 github.com/spf13/cobra v1.8.0 h1:7aJaZx1B85qltLMc546zn58BxxfZdR/W22ej9CFoEf0=
 github.com/spf13/cobra v1.8.0/go.mod 
h1:WXLWApfZ71AjXPya3WOlMsY9yMs7YeiHhFVlvLyhcho=
+github.com/spf13/cobra v1.8.1 h1:e5/vxKd/rZsfSJMUX1agtjeTDf+qv1/JdBF8gg5k9ZM=
+github.com/spf13/cobra v1.8.1/go.mod 
h1:wHxEcudfqmLYa8iTfL+OuZPbBZkmvliBWKIezN3kD9Y=
 github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA=
 github.com/spf13/pflag v1.0.5/go.mod 
h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
 github.com/spf13/viper v1.18.2 h1:LUXCnvUvSM6FXAsj6nnfc8Q2tp1dIgUfY9Kc8GsSOiQ=
 github.com/spf13/viper v1.18.2/go.mod 
h1:EKmWIqdnk5lOcmR72yw6hS+8OPYcwD0jteitLMVB+yk=
+github.com/spf13/viper v1.19.0 h1:RWq5SEjt8o25SROyN3z2OrDB9l7RPd3lwTWU8EcEdcI=
+github.com/spf13/viper v1.19.0/go.mod 
h1:GQUN9bilAbhU/jgc1bKs99f/suXKeUMct8Adx5+Ntkg=
 github.com/stretchr/objx v0.1.0/go.mod 
h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
 github.com/stretchr/objx v0.4.0/go.mod 
h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
 github.com/stretchr/objx v0.5.0/go.mod 
h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo=
 github.com/stretchr/objx v0.5.2/go.mod 
h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA=
-github.com/stretchr/testify v1.2.2/go.mod 
h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
 github.com/stretchr/testify v1.3.0/go.mod 
h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
 github.com/stretchr/testify v1.4.0/go.mod 
h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
 github.com/stretchr/testify v1.7.0/go.mod 
h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
@@ -194,12 +203,14 @@
 github.com/yuin/goldmark v1.3.7/go.mod 
h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
 github.com/yuin/goldmark v1.4.13/go.mod 
h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
 github.com/yuin/goldmark v1.6.0/go.mod 
h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
-github.com/yuin/goldmark v1.7.0 h1:EfOIvIMZIzHdB/R/zVrikYLPPwJlfMcNczJFMs1m6sA=
-github.com/yuin/goldmark v1.7.0/go.mod 
h1:uzxRWxtg69N339t3louHJ7+O03ezfj6PlliRlaOzY1E=
 github.com/yuin/goldmark v1.7.1 h1:3bajkSilaCbjdKVsKdZjZCLBNPL9pYzrCakKaf4U49U=
 github.com/yuin/goldmark v1.7.1/go.mod 
h1:uzxRWxtg69N339t3louHJ7+O03ezfj6PlliRlaOzY1E=
+github.com/yuin/goldmark v1.7.4 h1:BDXOHExt+A7gwPCJgPIIq7ENvceR7we7rOS9TNoLZeg=
+github.com/yuin/goldmark v1.7.4/go.mod 
h1:uzxRWxtg69N339t3louHJ7+O03ezfj6PlliRlaOzY1E=
 github.com/yuin/goldmark-emoji v1.0.2 
h1:c/RgTShNgHTtc6xdz2KKI74jJr6rWi7FPgnP9GAsO5s=
 github.com/yuin/goldmark-emoji v1.0.2/go.mod 
h1:RhP/RWpexdp+KHs7ghKnifRoIs/Bq4nDS7tRbCkOwKY=
+github.com/yuin/goldmark-emoji v1.0.3 
h1:aLRkLHOuBR2czCY4R8olwMjID+tENfhyFDMCRhbIQY4=
+github.com/yuin/goldmark-emoji v1.0.3/go.mod 
h1:tTkZEbwu5wkPmgTcitqddVxY9osFZiavD+r4AzQrh1U=
 go.elara.ws/go-lemmy v0.19.0 h1:FdPfiA+8yOa2IhrLdBp8jdYbnY6H55bfwnBbiGr0OHg=
 go.elara.ws/go-lemmy v0.19.0/go.mod 
h1:aZbF/4c1VA7qPXsP4Pth0ERu3HGZFPPl8bTY1ltBrcQ=
 go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto=
@@ -212,16 +223,17 @@
 golang.org/x/crypto v0.0.0-20191206172530-e9b2fee46413/go.mod 
h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
 golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod 
h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
 golang.org/x/crypto v0.16.0/go.mod 
h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4=
-golang.org/x/exp v0.0.0-20240325151524-a685a6edb6d8 
h1:aAcj0Da7eBAtrTp03QXWvm88pSyOt+UgdZw2BFZ+lEw=
-golang.org/x/exp v0.0.0-20240325151524-a685a6edb6d8/go.mod 
h1:CQ1k9gNrJ50XIzaKCRR2hssIjF07kZFEiieALBM/ARQ=
+golang.org/x/crypto v0.19.0/go.mod 
h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU=
+golang.org/x/crypto v0.22.0/go.mod 
h1:vr6Su+7cTlO45qkww3VDJlzDn0ctJvRgYbC2NvXHt+M=
+golang.org/x/crypto v0.23.0/go.mod 
h1:CKFgDieR+mRhux2Lsu27y0fO304Db0wZe70UKqHu0v8=
 golang.org/x/exp v0.0.0-20240506185415-9bf2ced13842 
h1:vr/HnozRka3pE4EsMEg1lgkXJkTFJCVUX+S/ZT6wYzM=
 golang.org/x/exp v0.0.0-20240506185415-9bf2ced13842/go.mod 
h1:XtvwrStGgqGPLc4cjQfWqZHG1YFdYs6swckp8vpsjnc=
+golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56 
h1:2dVuKD2vS7b0QIHQbpyTISPd0LeHDbnYEryqj5Q1ug8=
+golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56/go.mod 
h1:M4RDyNAINzryxdtnbRXRL/OHtkFuWGRjvuhBJpk2IlY=
 golang.org/x/image v0.0.0-20191009234506-e7c1f5e7dbb8/go.mod 
h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
 golang.org/x/image v0.0.0-20191206065243-da761ea9ff43/go.mod 
h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
-golang.org/x/image v0.15.0 h1:kOELfmgrmJlw4Cdb7g/QGuB3CvDrXbqEIww/pNtNBm8=
-golang.org/x/image v0.15.0/go.mod 
h1:HUYqC05R2ZcZ3ejNQsIHQDQiwWM4JBqmm6MKANTp4LE=
-golang.org/x/image v0.16.0 h1:9kloLAKhUufZhA12l5fwnx2NZW39/we1UhBesW433jw=
-golang.org/x/image v0.16.0/go.mod 
h1:ugSZItdV4nOxyqp56HmXwH0Ry0nBCpjnZdpDaIHdoPs=
+golang.org/x/image v0.18.0 h1:jGzIakQa/ZXI1I0Fxvaa9W7yP25TqT6cHIHn+6CqvSQ=
+golang.org/x/image v0.18.0/go.mod 
h1:4yyo5vMFQjVjUcVk4jEQcU9MGy/rulF5WvUILseCM2E=
 golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod 
h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=
 golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
 golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod 
h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
@@ -234,15 +246,15 @@
 golang.org/x/net v0.9.0/go.mod h1:d48xBJpPfHeWQsugry2m+kC02ZBRGRgulfHnEXEuWns=
 golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg=
 golang.org/x/net v0.19.0/go.mod h1:CfAk/cbD4CthTvqiEl8NpboMuiuOYsAr/7NOjZJtv1U=
-golang.org/x/net v0.23.0 h1:7EYJ93RZ9vYSZAIb2x3lnuvqO5zneoD6IvWjuhfxjTs=
-golang.org/x/net v0.23.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg=
+golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44=
+golang.org/x/net v0.24.0/go.mod h1:2Q7sJY5mzlzWjKtYUEXSlBWCdyaioyXzRB2RtU8KVE8=
 golang.org/x/net v0.25.0 h1:d/OCCoBEUq33pjydKrGQhw7IlUPI2Oylr+8qLx49kac=
 golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM=
+golang.org/x/net v0.27.0 h1:5K3Njcw06/l2y9vpGCSdcxWOYHOUk3dVNGDXN+FvAys=
+golang.org/x/net v0.27.0/go.mod h1:dDi0PyhWNoiUOrAS8uXv/vnScO4wnHQO4mj9fn/RytE=
 golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod 
h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod 
h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sync v0.6.0 h1:5BMeUDZ7vkXGfEr1x9B4bRcTH4lpkTkpdh0T/J+qjbQ=
-golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
 golang.org/x/sync v0.7.0 h1:YsImfSBoP9QPYL0xyKJPq0gcaJdG3rInoqxTWbfQu9M=
 golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
 golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod 
h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
@@ -259,30 +271,34 @@
 golang.org/x/sys v0.7.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
-golang.org/x/sys v0.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4=
-golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
+golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
+golang.org/x/sys v0.19.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
 golang.org/x/sys v0.20.0 h1:Od9JTbYCk261bKm4M/mw7AklTlFYIa0bIp9BgSm1S8Y=
 golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
+golang.org/x/sys v0.22.0 h1:RI27ohtqKCnwULzJLqkv897zojh5/DwS/ENaMzUOaWI=
+golang.org/x/sys v0.22.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
 golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod 
h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
 golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod 
h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
 golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k=
 golang.org/x/term v0.7.0/go.mod h1:P32HKFT3hSsZrRxla30E9HqToFYAQPCMs/zFMBUFqPY=
 golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo=
 golang.org/x/term v0.15.0/go.mod 
h1:BDl952bC7+uMoWR75FIrCDx79TPU9oHkTZ9yRbYOrX0=
-golang.org/x/term v0.18.0 h1:FcHjZXDMxI8mM3nwhX9HlKop4C0YQvCVCdwYl2wOtE8=
-golang.org/x/term v0.18.0/go.mod 
h1:ILwASektA3OnRv7amZ1xhE/KTR+u50pbXfZ03+6Nx58=
+golang.org/x/term v0.17.0/go.mod 
h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk=
+golang.org/x/term v0.19.0/go.mod 
h1:2CuTdWZ7KHSQwUzKva0cbMg6q2DMI3Mmxp+gKJbskEk=
 golang.org/x/term v0.20.0 h1:VnkxpohqXaOBYJtBmEppKUG6mXpi+4O6purfc2+sMhw=
 golang.org/x/term v0.20.0/go.mod 
h1:8UkIAJTvZgivsXaD6/pH6U9ecQzZ45awqEOzuCvwpFY=
+golang.org/x/term v0.22.0 h1:BbsgPEJULsl2fV/AT3v15Mjva5yXKQDyKf+TbDz7QJk=
+golang.org/x/term v0.22.0/go.mod 
h1:F3qCibpT5AMpCRfhfT53vVJwhLtIVHhB9XDjfFvnMI4=
 golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
 golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
 golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
 golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
 golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
 golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8=
-golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ=
 golang.org/x/text v0.14.0/go.mod 
h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
-golang.org/x/text v0.15.0 h1:h1V/4gjBv8v9cjcR6+AR5+/cIYK5N/WAgiv4xlsEtAk=
 golang.org/x/text v0.15.0/go.mod 
h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
+golang.org/x/text v0.16.0 h1:a94ExnEXNtEwYLGJSIUxnWoxoRz/ZcCsV63ROupILh4=
+golang.org/x/text v0.16.0/go.mod 
h1:GhwF1Be+LQoKShO3cGOHzqOgRrGaYc9AvblQOmPVHnI=
 golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod 
h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
 golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod 
h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
 golang.org/x/tools v0.1.12/go.mod 
h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/neonmodem-1.0.5+git0.b2e8808/models/reply/reply.go 
new/neonmodem-1.0.6+git0.63db4bd/models/reply/reply.go
--- old/neonmodem-1.0.5+git0.b2e8808/models/reply/reply.go      2024-05-24 
19:49:04.000000000 +0200
+++ new/neonmodem-1.0.6+git0.63db4bd/models/reply/reply.go      2024-08-01 
21:08:39.000000000 +0200
@@ -22,4 +22,6 @@
        Replies []Reply
 
        SysIDX int
+
+       MetaPath []string
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/neonmodem-1.0.5+git0.b2e8808/system/discourse/api/categories.go 
new/neonmodem-1.0.6+git0.63db4bd/system/discourse/api/categories.go
--- old/neonmodem-1.0.5+git0.b2e8808/system/discourse/api/categories.go 
2024-05-24 19:49:04.000000000 +0200
+++ new/neonmodem-1.0.6+git0.63db4bd/system/discourse/api/categories.go 
2024-08-01 21:08:39.000000000 +0200
@@ -3,6 +3,8 @@
 import (
        "context"
        "net/http"
+
+       "github.com/guregu/null"
 )
 
 const CategoriesBaseURL = "/categories"
@@ -25,21 +27,21 @@
        TopicCount                   int             `json:"topic_count"`
        PostCount                    int             `json:"post_count"`
        Position                     int             `json:"position"`
-       Description                  string          
`json:"description",omitempty`
-       DescriptionText              string          
`json:"description_text",omitempty`
-       DescriptionExcerpt           string          
`json:"description_excerpt",omitempty`
-       TopicUrl                     string          
`json:"topic_url",omitempty`
+       Description                  null.String     
`json:"description",omitempty`
+       DescriptionText              null.String     
`json:"description_text",omitempty`
+       DescriptionExcerpt           null.String     
`json:"description_excerpt",omitempty`
+       TopicUrl                     null.String     
`json:"topic_url",omitempty`
        ReadRestricted               bool            `json:"read_restricted"`
-       Permission                   int             
`json:"permission",omitempty`
+       Permission                   null.Int        
`json:"permission",omitempty`
        NotificationLevel            int             `json:"notification_level"`
        CanEdit                      bool            `json:"can_edit"`
-       TopicTemplate                string          
`json:"topic_template",omitempty`
-       HasChildren                  bool            
`json:"has_children",omitempty`
-       SortOrder                    string          
`json:"sort_order",omitempty`
-       SortAscending                bool            
`json:"sort_ascending",omitempty`
+       TopicTemplate                null.String     
`json:"topic_template",omitempty`
+       HasChildren                  null.Bool       
`json:"has_children",omitempty`
+       SortOrder                    null.String     
`json:"sort_order",omitempty`
+       SortAscending                null.Bool       
`json:"sort_ascending",omitempty`
        ShowSubcategoryList          bool            
`json:"show_subcategory_list"`
        NumFeaturedTopics            int             
`json:"num_featured_topics"`
-       DefaultView                  string          
`json:"default_view",omitempty`
+       DefaultView                  null.String     
`json:"default_view",omitempty`
        SubcategoryListStyle         string          
`json:"subcategory_list_style"`
        DefaultTopPeriod             string          `json:"default_top_period"`
        DefaultListFilter            string          
`json:"default_list_filter"`
@@ -53,9 +55,9 @@
        IsUncategorized              bool            `json:"is_uncategorized"`
        SubcategoryIDs               []int           `json:"subcategory_ids"`
        SubcategoryList              []CategoryModel `json:"subcategory_list"`
-       UploadedLogo                 string          
`json:"uploaded_logo",omitempty`
-       UploadedLogoDark             string          
`json:"uploaded_logo_dark",omitempty`
-       UploadedBackground           string          
`json:"uploaded_background",omitempty`
+       UploadedLogo                 null.String     
`json:"uploaded_logo",omitempty`
+       UploadedLogoDark             null.String     
`json:"uploaded_logo_dark",omitempty`
+       UploadedBackground           null.String     
`json:"uploaded_background",omitempty`
 }
 
 type CategoriesService interface {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/neonmodem-1.0.5+git0.b2e8808/system/discourse/discourse.go 
new/neonmodem-1.0.6+git0.63db4bd/system/discourse/discourse.go
--- old/neonmodem-1.0.5+git0.b2e8808/system/discourse/discourse.go      
2024-05-24 19:49:04.000000000 +0200
+++ new/neonmodem-1.0.6+git0.63db4bd/system/discourse/discourse.go      
2024-08-01 21:08:39.000000000 +0200
@@ -152,7 +152,7 @@
                        ID:   strconv.Itoa((*cats)[i].ID),
                        Name: name,
 
-                       Info: (*cats)[i].Description,
+                       Info: (*cats)[i].Description.String,
 
                        SysIDX: sys.ID,
                }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/neonmodem-1.0.5+git0.b2e8808/system/lemmy/lemmy.go 
new/neonmodem-1.0.6+git0.63db4bd/system/lemmy/lemmy.go
--- old/neonmodem-1.0.5+git0.b2e8808/system/lemmy/lemmy.go      2024-05-24 
19:49:04.000000000 +0200
+++ new/neonmodem-1.0.6+git0.63db4bd/system/lemmy/lemmy.go      2024-08-01 
21:08:39.000000000 +0200
@@ -6,6 +6,7 @@
        "net/http"
        "net/url"
        "strconv"
+       "strings"
        "time"
 
        "github.com/mrusme/neonmodem/models/author"
@@ -177,11 +178,31 @@
 }
 
 func (sys *System) ListPosts(forumID string) ([]post.Post, error) {
-       resp, err := sys.client.Posts(context.Background(), lemmy.GetPosts{
+       var err error
+       var catID int = -1
+
+       if forumID != "" {
+               catID, err = strconv.Atoi(forumID)
+               if err != nil {
+                       return []post.Post{}, err
+               }
+       }
+
+       lgp := lemmy.GetPosts{
                Type:  lemmy.NewOptional(lemmy.ListingTypeSubscribed),
                Sort:  lemmy.NewOptional(lemmy.SortTypeNew),
                Limit: lemmy.NewOptional(int64(50)),
-       })
+       }
+       if catID > -1 {
+               lgp = lemmy.GetPosts{
+                       CommunityID: lemmy.NewOptional(int64(catID)),
+                       Type:        
lemmy.NewOptional(lemmy.ListingTypeSubscribed),
+                       Sort:        lemmy.NewOptional(lemmy.SortTypeNew),
+                       Limit:       lemmy.NewOptional(int64(50)),
+               }
+       }
+
+       resp, err := sys.client.Posts(context.Background(), lgp)
 
        if err != nil {
                return []post.Post{}, err
@@ -252,17 +273,20 @@
        // }
 
        resp, err := sys.client.Comments(context.Background(), 
lemmy.GetComments{
-               PostID: lemmy.NewOptional[int64](pid),
+               PostID:   lemmy.NewOptional[int64](pid),
+               MaxDepth: lemmy.NewOptional[int64](8),
+               Sort:     
lemmy.NewOptional[lemmy.CommentSortType](lemmy.CommentSortTypeHot),
+               Type:     
lemmy.NewOptional[lemmy.ListingType](lemmy.ListingTypeAll),
        })
        if err != nil {
                return err
        }
 
-       p.Replies = []reply.Reply{}
+       replies := []reply.Reply{}
        for _, i := range resp.Comments {
                createdAt := i.Comment.Published
 
-               p.Replies = append(p.Replies, reply.Reply{
+               replies = append(replies, reply.Reply{
                        ID: strconv.FormatInt(i.Comment.ID, 10),
 
                        InReplyTo: p.ID,
@@ -276,12 +300,40 @@
                                Name: i.Creator.Name,
                        },
 
+                       Replies: []reply.Reply{},
+
                        SysIDX: sys.ID,
+
+                       MetaPath: strings.Split(i.Comment.Path, "."),
                })
        }
+
+       findRepliesFor(&replies, &p.Replies, 0)
+
        return nil
 }
 
+func findRepliesFor(prv *[]reply.Reply, nxt *[]reply.Reply, lvl int) {
+       if lvl >= 8 {
+               return
+       }
+
+       for i := 0; i < len(*prv); i++ {
+               if len((*prv)[i].MetaPath) == (lvl + 2) {
+                       *nxt = append(*nxt, (*prv)[i])
+               }
+       }
+       nextLayer := []reply.Reply{}
+       findRepliesFor(prv, &nextLayer, lvl+1)
+       for j := 0; j < len(nextLayer); j++ {
+               for k := 0; k < len(*nxt); k++ {
+                       if (*nxt)[k].ID == nextLayer[j].MetaPath[(lvl+1)] {
+                               (*nxt)[k].Replies = append((*nxt)[k].Replies, 
nextLayer[j])
+                       }
+               }
+       }
+}
+
 func (sys *System) CreatePost(p *post.Post) error {
        communityID, err := strconv.ParseInt(p.Forum.ID, 10, 64)
        if err != nil {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/neonmodem-1.0.5+git0.b2e8808/ui/ui.go 
new/neonmodem-1.0.6+git0.63db4bd/ui/ui.go
--- old/neonmodem-1.0.5+git0.b2e8808/ui/ui.go   2024-05-24 19:49:04.000000000 
+0200
+++ new/neonmodem-1.0.6+git0.63db4bd/ui/ui.go   2024-08-01 21:08:39.000000000 
+0200
@@ -43,8 +43,8 @@
                key.WithHelp("C-t", "Forum selector"),
        ),
        Close: key.NewBinding(
-               key.WithKeys("q", "esc"),
-               key.WithHelp("q/esc", "close"),
+               key.WithKeys("esc"),
+               key.WithHelp("esc", "close"),
        ),
 }
 
@@ -101,7 +101,8 @@
                case key.Matches(msg, m.keymap.Close):
                        closed, ccmds := m.wm.CloseFocused()
                        if !closed {
-                               return m, tea.Quit
+                               break
+                               // return m, tea.Quit
                        }
                        return m, tea.Batch(ccmds...)
                case key.Matches(msg, m.keymap.SystemSelect):
@@ -242,6 +243,8 @@
                        }
 
                case cmd.WinClose:
+                       m.ctx.Logger.Debugf("got cmd.WinClose, target: %s", 
msg.Target)
+
                        switch msg.Target {
 
                        case postcreate.WIN_ID:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/neonmodem-1.0.5+git0.b2e8808/ui/views/posts/posts.go 
new/neonmodem-1.0.6+git0.63db4bd/ui/views/posts/posts.go
--- old/neonmodem-1.0.5+git0.b2e8808/ui/views/posts/posts.go    2024-05-24 
19:49:04.000000000 +0200
+++ new/neonmodem-1.0.6+git0.63db4bd/ui/views/posts/posts.go    2024-08-01 
21:08:39.000000000 +0200
@@ -24,6 +24,7 @@
        Refresh key.Binding
        NewPost key.Binding
        Select  key.Binding
+       Quit    key.Binding
 }
 
 var DefaultKeyMap = KeyMap{
@@ -39,6 +40,10 @@
                key.WithKeys("r", "enter"),
                key.WithHelp("r/enter", "read"),
        ),
+       Quit: key.NewBinding(
+               key.WithKeys("esc"),
+               key.WithHelp("esc", "quit"),
+       ),
 }
 
 type Model struct {
@@ -80,6 +85,7 @@
        m.list = list.New(m.items, listDelegate, 0, 0)
        m.list.SetShowTitle(false)
        m.list.SetShowStatusBar(false)
+       m.list.DisableQuitKeybindings()
 
        m.a, _ = aggregator.New(m.ctx)
 
@@ -92,6 +98,11 @@
        switch msg := msg.(type) {
        case tea.KeyMsg:
                switch {
+               case key.Matches(msg, m.keymap.Quit):
+                       if m.list.FilterState() == list.Filtering {
+                               break
+                       }
+                       return m, tea.Quit
 
                case key.Matches(msg, m.keymap.Refresh):
                        m.ctx.Loading = true
@@ -109,6 +120,10 @@
                        }
 
                case key.Matches(msg, m.keymap.NewPost):
+                       if m.list.FilterState() == list.Filtering {
+                               break
+                       }
+
                        i, ok := m.list.SelectedItem().(post.Post)
                        if ok {
                                caps := 
(*m.ctx.Systems[i.SysIDX]).GetCapabilities()

++++++ neonmodem.obsinfo ++++++
--- /var/tmp/diff_new_pack.r76Vdb/_old  2024-08-16 12:24:25.580968029 +0200
+++ /var/tmp/diff_new_pack.r76Vdb/_new  2024-08-16 12:24:25.584968195 +0200
@@ -1,5 +1,5 @@
 name: neonmodem
-version: 1.0.5+git0.b2e8808
-mtime: 1716572944
-commit: b2e8808b71810141542c1a64b069661f072c248f
+version: 1.0.6+git0.63db4bd
+mtime: 1722539319
+commit: 63db4bd31729c0876c8313f5d8765245680affe2
 

++++++ vendor.tar.gz ++++++
++++ 6305 lines of diff (skipped)

Reply via email to