示例#1
0
def send_signed_user_message(user,
                             msg_score,
                             text,
                             reply_msid=None,
                             tripcode=False):
    if not enable_signing:
        return rp.Reply(rp.types.ERR_COMMAND_DISABLED)
    if user.isInCooldown():
        return rp.Reply(rp.types.ERR_COOLDOWN, until=user.cooldownUntil)
    ok = spam_scores.increaseSpamScore(user.id, msg_score)
    if not ok:
        return rp.Reply(rp.types.ERR_SPAMMY)

    if tripcode:
        if user.tripcode is None:
            return rp.Reply(rp.types.ERR_NO_TRIPCODE)
        tripname, tripcode = genTripcode(user.tripcode)
        m = rp.Reply(rp.types.TSIGNED_MSG,
                     text=text,
                     user_id=user.id,
                     tripname=tripname,
                     tripcode=tripcode)
    else:
        m = rp.Reply(rp.types.SIGNED_MSG,
                     text=text,
                     user_id=user.id,
                     user_text=user.getFormattedName())

    msid = ch.assignMessageId(CachedMessage(user.id))
    Sender.reply(m, msid, None, user, reply_msid)
    return msid
示例#2
0
def send_signed_user_message(user, msg_score, text, reply_msid=None, tripcode=False):
	if not enable_signing:
		return rp.Reply(rp.types.ERR_COMMAND_DISABLED)
	if user.isInCooldown():
		return rp.Reply(rp.types.ERR_COOLDOWN, until=user.cooldownUntil)

	ok = spam_scores.increaseSpamScore(user.id, msg_score)
	if not ok:
		return rp.Reply(rp.types.ERR_SPAMMY)
	if not tripcode and sign_interval.total_seconds() > 1:
		last_used = sign_last_used.get(user.id, None)
		if last_used and (datetime.now() - last_used) < sign_interval:
			return rp.Reply(rp.types.ERR_SPAMMY_SIGN)
		sign_last_used[user.id] = datetime.now()

	if tripcode:
		if user.tripcode is None:
			return rp.Reply(rp.types.ERR_NO_TRIPCODE)
		tripname, tripcode = genTripcode(user.tripcode)
		m = rp.Reply(rp.types.TSIGNED_MSG, text=text, user_id=user.id, tripname=tripname, tripcode=tripcode)
	else:
		m = rp.Reply(rp.types.SIGNED_MSG, text=text, user_id=user.id, user_text=user.getFormattedName())

	msid = ch.assignMessageId(CachedMessage(user.id))
	Sender.reply(m, msid, None, user, reply_msid)
	return msid
示例#3
0
def formatter_tripcoded_message(user: core.User, fmt: FormattedMessageBuilder):
    tripname, tripcode = genTripcode(user.tripcode)
    # due to how prepend() works the string is built right-to-left
    fmt.prepend("</code>:\n", True)
    fmt.prepend(tripcode)
    fmt.prepend("</b> <code>", True)
    fmt.prepend(tripname)
    fmt.prepend("<b>", True)
示例#4
0
def set_tripcode(user, text):
	if not enable_signing:
		return rp.Reply(rp.types.ERR_COMMAND_DISABLED)

	if not (0 < text.find("#") < len(text) - 1):
		return rp.Reply(rp.types.ERR_INVALID_TRIP_FORMAT)
	if "\n" in text or len(text) > 30:
		return rp.Reply(rp.types.ERR_INVALID_TRIP_FORMAT)

	with db.modifyUser(id=user.id) as user:
		user.tripcode = text
	tripname, tripcode = genTripcode(user.tripcode)
	return rp.Reply(rp.types.TRIPCODE_SET, tripname=tripname, tripcode=tripcode)