mirror of
https://github.com/irssi/irssi.git
synced 2025-04-25 12:31:09 -05:00
commit
5c15937554
@ -6,7 +6,7 @@
|
|||||||
#define IRSSI_GLOBAL_CONFIG "irssi.conf" /* config file name in /etc/ */
|
#define IRSSI_GLOBAL_CONFIG "irssi.conf" /* config file name in /etc/ */
|
||||||
#define IRSSI_HOME_CONFIG "config" /* config file name in ~/.irssi/ */
|
#define IRSSI_HOME_CONFIG "config" /* config file name in ~/.irssi/ */
|
||||||
|
|
||||||
#define IRSSI_ABI_VERSION 53
|
#define IRSSI_ABI_VERSION 54
|
||||||
|
|
||||||
#define DEFAULT_SERVER_ADD_PORT 6667
|
#define DEFAULT_SERVER_ADD_PORT 6667
|
||||||
#define DEFAULT_SERVER_ADD_TLS_PORT 6697
|
#define DEFAULT_SERVER_ADD_TLS_PORT 6697
|
||||||
|
@ -35,6 +35,7 @@
|
|||||||
#include <irssi/src/fe-common/core/printtext.h>
|
#include <irssi/src/fe-common/core/printtext.h>
|
||||||
#include <irssi/src/fe-common/core/fe-channels.h>
|
#include <irssi/src/fe-common/core/fe-channels.h>
|
||||||
#include <irssi/src/fe-common/irc/fe-irc-server.h>
|
#include <irssi/src/fe-common/irc/fe-irc-server.h>
|
||||||
|
#include <irssi/src/fe-common/irc/fe-irc-channels.h>
|
||||||
|
|
||||||
static void print_event_received(IRC_SERVER_REC *server, const char *data,
|
static void print_event_received(IRC_SERVER_REC *server, const char *data,
|
||||||
const char *nick, int target_param);
|
const char *nick, int target_param);
|
||||||
@ -138,38 +139,6 @@ static void event_end_of_who(IRC_SERVER_REC *server, const char *data)
|
|||||||
g_free(params);
|
g_free(params);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Get time elapsed since an event */
|
|
||||||
static char *time_ago(time_t seconds)
|
|
||||||
{
|
|
||||||
static char ret[128];
|
|
||||||
long unsigned years, weeks, days, hours, minutes;
|
|
||||||
|
|
||||||
seconds = time(NULL) - seconds;
|
|
||||||
|
|
||||||
years = seconds / (86400 * 365);
|
|
||||||
seconds %= (86400 * 365);
|
|
||||||
weeks = seconds / 604800;
|
|
||||||
days = (seconds / 86400) % 7;
|
|
||||||
hours = (seconds / 3600) % 24;
|
|
||||||
minutes = (seconds / 60) % 60;
|
|
||||||
seconds %= 60;
|
|
||||||
|
|
||||||
if (years)
|
|
||||||
snprintf(ret, sizeof(ret), "%luy %luw %lud", years, weeks, days);
|
|
||||||
else if (weeks)
|
|
||||||
snprintf(ret, sizeof(ret), "%luw %lud %luh", weeks, days, hours);
|
|
||||||
else if (days)
|
|
||||||
snprintf(ret, sizeof(ret), "%lud %luh %lum", days, hours, minutes);
|
|
||||||
else if (hours)
|
|
||||||
snprintf(ret, sizeof(ret), "%luh %lum", hours, minutes);
|
|
||||||
else if (minutes)
|
|
||||||
snprintf(ret, sizeof(ret), "%lum %lus", minutes, (long unsigned) seconds);
|
|
||||||
else
|
|
||||||
snprintf(ret, sizeof(ret), "%lus", (long unsigned) seconds);
|
|
||||||
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void event_ban_list(IRC_SERVER_REC *server, const char *data)
|
static void event_ban_list(IRC_SERVER_REC *server, const char *data)
|
||||||
{
|
{
|
||||||
IRC_CHANNEL_REC *chanrec;
|
IRC_CHANNEL_REC *chanrec;
|
||||||
|
@ -73,6 +73,38 @@ const char *fe_channel_skip_prefix(IRC_SERVER_REC *server, const char *target)
|
|||||||
return target;
|
return target;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Get time elapsed since an event */
|
||||||
|
char *time_ago(time_t seconds)
|
||||||
|
{
|
||||||
|
static char ret[128];
|
||||||
|
long unsigned years, weeks, days, hours, minutes;
|
||||||
|
|
||||||
|
seconds = time(NULL) - seconds;
|
||||||
|
|
||||||
|
years = seconds / (86400 * 365);
|
||||||
|
seconds %= (86400 * 365);
|
||||||
|
weeks = seconds / 604800;
|
||||||
|
days = (seconds / 86400) % 7;
|
||||||
|
hours = (seconds / 3600) % 24;
|
||||||
|
minutes = (seconds / 60) % 60;
|
||||||
|
seconds %= 60;
|
||||||
|
|
||||||
|
if (years)
|
||||||
|
snprintf(ret, sizeof(ret), "%luy %luw %lud", years, weeks, days);
|
||||||
|
else if (weeks)
|
||||||
|
snprintf(ret, sizeof(ret), "%luw %lud %luh", weeks, days, hours);
|
||||||
|
else if (days)
|
||||||
|
snprintf(ret, sizeof(ret), "%lud %luh %lum", days, hours, minutes);
|
||||||
|
else if (hours)
|
||||||
|
snprintf(ret, sizeof(ret), "%luh %lum", hours, minutes);
|
||||||
|
else if (minutes)
|
||||||
|
snprintf(ret, sizeof(ret), "%lum %lus", minutes, (long unsigned) seconds);
|
||||||
|
else
|
||||||
|
snprintf(ret, sizeof(ret), "%lus", (long unsigned) seconds);
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
static void sig_channel_rejoin(SERVER_REC *server, REJOIN_REC *rec)
|
static void sig_channel_rejoin(SERVER_REC *server, REJOIN_REC *rec)
|
||||||
{
|
{
|
||||||
g_return_if_fail(rec != NULL);
|
g_return_if_fail(rec != NULL);
|
||||||
|
@ -3,6 +3,7 @@
|
|||||||
|
|
||||||
int fe_channel_is_opchannel(IRC_SERVER_REC *server, const char *target);
|
int fe_channel_is_opchannel(IRC_SERVER_REC *server, const char *target);
|
||||||
const char *fe_channel_skip_prefix(IRC_SERVER_REC *server, const char *target);
|
const char *fe_channel_skip_prefix(IRC_SERVER_REC *server, const char *target);
|
||||||
|
char *time_ago(time_t seconds);
|
||||||
|
|
||||||
void fe_irc_channels_init(void);
|
void fe_irc_channels_init(void);
|
||||||
void fe_irc_channels_deinit(void);
|
void fe_irc_channels_deinit(void);
|
||||||
|
@ -39,6 +39,7 @@
|
|||||||
#include <irssi/src/fe-common/core/window-items.h>
|
#include <irssi/src/fe-common/core/window-items.h>
|
||||||
#include <irssi/src/fe-common/core/printtext.h>
|
#include <irssi/src/fe-common/core/printtext.h>
|
||||||
#include <irssi/src/fe-common/core/keyboard.h>
|
#include <irssi/src/fe-common/core/keyboard.h>
|
||||||
|
#include <irssi/src/fe-common/irc/fe-irc-channels.h>
|
||||||
|
|
||||||
/* SYNTAX: ME <message> */
|
/* SYNTAX: ME <message> */
|
||||||
static void cmd_me(const char *data, IRC_SERVER_REC *server, WI_ITEM_REC *item)
|
static void cmd_me(const char *data, IRC_SERVER_REC *server, WI_ITEM_REC *item)
|
||||||
@ -224,15 +225,16 @@ static void bans_show_channel(IRC_CHANNEL_REC *channel, IRC_SERVER_REC *server)
|
|||||||
/* show bans.. */
|
/* show bans.. */
|
||||||
counter = 1;
|
counter = 1;
|
||||||
for (tmp = channel->banlist; tmp != NULL; tmp = tmp->next) {
|
for (tmp = channel->banlist; tmp != NULL; tmp = tmp->next) {
|
||||||
|
char *timestr, *ago;
|
||||||
BAN_REC *rec = tmp->data;
|
BAN_REC *rec = tmp->data;
|
||||||
|
timestr = my_asctime(rec->time);
|
||||||
|
ago = time_ago(rec->time);
|
||||||
|
|
||||||
printformat(server, channel->visible_name, MSGLEVEL_CRAP,
|
printformat(server, channel->visible_name, MSGLEVEL_CRAP,
|
||||||
(rec->setby == NULL || *rec->setby == '\0') ?
|
(rec->setby == NULL || *rec->setby == '\0') ? IRCTXT_BANLIST :
|
||||||
IRCTXT_BANLIST : IRCTXT_BANLIST_LONG,
|
IRCTXT_BANLIST_LONG,
|
||||||
counter, channel->visible_name,
|
counter, channel->visible_name, rec->ban, rec->setby, ago, timestr);
|
||||||
rec->ban, rec->setby,
|
counter++;
|
||||||
(int) (time(NULL)-rec->time));
|
|
||||||
counter++;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user