int img_pixel(img *p, int i, int j, float *c) { int d = 0; if (0 <= i && i < p->h && 0 <= j && j < p->w) { switch (p->c) { case 4: d |= getchan(p, i, j, 3, c + 3); case 3: d |= getchan(p, i, j, 2, c + 2); case 2: d |= getchan(p, i, j, 1, c + 1); case 1: d |= getchan(p, i, j, 0, c + 0); } } return d; }
unsigned int cmd_ban(callbackp *callbacki) { CHANNEL *chan; RAW *newraw; json *jlist; USERS *victim; if ((chan = getchan(callbacki->param[2], callbacki->g_ape)) == NULL) { send_error(callbacki->call_user, "UNKNOWN_CHANNEL", "103", callbacki->g_ape); } else if (!isonchannel(callbacki->call_user, chan)) { send_error(callbacki->call_user, "NOT_IN_CHANNEL", "104", callbacki->g_ape); } else if (getuchan(callbacki->call_user, chan)->level < 3) { send_error(callbacki->call_user, "CANT_BAN", "107", callbacki->g_ape); } else { victim = seek_user(callbacki->param[3], chan->name, callbacki->g_ape); if (victim == NULL) { send_error(callbacki->call_user, "UNKNOWN_USER", "102", callbacki->g_ape); } else if (victim->flags & FLG_NOKICK) { send_error(callbacki->call_user, "USER_PROTECTED", "106", callbacki->g_ape); // Bad boy :-) jlist = NULL; set_json("banner", NULL, &jlist); json_attach(jlist, get_json_object_user(callbacki->call_user), JSON_OBJECT); set_json("channel", NULL, &jlist); json_attach(jlist, get_json_object_channel(chan), JSON_OBJECT); newraw = forge_raw("TRY_BAN", jlist); post_raw(newraw, victim, callbacki->g_ape); } else if (strlen(callbacki->param[4]) > 255 || atoi(callbacki->param[5]) > 44640) { // 31 days max send_error(callbacki->call_user, "REASON_OR_TIME_TOO_LONG", "107", callbacki->g_ape); } else { ban(chan, callbacki->call_user, victim->ip, callbacki->param[4], atoi(callbacki->param[5]), callbacki->g_ape); } } return (FOR_NOTHING); }
unsigned int cmd_setlevel(callbackp *callbacki) { USERS *recver; if ((recver = seek_user(callbacki->param[3], callbacki->param[2], callbacki->g_ape)) == NULL) { send_error(callbacki->call_user, "UNKNOWN_USER", "102", callbacki->g_ape); } else { setlevel(callbacki->call_user, recver, getchan(callbacki->param[2], callbacki->g_ape), atoi(callbacki->param[4]), callbacki->g_ape); } return (FOR_NOTHING); }
unsigned int cmd_left(callbackp *callbacki) { CHANNEL *chan; if ((chan = getchan(callbacki->param[2], callbacki->g_ape)) == NULL) { send_error(callbacki->call_user, "UNKNOWN_CHANNEL", "103", callbacki->g_ape); } else if (!isonchannel(callbacki->call_user, chan)) { send_error(callbacki->call_user, "NOT_IN_CHANNEL", "104", callbacki->g_ape); } else { left(callbacki->call_user, chan, callbacki->g_ape); } return (FOR_NOTHING); }
static unsigned int cmd_control(callbackp *callbacki) { CHANNEL *jchan; if (strcmp(callbacki->param[1], READ_CONF("password")) != 0) { SENDH(callbacki->fdclient, "ERR BAD_PASSWORD", callbacki->g_ape); } else if ((jchan = getchan(callbacki->param[2], callbacki->g_ape)) == NULL) { SENDH(callbacki->fdclient, "ERR NOT_A_CHANNEL", callbacki->g_ape); } else { if (strcasecmp(callbacki->param[3], "POSTMSG") == 0) { send_msg_channel(jchan, callbacki->param[5], callbacki->param[4], callbacki->g_ape); SENDH(callbacki->fdclient, "OK POSTED", callbacki->g_ape); } } return (FOR_NOTHING); }
unsigned int cmd_join(callbackp *callbacki) { CHANNEL *jchan; RAW *newraw; json *jlist; BANNED *blist; if ((jchan = getchan(callbacki->param[2], callbacki->g_ape)) == NULL) { jchan = mkchan(callbacki->param[2], "Default%20Topic", callbacki->g_ape); if (jchan == NULL) { send_error(callbacki->call_user, "CANT_JOIN_CHANNEL", "202", callbacki->g_ape); } else { join(callbacki->call_user, jchan, callbacki->g_ape); } } else if (isonchannel(callbacki->call_user, jchan)) { send_error(callbacki->call_user, "ALREADY_ON_CHANNEL", "100", callbacki->g_ape); } else { blist = getban(jchan, callbacki->call_user->ip); if (blist != NULL) { jlist = NULL; set_json("reason", blist->reason, &jlist); set_json("error", "YOU_ARE_BANNED", &jlist); /* TODO: Add Until */ newraw = forge_raw(RAW_ERR, jlist); post_raw(newraw, callbacki->call_user, callbacki->g_ape); } else { join(callbacki->call_user, jchan, callbacki->g_ape); } } return (FOR_NOTHING); }
void getstatement(void) /* get next statement */ { EPNODE *ep; char *qname; VARDEF *vdef; if (nextc == ';') { /* empty statement */ scan(); return; } if (esupport&E_OUTCHAN && nextc == '$') { /* channel assignment */ ep = getchan(); addchan(ep); } else { /* ordinary definition */ ep = getdefn(); qname = qualname(dname(ep), 0); if (esupport&E_REDEFW && (vdef = varlookup(qname)) != NULL) { if (vdef->def != NULL && epcmp(ep, vdef->def)) { wputs(qname); if (vdef->def->type == ':') wputs(": redefined constant expression\n"); else wputs(": redefined\n"); } else if (ep->v.kid->type == FUNC && vdef->lib != NULL) { wputs(qname); wputs(": definition hides library function\n"); } } if (ep->type == ':') dremove(qname); else dclear(qname); dpush(qname, ep); } if (nextc != EOF) { if (nextc != ';') syntax("';' expected"); scan(); } }
bool SourceUtil::UpdateChannelsFromListings(uint sourceid, QString inputtype, bool wait) { if (wait) { QString cmd = GetAppBinDir() + "mythfilldatabase"; QStringList args; args.append("--only-update-channels"); if (sourceid) { args.append(QString("--sourceid")); args.append(QString::number(sourceid)); } if (!inputtype.isEmpty()) { args.append(QString("--cardtype")); args.append(inputtype); } MythSystemLegacy getchan(cmd, args, kMSRunShell | kMSAutoCleanup ); getchan.Run(); getchan.Wait(); } else { QString cmd = GetAppBinDir() + "mythfilldatabase --only-update-channels"; if (sourceid) cmd += QString(" --sourceid %1").arg(sourceid); if (!inputtype.isEmpty()) cmd += QString(" --cardtype %1").arg(inputtype); cmd += logPropagateArgs; myth_system(cmd); } return true; }
unsigned int cmd_kick(callbackp *callbacki) { CHANNEL *chan; RAW *newraw; json *jlist; USERS *victim; if ((chan = getchan(callbacki->param[2], callbacki->g_ape)) == NULL) { send_error(callbacki->call_user, "UNKNOWN_CHANNEL", "103", callbacki->g_ape); } else if (!isonchannel(callbacki->call_user, chan)) { send_error(callbacki->call_user, "NOT_IN_CHANNEL", "104", callbacki->g_ape); } else if (getuchan(callbacki->call_user, chan)->level < 3) { send_error(callbacki->call_user, "CANT_KICK", "105", callbacki->g_ape); } else { victim = seek_user(callbacki->param[3], chan->name, callbacki->g_ape); if (victim == NULL) { send_error(callbacki->call_user, "UNKNOWN_USER", "102", callbacki->g_ape); } else if (victim->flags & FLG_NOKICK) { send_error(callbacki->call_user, "USER_PROTECTED", "106", callbacki->g_ape); // haha ;-) jlist = NULL; set_json("kicker", NULL, &jlist); json_attach(jlist, get_json_object_user(callbacki->call_user), JSON_OBJECT); set_json("channel", NULL, &jlist); json_attach(jlist, get_json_object_channel(chan), JSON_OBJECT); newraw = forge_raw("TRY_KICK", jlist); post_raw(newraw, victim, callbacki->g_ape); } else { jlist = NULL; set_json("kicker", NULL, &jlist); json_attach(jlist, get_json_object_user(callbacki->call_user), JSON_OBJECT); set_json("channel", NULL, &jlist); json_attach(jlist, get_json_object_channel(chan), JSON_OBJECT); newraw = forge_raw(RAW_KICK, jlist); post_raw(newraw, victim, callbacki->g_ape); left(victim, chan, callbacki->g_ape); // chan may be removed } } return (FOR_NOTHING); }
unsigned int cmd_settopic(callbackp *callbacki) { settopic(callbacki->call_user, getchan(callbacki->param[2], callbacki->g_ape), callbacki->param[3], callbacki->g_ape); return (FOR_NOTHING); }