MCPcopy
hub / github.com/geekjourneyx/md2wechat-skill / runCreateImagePost

Function runCreateImagePost

cmd/md2wechat/create_image_post.go:74–156  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

72}
73
74func runCreateImagePost() (any, error) {
75 req := &publish.ImagePostInput{
76 Title: imagePostTitle,
77 Content: imagePostContent,
78 OpenComment: imagePostOpenComment,
79 FansOnly: imagePostFansOnly,
80 }
81
82 if imagePostImages != "" {
83 for _, img := range strings.Split(imagePostImages, ",") {
84 img = strings.TrimSpace(img)
85 if img != "" {
86 req.Images = append(req.Images, img)
87 }
88 }
89 }
90
91 if imagePostFromMD != "" {
92 req.FromMarkdown = imagePostFromMD
93 }
94
95 if imagePostContent == "" && !isTerminalFn() {
96 scanner := bufio.NewScanner(os.Stdin)
97 var lines []string
98 for scanner.Scan() {
99 lines = append(lines, scanner.Text())
100 }
101 if len(lines) > 0 {
102 req.Content = strings.Join(lines, "\n")
103 }
104 }
105
106 if req.Title == "" {
107 return nil, newCLIError(codeImagePostInvalid, "--title is required")
108 }
109
110 if len(req.Images) == 0 && req.FromMarkdown == "" {
111 return nil, newCLIError(codeImagePostInvalid, "--images or --from-markdown is required")
112 }
113
114 if err := resolveExplicitWeChatAccountIfProvided(); err != nil {
115 return nil, err
116 }
117
118 svc := newImagePostService()
119
120 if imagePostDryRun {
121 preview, err := svc.PreviewImagePost(req)
122 if err != nil {
123 return nil, wrapCLIError(codeImagePostPreviewFailed, err, err.Error())
124 }
125
126 if imagePostOutput != "" {
127 data, _ := json.MarshalIndent(preview, "", " ")
128 if err := os.WriteFile(imagePostOutput, data, 0644); err != nil {
129 return nil, wrapCLIError(codeImagePostPreviewFailed, err, err.Error())
130 }
131 }

Calls 7

newCLIErrorFunction · 0.85
wrapCLIErrorFunction · 0.85
prepareWeChatSideEffectFunction · 0.85
PreviewImagePostMethod · 0.65
CreateImagePostMethod · 0.65
ErrorMethod · 0.45