shithub: hell

Download patch

ref: 6953f303b3c111e7cc180f421fd00b99dd781114
parent: 4e42a4e082666f00dfb2ce7b2f6f4cd28f559330
author: penny <penny@limitedideas.org>
date: Fri Oct 17 14:30:45 EDT 2025

add pure anon dispatching

--- a/dispatch.go
+++ b/dispatch.go
@@ -25,6 +25,24 @@
 	err     error
 }
 
+type AnonJob struct {
+	jobfunc func()
+	wg      sync.WaitGroup
+}
+
+func (job *AnonJob) Do() {
+	job.jobfunc()
+	job.wg.Done()
+}
+
+func (job *AnonJob) Init() {
+	job.wg.Add(1)
+}
+
+func (job *AnonJob) Wait() {
+	job.wg.Wait()
+}
+
 type GenericJob struct {
 	jobfunc func(job *GenericJob)
 	result  string
@@ -149,6 +167,15 @@
 
 func (hc *Hellclient) dispatchFunc(enclosure func(*GenericJob)) Job {
 	noticeJob := &GenericJob{
+		jobfunc: enclosure,
+	}
+	noticeJob.Init()
+	hc.jobdispatch <- noticeJob
+	return noticeJob
+}
+
+func (hc *Hellclient) dispatchAnon(enclosure func()) Job {
+	noticeJob := &AnonJob{
 		jobfunc: enclosure,
 	}
 	noticeJob.Init()
--- a/main.go
+++ b/main.go
@@ -297,11 +297,10 @@
 				}
 				hc.PrintObjectProperties(translated)
 			case "like":
-				likefunc := func(job *GenericJob) {
+				likefunc := func() {
 					_, err = client.Favourite(context.Background(), postItem.ID)
 				}
-				likeJob := hc.dispatchFunc(likefunc)
-				likeJob.Wait()
+				hc.dispatchAnon(likefunc).Wait()
 				if err != nil {
 					printMastodonErr(err)
 				} else {
@@ -310,11 +309,8 @@
 				}
 				return
 			case "mark":
-				markfunc := func(job *GenericJob) {
-					_, err = client.Bookmark(context.Background(), postItem.ID)
-				}
-				markJob := hc.dispatchFunc(markfunc)
-				markJob.Wait()
+				markfunc := func() {_, err = client.Bookmark(context.Background(), postItem.ID)}
+				hc.dispatchAnon(markfunc).Wait()
 				if err != nil {
 					printMastodonErr(err)
 				} else {
@@ -324,11 +320,10 @@
 				return
 			case "unmark":
 				var postCopy *mastodon.Status
-				unmarkfunc := func(job *GenericJob) {
+				unmarkfunc := func() {
 					postCopy, err = client.GetStatus(context.Background(), postItem.ID)
 				}
-				unmarkJob := hc.dispatchFunc(unmarkfunc)
-				unmarkJob.Wait()
+				hc.dispatchAnon(unmarkfunc).Wait()
 				if err != nil {
 					fmt.Printf("Error removing bookmark: %s\n", err)
 					return
@@ -337,7 +332,7 @@
 					fmt.Printf("Post not bookmarked.\n")
 					return
 				}
-				hc.dispatchFunc(func(job *GenericJob) {_, err = client.Unbookmark(context.Background(), postItem.ID)}).Wait()
+				hc.dispatchAnon(func() {_, err = client.Unbookmark(context.Background(), postItem.ID)}).Wait()
 				if err != nil {
 					printMastodonErr(err)
 				} else {
--