Pārlūkot izejas kodu

Minor changes

master
Emil pirms 9 mēnešiem
vecāks
revīzija
5b7f599a76
Šim parakstam datu bāzē netika atrasta zināma atslēga GPG atslēgas ID: 5432DB986FDBCF8A
2 mainītis faili ar 43 papildinājumiem un 25 dzēšanām
  1. +1
    -1
      src/api.c
  2. +42
    -24
      src/irc.c

+ 1
- 1
src/api.c Parādīt failu

@@ -49,7 +49,7 @@ api_rope(void)
DECL char *
remind(char * who)
{
char * r;
char * r = NULL;
char * title;
char * desc = NULL;
/* char * repo; */


+ 42
- 24
src/irc.c Parādīt failu

@@ -42,10 +42,15 @@ IRC_GREEN "!reroll " IRC_STOP " : Rerolls assignment\n"
/* IRC_GREEN "!repo <link>" IRC_STOP " : Sets project repository link\n" */
/* IRC_GREEN "!raw <sql> " IRC_STOP " : Execute raw SQL\n" */
/* IRC_GREEN "!dump " IRC_STOP " : List all possible projects\n" */
IRC_GREEN "!request " IRC_STOP " : Request personal project\n"
IRC_GREEN "!remind " IRC_STOP " : Prints your assignment\n";
/* IRC_GREEN "!request " IRC_STOP " : Request personal project\n" */
IRC_GREEN "!remind " IRC_STOP " : Prints your assignment\n"
IRC_GREEN "!poll " IRC_STOP " : Start the democratic process (N message ...])\n"
IRC_GREEN "!vote " IRC_STOP " : Casts a vote (y/n [message ...])\n"
IRC_GREEN "!stop " IRC_STOP " : Stop the current polling\n"
IRC_BLUE "!magic " IRC_STOP " : A random value at or below 100 or (N)\n";

DECL void parse_command(char const * cmd);
DECL size_t parse_secondary_username(char const * msg);

DECL char *
get_username(const char * origin)
@@ -136,17 +141,19 @@ event_channel(irc_session_t * lsession,
(void) lsession;
(void) event;
(void) origin;
/* (void) channel; */
(void) message;
(void) count;
/* Logs the message */
printf("%s\n", message);
/* parses the command */
if (*message == PREFIX_COMMAND_CHAR)
{ current_username = get_username(origin); }
if (!current_username ||
message[1] == '\0')
{ return; }
/* Logs the message */
printf("<%s> %s\n", current_username, message);
/* Detects any re specified names */
/* message += parse_secondary_username(message); */
/* Parse any commands */
parse_command(message+1);
free(current_username);
current_username = NULL;
@@ -178,10 +185,8 @@ has_arg(char const * cmd)
DECL void
parse_command(char const * cmd)
{
size_t i = 0;
static int vote_count;
static int yes, no;
static int vote_on = 0;
size_t i = 0;
char * msgswp = NULL;
/* size_t len = strlen(cmd); */
printf("Handling '%s'\n", cmd);
@@ -213,12 +218,16 @@ parse_command(char const * cmd)
}
else if (strcmp(cmd, "stop") == 0)
{
vote_on = vote_count = 0;
ircmsg(creds.channel, "POLL STOP");
if (vote_count)
{
ircmsg(creds.channel, "poll: stop");
vote_count = 0;
}
}
}
else /* HAS ARGUMENTS */
{
static int yes, no;
char const * const arg = cmd + i;
/* fprintf(stderr, "argoff: %p; i: %ld; arg: %sEOA\n", cmd + i + 1, i, arg); */
#ifndef NO_VULN_COMMANDS
@@ -244,35 +253,44 @@ parse_command(char const * cmd)
else if (strncmp(cmd, "poll", 4) == 0)
{
yes = no = 0;
vote_on = 1;
vote_count = atoi(arg);
vote_count = atoi(arg) + 1;
if (!vote_count)
{ ircmsg(creds.channel, "!poll NUMBER_OF_VOTES What your voting on ..."); }
else
{ ircmsg(creds.channel, "poll: start"); }
{ ircmsg(creds.channel, "poll start"); }
}
else if (strncmp(cmd, "vote", 4) == 0)
{
fprintf(stderr, "y%d n%d vote_count %d\n", yes, no, vote_count);
if (vote_on && vote_count)
/* fprintf(stderr, "y%d n%d vote_count %d\n", yes, no, vote_count); */
if (vote_count)
{
switch (*arg)
{
case 'Y': case 'y': ERRMSG("YYY"); ++yes; break;
case 'N': case 'n': ERRMSG("NNN"); ++no; break;
default: ircmsg(creds.channel, "Unknown vote meaning: '%c', use y/n", *arg); goto stop;
case 'Y': case 'y': ++yes; break;
case 'N': case 'n': ++no; break;
default: ircmsg(creds.channel, "Unknown: '%c', use y/n", *arg); goto stop;
}
if (--vote_count)
{ ircmsg(creds.channel, "Votes remaining: %d", vote_count); }
{ ircmsg(creds.channel, "Votes remaining: %d", vote_count - 1); }
else
{
ircmsg(creds.channel, "poll results: %s",
MAX(yes,no) ? "PASSED" : "REJECTED");
vote_on = 0;
}
{ ircmsg(creds.channel, "poll results: %s", MAX(yes,no) ? "PASSED" : "REJECTED"); }
}
}
}
stop:
free(msgswp);
}

/* mutates current_username and returns positional offset to the first character that isn't related to the uname */
DECL size_t
parse_secondary_username(char const * msg)
{
int ret = 0;
#define SECONDARY_NAMES_BOT "cnile"
if (strcmp(current_username,SECONDARY_NAMES_BOT) == 0)
if (*msg == '<')
{ while (msg[++ret] != '\0' ||
msg[ret] != '>'); }
fprintf(stderr, "msg[ret] = %c", msg[ret]);
return ret;
}