Added /nospam command.

This commit is contained in:
Håvard Pettersson 2014-10-04 23:51:17 +02:00
parent 1d64f5ac50
commit a30abf4ec4

View File

@ -575,6 +575,54 @@ twc_cmd_name(void *data, struct t_gui_buffer *buffer,
return WEECHAT_RC_OK;
}
/**
* Command /nospam callback.
*/
int
twc_cmd_nospam(void *data, struct t_gui_buffer *buffer,
int argc, char **argv, char **argv_eol)
{
if (argc > 2)
return WEECHAT_RC_ERROR;
struct t_twc_profile *profile = twc_profile_search_buffer(buffer);
TWC_CHECK_PROFILE(profile);
TWC_CHECK_PROFILE_LOADED(profile);
uint32_t new_nospam;
if (argc == 2)
{
char *endptr;
unsigned long value = strtoul(argv[1], &endptr, 16);
if (endptr == argv[1] || value > UINT32_MAX)
{
weechat_printf(profile->buffer,
"%snospam must be a hexadecimal value between "
"0x00000000 and 0xFFFFFFFF",
weechat_prefix("error"));
return WEECHAT_RC_OK;
}
// reverse the value bytes so it's displayed as entered in the Tox ID
new_nospam = twc_uint32_reverse_bytes(value);
}
else
{
new_nospam = random();
}
uint32_t old_nospam = tox_get_nospam(profile->tox);
tox_set_nospam(profile->tox, new_nospam);
weechat_printf(profile->buffer,
"%snew nospam has been set; this changes your Tox ID! To "
"revert, run \"/nospam %x\"",
weechat_prefix("network"), twc_uint32_reverse_bytes(old_nospam));
return WEECHAT_RC_OK;
}
/**
* Command /status callback.
*/
@ -846,6 +894,15 @@ twc_commands_init()
"name: your new name",
NULL, twc_cmd_name, NULL);
weechat_hook_command("nospam",
"change nospam value",
"[<hex value>]",
"hex value: new nospam value; when omitted, a random "
"new value is used\n\n"
"Warning: changing your nospam value will alter your "
"Tox ID!",
NULL, twc_cmd_nospam, NULL);
weechat_hook_command("status",
"change your Tox status",
"online|busy|away",