#include #include #include #include #include #include #include "commands.h" #include "api.h" #include "meinfo.h" #include "roomsinfo.h" #include "rooms.h" WEECHAT_PLUGIN_NAME("chatwork"); WEECHAT_PLUGIN_DESCRIPTION("Chatwork対応"); WEECHAT_PLUGIN_AUTHOR("洩矢諏訪子 "); WEECHAT_PLUGIN_VERSION("0.1"); WEECHAT_PLUGIN_LICENSE("GPL3"); int chatwork_command_cb (const void *pointer, void *data, struct t_gui_buffer *buffer, int argc, char **argv, char **argv_eol) { const char *token = weechat_config_string(chatwork_config_token); if (!token || strlen(token) == 0) { weechat_printf(buffer, "トークンを見つけられませんでした。\n"); return WEECHAT_RC_ERROR; } if (argc < 2 || (argc == 2 && strcmp(argv[1], "help") == 0)) { weechat_printf(buffer, "使い方: /chatwork me - ユーザー情報を表示\n"); weechat_printf(buffer, " /chatwork rooms - 部屋を表示\n"); weechat_printf(buffer, " /chatwork join 部屋番号 - 部屋に参加\n"); weechat_printf(buffer, " /chatwork upload パス - ファイルをアップロードする\n"); return WEECHAT_RC_OK; } if (strcmp(argv[1], "me") == 0) { getMeInfo(buffer, token); } else if (strcmp(argv[1], "rooms") == 0) { getRoomsInfo(buffer, token); } else if (strcmp(argv[1], "join") == 0) { if (argc == 3) { getRoom(buffer, token, atoi(argv[2])); } else { weechat_printf(buffer, "部屋番号をご入力下さい。\n"); } } else if (strcmp(argv[1], "upload") == 0) { if (argc == 3) { getRoom(buffer, token, atoi(argv[2])); } else { weechat_printf(buffer, "パスをご入力下さい。\n"); } } else { weechat_printf(buffer, "不明なコマンド:%s\n", argv[1]); weechat_printf(buffer, "すべてのコマンドを表示するには、/chatwork helpを実行して下さい。\n"); } return WEECHAT_RC_OK; } int weechat_plugin_init (struct t_weechat_plugin *plugin, int argc, char *argv[]) { weechat_plugin = plugin; // コンフィグファイル chatwork_config_file = weechat_config_new("weechat-chatwork", NULL, NULL, NULL); if (!chatwork_config_file) { return WEECHAT_RC_ERROR; } struct t_config_section *section; section = weechat_config_new_section(chatwork_config_file, "general", 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL); if (!section) { weechat_config_free(chatwork_config_file); return WEECHAT_RC_ERROR; } chatwork_config_token = weechat_config_new_option(chatwork_config_file, section, "token", "string", "Chatwork API token.", NULL, 0, 0, "", NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL); if (weechat_config_read(chatwork_config_file) != WEECHAT_CONFIG_READ_OK) { weechat_printf(NULL, "%s コンフィグファイルを読み込みに失敗。", weechat_prefix("error")); return WEECHAT_RC_ERROR; } // /chatworkコマンドを登録 weechat_hook_command("chatwork", "Chatwork コマンド", "[arguments]", "コマンドの説明", NULL, &chatwork_command_cb, NULL, NULL); return WEECHAT_RC_OK; } int weechat_plugin_end (struct t_weechat_plugin *plugin) { // TODO weechat_config_free(chatwork_config_file); return WEECHAT_RC_OK; }