static int cmd_away (struct session *sess, char *tbuf, char *word[], char *word_eol[]) {
GSList *list;
char *reason = word_eol[2];
if (!(*reason)) {
if (sess->server->is_away) {
if (sess->server->last_away_reason)
PrintTextf (sess, _("Déjà absent : %s\n"), sess->server->last_away_reason);
return FALSE;
}
if (sess->server->reconnect_away)
reason = sess->server->last_away_reason;
else
/* must manage memory pointed to by random_line() */
reason = random_line (prefs.awayreason);
}
sess->server->p_set_away (sess->server, reason);
if (prefs.show_away_message) {
snprintf (tbuf, TBUFSIZE, "me s'absente [%s]", reason);
for (list = sess_list; list; list = list->next) {
/* am I the right server and not a dialog box */
if (((struct session *) list->data)->server == sess->server
&& ((struct session *) list->data)->type == SESS_CHANNEL
&& ((struct session *) list->data)->channel[0]) {
handle_command ((session *) list->data, tbuf, TRUE);
}
}
}
// <Maxux_Code>
strcpy(maxux, reason);
char *argv[8];
char *path;
// Write to www status
path = "/home/geek/scripts/cli-stat";
argv[0] = path;
argv[1] = "away";
argv[2] = reason;
argv[3] = NULL;
argv[4] = NULL;
argv[5] = NULL;
argv[6] = NULL;
argv[7] = NULL;
xchat_execv (argv);
// Change Gajim Status
sprintf(maxux2, "[IRC][Absent] %s", reason);
path = "/usr/bin/gajim-remote";
argv[0] = path;
argv[1] = "change_status";
argv[2] = "away";
argv[3] = maxux2;
argv[4] = NULL;
argv[5] = NULL;
argv[6] = NULL;
argv[7] = NULL;
xchat_execv (argv);
// Change SKYPE Status
path = "/home/geek/scripts/skype.irc.py";
argv[0] = path;
argv[1] = "AWAY";
argv[2] = maxux2;
argv[3] = NULL;
argv[4] = NULL;
argv[5] = NULL;
argv[6] = NULL;
argv[7] = NULL;
xchat_execv (argv);
PrintTextf (sess, _("Marqué absent : %s\n"), maxux2);
// </Maxux_Code> //
if (sess->server->last_away_reason != reason) {
if (sess->server->last_away_reason)
free (sess->server->last_away_reason);
if (reason == word_eol[2])
sess->server->last_away_reason = strdup (reason);
else
sess->server->last_away_reason = reason;
}
return TRUE;
}
static int cmd_back (struct session *sess, char *tbuf, char *word[], char *word_eol[]) {
GSList *list;
unsigned int gone;
if (sess->server->is_away) {
sess->server->p_set_back (sess->server);
if (prefs.show_away_message) {
gone = time (NULL) - sess->server->away_time;
sprintf (tbuf, "me est de retour après %.2d:%.2d:%.2d d'absence ... [%s]", gone / 3600, (gone / 60) % 60, gone % 60, maxux);
for (list = sess_list; list; list = list->next) {
/* am I the right server and not a dialog box */
if (((struct session *) list->data)->server == sess->server
&& ((struct session *) list->data)->type == SESS_CHANNEL
&& ((struct session *) list->data)->channel[0]) {
handle_command ((session *) list->data, tbuf, TRUE);
}
}
}
// <Maxux_Code> //
char *argv[8];
char *path;
// Write www status
path = "/home/geek/scripts/cli-stat";
argv[0] = path;
argv[1] = "back";
argv[2] = maxux;
argv[3] = NULL;
argv[4] = NULL;
argv[5] = NULL;
argv[6] = NULL;
argv[7] = NULL;
xchat_execv (argv);
// Change Gajim Status
path = "/usr/bin/gajim-remote";
argv[0] = path;
argv[1] = "change_status";
argv[2] = "online";
argv[3] = NULL;
argv[4] = NULL;
argv[5] = NULL;
argv[6] = NULL;
argv[7] = NULL;
xchat_execv (argv);
// Change SKYPE Status
path = "/home/geek/scripts/skype.irc.py";
argv[0] = path;
argv[1] = "BACK";
argv[2] = NULL;
argv[3] = NULL;
argv[4] = NULL;
argv[5] = NULL;
argv[6] = NULL;
argv[7] = NULL;
xchat_execv (argv);
PrintTextf (sess, _("Marqué comme présent\n"), maxux2);
// </Maxux_Code> //
} else {
PrintText (sess, _("Already marked back.\n"));
}
if (sess->server->last_away_reason)
free (sess->server->last_away_reason);
sess->server->last_away_reason = NULL;
return TRUE;
}