From 39315483a8e59deaba9a92e20fab0a2a7835873f Mon Sep 17 00:00:00 2001 From: Michael Vetter Date: Fri, 10 Jul 2020 17:48:34 +0200 Subject: Remove `/tiny` command boothj5 gave his okay too. Fix https://github.com/profanity-im/profanity/issues/1370 --- src/command/cmd_defs.c | 17 -------- src/command/cmd_funcs.c | 53 ------------------------- src/command/cmd_funcs.h | 1 - src/tools/tinyurl.c | 100 ------------------------------------------------ src/tools/tinyurl.h | 44 --------------------- 5 files changed, 215 deletions(-) delete mode 100644 src/tools/tinyurl.c delete mode 100644 src/tools/tinyurl.h (limited to 'src') diff --git a/src/command/cmd_defs.c b/src/command/cmd_defs.c index 787de7cd..d78e6578 100644 --- a/src/command/cmd_defs.c +++ b/src/command/cmd_defs.c @@ -64,7 +64,6 @@ #include "plugins/plugins.h" #include "tools/autocomplete.h" #include "tools/parser.h" -#include "tools/tinyurl.h" #include "ui/ui.h" #include "ui/window_list.h" #include "xmpp/xmpp.h" @@ -979,22 +978,6 @@ static struct cmd_t command_defs[] = { "/sub request", "/sub sent") }, - { "/tiny", - parse_args, 1, 1, NULL, - CMD_NOSUBFUNCS - CMD_MAINFUNC(cmd_tiny) - CMD_TAGS( - CMD_TAG_CHAT, - CMD_TAG_GROUPCHAT) - CMD_SYN( - "/tiny ") - CMD_DESC( - "Send url as tinyurl in current chat.") - CMD_ARGS( - { "", "The url to make tiny." }) - CMD_EXAMPLES( - "Example: /tiny https://profanity-im.github.io/") }, - { "/who", parse_args, 0, 2, NULL, CMD_NOSUBFUNCS diff --git a/src/command/cmd_funcs.c b/src/command/cmd_funcs.c index ffc448db..96be6802 100644 --- a/src/command/cmd_funcs.c +++ b/src/command/cmd_funcs.c @@ -69,7 +69,6 @@ #include "tools/http_upload.h" #include "tools/autocomplete.h" #include "tools/parser.h" -#include "tools/tinyurl.h" #include "tools/bookmark_ignore.h" #include "plugins/plugins.h" #include "ui/ui.h" @@ -5032,58 +5031,6 @@ cmd_alias(ProfWin* window, const char* const command, gchar** args) } } -gboolean -cmd_tiny(ProfWin* window, const char* const command, gchar** args) -{ - char* url = args[0]; - - if (window->type != WIN_CHAT && window->type != WIN_MUC && window->type != WIN_PRIVATE) { - cons_show("/tiny can only be used in chat windows"); - return TRUE; - } - - if (!tinyurl_valid(url)) { - win_println(window, THEME_ERROR, "-", "/tiny, badly formed URL: %s", url); - return TRUE; - } - - char* tiny = tinyurl_get(url); - if (!tiny) { - win_println(window, THEME_ERROR, "-", "Couldn't create tinyurl."); - return TRUE; - } - - switch (window->type) { - case WIN_CHAT: - { - ProfChatWin* chatwin = (ProfChatWin*)window; - assert(chatwin->memcheck == PROFCHATWIN_MEMCHECK); - cl_ev_send_msg(chatwin, tiny, NULL); - break; - } - case WIN_PRIVATE: - { - ProfPrivateWin* privatewin = (ProfPrivateWin*)window; - assert(privatewin->memcheck == PROFPRIVATEWIN_MEMCHECK); - cl_ev_send_priv_msg(privatewin, tiny, NULL); - break; - } - case WIN_MUC: - { - ProfMucWin* mucwin = (ProfMucWin*)window; - assert(mucwin->memcheck == PROFMUCWIN_MEMCHECK); - cl_ev_send_muc_msg(mucwin, tiny, NULL); - break; - } - default: - break; - } - - free(tiny); - - return TRUE; -} - gboolean cmd_clear(ProfWin* window, const char* const command, gchar** args) { diff --git a/src/command/cmd_funcs.h b/src/command/cmd_funcs.h index 30059fc2..92c81364 100644 --- a/src/command/cmd_funcs.h +++ b/src/command/cmd_funcs.h @@ -128,7 +128,6 @@ gboolean cmd_status_get(ProfWin* window, const char* const command, gchar** args gboolean cmd_status_set(ProfWin* window, const char* const command, gchar** args); gboolean cmd_sub(ProfWin* window, const char* const command, gchar** args); gboolean cmd_theme(ProfWin* window, const char* const command, gchar** args); -gboolean cmd_tiny(ProfWin* window, const char* const command, gchar** args); gboolean cmd_wintitle(ProfWin* window, const char* const command, gchar** args); gboolean cmd_vercheck(ProfWin* window, const char* const command, gchar** args); gboolean cmd_who(ProfWin* window, const char* const command, gchar** args); diff --git a/src/tools/tinyurl.c b/src/tools/tinyurl.c deleted file mode 100644 index 41ff43ec..00000000 --- a/src/tools/tinyurl.c +++ /dev/null @@ -1,100 +0,0 @@ -/* - * tinyurl.c - * vim: expandtab:ts=4:sts=4:sw=4 - * - * Copyright (C) 2012 - 2019 James Booth - * - * This file is part of Profanity. - * - * Profanity is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * Profanity is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Profanity. If not, see . - * - * In addition, as a special exception, the copyright holders give permission to - * link the code of portions of this program with the OpenSSL library under - * certain conditions as described in each individual source file, and - * distribute linked combinations including the two. - * - * You must obey the GNU General Public License in all respects for all of the - * code used other than OpenSSL. If you modify file(s) with this exception, you - * may extend this exception to your version of the file(s), but you are not - * obligated to do so. If you do not wish to do so, delete this exception - * statement from your version. If you delete this exception statement from all - * source files in the program, then also delete it here. - * - */ - -#include -#include -#include - -#include -#include -#include - -struct curl_data_t -{ - char* buffer; - size_t size; -}; - -static size_t _data_callback(void* ptr, size_t size, size_t nmemb, void* data); - -gboolean -tinyurl_valid(char* url) -{ - return (g_str_has_prefix(url, "http://") || g_str_has_prefix(url, "https://")); -} - -char* -tinyurl_get(char* url) -{ - GString* full_url = g_string_new("http://tinyurl.com/api-create.php?url="); - g_string_append(full_url, url); - - CURL* handle = curl_easy_init(); - struct curl_data_t output; - output.buffer = NULL; - output.size = 0; - - curl_easy_setopt(handle, CURLOPT_URL, full_url->str); - curl_easy_setopt(handle, CURLOPT_WRITEFUNCTION, _data_callback); - curl_easy_setopt(handle, CURLOPT_WRITEDATA, (void*)&output); - - curl_easy_perform(handle); - curl_easy_cleanup(handle); - - g_string_free(full_url, TRUE); - - if (output.buffer) { - output.buffer[output.size++] = '\0'; - return output.buffer; - } else { - return NULL; - } -} - -static size_t -_data_callback(void* ptr, size_t size, size_t nmemb, void* data) -{ - size_t realsize = size * nmemb; - struct curl_data_t* mem = (struct curl_data_t*)data; - mem->buffer = realloc(mem->buffer, mem->size + realsize + 1); - - if (mem->buffer) { - memcpy(&(mem->buffer[mem->size]), ptr, realsize); - mem->size += realsize; - mem->buffer[mem->size] = 0; - } - - return realsize; -} diff --git a/src/tools/tinyurl.h b/src/tools/tinyurl.h deleted file mode 100644 index 67222cd0..00000000 --- a/src/tools/tinyurl.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * tinyurl.h - * vim: expandtab:ts=4:sts=4:sw=4 - * - * Copyright (C) 2012 - 2019 James Booth - * - * This file is part of Profanity. - * - * Profanity is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * Profanity is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Profanity. If not, see . - * - * In addition, as a special exception, the copyright holders give permission to - * link the code of portions of this program with the OpenSSL library under - * certain conditions as described in each individual source file, and - * distribute linked combinations including the two. - * - * You must obey the GNU General Public License in all respects for all of the - * code used other than OpenSSL. If you modify file(s) with this exception, you - * may extend this exception to your version of the file(s), but you are not - * obligated to do so. If you do not wish to do so, delete this exception - * statement from your version. If you delete this exception statement from all - * source files in the program, then also delete it here. - * - */ - -#ifndef TOOLS_TINYURL_H -#define TOOLS_TINYURL_H - -#include - -gboolean tinyurl_valid(char* url); -char* tinyurl_get(char* url); - -#endif -- cgit 1.4.1-2-gfad0