まったりするmatayu

ツイートにゴミがついた感じのブログ

MM経由でnews-ieに投稿するplugin(実現可能か調べる)

(この記事は作業ログで,間違いがある可能性が高い)

図や文章に起こした方が良いと言うアドバイスをもらったからとりあえず大まかな設計図を書いてみた.markdownに変換するところまで.

f:id:mattari_matayu:20200623161412p:plain
設計図

入力フォームから受け取った記事の情報をgolangでhugoのmarkdownに変換するながれ.

まずHooksのMessageHasBeenPostedで特定の文字列をユーザーが送信したら入力フォームを開く形にする.

もしくはslashコマンドで入力フォームを開けるようにする. (スラッシュコマンドはhttpリクエストを送るみたいだが,送らなくても使えるだろうか)

入力フォームは,MMでチャンネルヘッダを編集する時に出てくる次の写真のようなものを作れば良いと思うから,この部分のMMのソースコードを読んで真似すれば作れそう?

f:id:mattari_matayu:20200623140150p:plain
チャンネルヘッダを編集する入力フォーム

この部分のソースコード

mattermost-webapp/edit_channel_header_modal.jsx at master · mattermost/mattermost-webapp · GitHub

既存のpluginで入力フォーム的なのを開いたりしてるやつないかなーと思って調べたら.次のようなpluginがあった.

https://mattermost.gitbook.io/plugin-confluence/config-notifications/subscribe-command

よって,入力フォームを作って開くことはできそう.

受け取った記事の情報をhugo markdownに変換するのはgolangで次のような感じで書けばできる気がする.

package main

import "os"

// Article include article infos.
type Article struct {
    Title   string
    Content string
}

func main() {
    a := Article{
        Title:   "hello",
        Content: "hello. This is a test.",
    }

    output := "+++\n" + a.Title + "\n+++\n\n" + a.Content
        // outputを出力
}

これから

入力フォームを開くことができれば作れそうだから,入力フォームを作ってみる. (Plugin君,君は一体どこまでできるのかね.)