/* mod-helpserv.c - Support Helper assistant service
* Copyright 2002-2003 srvx Development Team
*
- * This file is part of srvx.
+ * This file is part of x3.
*
- * srvx is free software; you can redistribute it and/or modify
+ * x3 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 2 of the License, or
* (at your option) any later version.
{ "HSMSG_REQ_PERSIST_PART", "Everything you tell me until you are helped (or you leave %s) will be recorded. If you part %s, your request will be lost." },
{ "HSMSG_REQ_PERSIST_HANDLE", "Everything you tell me until you are helped will be recorded." },
{ "HSMSG_REQ_MAXLEN", "Sorry, but your request has reached the maximum number of lines. Please wait to be assigned to a helper and continue explaining your request to them." },
+ { "HSMSQ_REQ_TEXT_ADDED", "Message from $b%s:$b %s" },
{ "HSMSG_REQ_FOUND_ANOTHER", "Request ID#%lu has been closed. $S detected that you also have request ID#%lu open. If you send $S a message, it will be associated with that request." },
/* Messages that are inserted into request text */
if (user->handle_info)
helpserv_notify(req->helper, "HSMSG_PAGE_UPD_REQUEST_AUTHED", req->id, user->nick, user->handle_info->handle, timestr, updatestr);
else
- helpserv_notify(req->helper, "HSMSG_PAGE_UPD_REQUESTNOT_AUTHED", req->id, user->nick, timestr, updatestr);
+ helpserv_notify(req->helper, "HSMSG_PAGE_UPD_REQUEST_NOT_AUTHED", req->id, user->nick, timestr, updatestr);
else
if (user->handle_info)
helpserv_page(PGSRC_STATUS, "HSMSG_PAGE_UPD_REQUEST_AUTHED", req->id, user->nick, user->handle_info->handle, timestr, updatestr);
req->updated = now;
if (!hs->req_maxlen || req->text->used < hs->req_maxlen)
+ {
string_list_append(req->text, strdup(text));
+
+ struct userNode *likely_helper;
+ /* Find somebody likely to be the helper */
+ if (!req->helper)
+ likely_helper = NULL;
+ else if ((likely_helper = req->helper->handle->users) && !likely_helper->next_authed) {
+ /* only one user it could be :> */
+ } else for (likely_helper = req->helper->handle->users; likely_helper; likely_helper = likely_helper->next_authed)
+ if (GetUserMode(hs->helpchan, likely_helper))
+ break;
+
+ if(likely_helper)
+ send_target_message(1, likely_helper->nick, hs->helpserv, "HSMSQ_REQ_TEXT_ADDED", user->nick, text);
+ }
else
helpserv_msguser(user, "HSMSG_REQ_MAXLEN");
}
struct helpfile_table tbl;
struct helpserv_user *hs_user;
dict_iterator_t it;
- enum helpserv_level last_level;
+/* enum helpserv_level last_level; Zoot style */
unsigned int ii;
users.used = 0;
}
qsort(users.list, users.used, sizeof(users.list[0]), helpserv_user_comp);
switch (user->handle_info->userlist_style) {
- case HI_STYLE_DEF:
+ default:
+ case HI_STYLE_NORMAL:
tbl.length = users.used + 1;
tbl.width = 3;
tbl.flags = TABLE_NO_FREE;
}
table_send((from_opserv ? opserv : hs->helpserv), user->nick, 0, NULL, tbl);
break;
+ /*
case HI_STYLE_ZOOT: default:
last_level = HlNone;
tbl.length = 0;
helpserv_notice(user, "HSMSG_USERLIST_ZOOT_LVL", hs->helpserv->nick, helpserv_level_names[last_level]);
table_send((from_opserv ? opserv : hs->helpserv), user->nick, 0, NULL, tbl);
}
+ */
}
return 1;
}
/* Logging */
if (shutting_down && (req->hs->persist_types[PERSIST_T_REQUEST] != PERSIST_CLOSE || !req->handle)) {
- helpserv_log_request(req, "srvx shutdown");
+ helpserv_log_request(req, "X3 shutdown");
}
/* Clean up from the unhandled queue */
REQUIRE_PARMS(2);
if (is_valid_nick(argv[1])) {
- char *newnick = argv[1], oldnick[NICKLEN], reason[MAXLEN];
+ char *newnick = argv[1], oldnick[NICKLEN];
strcpy(oldnick, hs->helpserv->nick);
helpserv_notice(user, "HSMSG_RENAMED", oldnick, newnick);
- snprintf(reason, MAXLEN, "HelpServ bot %s (in %s) renamed to %s by %s.", oldnick, hs->helpchan->name, newnick, user->nick);
- global_message(MESSAGE_RECIPIENT_OPERS, reason);
+ global_message_args(MESSAGE_RECIPIENT_OPERS, "HSMSG_BOT_RENAMED", oldnick,
+ hs->helpchan->name, newnick, user->nick);
return 1;
} else if (IsChannelName(argv[1])) {
}
helpserv_botlist_append(botlist, hs);
- snprintf(reason, MAXLEN, "HelpServ %s (%s) moved to %s by %s.", hs->helpserv->nick, oldchan, newchan, user->nick);
- global_message(MESSAGE_RECIPIENT_OPERS, reason);
+ global_message_args(MESSAGE_RECIPIENT_OPERS, "HSMSG_BOT_MOVED", hs->helpserv->nick,
+ oldchan, newchan, user->nick);
return 1;
} else {
}
static HELPSERV_FUNC(cmd_register) {
- char *nick, *helpchan, reason[MAXLEN];
+ char *nick, *helpchan;
struct handle_info *handle;
REQUIRE_PARMS(4);
helpserv_notice(user, "HSMSG_REG_SUCCESS", handle->handle, nick);
- snprintf(reason, MAXLEN, "HelpServ %s (%s) registered to %s by %s.", nick, hs->helpchan->name, handle->handle, user->nick);
/* Not sent to helpers, since they can't register HelpServ */
- global_message(MESSAGE_RECIPIENT_OPERS, reason);
+ global_message_args(MESSAGE_RECIPIENT_OPERS, "HSMSG_BOT_REGISTERED", nick,
+ hs->helpchan->name, handle->handle, user->nick);
return 1;
}
snprintf(reason, sizeof(reason), quit_fmt, actor);
DelUser(bot->helpserv, NULL, 1, reason);
dict_remove(helpserv_bots_dict, botname);
- snprintf(reason, sizeof(reason), global_fmt, botname, channame, actor);
- global_message(MESSAGE_RECIPIENT_OPERS, reason);
+ global_message_args(MESSAGE_RECIPIENT_OPERS, global_fmt, botname, channame, actor);
}
static HELPSERV_FUNC(cmd_unregister) {
log_audit(HS_LOG, LOG_COMMAND, user, hs->helpserv, hs->helpchan->name, 0, "unregister CONFIRM");
}
- helpserv_unregister(hs, "Unregistered by %s", "HelpServ %s (%s) unregistered by %s.", user->nick);
+ helpserv_unregister(hs, "Unregistered by %s", "HSMSG_BOT_UNREGISTERED", user->nick);
return from_opserv;
}
next = iter_next(it);
if ((unsigned int)(now - bot->last_active) < helpserv_conf.expire_age)
continue;
- helpserv_unregister(bot, "Registration expired due to inactivity", "HelpServ %s (%s) expired at request of %s.", user->nick);
+ helpserv_unregister(bot, "Registration expired due to inactivity", "HSMSG_BOT_EXPIRED", user->nick);
count++;
}
helpserv_notice(user, "HSMSG_EXPIRATION_DONE", count);